<?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>142719</bug_id>
          
          <creation_ts>2015-03-15 21:34:16 -0700</creation_ts>
          <short_desc>AX: richer text change notifications</short_desc>
          <delta_ts>2015-04-30 18:03:28 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=25898</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>144164</dependson>
    
    <dependson>144447</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Doug Russell">d_russell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1077320</commentid>
    <comment_count>0</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-03-15 21:34:16 -0700</bug_when>
    <thetext>Text selection changed notifications allow assistive technology to respond to changing content and user navigation. The fidelity and reliability of these responses could be improved by including context data in the notifications as to what the user intent behind the change was.

Useful context data:

Edit operations like insert, delete, cut, paste. To help in discerning why text showed up or went away, not just that it did. Also knowing the source of an edit operation can be useful, like in the case of dictation, where speech echo could disrupt ongoing dictation.

Selection change granularity, direction, type. To help in discerning how to echo the change to the user. For example moving right by one word using option+right arrow should be echoed differently than moving the cursor to the next word by clicking on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077321</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-03-15 21:34:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/20169058&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077345</commentid>
    <comment_count>2</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-03-15 22:50:59 -0700</bug_when>
    <thetext>(This is an extension of the work done in https://bugs.webkit.org/show_bug.cgi?id=25898)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082462</commentid>
    <comment_count>3</comment_count>
      <attachid>250041</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-02 23:05:08 -0700</bug_when>
    <thetext>Created attachment 250041
Edit commands infrastructure

Work split into 5 parts
1 Edit command infrastructure - changes that aren&apos;t directly AX related but that add the context AX needs
2 Value change notifications
3 Selection change notifications
4 Tests - Right now this just fixes the one failing test
5 Debug Logging - useful logging for testing, this will be omitted in the final patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082463</commentid>
    <comment_count>4</comment_count>
      <attachid>250042</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-02 23:05:46 -0700</bug_when>
    <thetext>Created attachment 250042
value change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082464</commentid>
    <comment_count>5</comment_count>
      <attachid>250043</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-02 23:06:05 -0700</bug_when>
    <thetext>Created attachment 250043
selection change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082465</commentid>
    <comment_count>6</comment_count>
      <attachid>250044</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-02 23:06:42 -0700</bug_when>
    <thetext>Created attachment 250044
tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082466</commentid>
    <comment_count>7</comment_count>
      <attachid>250045</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-02 23:06:59 -0700</bug_when>
    <thetext>Created attachment 250045
debugging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082477</commentid>
    <comment_count>8</comment_count>
      <attachid>250048</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-03 00:01:12 -0700</bug_when>
    <thetext>Created attachment 250048
selection change notifications

Fix method missing from previous patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082811</commentid>
    <comment_count>9</comment_count>
      <attachid>250136</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-04 13:24:13 -0700</bug_when>
    <thetext>Created attachment 250136
value change notifications

Finish some todos and other cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082812</commentid>
    <comment_count>10</comment_count>
      <attachid>250137</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-04 13:25:08 -0700</bug_when>
    <thetext>Created attachment 250137
selection change notifications

Finish some todos and other cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083186</commentid>
    <comment_count>11</comment_count>
      <attachid>250233</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 15:52:03 -0700</bug_when>
    <thetext>Created attachment 250233
value change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083188</commentid>
    <comment_count>12</comment_count>
      <attachid>250234</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 15:52:48 -0700</bug_when>
    <thetext>Created attachment 250234
selection change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083189</commentid>
    <comment_count>13</comment_count>
      <attachid>250235</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 15:53:38 -0700</bug_when>
    <thetext>Created attachment 250235
debugging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083191</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-06 15:57:10 -0700</bug_when>
    <thetext>Attachment 250041 did not pass style-queue:


ERROR: Source/WebCore/editing/InsertIntoTextNodeCommand.cpp:62:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/editing/DeleteFromTextNodeCommand.cpp:58:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/editing/InsertNodeBeforeCommand.cpp:55:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 3 in 42 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>1083192</commentid>
    <comment_count>15</comment_count>
      <attachid>250236</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 16:06:35 -0700</bug_when>
    <thetext>Created attachment 250236
value change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083193</commentid>
    <comment_count>16</comment_count>
      <attachid>250237</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 16:07:11 -0700</bug_when>
    <thetext>Created attachment 250237
selection change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083214</commentid>
    <comment_count>17</comment_count>
      <attachid>250241</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 17:03:00 -0700</bug_when>
    <thetext>Created attachment 250241
Edit commands infrastructure

added change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083215</commentid>
    <comment_count>18</comment_count>
      <attachid>250242</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 17:04:04 -0700</bug_when>
    <thetext>Created attachment 250242
value change notifications

add change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083216</commentid>
    <comment_count>19</comment_count>
      <attachid>250243</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 17:04:29 -0700</bug_when>
    <thetext>Created attachment 250243
selection change notifications

add change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083217</commentid>
    <comment_count>20</comment_count>
      <attachid>250244</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 17:05:16 -0700</bug_when>
    <thetext>Created attachment 250244
tests

adding change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083218</commentid>
    <comment_count>21</comment_count>
      <attachid>250245</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 17:05:48 -0700</bug_when>
    <thetext>Created attachment 250245
debugging

adding change logs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083222</commentid>
    <comment_count>22</comment_count>
      <attachid>250246</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-06 17:21:33 -0700</bug_when>
    <thetext>Created attachment 250246
Full patch

Combined patch for EWS analysis</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083223</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-06 17:23:29 -0700</bug_when>
    <thetext>Attachment 250246 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:17:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/WebCore/ChangeLog:215:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/WebCore/ChangeLog:231:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/WebCore/ChangeLog:287:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Source/WebCore/ChangeLog:407:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 5 in 62 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>1083398</commentid>
    <comment_count>24</comment_count>
      <attachid>250289</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 13:24:26 -0700</bug_when>
    <thetext>Created attachment 250289
Full Patch

Patch for EWS analysis updated to fix failing builds on non mac platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083399</commentid>
    <comment_count>25</comment_count>
      <attachid>250290</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 13:25:26 -0700</bug_when>
    <thetext>Created attachment 250290
value change notifications

update for builds failing on non mac platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083402</commentid>
    <comment_count>26</comment_count>
      <attachid>250291</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 13:25:59 -0700</bug_when>
    <thetext>Created attachment 250291
selection change notifications

update for builds failing on non mac platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083405</commentid>
    <comment_count>27</comment_count>
      <attachid>250292</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 13:31:32 -0700</bug_when>
    <thetext>Created attachment 250292
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083411</commentid>
    <comment_count>28</comment_count>
      <attachid>250294</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 13:46:36 -0700</bug_when>
    <thetext>Created attachment 250294
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083415</commentid>
    <comment_count>29</comment_count>
      <attachid>250296</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 13:51:54 -0700</bug_when>
    <thetext>Created attachment 250296
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083417</commentid>
    <comment_count>30</comment_count>
      <attachid>250297</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 13:55:36 -0700</bug_when>
    <thetext>Created attachment 250297
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083420</commentid>
    <comment_count>31</comment_count>
      <attachid>250298</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 14:04:39 -0700</bug_when>
    <thetext>Created attachment 250298
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083426</commentid>
    <comment_count>32</comment_count>
      <attachid>250300</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 14:22:31 -0700</bug_when>
    <thetext>Created attachment 250300
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083440</commentid>
    <comment_count>33</comment_count>
      <attachid>250304</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 14:37:53 -0700</bug_when>
    <thetext>Created attachment 250304
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083449</commentid>
    <comment_count>34</comment_count>
      <attachid>250307</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 14:59:36 -0700</bug_when>
    <thetext>Created attachment 250307
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083460</commentid>
    <comment_count>35</comment_count>
      <attachid>250309</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 15:41:15 -0700</bug_when>
    <thetext>Created attachment 250309
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083481</commentid>
    <comment_count>36</comment_count>
      <attachid>250314</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 16:45:07 -0700</bug_when>
    <thetext>Created attachment 250314
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083497</commentid>
    <comment_count>37</comment_count>
      <attachid>250320</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 17:32:41 -0700</bug_when>
    <thetext>Created attachment 250320
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083509</commentid>
    <comment_count>38</comment_count>
      <attachid>250322</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 18:43:14 -0700</bug_when>
    <thetext>Created attachment 250322
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083522</commentid>
    <comment_count>39</comment_count>
      <attachid>250325</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 19:47:11 -0700</bug_when>
    <thetext>Created attachment 250325
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083534</commentid>
    <comment_count>40</comment_count>
      <attachid>250329</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 20:53:29 -0700</bug_when>
    <thetext>Created attachment 250329
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083544</commentid>
    <comment_count>41</comment_count>
      <attachid>250332</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-07 21:47:37 -0700</bug_when>
    <thetext>Created attachment 250332
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083644</commentid>
    <comment_count>42</comment_count>
      <attachid>250290</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-04-08 10:03:28 -0700</bug_when>
    <thetext>Comment on attachment 250290
value change notifications

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

&gt; Source/WebCore/ChangeLog:5
&gt; +        Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes.

description should go after the Reviewed by line

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:757
&gt; +        // Delegate to the right platform

comment is unnecessary. we only need comments generally to explain why something is happening. what is happening should be self evident from the code

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:874
&gt; +        text = obj.passwordFieldOrContainingPasswordField()-&gt;passwordFieldValue().substring(position.deepEquivalent().deprecatedEditingOffset(), text.length());

how is this sanitizing the value? is there not a method on HTMLInputType to give you the sanitized version already?

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:893
&gt; +        if (sanitizePasswordText(*obj, sanitizedText, position)) {

why do we have this special code for password fields?

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:906
&gt; +    AccessibilityObject* obj = getOrCreate(node);

this line is common to both platforms and can be moved above

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:924
&gt; +    if (obj) {

if there&apos;s no obj can we do an early return?

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:938
&gt;      AccessibilityObject* obj = getOrCreate(node);

ditto about AXObject

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1168
&gt; +    if (AccessibilityObject *rootObject = this-&gt;rootObject()) {

is the root object always a ScrollView? I think it probably is. in that case we can cast to scroll view and call the webArea() method directly instead of relying on that it will be the first object

&gt; Source/WebCore/accessibility/AXObjectCache.h:192
&gt; +    enum AXTextStateChangeType {

what other change types can you envision?

&gt; Source/WebCore/accessibility/AXObjectCache.h:201
&gt; +        AXTextEditTypeTyping, // Insert via typing

how is insert/delete different from typing? why would you use typing instead of insert

&gt; Source/WebCore/accessibility/AXObjectCache.h:210
&gt; +    void postTextReplacementNotification(Node*, AXTextEditType, const String&amp;, AXTextEditType, const String&amp;, const VisiblePosition&amp;);

why are there two AXTextEditTypes?
because there are two we should name them here in the header

&gt; Source/WebCore/accessibility/AXObjectCache.h:240
&gt; +        AXTextDeleted,

can you also have a text moved type? (i.e. you can drag blocks of text on OS X)

&gt; Source/WebCore/accessibility/AXObjectCache.h:290
&gt; +    Timer m_passwordNotificationPostTimer;

still curious why we need special timers for passwords

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:568
&gt; +            if (AXObjectCache *cache = axObjectCache())

* on wrong side

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.h:91
&gt; +    virtual bool isContainedByPasswordField() const override;

i think we can move this implementation in AccessibilityObject and then we can remove the virtual

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:195
&gt; +static NSDictionary* textReplacementChangeDictionary(AccessibilityObject* obj, AXObjectCache::AXTextEditType type, const String&amp; string, const VisiblePosition&amp; position)

ObjcC stars should be on the other side

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:197
&gt; +    NSString* text = (NSString *)string;

ditto about this star.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:246
&gt; +    if (!obj)

is it possible to combine the implementation of this method with the more detailed one (or rather vice versa in this case)

&gt; Source/WebCore/editing/CutDeleteFromTextNodeCommand.h:44
&gt; +    virtual AXObjectCache::AXTextEditType applyEditType() override;

should this be final override

&gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.cpp:53
&gt; +    case AXObjectCache::AXTextEditTypePaste:

can you just make the default: case be ASSERT_NOT_REACHED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083654</commentid>
    <comment_count>43</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 10:46:58 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; Comment on attachment 250290 [details]
&gt; value change notifications
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250290&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:5
&gt; &gt; +        Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes.
&gt; 
&gt; description should go after the Reviewed by line

Will do

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:757
&gt; &gt; +        // Delegate to the right platform
&gt; 
&gt; comment is unnecessary. we only need comments generally to explain why
&gt; something is happening. what is happening should be self evident from the
&gt; code

Will do

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:874
&gt; &gt; +        text = obj.passwordFieldOrContainingPasswordField()-&gt;passwordFieldValue().substring(position.deepEquivalent().deprecatedEditingOffset(), text.length());
&gt; 
&gt; how is this sanitizing the value? is there not a method on HTMLInputType to
&gt; give you the sanitized version already?

It&apos;s using passwordFieldValue() if the element is a password field or contained by a password field

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:893
&gt; &gt; +        if (sanitizePasswordText(*obj, sanitizedText, position)) {
&gt; 
&gt; why do we have this special code for password fields?

To make sure that we&apos;re not posting password characters in notifications and to make sure we&apos;re posting password notifications at regular ticks so they can&apos;t be analyzed

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:906
&gt; &gt; +    AccessibilityObject* obj = getOrCreate(node);
&gt; 
&gt; this line is common to both platforms and can be moved above

Will do

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:924
&gt; &gt; +    if (obj) {
&gt; 
&gt; if there&apos;s no obj can we do an early return?

The Mac logic handles cases where obj == nullptr

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:938
&gt; &gt;      AccessibilityObject* obj = getOrCreate(node);
&gt; 
&gt; ditto about AXObject

Will do

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1168
&gt; &gt; +    if (AccessibilityObject *rootObject = this-&gt;rootObject()) {
&gt; 
&gt; is the root object always a ScrollView? I think it probably is. in that case
&gt; we can cast to scroll view and call the webArea() method directly instead of
&gt; relying on that it will be the first object

Sounds reasonable, I&apos;ll check.

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:192
&gt; &gt; +    enum AXTextStateChangeType {
&gt; 
&gt; what other change types can you envision?

One I&apos;ve considered is an explicit type for find and replace, especially in the multiple find and replace case where echoing the result might be complex. To answer a later review question, possibly a move type if there&apos;s a need to discern that from a delete followed by an insert.

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:201
&gt; &gt; +        AXTextEditTypeTyping, // Insert via typing
&gt; 
&gt; how is insert/delete different from typing? why would you use typing instead
&gt; of insert

A good example of insert not being typing is using javascript to set a form value

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:210
&gt; &gt; +    void postTextReplacementNotification(Node*, AXTextEditType, const String&amp;, AXTextEditType, const String&amp;, const VisiblePosition&amp;);
&gt; 
&gt; why are there two AXTextEditTypes?
&gt; because there are two we should name them here in the header

For the deletion and insert, I&apos;ll add variable names

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:240
&gt; &gt; +        AXTextDeleted,
&gt; 
&gt; can you also have a text moved type? (i.e. you can drag blocks of text on OS
&gt; X)

Answered above

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:290
&gt; &gt; +    Timer m_passwordNotificationPostTimer;
&gt; 
&gt; still curious why we need special timers for passwords

To thwart analyzing the cadence of the notifications to narrow down possible password

&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:568
&gt; &gt; +            if (AXObjectCache *cache = axObjectCache())
&gt; 
&gt; * on wrong side
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.h:91
&gt; &gt; +    virtual bool isContainedByPasswordField() const override;
&gt; 
&gt; i think we can move this implementation in AccessibilityObject and then we
&gt; can remove the virtual

Will do

&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:195
&gt; &gt; +static NSDictionary* textReplacementChangeDictionary(AccessibilityObject* obj, AXObjectCache::AXTextEditType type, const String&amp; string, const VisiblePosition&amp; position)
&gt; 
&gt; ObjcC stars should be on the other side

Will do

&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:197
&gt; &gt; +    NSString* text = (NSString *)string;
&gt; 
&gt; ditto about this star.

Will do

&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:246
&gt; &gt; +    if (!obj)
&gt; 
&gt; is it possible to combine the implementation of this method with the more
&gt; detailed one (or rather vice versa in this case)

Do you mean combine postTextStateChangePlatformNotification and postTextReplacementPlatformNotification?

&gt; 
&gt; &gt; Source/WebCore/editing/CutDeleteFromTextNodeCommand.h:44
&gt; &gt; +    virtual AXObjectCache::AXTextEditType applyEditType() override;
&gt; 
&gt; should this be final override

Will do

&gt; 
&gt; &gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.cpp:53
&gt; &gt; +    case AXObjectCache::AXTextEditTypePaste:
&gt; 
&gt; can you just make the default: case be ASSERT_NOT_REACHED

I could do that for non debug builds, but not having a default means I get warnings if I change the enum which is quite helpful</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083684</commentid>
    <comment_count>44</comment_count>
      <attachid>250368</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 12:19:40 -0700</bug_when>
    <thetext>Created attachment 250368
Full patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083685</commentid>
    <comment_count>45</comment_count>
      <attachid>250369</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 12:20:18 -0700</bug_when>
    <thetext>Created attachment 250369
Edit commands infrastructure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083686</commentid>
    <comment_count>46</comment_count>
      <attachid>250370</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 12:21:07 -0700</bug_when>
    <thetext>Created attachment 250370
value Change Notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083687</commentid>
    <comment_count>47</comment_count>
      <attachid>250371</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 12:21:37 -0700</bug_when>
    <thetext>Created attachment 250371
selection change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083688</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-08 12:22:37 -0700</bug_when>
    <thetext>Attachment 250368 did not pass style-queue:


ERROR: Source/WebCore/accessibility/AXObjectCache.cpp:758:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 68 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>1083689</commentid>
    <comment_count>49</comment_count>
      <attachid>250372</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 12:29:37 -0700</bug_when>
    <thetext>Created attachment 250372
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083691</commentid>
    <comment_count>50</comment_count>
      <attachid>250373</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 12:30:45 -0700</bug_when>
    <thetext>Created attachment 250373
value change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083692</commentid>
    <comment_count>51</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-08 12:32:36 -0700</bug_when>
    <thetext>Attachment 250372 did not pass style-queue:


ERROR: Source/WebCore/accessibility/AXObjectCache.cpp:758:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 68 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>1083706</commentid>
    <comment_count>52</comment_count>
      <attachid>250377</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 12:51:27 -0700</bug_when>
    <thetext>Created attachment 250377
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083709</commentid>
    <comment_count>53</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-08 12:54:57 -0700</bug_when>
    <thetext>Attachment 250377 did not pass style-queue:


ERROR: Source/WebCore/accessibility/AXObjectCache.cpp:758:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 68 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>1083711</commentid>
    <comment_count>54</comment_count>
      <attachid>250378</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-08 12:58:53 -0700</bug_when>
    <thetext>Created attachment 250378
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084024</commentid>
    <comment_count>55</comment_count>
      <attachid>250454</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-09 13:10:13 -0700</bug_when>
    <thetext>Created attachment 250454
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084027</commentid>
    <comment_count>56</comment_count>
      <attachid>250456</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-09 13:20:02 -0700</bug_when>
    <thetext>Created attachment 250456
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084435</commentid>
    <comment_count>57</comment_count>
      <attachid>250548</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-10 18:29:06 -0700</bug_when>
    <thetext>Created attachment 250548
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084437</commentid>
    <comment_count>58</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-10 18:31:07 -0700</bug_when>
    <thetext>Attachment 250548 did not pass style-queue:


ERROR: Source/WebCore/accessibility/AXObjectCache.cpp:1071:  Declaration has space between type name and * in AccessibilityObject *observableObject  [whitespace/declaration] [3]
Total errors found: 1 in 70 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>1084440</commentid>
    <comment_count>59</comment_count>
      <attachid>250550</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-10 18:40:29 -0700</bug_when>
    <thetext>Created attachment 250550
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084443</commentid>
    <comment_count>60</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-10 18:43:55 -0700</bug_when>
    <thetext>Attachment 250550 did not pass style-queue:


ERROR: Source/WebCore/accessibility/AXObjectCache.cpp:1071:  Declaration has space between type name and * in AccessibilityObject *observableObject  [whitespace/declaration] [3]
Total errors found: 1 in 70 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>1084444</commentid>
    <comment_count>61</comment_count>
      <attachid>250552</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-10 18:44:39 -0700</bug_when>
    <thetext>Created attachment 250552
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084447</commentid>
    <comment_count>62</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-10 18:48:35 -0700</bug_when>
    <thetext>Attachment 250552 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:21:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 70 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>1084448</commentid>
    <comment_count>63</comment_count>
      <attachid>250554</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-10 18:51:31 -0700</bug_when>
    <thetext>Created attachment 250554
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085207</commentid>
    <comment_count>64</comment_count>
      <attachid>250721</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-14 12:13:18 -0700</bug_when>
    <thetext>Created attachment 250721
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085211</commentid>
    <comment_count>65</comment_count>
      <attachid>250722</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-14 12:25:23 -0700</bug_when>
    <thetext>Created attachment 250722
Edit commands infrastructure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085212</commentid>
    <comment_count>66</comment_count>
      <attachid>250723</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-14 12:26:10 -0700</bug_when>
    <thetext>Created attachment 250723
value change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085213</commentid>
    <comment_count>67</comment_count>
      <attachid>250724</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-14 12:26:32 -0700</bug_when>
    <thetext>Created attachment 250724
selection change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085214</commentid>
    <comment_count>68</comment_count>
      <attachid>250725</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-14 12:26:52 -0700</bug_when>
    <thetext>Created attachment 250725
tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085230</commentid>
    <comment_count>69</comment_count>
      <attachid>250721</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-04-14 13:06:57 -0700</bug_when>
    <thetext>Comment on attachment 250721
Full Patch

Attachment 250721 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/5707236219289600

New failing tests:
platform/mac/accessibility/selection-change-userinfo.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085231</commentid>
    <comment_count>70</comment_count>
      <attachid>250730</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-04-14 13:07:02 -0700</bug_when>
    <thetext>Created attachment 250730
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>1085246</commentid>
    <comment_count>71</comment_count>
      <attachid>250735</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-14 13:47:34 -0700</bug_when>
    <thetext>Created attachment 250735
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085251</commentid>
    <comment_count>72</comment_count>
      <attachid>250736</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-14 14:01:35 -0700</bug_when>
    <thetext>Created attachment 250736
tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085599</commentid>
    <comment_count>73</comment_count>
      <attachid>250825</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-15 11:13:58 -0700</bug_when>
    <thetext>Created attachment 250825
Full Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085672</commentid>
    <comment_count>74</comment_count>
      <attachid>250854</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-15 13:55:38 -0700</bug_when>
    <thetext>Created attachment 250854
value change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085675</commentid>
    <comment_count>75</comment_count>
      <attachid>250856</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-15 13:56:51 -0700</bug_when>
    <thetext>Created attachment 250856
selection change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085676</commentid>
    <comment_count>76</comment_count>
      <attachid>250857</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-15 13:57:26 -0700</bug_when>
    <thetext>Created attachment 250857
tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086225</commentid>
    <comment_count>77</comment_count>
      <attachid>250989</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-16 19:31:34 -0700</bug_when>
    <thetext>Created attachment 250989
Full Patch

Fix delete and cut commands being swapped</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086229</commentid>
    <comment_count>78</comment_count>
      <attachid>250991</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-16 19:36:14 -0700</bug_when>
    <thetext>Created attachment 250991
Full Patch

Fix delete and cut commands being swapped

Minor test updates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086230</commentid>
    <comment_count>79</comment_count>
      <attachid>250992</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-16 19:37:35 -0700</bug_when>
    <thetext>Created attachment 250992
Edit commands infrastructure

Remove method removed in subsequent patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086231</commentid>
    <comment_count>80</comment_count>
      <attachid>250993</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-16 19:38:17 -0700</bug_when>
    <thetext>Created attachment 250993
value change notifications

Fix delete and cut commands being swapped</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086232</commentid>
    <comment_count>81</comment_count>
      <attachid>250994</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-16 19:38:42 -0700</bug_when>
    <thetext>Created attachment 250994
tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086433</commentid>
    <comment_count>82</comment_count>
      <attachid>251051</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-17 14:48:01 -0700</bug_when>
    <thetext>Created attachment 251051
selection change notifications

Switch showIntent() from printf() to dataLogF()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086434</commentid>
    <comment_count>83</comment_count>
      <attachid>251052</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-17 14:48:34 -0700</bug_when>
    <thetext>Created attachment 251052
tests

Add tests for value change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086437</commentid>
    <comment_count>84</comment_count>
      <attachid>251054</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-17 14:51:10 -0700</bug_when>
    <thetext>Created attachment 251054
Full Patch

Switch showIntent() from printf() to dataLogF()
Add tests for value change notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086572</commentid>
    <comment_count>85</comment_count>
      <attachid>251054</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-18 12:02:51 -0700</bug_when>
    <thetext>Comment on attachment 251054
Full Patch

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

Very ambitious! Lots of small mistakes, generally seems like it’s OK, but I am not sure that the basic concept is right. This pattern with lots of different classes for all these variations of commands seems like overkill. Instead we should probably simply track the small bit of data that is different for these in a data member rather than making a different class for each.

One other small nit, classes that have nothing derived from them should be marked final.

One piece of advice: I suggest talking to someone who’s an expert on the code before making such a large patch. Maybe you did, but if you talked to an editing expert you might have saved the tons of time I’m sure you spent making all these derived classes.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:756
&gt; +    for (const auto&amp; object : notifications)

Should call this notification, not object.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:873
&gt; +        dataLogF(&quot;Unknown&quot;);

These should all be dataLog. The only time you use dataLogF is when for some reason you need to use a C-style format string with % formatting.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:987
&gt; +void AXObjectCache::postTextStateChangeNotification(Node *node, AXTextStateChangeIntent intent, const VisibleSelection&amp; selection)

Formatting here is incorrect. Should be &quot;Node* node&quot;.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:998
&gt;      AccessibilityObject* obj = getOrCreate(node);

Should call this object, not obj.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1023
&gt; +    AccessibilityObject* obj = getOrCreate(node);

Should call this object, not obj.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1032
&gt; +    if (obj) {
&gt; +        if (obj-&gt;isPasswordField() || obj-&gt;isContainedByPasswordField()) {
&gt; +            enqueuePasswordValueChangeNotification(obj);
&gt; +            return;
&gt; +        }
&gt; +        obj = obj-&gt;observableObject();
&gt; +    }
&gt; +

This code sequence is related over and over again. You should make a helper function for this so we don’T have lots of copies of it.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1048
&gt; +    AccessibilityObject* obj = getOrCreate(node);

Should call this object, not obj.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1065
&gt; +void AXObjectCache::enqueuePasswordValueChangeNotification(AccessibilityObject* obj)

Should call this object, not obj.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1074
&gt; +    if (std::find(m_passwordNotificationsToPost.begin(), m_passwordNotificationsToPost.end(), observableObject) == m_passwordNotificationsToPost.end()) {

Vector has a function named contains that should be used instead of std::find for this. But also, if this operation is needed, then I suggest using a WTF::ListHashSet, which is the right data structure if you want an ordered set of objects but don’t want to add duplicates. Finally, we normally find code like this is more readable if we use early return.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1077
&gt; +            m_passwordNotificationPostTimer.startOneShot(0.025);

Where does this 0.025 second number come from? Why is that an appropriate delay? Normally such constants are named at the top of the file along with a comment explaining the rationale.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1305
&gt; +    if (AccessibilityObject *rootObject = this-&gt;rootObject()) {

Formatting here is wrong; should be AccessibilityObject*. Also, I suggest writing this with early return instead of nesting.

&gt; Source/WebCore/accessibility/AXObjectCache.h:192
&gt; +    enum AXTextStateChangeType {

Since this type is a member of AXObjectCache, it’s a little strange to also give it an AX prefix. Namespacing means this is all inside AX, and so it’s kind of like “I heard you like AX, so I put an AX inside your AX”.

&gt; Source/WebCore/accessibility/AXObjectCache.h:246
&gt; +    static AXTextSelection TextSelection(AXTextSelectionDirection direction = AXTextSelectionDirectionUnknown, AXTextSelectionGranularity granularity = AXTextSelectionGranularityUnknown)
&gt; +    {
&gt; +        auto selection = AXTextSelection();
&gt; +        selection.direction = direction;
&gt; +        selection.granularity = granularity;
&gt; +        return selection;
&gt; +    }

Functions should be named with a lowercase letter.

The implementation of this function should just be one line:

    return { direction, granularity };

Or it may need to be:

    return AXTextSelection { direction, granularity };

But it doesn’t need to be four lines.

I’m not sure this function is needed at all. Unless the default values are really valuable, I think we could just use the AXTextSelection { xxx } syntax at the call sites.

&gt; Source/WebCore/accessibility/AXObjectCache.h:248
&gt; +    struct AXTextStateChangeIntent {

This struct definition does not need to be inside the class definition. We can just forward declare it in the class and then put the actual definition later in the header file. I think this might make the class definition much easier to read. It’s getting kind of colossal and hard to understand.

&gt; Source/WebCore/accessibility/AXObjectCache.h:254
&gt; +        bool sync;

The word “sync” is not a great name for a boolean, because the boolean is not a “sync”. A boolean should be named with an adjective phrase of the predicate it represents, such as &quot;needsSynchronization&quot; or whatever it is that &quot;sync&quot; means here.

&gt; Source/WebCore/accessibility/AXObjectCache.h:260
&gt; +        { }

WebKit coding style is to put these on successive lines once the thing is “vertical” like this and only do it on one line if the whole function is on one line.

&gt; Source/WebCore/accessibility/AXObjectCache.h:265
&gt; +            , sync(false)

This default should be dealt with when the member is declared:

    bool sync { false };

Then you don’t need to repeat it in each constructor.

&gt; Source/WebCore/accessibility/AXObjectCache.h:270
&gt; +            , selection(AXTextSelection())

I think you can write this as:

    , selection()

And get the same result. The AXTextSelection() part isn’t needed.

&gt; Source/WebCore/accessibility/AXObjectCache.h:317
&gt; +    inline AXTextChange textChangeForEditType(AXTextEditType type)

The “inline” here is not needed and has no effect.

&gt; Source/WebCore/accessibility/AXObjectCache.h:322
&gt; +            return AXObjectCache::AXTextDeleted;

The AXObjectCache:: prefix here is not needed since this is inside an AXObjectCache member function.

&gt; Source/WebCore/accessibility/AXObjectCache.h:327
&gt; +            return AXObjectCache::AXTextInserted;

Ditto.

&gt; Source/WebCore/accessibility/AXObjectCache.h:329
&gt; +        default:

The best practice is to leave the default case out of this switch statement so that the compiler will warn if we forget to include any of the enum cases. Since all the cases are returning, we can still ASSERT_NOT_REACHED for a bad value that happens to occur runtime; the code for that goes after the switch statement outside of it.

&gt; Source/WebCore/accessibility/AXObjectCache.h:331
&gt; +            return AXObjectCache::AXTextInserted;

Ditto.

&gt; Source/WebCore/accessibility/AXObjectCache.h:446
&gt; +#if PLATFORM(COCOA)
&gt; +inline void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject*, AXTextStateChangeIntent, const VisibleSelection&amp;) { }
&gt; +inline void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject*, AXTextEditType, const String&amp;, const VisiblePosition&amp;) { }
&gt; +inline void AXObjectCache::postTextReplacementPlatformNotification(AccessibilityObject*, AXTextEditType, const String&amp;, AXTextEditType, const String&amp;, const VisiblePosition&amp;) { }
&gt; +#else
&gt;  inline void AXObjectCache::nodeTextChangePlatformNotification(AccessibilityObject*, AXTextChange, unsigned, const String&amp;) { }
&gt; +#endif

It’s better to not mix the conditional code up with the unconditional. Please put this in a separate paragraph after the rest.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:555
&gt; +AccessibilityObject* AccessibilityNodeObject::passwordFieldOrContainingPasswordField() const

Why does this function need to be const?

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:567
&gt; +    if (Element* element = node-&gt;shadowHost()) {
&gt; +        if (is&lt;HTMLInputElement&gt;(*element)) {

Another way to write this without the nesting is:

    Element* element = node-&gt;shadowHost();
    if (is&lt;HTMLInputElement&gt;(element)) {

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:568
&gt; +            if (AXObjectCache *cache = axObjectCache())

Incorrect formatting of the AXObjectCache* here.

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:2666
&gt; +    HTMLInputElement* inputElement = nullptr;
&gt; +    if (Element* element = node-&gt;shadowHost()) {
&gt; +        if (is&lt;HTMLInputElement&gt;(*element))
&gt; +            inputElement = downcast&lt;HTMLInputElement&gt;(element);
&gt; +    }
&gt; +    if (!inputElement)
&gt; +        return false;
&gt; +    
&gt; +    return inputElement-&gt;isPasswordField();

Here’s how I would write this:

    Element* element = node-&gt;shadowHost();
    return is&lt;HTMLInputElement&gt;(element) &amp;&amp; downcast&lt;HTMLInputElement&gt;(*element).isPasswordField();

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1500
&gt; +    Position pos1 = Position(node, range.start, Position::PositionIsOffsetInAnchor);
&gt; +    Position pos2 = Position(node, range.start + range.length, Position::PositionIsOffsetInAnchor);

We try to avoid abbreviations and names such as &quot;pos1&quot; and &quot;pos2&quot;. How about &quot;start&quot; and &quot;end&quot; or &quot;startPosition&quot; and &quot;endPosition&quot; or if you much prefer numbers, &quot;position1&quot; and &quot;position2&quot;?

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1501
&gt; +    VisibleSelection visibleSelection = VisibleSelection(pos1, pos2, DOWNSTREAM);

I would write:

    VisibleSelection newSelection(start, end, DOWNSTREAM);

I don’t think he word “visible” in the variable name is helpful, and I think it’s unnecessarily wordy to write:

    VisibleSelection x = VisibleSelection(...);

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:203
&gt; +void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject* obj, AXTextStateChangeIntent intent, const VisibleSelection&amp; selection)

Please don’t name a local variable “obj”.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:236
&gt; +        case AXTextStateChangeTypeEdit:
&gt; +            break;
&gt; +        default:
&gt; +            break;

I don’t understand why you have a case here for both AXTextStateChangeTypeEdit and default. I suggest omitting the default if we are covering all the cases, or omitting AXTextStateChangeTypeEdit if we are not covering all the cases.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:250
&gt; +    // Used by DRT to know when notifications are posted.

These are not good comments. First of all, it’s not appropriate for us to put code into WebKit just for DumpRenderTree. Second of all, the tool won’t necessarily always be named DumpRenderTree, which is kind of a crazy name, and the abbreviation DRT will be really mysterious in the future. Finally, the comment doesn’t really explain this sufficiently. I’m assuming the issue is that it’s too hard for us to hook our testing tool into the real accessibility notification machinery so we made a second one just for testing. I’m not sure that strategy is a good one.

I suggest we make a helper function that does both NSAccessibilityPostNotificationWithUserInfo and calls the wrapper. That helper function could have a longer comment that explained more clearly what this is, without the DRT abbreviation. Generally speaking the comment should explain in a slightly more abstract way what this is for, rather than specifically saying there is exactly one client, DRT, using it. But also it’s critical not to repeat the code and the comment over and over again.

I’d go further and say that it would generally be good to factor this to share more of the code for clarity. There’s a lot of copied and pasted code here.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:254
&gt; +    // Used by DRT to know when notifications are posted.

Please use shared function as mentioned above.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:260
&gt; +static NSDictionary *textReplacementChangeDictionary(AccessibilityObject* obj, AXObjectCache::AXTextEditType type, const String&amp; string, const VisiblePosition&amp; position)

Please don’t use the abbreviation &quot;obj&quot;. I believe the WebKit coding style guidelines documents explains the rationale for this.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:268
&gt; +    static const NSUInteger truncationLength = 1000;

Part of the value of a constant in a case like this is to explain where the number came from. Please put in a why comment explaining the choice of 1000 UTF-16 code units as a reasonable limit.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:273
&gt; +    if (length &gt; 0)

WebKit coding style says to use &quot;if (length)&quot; here. But also, this function returned nil earlier if length was zero, so this if should be omitted.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:282
&gt; +void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject* obj, AXTextEditType type, const String&amp; text, const VisiblePosition&amp; position)

Please don’t use the abbreviation &quot;obj&quot;. I believe the WebKit coding style guidelines documents explains the rationale for this.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:305
&gt; +    // Used by DRT to know when notifications are posted.

Please use shared function as mentioned above.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:309
&gt; +    // Used by DRT to know when notifications are posted.

Please use shared function as mentioned above.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:340
&gt; +    // Used by DRT to know when notifications are posted.

Please use shared function as mentioned above.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:344
&gt; +    // Used by DRT to know when notifications are posted.

Please use shared function as mentioned above.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:398
&gt; +    for (NSUInteger idx = 0; idx &lt; [mutableArray count]; idx++) {

Please don’t use the abbreviation &quot;idx&quot;. If you don’t want to use the customary “i”, which we use almost everywhere in WebKit code, then please use a word “index”. The in-between “idx” isn’t right for our coding style.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:405
&gt; +            [mutableArray removeObjectAtIndex:idx];

This won’t work. We will end up skipping one of the element in the array, because we’ll remove the object at this index, but we will still move on to the next index. So if index 0 is neither a string nor a number, we’ll next move on to the object that was originally at index 2 and never process the object that was originally at index 1.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:417
&gt; +            mutableDictionary[key] = dictionaryRemovingNonJSONTypes(value);

I don’t think NSDictionary allows modification of a dictionary while it is being enumerated, even if it’s just the value being modified.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:419
&gt; +            mutableDictionary[key] = arrayRemovingNonJSONTypes(value);

I don’t think NSDictionary allows modification of a dictionary while it is being enumerated, even if it’s just the value being modified.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:421
&gt; +            [mutableDictionary removeObjectForKey:key];

NSDictionary definitely doesn’t support &quot;for in&quot; iteration while the dictionary is being enumerated, so this code won’t work. How did you test it?

&gt; Source/WebCore/editing/AppendNodeCommand.cpp:59
&gt; +    const String text = node-&gt;nodeValue();

The const here doesn’t add much. Please don’t declare specific local variables const unless there is a good reason to single them out. Almost all local variables could be marked &quot;const&quot;.

&gt; Source/WebCore/editing/CompositeEditCommand.cpp:171
&gt; +    if (m_commands.size())
&gt; +        return m_commands[m_commands.size()-1]-&gt;unapplyIntent();

WebKit coding style requires spaces around the &quot;-&quot; operator. But also, here’s how you’d write this:

    if (!m_commands.isEmpty())
        return m_commands.last()-&gt;unapplyIntent();

&gt; Source/WebCore/editing/CompositeEditCommand.h:110
&gt; +    virtual Ref&lt;EditCommand&gt; deleteFromTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, unsigned);

Why is this function virtual? The two arguments need names. The type “unsigned” alone is not good.

Argument types for new functions should not be PassRefPtr even though legacy ones use that type. Instead if we are handing off ownership they should be RefPtr&amp;&amp; or maybe even Ref&amp;&amp; if they must be non-null. If we are not handing off ownership they should be Node* or, even better, Node&amp;.

insertNodeBeforeCommand is not a good name for a function that creates a command. It should have the word “create” in its name. When we name a function with just a noun, then it implies something different -- returning something owned by this object -- not creating something.

&gt; Source/WebCore/editing/CompositeEditCommand.h:117
&gt; +    virtual Ref&lt;EditCommand&gt; insertNodeBeforeCommand(PassRefPtr&lt;Node&gt;, PassRefPtr&lt;Node&gt;, ShouldAssumeContentIsAlwaysEditable);

Same comments.

&gt; Source/WebCore/editing/CompositeEditCommand.h:121
&gt; +    virtual Ref&lt;EditCommand&gt; insertTextIntoNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, const String&amp;);

Same comments.

&gt; Source/WebCore/editing/CompositeEditCommand.h:140
&gt; +    virtual Ref&lt;DeleteFromTextNodeCommand&gt; replaceDeleteFromTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, unsigned);

Same comments.

&gt; Source/WebCore/editing/CompositeEditCommand.h:141
&gt; +    virtual Ref&lt;EditCommand&gt; replaceInsertIntoTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, const String&amp;, const String&amp;);

Same comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086594</commentid>
    <comment_count>86</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-18 17:01:55 -0700</bug_when>
    <thetext>(In reply to comment #85)
&gt; Comment on attachment 251054 [details]
&gt; Full Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=251054&amp;action=review
&gt; 
&gt; Very ambitious! Lots of small mistakes, generally seems like it’s OK, but I
&gt; am not sure that the basic concept is right. This pattern with lots of
&gt; different classes for all these variations of commands seems like overkill.
&gt; Instead we should probably simply track the small bit of data that is
&gt; different for these in a data member rather than making a different class
&gt; for each.

So that would be 4 new members:

AXObjectCache::AXTextEditType m_applyEditType;
AXObjectCache::AXTextEditType m_unapplyEditType;
AXObjectCache::AXTextStateChangeIntent m_applyIntent;
AXObjectCache::AXTextStateChangeIntent m_unapplyIntent;

I&apos;ll add those and update the appropriate constructors.

This is definitely better if we&apos;re ok with adding those data members.

&gt; 
&gt; One other small nit, classes that have nothing derived from them should be
&gt; marked final.
&gt; 
&gt; One piece of advice: I suggest talking to someone who’s an expert on the
&gt; code before making such a large patch. Maybe you did, but if you talked to
&gt; an editing expert you might have saved the tons of time I’m sure you spent
&gt; making all these derived classes.

I sent it out to webkit-dev, but haven&apos;t heard any responses: https://lists.webkit.org/pipermail/webkit-dev/2015-April/027377.html.

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:756
&gt; &gt; +    for (const auto&amp; object : notifications)
&gt; 
&gt; Should call this notification, not object.

Will do. (And will do on everything without a comment after this.)

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:873
&gt; &gt; +        dataLogF(&quot;Unknown&quot;);
&gt; 
&gt; These should all be dataLog. The only time you use dataLogF is when for some
&gt; reason you need to use a C-style format string with % formatting.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:987
&gt; &gt; +void AXObjectCache::postTextStateChangeNotification(Node *node, AXTextStateChangeIntent intent, const VisibleSelection&amp; selection)
&gt; 
&gt; Formatting here is incorrect. Should be &quot;Node* node&quot;.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:998
&gt; &gt;      AccessibilityObject* obj = getOrCreate(node);
&gt; 
&gt; Should call this object, not obj.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1023
&gt; &gt; +    AccessibilityObject* obj = getOrCreate(node);
&gt; 
&gt; Should call this object, not obj.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1032
&gt; &gt; +    if (obj) {
&gt; &gt; +        if (obj-&gt;isPasswordField() || obj-&gt;isContainedByPasswordField()) {
&gt; &gt; +            enqueuePasswordValueChangeNotification(obj);
&gt; &gt; +            return;
&gt; &gt; +        }
&gt; &gt; +        obj = obj-&gt;observableObject();
&gt; &gt; +    }
&gt; &gt; +
&gt; 
&gt; This code sequence is related over and over again. You should make a helper
&gt; function for this so we don’T have lots of copies of it.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1048
&gt; &gt; +    AccessibilityObject* obj = getOrCreate(node);
&gt; 
&gt; Should call this object, not obj.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1065
&gt; &gt; +void AXObjectCache::enqueuePasswordValueChangeNotification(AccessibilityObject* obj)
&gt; 
&gt; Should call this object, not obj.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1074
&gt; &gt; +    if (std::find(m_passwordNotificationsToPost.begin(), m_passwordNotificationsToPost.end(), observableObject) == m_passwordNotificationsToPost.end()) {
&gt; 
&gt; Vector has a function named contains that should be used instead of
&gt; std::find for this. But also, if this operation is needed, then I suggest
&gt; using a WTF::ListHashSet, which is the right data structure if you want an
&gt; ordered set of objects but don’t want to add duplicates. Finally, we
&gt; normally find code like this is more readable if we use early return.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1077
&gt; &gt; +            m_passwordNotificationPostTimer.startOneShot(0.025);
&gt; 
&gt; Where does this 0.025 second number come from? Why is that an appropriate
&gt; delay? Normally such constants are named at the top of the file along with a
&gt; comment explaining the rationale.

It&apos;s a 40hz cadence to match existing timing in AppKit that was provided by Product Security.

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:1305
&gt; &gt; +    if (AccessibilityObject *rootObject = this-&gt;rootObject()) {
&gt; 
&gt; Formatting here is wrong; should be AccessibilityObject*. Also, I suggest
&gt; writing this with early return instead of nesting.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:192
&gt; &gt; +    enum AXTextStateChangeType {
&gt; 
&gt; Since this type is a member of AXObjectCache, it’s a little strange to also
&gt; give it an AX prefix. Namespacing means this is all inside AX, and so it’s
&gt; kind of like “I heard you like AX, so I put an AX inside your AX”.

It is possible we&apos;ll be duplicating these enum layouts in other implementations where enums are not namespaced and ideally we can give them the same names to ease comparing logic. If it&apos;s alright I&apos;d like to leave them as is.

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:246
&gt; &gt; +    static AXTextSelection TextSelection(AXTextSelectionDirection direction = AXTextSelectionDirectionUnknown, AXTextSelectionGranularity granularity = AXTextSelectionGranularityUnknown)
&gt; &gt; +    {
&gt; &gt; +        auto selection = AXTextSelection();
&gt; &gt; +        selection.direction = direction;
&gt; &gt; +        selection.granularity = granularity;
&gt; &gt; +        return selection;
&gt; &gt; +    }
&gt; 
&gt; Functions should be named with a lowercase letter.
&gt; 
&gt; The implementation of this function should just be one line:
&gt; 
&gt;     return { direction, granularity };
&gt; 
&gt; Or it may need to be:
&gt; 
&gt;     return AXTextSelection { direction, granularity };
&gt; 
&gt; But it doesn’t need to be four lines.
&gt; 
&gt; I’m not sure this function is needed at all. Unless the default values are
&gt; really valuable, I think we could just use the AXTextSelection { xxx }
&gt; syntax at the call sites.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:248
&gt; &gt; +    struct AXTextStateChangeIntent {
&gt; 
&gt; This struct definition does not need to be inside the class definition. We
&gt; can just forward declare it in the class and then put the actual definition
&gt; later in the header file. I think this might make the class definition much
&gt; easier to read. It’s getting kind of colossal and hard to understand.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:254
&gt; &gt; +        bool sync;
&gt; 
&gt; The word “sync” is not a great name for a boolean, because the boolean is
&gt; not a “sync”. A boolean should be named with an adjective phrase of the
&gt; predicate it represents, such as &quot;needsSynchronization&quot; or whatever it is
&gt; that &quot;sync&quot; means here.

It&apos;s meant to convey that the selection is the result of syncing up with an assistive app. I&apos;ll change it to isSynchronizing.

&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:260
&gt; &gt; +        { }
&gt; 
&gt; WebKit coding style is to put these on successive lines once the thing is
&gt; “vertical” like this and only do it on one line if the whole function is on
&gt; one line.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:265
&gt; &gt; +            , sync(false)
&gt; 
&gt; This default should be dealt with when the member is declared:
&gt; 
&gt;     bool sync { false };
&gt; 
&gt; Then you don’t need to repeat it in each constructor.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:270
&gt; &gt; +            , selection(AXTextSelection())
&gt; 
&gt; I think you can write this as:
&gt; 
&gt;     , selection()
&gt; 
&gt; And get the same result. The AXTextSelection() part isn’t needed.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:317
&gt; &gt; +    inline AXTextChange textChangeForEditType(AXTextEditType type)
&gt; 
&gt; The “inline” here is not needed and has no effect.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:322
&gt; &gt; +            return AXObjectCache::AXTextDeleted;
&gt; 
&gt; The AXObjectCache:: prefix here is not needed since this is inside an
&gt; AXObjectCache member function.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:327
&gt; &gt; +            return AXObjectCache::AXTextInserted;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:329
&gt; &gt; +        default:
&gt; 
&gt; The best practice is to leave the default case out of this switch statement
&gt; so that the compiler will warn if we forget to include any of the enum
&gt; cases. Since all the cases are returning, we can still ASSERT_NOT_REACHED
&gt; for a bad value that happens to occur runtime; the code for that goes after
&gt; the switch statement outside of it.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:331
&gt; &gt; +            return AXObjectCache::AXTextInserted;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.h:446
&gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; +inline void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject*, AXTextStateChangeIntent, const VisibleSelection&amp;) { }
&gt; &gt; +inline void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject*, AXTextEditType, const String&amp;, const VisiblePosition&amp;) { }
&gt; &gt; +inline void AXObjectCache::postTextReplacementPlatformNotification(AccessibilityObject*, AXTextEditType, const String&amp;, AXTextEditType, const String&amp;, const VisiblePosition&amp;) { }
&gt; &gt; +#else
&gt; &gt;  inline void AXObjectCache::nodeTextChangePlatformNotification(AccessibilityObject*, AXTextChange, unsigned, const String&amp;) { }
&gt; &gt; +#endif
&gt; 
&gt; It’s better to not mix the conditional code up with the unconditional.
&gt; Please put this in a separate paragraph after the rest.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:555
&gt; &gt; +AccessibilityObject* AccessibilityNodeObject::passwordFieldOrContainingPasswordField() const
&gt; 
&gt; Why does this function need to be const?
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:567
&gt; &gt; +    if (Element* element = node-&gt;shadowHost()) {
&gt; &gt; +        if (is&lt;HTMLInputElement&gt;(*element)) {
&gt; 
&gt; Another way to write this without the nesting is:
&gt; 
&gt;     Element* element = node-&gt;shadowHost();
&gt;     if (is&lt;HTMLInputElement&gt;(element)) {
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:568
&gt; &gt; +            if (AXObjectCache *cache = axObjectCache())
&gt; 
&gt; Incorrect formatting of the AXObjectCache* here.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:2666
&gt; &gt; +    HTMLInputElement* inputElement = nullptr;
&gt; &gt; +    if (Element* element = node-&gt;shadowHost()) {
&gt; &gt; +        if (is&lt;HTMLInputElement&gt;(*element))
&gt; &gt; +            inputElement = downcast&lt;HTMLInputElement&gt;(element);
&gt; &gt; +    }
&gt; &gt; +    if (!inputElement)
&gt; &gt; +        return false;
&gt; &gt; +    
&gt; &gt; +    return inputElement-&gt;isPasswordField();
&gt; 
&gt; Here’s how I would write this:
&gt; 
&gt;     Element* element = node-&gt;shadowHost();
&gt;     return is&lt;HTMLInputElement&gt;(element) &amp;&amp;
&gt; downcast&lt;HTMLInputElement&gt;(*element).isPasswordField();
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1500
&gt; &gt; +    Position pos1 = Position(node, range.start, Position::PositionIsOffsetInAnchor);
&gt; &gt; +    Position pos2 = Position(node, range.start + range.length, Position::PositionIsOffsetInAnchor);
&gt; 
&gt; We try to avoid abbreviations and names such as &quot;pos1&quot; and &quot;pos2&quot;. How about
&gt; &quot;start&quot; and &quot;end&quot; or &quot;startPosition&quot; and &quot;endPosition&quot; or if you much prefer
&gt; numbers, &quot;position1&quot; and &quot;position2&quot;?
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1501
&gt; &gt; +    VisibleSelection visibleSelection = VisibleSelection(pos1, pos2, DOWNSTREAM);
&gt; 
&gt; I would write:
&gt; 
&gt;     VisibleSelection newSelection(start, end, DOWNSTREAM);
&gt; 
&gt; I don’t think he word “visible” in the variable name is helpful, and I think
&gt; it’s unnecessarily wordy to write:
&gt; 
&gt;     VisibleSelection x = VisibleSelection(...);
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:203
&gt; &gt; +void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject* obj, AXTextStateChangeIntent intent, const VisibleSelection&amp; selection)
&gt; 
&gt; Please don’t name a local variable “obj”.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:236
&gt; &gt; +        case AXTextStateChangeTypeEdit:
&gt; &gt; +            break;
&gt; &gt; +        default:
&gt; &gt; +            break;
&gt; 
&gt; I don’t understand why you have a case here for both
&gt; AXTextStateChangeTypeEdit and default. I suggest omitting the default if we
&gt; are covering all the cases, or omitting AXTextStateChangeTypeEdit if we are
&gt; not covering all the cases.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:250
&gt; &gt; +    // Used by DRT to know when notifications are posted.
&gt; 
&gt; These are not good comments. First of all, it’s not appropriate for us to
&gt; put code into WebKit just for DumpRenderTree. Second of all, the tool won’t
&gt; necessarily always be named DumpRenderTree, which is kind of a crazy name,
&gt; and the abbreviation DRT will be really mysterious in the future. Finally,
&gt; the comment doesn’t really explain this sufficiently. I’m assuming the issue
&gt; is that it’s too hard for us to hook our testing tool into the real
&gt; accessibility notification machinery so we made a second one just for
&gt; testing. I’m not sure that strategy is a good one.
&gt; 
&gt; I suggest we make a helper function that does both
&gt; NSAccessibilityPostNotificationWithUserInfo and calls the wrapper. That
&gt; helper function could have a longer comment that explained more clearly what
&gt; this is, without the DRT abbreviation. Generally speaking the comment should
&gt; explain in a slightly more abstract way what this is for, rather than
&gt; specifically saying there is exactly one client, DRT, using it. But also
&gt; it’s critical not to repeat the code and the comment over and over again.
&gt; 
&gt; I’d go further and say that it would generally be good to factor this to
&gt; share more of the code for clarity. There’s a lot of copied and pasted code
&gt; here.

You&apos;re right about it not being ideal. We use WebKitTestRunner by default now, so the reference to DRT is out of date. I&apos;ll fix it for the new logic and file a bug for to make other instances consistent.

&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:254
&gt; &gt; +    // Used by DRT to know when notifications are posted.
&gt; 
&gt; Please use shared function as mentioned above.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:260
&gt; &gt; +static NSDictionary *textReplacementChangeDictionary(AccessibilityObject* obj, AXObjectCache::AXTextEditType type, const String&amp; string, const VisiblePosition&amp; position)
&gt; 
&gt; Please don’t use the abbreviation &quot;obj&quot;. I believe the WebKit coding style
&gt; guidelines documents explains the rationale for this.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:268
&gt; &gt; +    static const NSUInteger truncationLength = 1000;
&gt; 
&gt; Part of the value of a constant in a case like this is to explain where the
&gt; number came from. Please put in a why comment explaining the choice of 1000
&gt; UTF-16 code units as a reasonable limit.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:273
&gt; &gt; +    if (length &gt; 0)
&gt; 
&gt; WebKit coding style says to use &quot;if (length)&quot; here. But also, this function
&gt; returned nil earlier if length was zero, so this if should be omitted.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:282
&gt; &gt; +void AXObjectCache::postTextStateChangePlatformNotification(AccessibilityObject* obj, AXTextEditType type, const String&amp; text, const VisiblePosition&amp; position)
&gt; 
&gt; Please don’t use the abbreviation &quot;obj&quot;. I believe the WebKit coding style
&gt; guidelines documents explains the rationale for this.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:305
&gt; &gt; +    // Used by DRT to know when notifications are posted.
&gt; 
&gt; Please use shared function as mentioned above.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:309
&gt; &gt; +    // Used by DRT to know when notifications are posted.
&gt; 
&gt; Please use shared function as mentioned above.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:340
&gt; &gt; +    // Used by DRT to know when notifications are posted.
&gt; 
&gt; Please use shared function as mentioned above.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:344
&gt; &gt; +    // Used by DRT to know when notifications are posted.
&gt; 
&gt; Please use shared function as mentioned above.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:398
&gt; &gt; +    for (NSUInteger idx = 0; idx &lt; [mutableArray count]; idx++) {
&gt; 
&gt; Please don’t use the abbreviation &quot;idx&quot;. If you don’t want to use the
&gt; customary “i”, which we use almost everywhere in WebKit code, then please
&gt; use a word “index”. The in-between “idx” isn’t right for our coding style.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:405
&gt; &gt; +            [mutableArray removeObjectAtIndex:idx];
&gt; 
&gt; This won’t work. We will end up skipping one of the element in the array,
&gt; because we’ll remove the object at this index, but we will still move on to
&gt; the next index. So if index 0 is neither a string nor a number, we’ll next
&gt; move on to the object that was originally at index 2 and never process the
&gt; object that was originally at index 1.

Derp. Will make the increment conditional.

&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:417
&gt; &gt; +            mutableDictionary[key] = dictionaryRemovingNonJSONTypes(value);
&gt; 
&gt; I don’t think NSDictionary allows modification of a dictionary while it is
&gt; being enumerated, even if it’s just the value being modified.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:419
&gt; &gt; +            mutableDictionary[key] = arrayRemovingNonJSONTypes(value);
&gt; 
&gt; I don’t think NSDictionary allows modification of a dictionary while it is
&gt; being enumerated, even if it’s just the value being modified.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:421
&gt; &gt; +            [mutableDictionary removeObjectForKey:key];
&gt; 
&gt; NSDictionary definitely doesn’t support &quot;for in&quot; iteration while the
&gt; dictionary is being enumerated, so this code won’t work. How did you test it?

I&apos;m enumerating the immutable dictionary and mutating the mutable dictionary. I tested it with the attached layout tests and manual testing with no issues.

&gt; 
&gt; &gt; Source/WebCore/editing/AppendNodeCommand.cpp:59
&gt; &gt; +    const String text = node-&gt;nodeValue();
&gt; 
&gt; The const here doesn’t add much. Please don’t declare specific local
&gt; variables const unless there is a good reason to single them out. Almost all
&gt; local variables could be marked &quot;const&quot;.
&gt; 
&gt; &gt; Source/WebCore/editing/CompositeEditCommand.cpp:171
&gt; &gt; +    if (m_commands.size())
&gt; &gt; +        return m_commands[m_commands.size()-1]-&gt;unapplyIntent();
&gt; 
&gt; WebKit coding style requires spaces around the &quot;-&quot; operator. But also,
&gt; here’s how you’d write this:
&gt; 
&gt;     if (!m_commands.isEmpty())
&gt;         return m_commands.last()-&gt;unapplyIntent();
&gt; 
&gt; &gt; Source/WebCore/editing/CompositeEditCommand.h:110
&gt; &gt; +    virtual Ref&lt;EditCommand&gt; deleteFromTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, unsigned);
&gt; 
&gt; Why is this function virtual? The two arguments need names. The type
&gt; “unsigned” alone is not good.
&gt; 
&gt; Argument types for new functions should not be PassRefPtr even though legacy
&gt; ones use that type. Instead if we are handing off ownership they should be
&gt; RefPtr&amp;&amp; or maybe even Ref&amp;&amp; if they must be non-null. If we are not handing
&gt; off ownership they should be Node* or, even better, Node&amp;.
&gt; 
&gt; insertNodeBeforeCommand is not a good name for a function that creates a
&gt; command. It should have the word “create” in its name. When we name a
&gt; function with just a noun, then it implies something different -- returning
&gt; something owned by this object -- not creating something.
&gt; 
&gt; &gt; Source/WebCore/editing/CompositeEditCommand.h:117
&gt; &gt; +    virtual Ref&lt;EditCommand&gt; insertNodeBeforeCommand(PassRefPtr&lt;Node&gt;, PassRefPtr&lt;Node&gt;, ShouldAssumeContentIsAlwaysEditable);
&gt; 
&gt; Same comments.
&gt; 
&gt; &gt; Source/WebCore/editing/CompositeEditCommand.h:121
&gt; &gt; +    virtual Ref&lt;EditCommand&gt; insertTextIntoNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, const String&amp;);
&gt; 
&gt; Same comments.
&gt; 
&gt; &gt; Source/WebCore/editing/CompositeEditCommand.h:140
&gt; &gt; +    virtual Ref&lt;DeleteFromTextNodeCommand&gt; replaceDeleteFromTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, unsigned);
&gt; 
&gt; Same comments.
&gt; 
&gt; &gt; Source/WebCore/editing/CompositeEditCommand.h:141
&gt; &gt; +    virtual Ref&lt;EditCommand&gt; replaceInsertIntoTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, const String&amp;, const String&amp;);
&gt; 
&gt; Same comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086895</commentid>
    <comment_count>87</comment_count>
      <attachid>251187</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-20 13:59:26 -0700</bug_when>
    <thetext>Created attachment 251187
Update based on review

Fixed errors based on review.
Removed several EditCommand subclasses.
Added storage for m_applyEditType to EditCommand, made unapplyEditType a calculated property, got rid of applyIntent() and unapplyIntent() in favor of building the intent where it&apos;s handed off to selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086905</commentid>
    <comment_count>88</comment_count>
      <attachid>251190</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-20 14:28:46 -0700</bug_when>
    <thetext>Created attachment 251190
Update based on review (fixed iOS/GTK build)

Fixed errors based on review.
Removed several EditCommand subclasses.
Added storage for m_applyEditType to EditCommand, made unapplyEditType a calculated property, got rid of applyIntent() and unapplyIntent() in favor of building the intent where it&apos;s handed off to selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086912</commentid>
    <comment_count>89</comment_count>
      <attachid>251191</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-20 14:39:05 -0700</bug_when>
    <thetext>Created attachment 251191
Update based on review (fixed iOS/GTK build take 2)

Fixed errors based on review.
Removed several EditCommand subclasses.
Added storage for m_applyEditType to EditCommand, made unapplyEditType a calculated property, got rid of applyIntent() and unapplyIntent() in favor of building the intent where it&apos;s handed off to selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086923</commentid>
    <comment_count>90</comment_count>
      <attachid>251192</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-20 15:18:31 -0700</bug_when>
    <thetext>Created attachment 251192
Update based on review (fixed iOS/GTK build take 3)

Fixed errors based on review.
Removed several EditCommand subclasses.
Added storage for m_applyEditType to EditCommand, made unapplyEditType a calculated property, got rid of applyIntent() and unapplyIntent() in favor of building the intent where it&apos;s handed off to selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086946</commentid>
    <comment_count>91</comment_count>
      <attachid>251203</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-20 16:26:32 -0700</bug_when>
    <thetext>Created attachment 251203
Update from review

Remove a redundant length check missed in earlier updates from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087064</commentid>
    <comment_count>92</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-21 09:16:56 -0700</bug_when>
    <thetext>(In reply to comment #86)
&gt; &gt; NSDictionary definitely doesn’t support &quot;for in&quot; iteration while the
&gt; &gt; dictionary is being enumerated, so this code won’t work. How did you test it?
&gt; 
&gt; I&apos;m enumerating the immutable dictionary and mutating the mutable
&gt; dictionary. I tested it with the attached layout tests and manual testing
&gt; with no issues.

This points out a major problem. We have code to remove objects of the wrong types from these arrays and dictionaries, but we didn’t create any test cases that exercise that code. That must be fixed. We need to figure out how to test that code. We must not just check it in without ever trying it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087071</commentid>
    <comment_count>93</comment_count>
      <attachid>251203</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-21 09:39:27 -0700</bug_when>
    <thetext>Comment on attachment 251203
Update from review

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

I started reviewing but I didn’t get to the end yet.

Generally this patch is messing up the editing machinery with way too much explicit accessibility-specific code and should be done more elegantly if possible.

&gt; Source/WebCore/ChangeLog:210
&gt; +2015-04-17  Doug Russell  &lt;d_russell@apple.com&gt;
&gt; +
&gt; +        AX: richer text change notifications
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=142719
&gt; +
&gt; +        Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields.
&gt; +
&gt; +2015-04-14  Doug Russell  &lt;d_russell@apple.com&gt;
&gt; +
&gt; +        AX: richer text change notifications
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=142719
&gt; +
&gt; +        Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes.
&gt; +
&gt; +2015-04-14  Doug Russell  &lt;d_russell@apple.com&gt;
&gt; +
&gt; +        AX: richer text change notifications
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=142719
&gt; +
&gt; +        New EditCommand subclasses to give the context that accessibility needs to post more detailed value and selection change notifications. This commit is all infrastructure and doesn&apos;t contain any accessibility specific changes.
&gt; +

Need to remove these extra change log entries.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1319
&gt; +    if (!rootObject)
&gt; +        return nullptr;
&gt; +    if (rootObject-&gt;isAccessibilityScrollView())
&gt; +        return downcast&lt;AccessibilityScrollView&gt;(*rootObject).webAreaObject();
&gt; +    return nullptr;

Slightly nicer to stick 100% with the early return style so the real code is on the left, not nested. I’d write it like this:

    if (!rootObject || !rootObject-&gt;isAccessibiltyScrollView())
        return nullptr;
    return downcast&lt;AccessibilityScrollView&gt;(*rootObject).webAreaObject();

&gt; Source/WebCore/accessibility/AXObjectCache.h:199
&gt; +    // Simple text value change

I don’t think this comment adds much.

&gt; Source/WebCore/accessibility/AXObjectCache.h:201
&gt; +    // Compound text value change

I don’t think this comment adds much.

&gt; Source/WebCore/accessibility/AXObjectCache.h:203
&gt; +    // Selection change

I don’t think this comment adds much.

&gt; Source/WebCore/accessibility/AXObjectCache.h:224
&gt; +#if PLATFORM(COCOA) &amp;&amp; !PLATFORM(IOS)

Should instead be:

    #if PLATFORM(MAC)

&gt; Source/WebCore/accessibility/AXObjectCache.h:257
&gt; +    AXTextChange textChangeForEditType(AXTextEditType type)
&gt; +    {
&gt; +        switch (type) {
&gt; +        case AXTextEditTypeCut:
&gt; +        case AXTextEditTypeDelete:
&gt; +            return AXTextDeleted;
&gt; +        case AXTextEditTypeInsert:
&gt; +        case AXTextEditTypeDictation:
&gt; +        case AXTextEditTypeTyping:
&gt; +        case AXTextEditTypePaste:
&gt; +            return AXTextInserted;
&gt; +        default:
&gt; +            break;
&gt; +        }
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return AXTextInserted;
&gt; +    }

Why does this function have to be here in the header? I suggest declaring the function here, but defining it in the cpp file. Or we could define it later in this file. Putting the entire definition in the class makes the class unnecessarily hard to read. Also, this should be a static member function, not a member function. The &quot;default: break;” code should be omitted. Including a default case causes the compiler to turn off its checking that the switch statement covers all enum values.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:563
&gt; +            return const_cast&lt;AccessibilityNodeObject*&gt;(this);

No need for this const_cast.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:567
&gt; +    if (!is&lt;HTMLInputElement&gt;(*element))

Need to remove the * here, in case node-&gt;shadowHost() is null. The is function will handle null, but only if passed a pointer rather than a reference.

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:571
&gt; +    if (AXObjectCache* cache = axObjectCache())
&gt; +        return cache-&gt;getOrCreate(element);

Missing a null check for element here, I think.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:92
&gt; +static NSUInteger const NSAccessibilityValueChangeTruncationLength = 1000;

We normally put the &quot;const&quot; before the type in declarations like this one.

It’s not appropriate to define something here with an NS prefix; that’s reserved for AppKit, and WebKit shouldn’t use that prefix for its own internal constants.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:111
&gt; +void AXObjectCache::setShouldRepostNotificationsForTests(bool value)

Missing blank lines between functions here.

&gt; Source/WebCore/editing/CompositeEditCommand.cpp:332
&gt; +static void setCommandApplyEditTypeForEditingAction(SimpleEditCommand *command, EditAction editingAction)

Incorrect formatting of SimpleEditCommand* here.

&gt; Source/WebCore/editing/CutDeleteSelectionCommand.h:43
&gt; +    virtual EditAction editingAction() const override;

Do we really need an entire new DeleteSelectionCommand subclass just to customize the editing action? Instead we should just have a new create function in DeleteSelectionCommand and have it store a flag to record the fact that it’s for a cut.

&gt; Source/WebCore/editing/DeleteFromTextNodeCommand.h:29
&gt; +#include &quot;AXObjectCache.h&quot;

Doesn’t make sense to add this include. Why is it needed?

&gt; Source/WebCore/editing/DeleteFromTextNodeCommand.h:43
&gt; +    String&amp; deletedText();

This seems wrong. We don’t want to expose the deleted text as a non-const reference. We don’t want to allow someone to change this underneath us.

&gt; Source/WebCore/editing/DeleteFromTextNodeCommand.h:49
&gt; +

Please don’t add this blank line here.

&gt; Source/WebCore/editing/DictationInsertTextCommand.h:43
&gt; +    virtual EditAction editingAction() const override;

Same comment. Don’t create an entire new derived class just to customize the editing action. Just add a new create function and a data member instead.

&gt; Source/WebCore/editing/EditCommand.h:29
&gt; +#include &quot;AXObjectCache.h&quot;

Can we instead include only the header that defines the types, not the entire AXObjectCache.h header?

&gt; Source/WebCore/editing/Editor.cpp:386
&gt; +    if (editingAction == EditActionCut)
&gt; +        applyCommand(CutDeleteSelectionCommand::create(document(), smartDelete));
&gt; +    else
&gt; +        applyCommand(DeleteSelectionCommand::create(document(), smartDelete));

Clearly we should just pass in the editingAction here instead of having two completely separate classes!

&gt; Source/WebCore/editing/Editor.cpp:1008
&gt; +    changeSelectionAfterCommand(newSelection, options, AXTextStateChangeIntent(cmd-&gt;applyEditType()));

Should just be able to pass cmd-&gt;applyEditType() here. Should not need an explicit conversion to AXTextStateChangeIntent, because the constructor is not marked explicit.

&gt; Source/WebCore/editing/Editor.cpp:1039
&gt; +    changeSelectionAfterCommand(newSelection, FrameSelection::defaultSetSelectionOptions(), AXTextStateChangeIntent(cmd-&gt;unapplyEditType()));

Should just be able to pass cmd-&gt;applyEditType() here. Should not need an explicit conversion to AXTextStateChangeIntent, because the constructor is not marked explicit.

&gt; Source/WebCore/editing/Editor.h:177
&gt; +    WEBCORE_EXPORT void deleteSelectionWithSmartDelete(bool smartDelete, EditAction editingAction = EditActionDelete);

Should omit the argument name editingAction here.

&gt; Source/WebCore/editing/EditorCommand.cpp:196
&gt; +    command-&gt;setApplyEditType(AXTextEditTypeInsert);

Should add this as a constructor argument, not require a separate set function after the fact for this.

&gt; Source/WebCore/editing/FrameSelection.cpp:261
&gt; +    if (AXObjectCache::accessibilityEnabled()) {
&gt; +        if (newSelection.isCaret())

Should just use &amp;&amp; here.

&gt; Source/WebCore/editing/FrameSelection.cpp:266
&gt; +        else
&gt; +            intent = AXTextStateChangeIntent();
&gt; +    } else
&gt; +        intent = AXTextStateChangeIntent();

This code isn’t needed. The variable intent has already been initialized and there’s no need to set it again.

&gt; Source/WebCore/editing/FrameSelection.cpp:1046
&gt; +        if (isRange()) {
&gt; +            if (directionOfSelection() == RTL)
&gt; +                flip = true;
&gt; +        }

Reads better as:

    flip = isRange() &amp;&amp; directionOfSelection() == RTL;

&gt; Source/WebCore/editing/FrameSelection.h:136
&gt; +    static inline AXTextStateChangeIntent defaultSetSelectionIntent()

The inline keyword here is not needed and not helpful. Also seems overkill to write a function for this since the default is the default value for the class.

&gt; Source/WebCore/editing/InsertIntoTextNodeCommand.h:29
&gt; +#include &quot;AXObjectCache.h&quot;

Should not add this include.

&gt; Source/WebCore/editing/InsertIntoTextNodeCommand.h:43
&gt; +    String&amp; insertedText();

Same problem as above. No reason to expose a non-const reference to internal state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087959</commentid>
    <comment_count>94</comment_count>
      <attachid>251475</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 13:17:11 -0700</bug_when>
    <thetext>Created attachment 251475
Update from review

* General cleanup based on review
* Removed unneeded EditCommand subclasses
* Made editingAction() a constructor argument on EditCommand
* Switched applyEditType and unapplyEditType to calculated properties based on editingAction()
* Updated DumpRenderTree and WebKitTestRunner to explicitly remove observers instead of relying on dealloc to do it (fixes assertions that fail in debug builds)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087983</commentid>
    <comment_count>95</comment_count>
      <attachid>251485</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 13:56:21 -0700</bug_when>
    <thetext>Created attachment 251485
Update from review

Fix ATK build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087987</commentid>
    <comment_count>96</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-23 13:59:30 -0700</bug_when>
    <thetext>Attachment 251485 did not pass style-queue:


ERROR: Source/WebCore/accessibility/AXObjectCache.h:360:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 78 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>1087989</commentid>
    <comment_count>97</comment_count>
      <attachid>251487</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 14:05:38 -0700</bug_when>
    <thetext>Created attachment 251487
Update from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087991</commentid>
    <comment_count>98</comment_count>
      <attachid>251488</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 14:09:06 -0700</bug_when>
    <thetext>Created attachment 251488
Update from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088004</commentid>
    <comment_count>99</comment_count>
      <attachid>251491</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 14:30:57 -0700</bug_when>
    <thetext>Created attachment 251491
Update from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088014</commentid>
    <comment_count>100</comment_count>
      <attachid>251495</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 14:49:44 -0700</bug_when>
    <thetext>Created attachment 251495
Update from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088070</commentid>
    <comment_count>101</comment_count>
      <attachid>251507</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 15:59:45 -0700</bug_when>
    <thetext>Created attachment 251507
Update from review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088119</commentid>
    <comment_count>102</comment_count>
      <attachid>251507</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-23 18:08:41 -0700</bug_when>
    <thetext>Comment on attachment 251507
Update from review

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

&gt; Source/WebCore/ChangeLog:2238
&gt; +2015-04-14  Doug Russell  &lt;d_russell@apple.com&gt;
&gt; +
&gt; +        AX: richer text change notifications
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=142719
&gt; +
&gt; +        Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes.
&gt; +
&gt; +2015-04-14  Doug Russell  &lt;d_russell@apple.com&gt;
&gt; +
&gt; +        AX: richer text change notifications
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=142719
&gt; +
&gt; +        New EditCommand subclasses to give the context that accessibility needs to post more detailed value and selection change notifications. This commit is all infrastructure and doesn&apos;t contain any accessibility specific changes.
&gt; +&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;rdar://problem/20169058&gt; AX: richer text change notifications (142719)
&gt; +

Extra change log entry here due to merging problems I assume.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:339
&gt; +    NSAccessibilityPostNotificationWithUserInfo(webArea-&gt;wrapper(), NSAccessibilityValueChangedNotification, userInfo);
&gt; +    // Used by DRT to know when notifications are posted.
&gt; +    [webArea-&gt;wrapper() accessibilityPostedNotification:NSAccessibilityValueChangedNotification userInfo:userInfo];

Use AXPostNotificationWithUserInfo.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:343
&gt; +    NSAccessibilityPostNotificationWithUserInfo(object-&gt;wrapper(), NSAccessibilityValueChangedNotification, userInfo);
&gt; +    // Used by DRT to know when notifications are posted.
&gt; +    [object-&gt;wrapper() accessibilityPostedNotification:NSAccessibilityValueChangedNotification userInfo:userInfo];

Use AXPostNotificationWithUserInfo.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:386
&gt; +#if PLATFORM(COCOA) &amp;&amp; !PLATFORM(IOS)

#if PLATFORM(MAC)

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:400
&gt; +    NSMutableArray *mutableArray = [array mutableCopy];

A shame that this function makes a mutable copy of the array in the almost 100% common case where it does contain only JSON types.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:419
&gt; +    NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];

A shame that this function makes a mutable copy of the dictionary in the almost 100% common case where it does contain only JSON types.

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h:36
&gt; +- (id)textMarkerRangeFromVisiblePositions:(WebCore::VisiblePosition)startPosition endPosition:(WebCore::VisiblePosition)endPosition;

Shouldn’t the arguments be const VisiblePosition&amp; like in the method just below?

&gt; Source/WebCore/editing/CompositeEditCommand.cpp:179
&gt; +    default:
&gt; +        break;

Normally we omit the default so we get a warning when we add a new enum value and don’t yet handle it in this switch statement.

&gt; Source/WebCore/editing/CompositeEditCommand.h:36
&gt; +class DeleteFromTextNodeCommand;

Why is this needed? I don’t see it used below.

&gt; Source/WebCore/editing/CompositeEditCommand.h:63
&gt; +    AXTextEditType unapplyEditType();

Should be a const member function.

&gt; Source/WebCore/editing/DeleteFromTextNodeCommand.cpp:53
&gt; +const String&amp; DeleteFromTextNodeCommand::deletedText()
&gt; +{
&gt; +    return m_text;
&gt; +}

Should probably be inlined in the header. Just add &quot;inline&quot; and put it at the bottom of the header.

&gt; Source/WebCore/editing/EditCommand.cpp:133
&gt; +    default:
&gt; +        break;

Same comment about default as above.

&gt; Source/WebCore/editing/FrameSelection.cpp:1035
&gt; +AXTextStateChangeIntent inline FrameSelection::TextSelectionIntent(EAlteration alter, SelectionDirection direction, TextGranularity granularity)

Why inline? That doesn’t seem like a good idea. Also, we normally put inline to the left of the type.

&gt; Source/WebCore/editing/InsertIntoTextNodeCommand.cpp:56
&gt; +const String&amp; InsertIntoTextNodeCommand::insertedText()
&gt; +{
&gt; +    return m_text;
&gt; +}

Inline in header?

&gt; Source/WebCore/editing/InsertIntoTextNodeCommand.h:44
&gt; +    const String&amp; insertedText();
&gt; +protected:
&gt; +    InsertIntoTextNodeCommand(PassRefPtr&lt;Text&gt; node, unsigned offset, const String&amp; text, EditAction editingAction);

Missing blank line before protected. Also, should just make this private again. I believe the reason to make it protected is obsolete.

&gt; Source/WebCore/editing/ReplaceDeleteFromTextNodeCommand.h:33
&gt; +class Text;

Not needed.

&gt; Source/WebCore/editing/ReplaceDeleteFromTextNodeCommand.h:35
&gt; +class ReplaceDeleteFromTextNodeCommand : public DeleteFromTextNodeCommand {

Should mark this class final.

&gt; Source/WebCore/editing/ReplaceDeleteFromTextNodeCommand.h:37
&gt; +    static Ref&lt;ReplaceDeleteFromTextNodeCommand&gt; create(PassRefPtr&lt;Text&gt; node, unsigned offset, unsigned count)

New code should not use PassRefPtr. See &lt;https://www.webkit.org/coding/RefPtr.html&gt;.

&gt; Source/WebCore/editing/ReplaceDeleteFromTextNodeCommand.h:43
&gt; +    ReplaceDeleteFromTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, unsigned);

New code should not use PassRefPtr. See &lt;https://www.webkit.org/coding/RefPtr.html&gt;.

This should be private, not protected.

&gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.h:33
&gt; +class Text;

Not needed.

&gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.h:35
&gt; +class ReplaceInsertIntoTextNodeCommand : public InsertIntoTextNodeCommand {

Should mark this class final.

&gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.h:37
&gt; +    static Ref&lt;ReplaceInsertIntoTextNodeCommand&gt; create(PassRefPtr&lt;Text&gt; node, unsigned offset, const String&amp; text, const String&amp; deletedText, EditAction editingAction)

New code should not use PassRefPtr. See &lt;https://www.webkit.org/coding/RefPtr.html&gt;.

&gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.h:43
&gt; +    ReplaceInsertIntoTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, const String&amp;, const String&amp;, EditAction);

New code should not use PassRefPtr. See &lt;https://www.webkit.org/coding/RefPtr.html&gt;.

This should be private, not protected.

&gt; Source/WebCore/editing/ReplaceSelectionCommand.h:124
&gt; +    AXTextEditType m_applyEditType;

This looks uninitialized and unused. Please omit it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088146</commentid>
    <comment_count>103</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 19:16:26 -0700</bug_when>
    <thetext>(In reply to comment #102)
&gt; Comment on attachment 251507 [details]
&gt; Update from review
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=251507&amp;action=review
&gt; 
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:400
&gt; &gt; +    NSMutableArray *mutableArray = [array mutableCopy];
&gt; 
&gt; A shame that this function makes a mutable copy of the array in the almost
&gt; 100% common case where it does contain only JSON types.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:419
&gt; &gt; +    NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];
&gt; 
&gt; A shame that this function makes a mutable copy of the dictionary in the
&gt; almost 100% common case where it does contain only JSON types.
&gt; 

Currrently the only methods that pass a non nil userInfo always include non JSON types. We could definitely make the copy conditional if that changes.

&gt; 
&gt; &gt; Source/WebCore/editing/CompositeEditCommand.cpp:179
&gt; &gt; +    default:
&gt; &gt; +        break;
&gt; 
&gt; Normally we omit the default so we get a warning when we add a new enum
&gt; value and don’t yet handle it in this switch statement.
&gt; 
&gt; &gt; Source/WebCore/editing/EditCommand.cpp:133
&gt; &gt; +    default:
&gt; &gt; +        break;
&gt; 
&gt; Same comment about default as above.

There are a lot of EditActions that aren&apos;t accessibility relevant that the default covers.

&gt; &gt; Source/WebCore/editing/InsertIntoTextNodeCommand.h:44
&gt; &gt; +    const String&amp; insertedText();
&gt; &gt; +protected:
&gt; &gt; +    InsertIntoTextNodeCommand(PassRefPtr&lt;Text&gt; node, unsigned offset, const String&amp; text, EditAction editingAction);
&gt; 
&gt; Missing blank line before protected. Also, should just make this private
&gt; again. I believe the reason to make it protected is obsolete.

This needs to be protected for ReplaceInsertIntoTextNodeCommand</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088153</commentid>
    <comment_count>104</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 19:26:30 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.h:37
&gt; &gt; +    static Ref&lt;ReplaceInsertIntoTextNodeCommand&gt; create(PassRefPtr&lt;Text&gt; node, unsigned offset, const String&amp; text, const String&amp; deletedText, EditAction editingAction)
&gt; 
&gt; New code should not use PassRefPtr. See
&gt; &lt;https://www.webkit.org/coding/RefPtr.html&gt;.
&gt; 
&gt; &gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.h:43
&gt; &gt; +    ReplaceInsertIntoTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, const String&amp;, const String&amp;, EditAction);
&gt; 
&gt; New code should not use PassRefPtr. See
&gt; &lt;https://www.webkit.org/coding/RefPtr.html&gt;.

Switching these methods to RefPtr results in style errors:
ERROR: Source/WebCore/editing/ReplaceDeleteFromTextNodeCommand.cpp:33:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]

What&apos;s the appropriate type here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088155</commentid>
    <comment_count>105</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 19:31:29 -0700</bug_when>
    <thetext>(In reply to comment #104)
&gt; &gt; &gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.h:37
&gt; &gt; &gt; +    static Ref&lt;ReplaceInsertIntoTextNodeCommand&gt; create(PassRefPtr&lt;Text&gt; node, unsigned offset, const String&amp; text, const String&amp; deletedText, EditAction editingAction)
&gt; &gt; 
&gt; &gt; New code should not use PassRefPtr. See
&gt; &gt; &lt;https://www.webkit.org/coding/RefPtr.html&gt;.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/ReplaceInsertIntoTextNodeCommand.h:43
&gt; &gt; &gt; +    ReplaceInsertIntoTextNodeCommand(PassRefPtr&lt;Text&gt;, unsigned, const String&amp;, const String&amp;, EditAction);
&gt; &gt; 
&gt; &gt; New code should not use PassRefPtr. See
&gt; &gt; &lt;https://www.webkit.org/coding/RefPtr.html&gt;.
&gt; 
&gt; Switching these methods to RefPtr results in style errors:
&gt; ERROR: Source/WebCore/editing/ReplaceDeleteFromTextNodeCommand.cpp:33:  The
&gt; parameter type should use PassRefPtr instead of RefPtr. 
&gt; [readability/pass_ptr] [5]
&gt; 
&gt; What&apos;s the appropriate type here?

Nevermind, didn&apos;t have a &amp;&amp;

&gt; Function arguments
&gt;  If a function does not take ownership of an object, the argument should be a raw reference or raw pointer.
&gt;  If a function does take ownership of an object, the argument should be a Ref&amp;&amp; or a RefPtr&amp;&amp;. This includes many setter functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088179</commentid>
    <comment_count>106</comment_count>
      <attachid>251536</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 21:56:16 -0700</bug_when>
    <thetext>Created attachment 251536
Update from review

* General cleanup based on review
* PassRefPtr to RefPtr&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088189</commentid>
    <comment_count>107</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-23 22:51:15 -0700</bug_when>
    <thetext>Windows build is failing with this error:

unresolved external symbol &quot;protected: static enum WebCore::AXTextChange __cdecl WebCore::AXObjectCache::textChangeForEditType(enum WebCore::AXTextEditType)&quot;

That’s because we didn’t add the function textChangeForEditType to AXObjectCacheWin.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088190</commentid>
    <comment_count>108</comment_count>
      <attachid>251541</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-23 22:58:24 -0700</bug_when>
    <thetext>Created attachment 251541
Fix windows builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088229</commentid>
    <comment_count>109</comment_count>
      <attachid>251541</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-24 09:03:50 -0700</bug_when>
    <thetext>Comment on attachment 251541
Fix windows builds

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

r=me; seems good as is, comments are about future clean-up and refinement.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:759
&gt; +    for (const auto&amp; notification : notifications)

Not sure there’s an advantage of const auto&amp; over auto&amp;.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1041
&gt; +    nodeTextChangePlatformNotification(object, textChangeForEditType(type), position.deepEquivalent().deprecatedEditingOffset(), text);

Really sad that we are using the deprecatedEditingOffset here; there must be a more modern way to do this. (Doesn’t need to be fixed this time around I guess.)

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1045
&gt; +void AXObjectCache::postTextReplacementNotification(Node* node, AXTextEditType deletionType, const String&amp; deletedText, AXTextEditType insertionType, const String&amp; insertedText, const VisiblePosition&amp; position)

A shame that there is so much nearly identical boilerplate code between this and postTextStateChangeNotification. Would be nice to reorganize to share a bit more code. (Doesn’t need to be fixed this time around I guess.)

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1082
&gt; +    if (!m_passwordNotificationsToPost.contains(observableObject)) {
&gt; +        m_passwordNotificationsToPost.append(observableObject);

A vector is the wrong data structure if we are enforcing set semantics here. But I suppose the chance that this vector will get long is infinitesimal, so OK.

&gt; Source/WebCore/accessibility/AXObjectCache.h:284
&gt; +    bool enqueuePasswordValueChangeNotification(AccessibilityObject*);
&gt; +
&gt; +    AXTextStateChangeIntent m_textSelectionIntent;

We normally try to keep all the data members together at the end, after all the function members. It might be nice to reorganize this class in that fashion later. The current mix has some appeal because of the way it groups some data and the functions that work with that data, but it makes it a little hard to get the overview of what’s going on in the class.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:307
&gt; +    AccessibilityObject* webArea = rootWebArea();

No need to put this into a local variable since it’s only used once.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:310
&gt; +    [userInfo release];

Should have a blank line before this so it’s not paragraphed with the code just above and more clearly balances the alloc farther above.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:335
&gt; +    AccessibilityObject* webArea = rootWebArea();

No need to put this into a local variable since it’s only used once.

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:338
&gt; +    [userInfo release];

Should have a blank line before this so it’s not paragraphed with the code just above and more clearly balances the alloc farther above.

&gt; Source/WebCore/editing/ReplaceDeleteFromTextNodeCommand.cpp:40
&gt; +void ReplaceDeleteFromTextNodeCommand::notifyAccessibilityForTextChange(Node*, AXTextEditType, const String&amp;, const VisiblePosition&amp;)
&gt; +{
&gt; +}

Why is this function empty? Maybe it should be pure virtual instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088234</commentid>
    <comment_count>110</comment_count>
      <attachid>251541</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-04-24 09:23:45 -0700</bug_when>
    <thetext>Comment on attachment 251541
Fix windows builds

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

&gt; LayoutTests/ChangeLog:8
&gt; +        Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes.

Nit: These lines are kind of long. We usually hard-return at around 80 characters or so since many of our tools don&apos;t do auto-line-wrap.

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:872
&gt; +void AXObjectCache::showIntent(const AXTextStateChangeIntent &amp;intent)

Your using objc syntax here. Should be &quot;const AXTextStateChangeIntent&amp; intent)

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:985
&gt; +void AXObjectCache::setTextSelectionIntent(AXTextStateChangeIntent intent)

Why is this passed by value here, when you pass by reference in the above method? If AXTextStateChangeIntent is non-trivial in size, we should be reference passing it everywhere.

&gt; Source/WebCore/editing/Editor.cpp:2851
&gt; +void Editor::changeSelectionAfterCommand(const VisibleSelection&amp; newSelection, FrameSelection::SetSelectionOptions options, AXTextStateChangeIntent intent)

Seems like AXTextStateChangeIntent should be passed by reference, since it&apos;s an object?

&gt; Source/WebCore/editing/FrameSelection.cpp:331
&gt; +void FrameSelection::setSelection(const VisibleSelection&amp; selection, SetSelectionOptions options, AXTextStateChangeIntent intent, CursorAlignOnScroll align, TextGranularity granularity)

Seems like AXTextStateChangeIntent should be passed as a reference.

&gt; Source/WebCore/editing/FrameSelection.cpp:371
&gt; +void FrameSelection::updateAndRevealSelection(AXTextStateChangeIntent intent)

const AXTextStateChangeIntent&amp; ?

&gt; Source/WebCore/editing/FrameSelection.cpp:1036
&gt; +    AXTextStateChangeIntent intent = AXTextStateChangeIntent();

I think this could just be &quot;AXTextStateChangeIntent intent;&quot;

&gt; Source/WebCore/editing/FrameSelection.h:148
&gt; +    WEBCORE_EXPORT void setSelection(const VisibleSelection&amp;, SetSelectionOptions = defaultSetSelectionOptions(), AXTextStateChangeIntent = AXTextStateChangeIntent(), CursorAlignOnScroll = AlignCursorOnScrollIfNeeded, TextGranularity = CharacterGranularity);

These AXTextStateChangeIntent seem like they should be references.

&gt; Source/WebCore/editing/FrameSelection.h:276
&gt; +    void updateAndRevealSelection(AXTextStateChangeIntent = AXTextStateChangeIntent());

Ditto.

&gt; Source/WebCore/editing/FrameSelection.h:303
&gt; +    void notifyAccessibilityForSelectionChange(AXTextStateChangeIntent = AXTextStateChangeIntent());

Ditto.

&gt; Source/WebCore/editing/FrameSelection.h:305
&gt; +    void notifyAccessibilityForSelectionChange(AXTextSelectionIntent) { }

Ditto.

&gt; Source/WebCore/editing/FrameSelection.h:372
&gt; +inline void FrameSelection::notifyAccessibilityForSelectionChange(AXTextStateChangeIntent)

Ditto.

&gt; Source/WebCore/editing/atk/FrameSelectionAtk.cpp:81
&gt; +void FrameSelection::notifyAccessibilityForSelectionChange(AXTextStateChangeIntent)

const AXTextStateChangeIntent&amp; ?

&gt; Source/WebCore/editing/mac/FrameSelectionMac.mm:50
&gt; +void FrameSelection::notifyAccessibilityForSelectionChange(AXTextStateChangeIntent intent)

const AXTextStateChangeIntent&amp; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088239</commentid>
    <comment_count>111</comment_count>
      <attachid>251541</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-24 09:50:59 -0700</bug_when>
    <thetext>Comment on attachment 251541
Fix windows builds

Clearing flags on attachment: 251541

Committed r183266: &lt;http://trac.webkit.org/changeset/183266&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088240</commentid>
    <comment_count>112</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-24 09:51:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088295</commentid>
    <comment_count>113</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-24 12:29:17 -0700</bug_when>
    <thetext>This patch broke platform/mac/accessibility/select-text.html, which is now flaky on Mac Debug WebKit1:

https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=platform%2Fmac%2Faccessibility%2Fselect-text.html

Doug, do you know how to fix this right now, or should I roll out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088299</commentid>
    <comment_count>114</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-24 12:36:12 -0700</bug_when>
    <thetext>Looking into it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088339</commentid>
    <comment_count>115</comment_count>
      <attachid>251541</attachid>
    <who name="">mitz</who>
    <bug_when>2015-04-24 14:52:24 -0700</bug_when>
    <thetext>Comment on attachment 251541
Fix windows builds

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

&gt; Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:228
&gt; +        userInfo[NSAccessibilityTextStateSyncKey] = @YES;

Dictionary subscripting requires the modern Objective-C runtime. This broke the 32-bit build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088340</commentid>
    <comment_count>116</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-24 14:54:08 -0700</bug_when>
    <thetext>Was just about to post the same comment. Since the test is also still broken, I think that we need to roll out for now, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088343</commentid>
    <comment_count>117</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-24 14:56:47 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 144164</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088355</commentid>
    <comment_count>118</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-24 15:11:25 -0700</bug_when>
    <thetext>I believe I&apos;ve used subscripting in previous bugs without issue. What are the constraints for when I can and can&apos;t use subscripts/object literals?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088364</commentid>
    <comment_count>119</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-24 15:52:26 -0700</bug_when>
    <thetext>(In reply to comment #118)
&gt; I believe I&apos;ve used subscripting in previous bugs without issue. What are
&gt; the constraints for when I can and can&apos;t use subscripts/object literals?

http://clang.llvm.org/docs/ObjectiveCLiterals.html#id4 tells you:

&quot;An Objective-C subscript expression occurs when the base operand of the C subscript operator has an Objective-C object pointer type. Since this potentially collides with pointer arithmetic on the value, these expressions are only supported under the modern Objective-C runtime, which categorically forbids such arithmetic.&quot;

As Alexey pointed out, WebKit still supports the legacy runtime for 32-bit Mac applications. Any code that compiles in that configuration cannot use modern runtime features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088377</commentid>
    <comment_count>120</comment_count>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-24 16:10:09 -0700</bug_when>
    <thetext>I have a patch to remove subscripting/object literals, but I haven&apos;t been able to repro the test timing out.

The build log from the dashboard lists the machine failing as a Yosemite x64 WK1 debug configuration.

Building on a Retina iMac running 10.10.3 14D136 with

./Tools/Scripts/build-webkit --debug

and running the test with

./Tools/Scripts/run-webkit-tests --dump-render-tree --debug

I don&apos;t get this timeout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088407</commentid>
    <comment_count>121</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-24 16:45:42 -0700</bug_when>
    <thetext>Sadly, it may be difficult to investigate if the failure does not reproduce locally.

FWIW, it happened on both Yosemite and Mavericks bots, according to the dashboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088455</commentid>
    <comment_count>122</comment_count>
      <attachid>251604</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-24 19:32:38 -0700</bug_when>
    <thetext>Created attachment 251604
Remove subscripting/object literals

For 32 bit builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088456</commentid>
    <comment_count>123</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-24 19:36:01 -0700</bug_when>
    <thetext>Attachment 251604 did not pass style-queue:


ERROR: Tools/ChangeLog:15:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebKit2/ChangeLog:142:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:428:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 4 in 82 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>1088458</commentid>
    <comment_count>124</comment_count>
      <attachid>251605</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-24 19:55:44 -0700</bug_when>
    <thetext>Created attachment 251605
Fix changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088619</commentid>
    <comment_count>125</comment_count>
      <attachid>251657</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-25 17:56:36 -0700</bug_when>
    <thetext>Created attachment 251657
patch

General cleanup
Change m_passwordNotificationsToPost to a set
Change from AXStateChangeIntent to const AXStateChangeIntent&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088622</commentid>
    <comment_count>126</comment_count>
      <attachid>251658</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-25 18:06:22 -0700</bug_when>
    <thetext>Created attachment 251658
patch

Fix GTK build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088630</commentid>
    <comment_count>127</comment_count>
      <attachid>251658</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-25 18:31:36 -0700</bug_when>
    <thetext>Comment on attachment 251658
patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:1079
&gt; +    if (m_passwordNotificationsToPost.find(observableObject) == m_passwordNotificationsToPost.end()) {
&gt; +        m_passwordNotificationsToPost.insert(observableObject);

This is not good, it’s a double lookup, once for find and then again for insert.

&gt; Source/WebCore/accessibility/AXObjectCache.h:270
&gt; +    template &lt;class T = void&gt; struct RefPtrCompare : std::binary_function&lt;RefPtr&lt;T&gt;, RefPtr&lt;T&gt;, bool&gt; {
&gt; +        bool operator()(const RefPtr&lt;T&gt;&amp; x, const RefPtr&lt;T&gt;&amp; y) const { return x.get() &lt; y.get(); }
&gt; +    };

No, please don’t add adapters to use std::set. Use the set data structure from WTF: HashSet or perhaps for your use ListHashSet.

&gt; Source/WebCore/accessibility/AXObjectCache.h:288
&gt; +    std::set&lt;RefPtr&lt;AccessibilityObject&gt;, RefPtrCompare&lt;AccessibilityObject&gt;&gt; m_passwordNotificationsToPost;

Please don’t use std::set in WebKit. You need to use one of the WebKit collections. Given that we probably want these notifications to have a stable order, you should be using ListHashSet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088657</commentid>
    <comment_count>128</comment_count>
      <attachid>251663</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-25 18:58:04 -0700</bug_when>
    <thetext>Created attachment 251663
patch

std:set -&gt; ListHashSet
Fix windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088665</commentid>
    <comment_count>129</comment_count>
      <attachid>251666</attachid>
    <who name="Doug Russell">d_russell</who>
    <bug_when>2015-04-25 20:01:05 -0700</bug_when>
    <thetext>Created attachment 251666
patch

After discussing with Alexey, marking select-text.html as flakey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088764</commentid>
    <comment_count>130</comment_count>
      <attachid>251666</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-26 09:10:07 -0700</bug_when>
    <thetext>Comment on attachment 251666
patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:567
&gt; +    if (!element || !is&lt;HTMLInputElement&gt;(element))

Null check here is redundant; is&lt;HTMLInputElement&gt;(element) includes a null check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088847</commentid>
    <comment_count>131</comment_count>
      <attachid>251666</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-26 15:18:26 -0700</bug_when>
    <thetext>Comment on attachment 251666
patch

Clearing flags on attachment: 251666

Committed r183368: &lt;http://trac.webkit.org/changeset/183368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088848</commentid>
    <comment_count>132</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-26 15:18:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089175</commentid>
    <comment_count>133</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-27 14:00:37 -0700</bug_when>
    <thetext>There are still bad array subscripts (and I don&apos;t know when it&apos;s allowed and when not; this only happens on some bots). Maybe Xcode version dependent.

/Volumes/Data/slave/faraday-mavericks-production-archive/build/build-Production/WebCore.roots/Sources/WebCore/accessibility/mac/AXObjectCacheMac.mm:304:13: error: array subscript is not an integer
/Volumes/Data/slave/faraday-mavericks-production-archive/build/build-Production/WebCore.roots/Sources/WebCore/accessibility/mac/AXObjectCacheMac.mm:316:17: error: array subscript is not an integer

platform/mac/accessibility/select-text.html is failing nearly every time on bots, what were you planning to do to debug that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089178</commentid>
    <comment_count>134</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-27 14:04:03 -0700</bug_when>
    <thetext>Landed a build fix in r183420.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089251</commentid>
    <comment_count>135</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-27 16:16:55 -0700</bug_when>
    <thetext>There is some strange output in system log implying that DumpRenderTree exits normally during this test. Even though PIDs don&apos;t match, this makes me curious about what&apos;s going on, so I&apos;m turning an unexpected exit() into a crash in bug 144288.

There isn&apos;t much explanation for the regression, or even for pre-existing flaky slowness of the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089253</commentid>
    <comment_count>136</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-27 16:19:54 -0700</bug_when>
    <thetext>More build fix in r183434.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089294</commentid>
    <comment_count>137</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-27 17:24:29 -0700</bug_when>
    <thetext>And more in r183439.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089655</commentid>
    <comment_count>138</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-28 11:51:49 -0700</bug_when>
    <thetext>Splitting the test into smaller parts in bug 144301 appears to have addressed this. I&apos;d love to know the root cause, but we can&apos;t get down to it this time I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090480</commentid>
    <comment_count>139</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-04-30 10:45:59 -0700</bug_when>
    <thetext>I think this change also caused every test on the GTK+ debug bot to fail assertions. Here&apos;s a stack trace: 

STDERR: ASSERTION FAILED: !needsStyleRecalc() || !document().childNeedsStyleRecalc()
STDERR: ../../Source/WebCore/dom/Element.cpp(483) : virtual bool WebCore::Element::isFocusable() const
STDERR: 1   0x7f7200253b8e /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1e) [0x7f7200253b8e]
STDERR: 2   0x7f7205e48abd /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::Element::isFocusable() const+0xbf) [0x7f7205e48abd]
STDERR: 3   0x7f7205a97754 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::AccessibilityNodeObject::determineAccessibilityRole()+0x456) [0x7f7205a97754]
STDERR: 4   0x7f7205a96abf /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::AccessibilityNodeObject::init()+0x5d) [0x7f7205a96abf]
STDERR: 5   0x7f7205a73b50 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::AXObjectCache::getOrCreate(WebCore::Node*)+0x2b4) [0x7f7205a73b50]
STDERR: 6   0x7f7206c26681 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged(WebCore::Node*, WebCore::Node*)+0xb7) [0x7f7206c26681]
STDERR: 7   0x7f7205a756c6 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::AXObjectCache::handleFocusedUIElementChanged(WebCore::Node*, WebCore::Node*)+0x3e) [0x7f7205a756c6]
STDERR: 8   0x7f7205deb6cc /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::Document::setFocusedElement(WTF::PassRefPtr&lt;WebCore::Element&gt;, WebCore::FocusDirection)+0x80e) [0x7f7205deb6cc]
STDERR: 9   0x7f7206431844 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FocusController::setFocusedElement(WebCore::Element*, WTF::PassRefPtr&lt;WebCore::Frame&gt;, WebCore::FocusDirection)+0x43e) [0x7f7206431844]
STDERR: 10  0x7f7205e4fa9d /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::Element::focus(bool, WebCore::FocusDirection)+0x14f) [0x7f7205e4fa9d]
STDERR: 11  0x7f7206e7c3d7 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::jsElementPrototypeFunctionFocus(JSC::ExecState*)+0x158) [0x7f7206e7c3d7]
STDERR: 12  0x7f71a9fff0a8 [0x7f71a9fff0a8]

Any hints on how to fix this would be much appreciated!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090569</commentid>
    <comment_count>140</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-30 14:14:47 -0700</bug_when>
    <thetext>Doug, are you going to take care of that?

Martin, I am not sure whether it’s OK that AXObjectCache::getOrCreate requires that style is already up to date. We might add code inside that function to do that work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090574</commentid>
    <comment_count>141</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2015-04-30 14:24:53 -0700</bug_when>
    <thetext>(In reply to comment #140)
&gt; Doug, are you going to take care of that?

I&apos;m taking a stab at it in bug 144447. Though I&apos;m happy to leave what I don&apos;t get do to Doug. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090683</commentid>
    <comment_count>142</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2015-04-30 18:03:28 -0700</bug_when>
    <thetext>(In reply to comment #141)
&gt; (In reply to comment #140)
&gt; &gt; Doug, are you going to take care of that?
&gt; 
&gt; I&apos;m taking a stab at it in bug 144447.

Editing tests should be crash-free pending review and commit.

As for the crash Martin reported, I opened bug 144481 and will dig into that next.

@Doug: I don&apos;t yet know if my platform has an drag-related crashes. But it&apos;s within the realm of reasonable possibility. Since you said you &quot;just haven&apos;t implemented it yet,&quot; I&apos;ll happily leave its implementation to you. If you open a bug for it, please CC me. Ditto on CreateLink and Unlink. (Happy to leave it to you, please CC me.)

With any luck, that&apos;s the last of the regressions. &lt;fingers crossed&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250041</attachid>
            <date>2015-04-02 23:05:08 -0700</date>
            <delta_ts>2015-04-06 17:03:00 -0700</delta_ts>
            <desc>Edit commands infrastructure</desc>
            <filename>0001-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>124527</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAwYjFhMDQ0ZjJiZDZhNWJhMzJlY2EzNTM3ZmYwNzhlYzUzMzg5ZGNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMTo0Nzo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKTmV3IEVkaXRpbmcgQ29tbWFuZHMKLS0tCiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8IDEwNCArKysrKysrKysrKysrKysrKysr
Ky0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwICAgICAgIHwg
IDE4ICsrLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCAgICAg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcCAgICB8ICAzOCArKysrKysrLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5oICAgICAgfCAgIDYgKysKIC4uLi9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwICAgICAgIHwgIDM4ICsrKysrKysrCiAuLi4vV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICA0NiArKysrKysrKysKIC4uLi9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgIHwgIDQ1ICsrKysrKysr
KwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggfCAg
NDggKysrKysrKysrKwogLi4uL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcCAgfCAgMjYgKysrKystCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCB8ICAxMCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmNwcCAgICAgICAgfCAgIDQgKy0KIC4uLi9lZGl0aW5nL0RpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIHwgIDQwICsrKysrKysrCiAuLi4vZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICB8ICA0NiArKysrKysrKysKIC4uLi9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIHwgIDQ1ICsrKysr
KysrKwogLi4uL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICAg
fCAgNDcgKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwICAgICAg
ICAgICAgICAgICAgfCAgMTEgKystCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oICAg
ICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICB8ICAyOSArKysrLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCB8ICAyMiArKysrLQogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAgfCAgIDggKy0KIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCAgICAgICAgIHwgICA3ICstCiAuLi4v
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAgICAgICB8ICAzOCArKysr
KysrKwogLi4uL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
fCAgNDcgKysrKysrKysrKwogLi4uL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICAgICAgfCAgMzggKysrKysrKysKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggICAgICAgIHwgIDQ4ICsrKysrKysrKysKIC4uLi9lZGl0aW5nL1JlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgIHwgIDM4ICsrKysrKysrCiAuLi4vZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICAgICB8ICA0OSArKysrKysr
KysrCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICB8
ICA0MCArKysrKysrKwogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCAgICAgfCAgNTIgKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIHwgIDMxICsrKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdDb21tYW5kLmNwcCAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9lZGl0aW5nL1R5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgIHwgIDQwICsrKysrKysrCiAuLi4v
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICB8ICA0NSArKysr
KysrKysKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAgICAg
IHwgIDM4ICsrKysrKysrCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oICAgICAgICB8ICA0NyArKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcCB8ICA1MCArKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmggICB8ICA0OSArKysrKysrKysrCiAuLi4v
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICB8ICAzOCArKysr
KysrKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICAg
fCAgNDggKysrKysrKysrKwogNDIgZmlsZXMgY2hhbmdlZCwgMTM1MCBpbnNlcnRpb25zKCspLCA0
MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTlkMjM1
OS4uMDYxMzEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTQ4Miw4ICsxNDgyLDEwIEBACiAJCTQxQTAyM0YwMUEzOURCN0Ew
MEY3MjJDRiAvKiBSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFBMDIzRUMxQTM5REI3OTAwRjcyMkNGIC8qIFJlYWRhYmxlU3Ry
ZWFtLmggKi87IH07CiAJCTQxQTAyM0YyMUEzOURCN0EwMEY3MjJDRiAvKiBSZWFkYWJsZVN0cmVh
bVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFBMDIzRUUxQTM5REI3QTAwRjcyMkNGIC8qIFJlYWRhYmxlU3RyZWFtU291cmNlLmggKi87IH07
CiAJCTQxQTAyM0Y2MUEzOURCQ0IwMEY3MjJDRiAvKiBKU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQTAyM0Yz
MUEzOURCQ0IwMEY3MjJDRiAvKiBKU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcCAqLzsgfTsKLQkJ
NDFBMDI0MTcxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFBMDI0MTUxQTM5RkFEQzAw
RjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwICovOyB9OyA0MUEwMjQxODFBMzlGQURDMDBG
NzIyQ0YgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFBMDI0MTYxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVT
dHJlYW0uaCAqLzsgfTsKLQkJNDFBMDI0MjcxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVT
dHJlYW1SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFBMDI0MjUxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIu
Y3BwICovOyB9OyA0MUEwMjQyODFBMzlGQURDMDBGNzIyQ0YgLyogSlNSZWFkYWJsZVN0cmVhbVJl
YWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFB
MDI0MTYyQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW1SZWFkZXIuaCAqLzsgfTsK
KwkJNDFBMDI0MTcxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFBMDI0MTUxQTM5RkFE
QzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW0uY3BwICovOyB9OworCQk0MUEwMjQxODFBMzlG
QURDMDBGNzIyQ0YgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFBMDI0MTYxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVh
ZGFibGVTdHJlYW0uaCAqLzsgfTsKKwkJNDFBMDI0MjcxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVh
ZGFibGVTdHJlYW1SZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFBMDI0MjUxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW1S
ZWFkZXIuY3BwICovOyB9OworCQk0MUEwMjQyODFBMzlGQURDMDBGNzIyQ0YgLyogKG51bGwpIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyB9OwogCQk0MUEzRDU4RTEwMUMxNTJE
MDAzMTZEMDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQTNENThDMTAxQzE1MkQwMDMxNkQwNyAvKiBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwICovOyB9OwogCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZE
MDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUEzRDU4RDEwMUMxNTJEMDAzMTZEMDcgLyogRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmggKi87IH07CiAJCTQxQkY3MDBDMEZFODZGNDkwMDVFOERFQyAvKiBNZXNz
YWdlUG9ydENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxQkY3MDBBMEZFODZGNDkwMDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjM3Miwx
MiArNjM3NCwyMiBAQAogCQlGNDc4NzU1NTE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDc4NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUu
bW0gKi87IH07CiAJCUY0N0E1RTNFMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQ
b2ludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDdBNUUzRjE5NUI4
RTQ4MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAv
KiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovOyB9OworCQlGNTA2M0MxQzFBQjc1NkQ1MDA5
QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjNDMUIxQUI3NTZDQzAwOUFC
NTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjUw
NjNDMUQxQUI3NTZEODAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUw
NjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovOyB9OwogCQlGNTA2NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUw
NjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsgfTsKIAkJRjUw
NjY0RjgxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJRjUxM0EzRUExNUZGNDg0MTAwMTUyNkRCIC8q
IFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQuaCAqLzsgfTsKIAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5
Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsgfTsKKwkJ
RjU0M0Q1RkQxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1
RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICov
OyB9OworCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCAqLzsgfTsKKwkJRjU0M0Q2MDExQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwICovOyB9OworCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCAqLzsgfTsKIAkJRjU0NEY3ODgxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2
MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5
MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmggKi87IH07CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBF
RjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3
QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUy
OERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhE
QTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VU
ZXh0SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAg
Ki87IH07CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0Ex
MjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFG
MTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8q
IEJ1dHRvbklucHV0VHlwZS5jcHAgKi87IH07CkBAIC02NDI3LDEyICs2NDM5LDI2IEBACiAJCUY1
NUIzRERFMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAv
KiBVUkxJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEREYxMjUxRjEyRDAwM0VGMjY5IC8qIFdl
ZWtJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovOyB9
OwogCQlGNTVCM0RFMDEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUMxMjUxRjEyRDAw
M0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCAqLzsgfTsKKwkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8q
IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTVEMEJEODFBQ0I3
MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1RDBCRDYxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU3NERFREEx
QUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3NERF
RDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovOyB9OworCQlGNTc0REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU4NzJBNzQxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAv
KiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi87IH07CisJCUY1ODcyQTc1MUFCNzVB
MkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3
IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi87IH07CiAJCUY1OTczREUwMTVDRkIy
MDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1OTczRERFMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMuaCAq
LzsgfTsKIAkJRjU5NzNERTExNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTczRERGMTVDRkIyMDMw
MDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gKi87IH07CiAJCUY1OUM5NUZGMTI1NUIyM0YwMDA2MjND
MCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1OUM5NjAwMTI1NUIyM0YwMDA2MjND
MCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLzsgfTsKKwkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ2RDFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkIxQUNDQjNDMDAw
NjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU5
RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZFMUFDQ0I1
MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZB
NDcxMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkYxQUNDQjUwRTAw
NjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi87IH07CiAJCUY1QTE1NDI3MTI3
OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovOyB9OwogCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAg
LyogVmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2Fn
ZS5oICovOyB9OworCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NUUxQUNDRThF
MDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QzFBQ0NF
OEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LzsgfTsKKwkJRjVBNTI5NjExQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmggKi87IH07CiAJCUY1QzA0MURBMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1M
RGF0YUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1QzA0MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50
LmNwcCAqLzsgfTsKIAkJRjVDMDQxREIwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CiAJ
CUY1QzA0MUUzMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFERTBGRkNB
OTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9OwpAQCAtMTM5OTMs
NiArMTQwMTksOCBAQAogCQlGNDc4NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBT
Y3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMu
Y3BwOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZVNjcm9s
bFNuYXBQb2ludHMuaDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNTE1
N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlk
YXRpb25NZXNzYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZh
bGlkYXRpb25NZXNzYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAwNSw4ICsxNDAzMywxNiBAQAogCQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJRjUyM0QzMDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlG
NTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZG
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNB
OCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBMzFB
QzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAv
KiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBCYXNlVGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5w
dXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRvbklu
cHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1Niw2ICsxNDA5
MiwxMiBAQAogCQlGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTElucHV0VHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0
VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWVrSW5wdXRU
eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUMxMjUxRjEyRDAw
M0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2Vla0lucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJE
NTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDYxQUNCNzA4
MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDkxQUNBMjI4RDAwNTk4
MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTg3MkE3MjFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjU4Nzg0RjAwMkRFMzc1OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEN1cnNvck1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCUY1ODc4NTRDMDJERTM3NTkwMUVBNDEyMiAvKiBXZWJDb3JlRnJhbWVWaWV3LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVG
cmFtZVZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXR0aW5ncy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
QEAgLTE0MDY2LDggKzE0MTA4LDE2IEBACiAJCUY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBM
b2NhbGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2Nh
bGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZEMTI1NUIyM0Yw
MDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkUxQUND
QjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBW
YWxpZGF0aW9uTWVzc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxp
ZGF0aW9uTWVzc2FnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QjFB
Q0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ3MEZGQ0E3
Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRGF0YUxpc3RF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ5MEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBIVE1MRGF0YUxpc3RFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3Njc1LDYgKzE3NzI1LDEwIEBACiAJCQkJOTMzMDlEOEUwOTlFNjQ5MTAwNTZFNTgxIC8qIENv
bXBvc2l0ZUVkaXRDb21tYW5kLmggKi8sCiAJCQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8q
IENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMg
LyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLywKKwkJCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQg
LyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q1RkMxQUNC
MDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlG
NTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ4RjA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTAwOTlFNjQ5MTAwNTZFNTgxIC8qIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MTA5OUU2NDkxMDA1NkU1
ODEgLyogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzY4Myw2ICsxNzczNywx
MCBAQAogCQkJCUNFQ0FERkMzMTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2
ZS5oICovLAogCQkJCUNFQ0FERkM0MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5k
LmNwcCAqLywKIAkJCQlDRUNBREZDNTE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFu
ZC5oICovLAorCQkJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1ODcyQTcy
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJ
CQkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEOTMwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRBY3Rpb24uaCAqLywK
IAkJCQk5MzMwOUQ5NDA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuY3BwICovLAogCQkJ
CTkzMzA5RDk1MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5oICovLApAQCAtMTc3Mjks
NiArMTc3ODcsMTAgQEAKIAkJCQlDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2Vs
ZWN0aW9uTGlzdExldmVsLmggKi8sCiAJCQkJOTMzMDlEQUMwOTlFNjQ5MTAwNTZFNTgxIC8qIE1v
dmVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURBRDA5OUU2NDkxMDA1NkU1ODEg
LyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1RDBCRDYx
QUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJ
CQlGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCMTA5OUU2
NDkxMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMw
OURCMjA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggKi8sCiAJ
CQkJRDA2QzBEOEUwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICov
LApAQCAtMTc3MzksNiArMTc4MDEsMTAgQEAKIAkJCQk5MzMwOURCODA5OUU2NDkxMDA1NkU1ODEg
LyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RB
ODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNE
QTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uaCAqLywKKwkJCQlGNTUyOERB
NDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTgxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJ
QTg5Q0NDNTAwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cCAqLywKIAkJCQlBODlDQ0M1MTBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3Bh
bkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCQTA5OUU2NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc3NzQsNiArMTc4NDAsMTQgQEAKIAkJCQk5Mzky
MTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJCQk5
MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMz
MDlEQ0IwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2
QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTYwMUFDQ0VBNzAwMDUx
MkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZF
MUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJ
RjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi8s
CisJCQkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyog
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5QjJEOEE3
ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAqLywKIAkJCQlEMDg2RkU5NzA5RDUzQUFC
MDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJRDA4NkZFOTYwOUQ1M0FBQjAw
NUJDNzREIC8qIFVubGlua0NvbW1hbmQuaCAqLywKQEAgLTIzNjY5LDYgKzIzNzQzLDcgQEAKIAkJ
CQk2QzU2OENCMTE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjU4MEZBRjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTRGNjU3MjFBQTk5N0YxMDBFMzhDREQgLyogUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhE
QTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURENzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJEMERCNTVDREMwMDFEQjc5NCAv
KiBBcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRjBEQjU1Q0RD
MDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZUdyb3VwLmggaW4gSGVhZGVycyAqLywKQEAgLTI0
NDcxLDYgKzI0NTQ2LDcgQEAKIAkJCQkzMTA2MDM3OTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDYwMzdCMTQzMjgxQ0Qw
MEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTZGRTA3RDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZF
MDdGMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGVJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzE2RkUwODAwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1l
c1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgyMEU2Q0NDMjgwMEJGNjA4OCAvKiBE
T01DU1NLZXlmcmFtZXNSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3OTUsNiAr
MjQ4NzEsNyBAQAogCQkJCUExOUQ5MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5z
aW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAw
QThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0Mw
OTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0OUIxMjM3MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1
dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8q
IEhUTUxJbnRlcmNoYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RTQwOTczNzRGNjAw
RDc0NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDI0LDYg
KzI1MTAxLDcgQEAKIAkJCQlGREY3RTlDNDEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZl
ckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBMDEyQjAzRUUxMDAzQTU4M0Eg
LyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUE2
MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUE4MTJCMDNFRTEwMDNBNTgzQSAvKiBK
U0F1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBRTEyQjAz
RUUxMDAzQTU4M0EgLyogSlNBdWRpb0xpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEx
NUVCMDEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb05vZGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MjUwMzMsNiArMjUxMTEsNyBAQAogCQkJCUJFOEVGMDQzMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1
ZGlvVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOEVGMDQ1MTcxQzhGRjkwMDlCNDhDMyAv
KiBKU0F1ZGlvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NkZCOUZGOTE5QTczRTNB
MDA0MjA1NjIgLyogSlNBdXRvY29tcGxldGVFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGNTlGQTQ2RDFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpT
QmFyUHJvcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8q
IEpTQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkE0NDU0RTg5OEYyRkMx
NjhCQzM4QzEgLyogSlNCZWZvcmVVbmxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE1
Miw2ICsyNTIzMSw3IEBACiAJCQkJRkRBMTVFQUMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOEY1MDAyMTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dh
bWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOEY1MDA0MTk0Q0FDM0EwMDgxQkFBRSAvKiBK
U0dhbWVwYWRCdXR0b24uaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NDNENUZFMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRTgwREE2NDBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkU4MERBNjYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGREE3QzFGMTg4MzIyRkMwMEM5NTRCNSAvKiBKU0dlc3R1cmVFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTMyNiw3ICsyNTQwNiw3IEBACiAJCQkJNjVERjMyMDIw
OUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUQyM0NBNTVE
MEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUEwMjQxODFBMzlGQURDMDBGNzIyQ0YgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDFBMDI0MjgxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW1S
ZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxQTAyNDI4MUEzOUZBREMwMEY3MjJDRiAvKiAo
bnVsbCkgaW4gSGVhZGVycyAqLywKIAkJCQlCQ0ZFMkYxMjBDMUI1ODM4MDAyMDIzNUYgLyogSlNS
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTk4QUVDRTEzRjlENkM5MDA5MEIxQUEgLyogSlNS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NERB
NDkxMDEzRjQ2ODAwNzk4N0FEIC8qIEpTUkdCQ29sb3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1
OTQsNiArMjU2NzQsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4
MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2Fk
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3
MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNjc3Myw2ICsyNjg1NCw3IEBACiAJCQkJQjJDM0RBM0MwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RB
M0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjJBRkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQw
MEVGNkYyNiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJD
M0RBNDIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjgyNiw2ICsyNjkwOCw3IEBACiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVB
MjYyIC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRF
NzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYw
QjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQy
NCAvKiBUaWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZE
RUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlD
MTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk0OSwx
MiArMjcwMzIsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9u
RGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEz
MkYwRUNDMDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1NkM1QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyog
V2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVF
NTkwMDFFOUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2
OUREQTE2MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMw
OTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkw
MDFFOUFCQyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
NDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4
dHJhcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk4Nyw2ICsyNzA3Miw3IEBACiAJCQkJNkU0RTkx
QUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29u
dGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjgg
LyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFE
M0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJH
TERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcyOSw2ICsyNzgxNSw3IEBACiAJ
CQkJNkY5OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3Jp
ZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5
RjFGMDA1MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1
QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYy
MDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBF
NkNGRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI3ODA2LDYgKzI3ODkzLDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyog
RGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEy
MEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFG
NDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTU5MzA5QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI3OTQyLDYgKzI4MDMwLDcgQEAKIAkJCQk4NUVDQkVGNjBB
QTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk4NURGODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1
RjMyQUVGMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25F
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8q
IERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjgwOTAsNiAr
MjgxNzksNyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RP
cGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUy
QkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5
NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4
ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVF
OEI4QTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI4MjAwLDYgKzI4MjkwLDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2
MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcy
MEIwQTAxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3
QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2
MjUyRTE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI4MjIwLDYgKzI4MzExLDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUz
MDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgz
RTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFB
OUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE3OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI4Mzk5LDYgKzI4NDkxLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZC
OUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIz
REMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0yODg1Niw2ICsyODk0OSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAw
QkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAx
MUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5n
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUy
MTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0I3MEQ2QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRl
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg5Miw2ICsyODk4Niw3IEBACiAJCQkJMDc5
NjlEQkIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1
ODgwMEFCREQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4
NDIgLyogSlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMx
MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yOTY2Niw2ICsyOTc2MSw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0
RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcz
Nzk0REQxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcz
QkUzNTAxN0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VF
MDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
Mjk4NDEsNiArMjk5MzcsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxU
cmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBD
QzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUz
MUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5
QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYy
RTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMwMzQ1LDYgKzMwNDQyLDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYg
LyogV0tHcmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERB
NjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4
MzAwREE2M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2
RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1h
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBX
b3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjJkZTZkYmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsy
OSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQu
aCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NiwxNSArNDgsMTcgQEAgQXBwZW5k
Tm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4g
cGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUo
KSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0
Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3Jp
bmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFu
Z2UsICBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKIHsKLSAgICBTdHJpbmcg
bm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBEb24ndCBj
b25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0g
IlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCiAgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRl
eHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7CiB9CiAKIHZvaWQgQXBwZW5k
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsOCArNjgsNyBAQCB2b2lkIEFwcGVuZE5vZGVD
b21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0
KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNl
bmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fbm9kZS0+bm9kZVZhbHVlKCksIDApOwogfQogCiB2b2lk
IEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNzQsOCArNzcsNyBAQCB2b2lkIEFw
cGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAog
ICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0
ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAg
ICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmlu
Z0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBt
X25vZGUtPm5vZGVWYWx1ZSgpLCAwKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENF
UFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmlu
ZGV4IGQ2NGIwNGUuLmVkZjY4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwg
UGFzc1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250
YWluZXJOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXgg
ODQ2MWVlNy4uMzFmNTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9j
a0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1
bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMzIwLDkg
KzMyMiwxNCBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNv
bnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitSZWY8RWRpdENvbW1hbmQ+
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkKK3sKKyAgICByZXR1cm4gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNl
cnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsK
K30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVm
UHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5v
ZGU+IHJlZkNoaWxkKQpAQCAtNTIyLDIzICs1MjksNDQgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24odmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCwgc2NvcGUuZ2V0KCkpLCB2aXNpYmxlUG9zaXRpb25G
b3JJbmRleChzdGFydEluZGV4ICsgbGVuZ3RoLCBzY29wZS5nZXQoKSkpKTsKIH0KIAorUmVmPEVk
aXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KQoreworICAgIHJldHVybiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9k
ZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0
VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNl
cnRUZXh0SW50b05vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworfQorCitSZWY8RWRp
dENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkK
K3sKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0
RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQp
OworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRl
eHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBw
cnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJl
cGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29t
bWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9k
ZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBs
YWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRp
b24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3Qg
U3RyaW5nJiB0ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oCmluZGV4IGMyYjQ4OWQuLmY4ZGY5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOwogY2xhc3MgRWRp
dGluZ1N0eWxlOwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAt
MTAzLDE1ICsxMDQsMTggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVkRWxlbWVu
dChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihib29sIHNt
YXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJv
b2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUs
IGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1
ZSk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJvb2wgaXNSZW1vdmFibGVCbG9jayhj
b25zdCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAgICAgdm9pZCBpbnNlcnROb2RlQXQoUGFzc1Jl
ZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydE5vZGVBdFRhYlNw
YW5Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOworICAgIHZpcnR1
YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5v
ZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSk7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID0g
RG9Ob3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBi
b29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSk7CiAgICAgdm9pZCBp
bnNlcnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4
dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIHZvaWQgbWVyZ2VJZGVudGljYWxF
bGVtZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2
b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2ICsxMzQsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05ld1BhcmVudChOb2RlKiwgTm9kZSog
cGFzdExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IHBycE5ld1BhcmVudCk7CiAg
ICAgdm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVSZW1vdmFsUHJlc2VydmluZ0NoaWxkcmVuKFBv
c2l0aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAg
dmlydHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gcmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQp
OwogICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmJjZmQyNGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40
ZGY1NzkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkp
OworICAgIH0KKworcHJvdGVjdGVkOgorICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYzYzkyMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUs
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRl
LCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQorewor
fQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNiZTE1NwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNk
ZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9y
U3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2Us
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21h
cnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwCmluZGV4IDJlYTk2ZDUuLjU5N2Y0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjksNiArMjksOCBAQAog
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRt
bGVkaXRpbmcuaCIKIApAQCAtNDUsNiArNDcsMjAgQEAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kK
ICAgICBBU1NFUlQobV9vZmZzZXQgKyBtX2NvdW50IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwogfQog
CitTdHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAg
ICByZXR1cm4gbV90ZXh0OworfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQordm9pZCBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShO
b2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJp
bmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKK3sKKyAgICBpZiAobm9kZSAmJiBBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAg
ICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zm
c2V0LCB0ZXh0KTsKK30KKyNlbmRpZgorCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvQXBwbHkoKQogewogICAgIEFTU0VSVChtX25vZGUpOwpAQCAtNTcsOSArNzMsMTAgQEAgdm9p
ZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybjsKICAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0
byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOworI2VuZGlmCiAKICAgICBtX25v
ZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzkwLDkg
QEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9u
b2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQp
OworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX3Rl
eHQsIG1fb2Zmc2V0KTsKKyNlbmRpZgogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkx
ZjA1Li40ZTQ3Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCArNDAsMTUgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgY291bnQpKTsKICAgICB9CiAKKyAgICBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCB1bnNpZ25lZCk7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRDaGFuZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkKTsKKyNlbmRpZgogcHJp
dmF0ZToKLSAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0
Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5j
cHAKQEAgLTI3LDExICsyNywxMSBAQAogI2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKIAog
I2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgiCi0jaW5jbHVkZSAiSW5zZXJ0VGV4
dENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRo
b3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxE
aWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0
YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRp
dmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNl
cnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4
dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJr
ZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOworICAgIFJlZlB0cjxJbnNl
cnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVh
dGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5n
KGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUo
YWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFu
ZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWY2MWIwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmZlNTQ1MTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjQxNWY3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAi
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJr
ZXJTdXBwbGllcikKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJr
ZXJTdXBwbGllcikKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOWNi
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQ
YXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3MTBhYTM5Li5jNDc3MWJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJk
RXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3NpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRl
TGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAj
aW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCkBAIC0zODIsNiArMzgzLDE0
IEBAIHZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFy
dERlbGV0ZSkKICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRl
KGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQoYm9vbCBzbWFydERlbGV0ZSkKK3sKKyAgICBpZiAo
bV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXBw
bHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBz
bWFydERlbGV0ZSkpOworfQorCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKIHsKICAgICBDbGVh
clRleHRDb21tYW5kOjpDcmVhdGVBbmRBcHBseSgmbV9mcmFtZSk7CkBAIC0xMjY2LDcgKzEyNzUs
NyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIg
YWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAo
YWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRo
U21hcnREZWxldGVGb3JDdXQoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CiB9CiAKIHZvaWQgRWRp
dG9yOjpwYXN0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li45Mzk4MjY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTQ1Miw2ICs0NTIsNyBAQCBwcml2YXRlOgog
CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29uc3Q7CiAKKyAgICB2b2lkIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZUZvckN1dChib29sKTsKICAgICBib29sIGNhbkRlbGV0ZVJhbmdl
KFJhbmdlKikgY29uc3Q7CiAgICAgYm9vbCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZChQ
YXN0ZWJvYXJkJik7CiAgICAgdm9pZCBwYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQoUGFz
dGVib2FyZCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uOWYwOTAyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgpAQCAtNTAsNiArNTEsMjAgQEAgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2kKICAgICBBU1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwogfQogCitTdHJpbmcmIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4
dDsKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK3ZvaWQgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNp
Z25lZCBvZmZzZXQpCit7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOworfQorI2VuZGlmCisKIHZv
aWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNz
d29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQo
KTsKQEAgLTY1LDkgKzgwLDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCiAgICAgfQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQs
IElHTk9SRV9FWENFUFRJT04pOwotCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5z
ZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkK
KyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKKyNlbmRpZgogfQog
CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzk4LDExIEBAIHZvaWQgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFi
bGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorICAgIAorI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBk
ZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50
KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQs
IG1fb2Zmc2V0LCBtX3RleHQpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV90ZXh0LCBtX29m
ZnNldCk7CisjZW5kaWYKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0
Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uNWNhMmQ5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsK
ICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3Rl
ZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCk7CisjZW5kaWYKKworcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCmluZGV4IGQxNmI1ZDYuLjBjYjhhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0yNiw5ICsyNiwx
MCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNiArNDksMTUgQEAgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFAKICAgICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5oYXNFZGl0
YWJsZVN0eWxlKCkgfHwgIW1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKSk7CiB9
CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCit2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9m
ZnNldCkKK3sKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Cit9CisjZW5kaWYKKwogdm9pZCBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQ29udGFpbmVyTm9kZSogcGFy
ZW50ID0gbV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpOwpAQCAtNTcsOCArNjcsOSBAQCB2b2lkIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVm
b3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJ
T04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAw
LCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQor
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUo
KSwgMCk7CisjZW5kaWYKIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKQEAgLTY2LDkgKzc3LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiAgICAgaWYgKCFpc0VkaXRhYmxlTm9kZSgqbV9pbnNlcnRDaGlsZCkpCiAgICAg
ICAgIHJldHVybjsKIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAgICAvLyBOZWVkIHRvIG5v
dGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0g
ICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2Rl
VmFsdWUoKSk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRD
aGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9pbnNlcnRDaGlsZC0+
bm9kZVZhbHVlKCksIDApOworI2VuZGlmCiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdO
T1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uMzc1ZDA5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw5ICszOSwxNCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVD
b21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgog
ICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2Vy
dCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgdm9p
ZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCk7CisjZW5kaWYKKworcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVu
dCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNl
cnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRD
b21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNl
cnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlw
ZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzBjM2NiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1Jl
ZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKQoreworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmU3M2FmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kIDog
cHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNo
aWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAg
ICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRC
ZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2Rl
PiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQwN2I0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTRjZjQxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KyNkZWZpbmUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uODk4YjAxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQs
IGNvdW50KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZkOGUzZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRf
aAorI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQor
Citwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdh
NjJmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQorICAgICwgbV9kZWxldGVkVGV4
dChkZWxldGVkVGV4dCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZmY1YmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6
CisgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4
IGZiMzg4MGMuLjMwYzQ3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQmVm
b3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC00NCwxNCArNDUsMjAg
QEAKICNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiU21hcnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVk
ZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTQ4Miw2ICsxNDg5LDMw
IEBAIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnVwZGF0ZU5vZGVzSW5zZXJ0ZWQoTm9k
ZSAqbm9kZSkKIAogICAgIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQgPSBsYXN0UG9zaXRpb25Jbk9y
QWZ0ZXJOb2RlKG5vZGUtPmxhc3REZXNjZW5kYW50KCkpOwogfQorICAgIAorUmVmPEVkaXRDb21t
YW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVk
aXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1
cm4gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZD
aGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSk7CisgICAgfQorfQorCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAg
ICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0
LCBkZWxldGVkVGV4dCk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVy
biBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgfQorfQog
CiAvLyBEdXJpbmcgc2ltcGxlIHBhc3Rlcywgd2hlcmUgd2UncmUganVzdCBwYXN0aW5nIGEgdGV4
dCBub2RlIGludG8gYSBydW4gb2YgdGV4dCwgd2UgaW5zZXJ0IHRoZSB0ZXh0IG5vZGUKIC8vIGRp
cmVjdGx5IGludG8gdGhlIHRleHQgbm9kZSB0aGF0IGhvbGRzIHRoZSBzZWxlY3Rpb24uICBUaGlz
IGlzIG11Y2ggZmFzdGVyIHRoYW4gdGhlIGdlbmVyYWxpemVkIGNvZGUgaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2Zm
Li5lMjZhOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oCkBAIC0xMTEsNiArMTExLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGVy
Zm9ybVRyaXZpYWxSZXBsYWNlKGNvbnN0IFJlcGxhY2VtZW50RnJhZ21lbnQmKTsKIAorICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKwogICAgIFBvc2l0aW9uIG1fc3RhcnRP
Zkluc2VydGVkQ29udGVudDsKICAgICBQb3NpdGlvbiBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50Owog
ICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1faW5zZXJ0aW9uU3R5bGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCA5MzI5Y2RmLi44YzBmYjAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5k
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
IApAQCAtMzczLDcgKzM3NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25z
dCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogCiB2b2lkIFR5cGluZ0Nv
bW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNl
bGVjdEluc2VydGVkVGV4dCwKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQg
PSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVj
dEluc2VydGVkVGV4dCwKICAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0
aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdX
aGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7
CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24o
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zYmZiOTdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmI0MDc0OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorcHJpdmF0ZToKKyAg
ICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGE0ZGNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmM0NDIxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9k
ZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAor
ICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9J
bnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAg
fQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDFiMTY2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgor
I2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0
SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCisgICAgOiBJbnNlcnRU
ZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VU
eXBlKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpp
bnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCitSZWY8
RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7Cisg
ICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTNiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCAr
MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNl
cnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5
cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydFRleHRDb21tYW5kKGRvY3VtZW50
LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmLCBib29sLCBSZWJhbGFuY2VUeXBlKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5k
PiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43YWMzY2EzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSwz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwg
dGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yM2ZmM2EyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5l
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQgOiBwdWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+
IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
bm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCi0tIAoyLjMuMCAoQXBwbGUgR2l0LTU0KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250042</attachid>
            <date>2015-04-02 23:05:46 -0700</date>
            <delta_ts>2015-04-04 13:24:13 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>55394</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBmMTc3ZjkyY2U3MTA3NTM0MjRjZTFmMGY2MzQwY2FkOGZjNzBkNjMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAxMDIgKysrKysrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAg
ICAgICB8ICA0NiArKysrKysrKystCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgICAgICB8ICA0MSArKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmggICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAyICsKIC4uLi9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gIHwgICA2ICstCiAuLi4vV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8ICA5NCArKysrKysrKysrKysr
KysrKystCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggICAgICAg
ICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCAg
ICAgICB8ICAyNCArKysrLQogLi4uL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgICAgICAgfCAgIDcgKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIHwgICA2ICsrCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICB8ICAzMyArKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICAxMCArLQogLi4uL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgfCAgIDcgKysKIC4uLi9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgIHwgICA0ICsKIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwICAgICAgICAgICAgIHwgIDMwICsrKysrKwogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oICAgICAgICAgICAgICAgfCAgMTIgKysr
CiAuLi4vV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICB8ICAz
MSArKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCB8ICAxMSArKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwIHwgIDM0ICsrKystLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCAgIHwgIDExICsrLQogLi4uL2VkaXRpbmcvUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgICAgICAgfCAgIDcgKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIHwgICA0ICsKIC4uLi9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICAgIHwgICA3ICsrCiAuLi4vUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICAgICB8ICAgNSArCiAuLi4vZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgICB8ICAgNiArKwogLi4uL2VkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAgICAgfCAgIDUgKwogLi4uL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgfCAgNDYgKysrKysr
KysrKwogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAg
fCAgMTEgKysrCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAgICB8ICAgNyArKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICAgICAgfCAgIDQgKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICAgICAgfCAgIDcgKysKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmggICAgICAgIHwgICA0ICsKIC4uLi9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgICAgIHwgICA3ICsrCiAuLi4vVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCAgICAgICB8ICAgNCArCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8ICAxNyArKystCiAzNiBmaWxlcyBjaGFuZ2VkLCA2
MDQgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uYzNjY2UxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0x
MjksNiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZh
Y2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1f
bm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0
aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkK
IHsKIH0KIApAQCAtNzQyLDYgKzc0MywyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBh
cmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9u
cyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRp
b25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0
aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkg
dGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1v
dmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRv
JiBub3RlIDogbm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmln
aHQgcGxhdGZvcm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3RlKSwgc3RkOjpnZXQ8
Mj4obm90ZSksIFZpc2libGVQb3NpdGlvbigpLCBWaXNpYmxlU2VsZWN0aW9uKCkpOworICAgIH0K
K30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9z
dFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsNiArODY1LDgxIEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5D
aGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09B
KQorc3RhdGljIGJvb2wgc2FuaXRpemVQYXNzd29yZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9i
amVjdCYgb2JqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBTdHJpbmcgJnRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bh
c3N3b3JkRmllbGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAg
ICAgICBzd2l0Y2godHlwZSkgeworICAgICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZUluc2VydDoKKyAgICAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGlu
ZzoKKyAgICAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoK
KyAgICAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAg
ICAgICAgdGV4dCA9IG9iai5wYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgp
LT5wYXNzd29yZEZpZWxkVmFsdWUoKS5zdWJzdHJpbmcocG9zaXRpb24uZGVlcEVxdWl2YWxlbnQo
KS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
OgorICAgICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAg
ICAgICAgdGV4dCA9ICIiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworLy8gQVhUT0RPIGlu
Y2x1ZGluZyBWaXNpYmxlU2VsZWN0aW9uIHJlcXVpcmVzIGRlZmVycmluZyB0aGUgcG9zdCB1bnRp
bCBhZnRlciB0aGUgY29tbWFuZCBwcm9iYWJseSBpc24ndCB3b3J0aCB0aGUgZXh0cmEgY29tcGxl
eGl0eSwgbG9zZSBpdAorLy8gQVhUT0RPIGN1cnJlbnRseSB0aGUgcG9zdCBjb21tYW5kcyBhcmUg
YmVpbmcgY2FsbGVkIHdpdGggdGV4dCBub2RlcyBjb250YWluZWQgaW4gZG9jdW1lbnQgZnJhZ21l
bnRzIHdoaWNoIGFyZSB0aGUgY2hpbGRyZW4gb2YgdGhlIGFjdHVhbCBlZGl0YWJsZSBlbGVtZW50
LCB0byBiZXR0ZXIgbWF0Y2ggcG9zdE5vdGlmaWNhdGlvbigpIHRoZSBvYmplY3Qgc2hvdWxkIGRl
ZmVyIHRvIG9ic2VydmFibGVPYmplY3QoKSB3aGljaCBzaG91bGQgYmUgdGhlIGVkaXRhYmxlIGVs
ZW1lbnQgY29udGFpbmluZyB0aGUgZnJhZ21lbnQKKy8vIEFYVE9ETyBzZWUgaWYgZGVmZXJyaW5n
IHRvIG9ic2VydmFibGVPYmplY3QoKSBtZWFucyB3ZSBjYW4gZ2V0IHJpZCBvZiBwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGFuZCBmcmllbmRzCisvLyBBWFRPRE8gbWFr
ZSBzdXJlIHRoYXQgYXNzdW1wdGlvbiB0aGF0IHBvc2l0aW9uIGNhbiBiZSB1c2VkIHRvIHNlZSBp
ZiBhIGNoYW5nZSBpcyBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhcyB0aGUgY2FyZXQgaG9sZHMgKHBv
c2l0aW9uIGlzIGNyZWF0ZWQgd2l0aCBhIGNoaWxkIG5vZGUgaW4gc29tZSBjYXNlcywgd2hpY2gg
SSB0aGluayBpcyBmaW5lLCBidXQgbmVlZCB0byBtYWtlIHN1cmUpCisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRF
ZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAo
IW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0VHlw
ZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsK
KworICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0gdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlm
IChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlv
bikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChz
dGQ6Om1ha2VfdHVwbGUob2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBp
ZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAg
ICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAy
NSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBEZWxl
Z2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbiwgc2VsZWN0
aW9uKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybjsKKyAgICBBU1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGVsZXRl
KTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUluc2VydCB8fCBp
bnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlvblR5cGUgPT0g
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZVBhc3RlKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisK
KyAgICBTdHJpbmcgc2FuaXRpemVkRGVsZXRlZFRleHQgPSBkZWxldGVkVGV4dDsKKyAgICBTdHJp
bmcgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0ID0gaW5zZXJ0ZWRUZXh0OworICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAg
ICAgaWYgKHNhbml0aXplUGFzc3dvcmRUZXh0KCpvYmosIGluc2VydGlvblR5cGUsIHNhbml0aXpl
ZEluc2VydGVkVGV4dCwgcG9zaXRpb24pIHx8IHNhbml0aXplUGFzc3dvcmRUZXh0KCpvYmosIGRl
bGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShv
YmosIGluc2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAg
aWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
ICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4w
MjUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRGVs
ZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwg
aW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbiwgc2VsZWN0aW9u
KTsKK30KKyNlbHNlCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIW5vZGUpCkBAIC04NjEsNiArOTUxLDcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBu
b2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW4KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmog
PSBnZXRPckNyZWF0ZShub2RlKTsKICAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKIH0KKyNlbmRpZgogCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwg
QVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQogewpAQCAtMTA4NCw2ICsxMTc1LDE3IEBAIGJv
b2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAg
ICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3Qo
KSkgeworICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqZmlyc3RDaGlsZCA9IHJvb3RP
YmplY3QtPmZpcnN0Q2hpbGQoKSkgeworICAgICAgICAgICAgaWYgKGZpcnN0Q2hpbGQtPmlzV2Vi
QXJlYSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmaXJzdENoaWxkOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6
QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2Nh
Y2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAppbmRleCBiZmE5Mjc3Li4yNzdiOWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTg5LDEyICsxODksMzQgQEAgcHVibGljOgogICAg
IHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQg
PSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9p
ZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90
aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5
bmNocm9ub3VzbHkpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgZW51bSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAorICAg
ICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CisgICAgfTsKKworICAgIGVudW0gQVhUZXh0
RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4
dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVk
aXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRU
eXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVD
dXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5z
ZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UK
KyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UgKHJlcGxh
Y2VtZW50KQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7Cisj
ZWxzZQogICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKICAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCiAg
ICAgICAgIEFYVGV4dERlbGV0ZWQsCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmKTsKKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRl
eHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgogCiAgICAgZW51bSBB
WExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMjQw
LDEzIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3
Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworI2Vsc2UKKyAgICB2b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisK
ICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vz
c2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0y
MjksNiArMjU3LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikg
eyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50
JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRl
ck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMjc0LDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIg
bV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNj
ZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0
OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1f
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8UmVm
UHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4gbV9wYXNz
d29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAg
IHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVu
dUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0zMDgsOCArMzQzLDE1IEBAIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNv
bXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KKyNpZiBQTEFURk9S
TShDT0NPQSkKK2lubGluZSB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBwb3N0VGV4dFJlcGxh
Y2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIHBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlu
bGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7
IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2Jq
ZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9u
LCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUu
LmFjMzhmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDQ3IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJu
IGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmpl
Y3QqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFz
c3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAg
ICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAg
ICAgaWYgKGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1
cm4gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAg
ICAKKyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAg
ICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBp
ZiAoQVhPYmplY3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9
IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9
IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkp
IHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAg
ICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOwor
ICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiBib29s
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5v
ZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uN2RiZDU5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNO
YXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bh
c3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWlu
ZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRl
eCAzNTg2ZjJhLi5iNTY5NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29y
ZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVl
KCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi44N2NhYjlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0KQEAgLTk1LDcgKzk1LDExIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29i
ai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9u
U3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKQordm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3sKK30K
Kwordm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDJjNzQ0MzAuLmVjMGRhZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQpAQCAtNDQsNiArNDQsMjIgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNy
ZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVkIgogI2VuZGlmCiAKKyNpZm5k
ZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleQorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UgQCJBWFNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5Q2hh
bmdlZEVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5Q2hhbmdlZEVsZW1lbnQgQCJBWENo
YW5nZWRFbGVtZW50IgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhp
cyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTE1Nyw4ICsxNzMsODQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFw
cGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwog
fQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYpCitzdGF0aWMgTlNEaWN0aW9uYXJ5KiB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9u
YXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCiB7CisgICAgTlNTdHJpbmcqIHRleHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAg
TlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICghbGVuZ3RoKQorICAg
ICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGNoYW5nZSA9IFtbTlNN
dXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2Vb
QCJBWFRleHRFZGl0VHlwZSJdID0gQCh0eXBlKTsKKyAgICBzdGF0aWMgY29uc3QgTlNVSW50ZWdl
ciB0cnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKyAgICBpZiAobGVuZ3RoID4gdHJ1bmNhdGlvbkxl
bmd0aCkgeworICAgICAgICBjaGFuZ2VbQCJBWFZhbHVlTGVuZ3RoIl0gPSBAKGxlbmd0aCk7Cisg
ICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOwor
ICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdlW0AiQVhWYWx1ZSJdID0g
dGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRl
eHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpw
b3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbQCJBWFZhbHVlU3RhcnRNYXJrZXIiXSA9IHRl
eHRNYXJrZXI7CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0g
cm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rp
b25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENh
cGFjaXR5OjRdOworICAgIC8vIEFYVE9ETyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBhcmUg
YWx3YXlzIGVkaXRzLCB0aGlzIHVubmVlZGVkCisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOwor
ICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rp
b25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworICAgIGlmICghc2VsZWN0
aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53
cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZp
c2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAg
ICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VdID0g
dGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlDaGFu
Z2VkRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJl
YSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhV
c2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwg
dXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJU
IHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5v
dGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRp
dFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0
VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
KQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVz
ZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRd
OworICAgIC8vIEFYVE9ETyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBhcmUgYWx3YXlzIGVk
aXRzLCB0aGlzIHVubmVlZGVkCisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
Q2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworICAgIE5TTXV0
YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBh
Y2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRD
aGFuZ2VEaWN0aW9uYXJ5KG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24p
KQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9u
YXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0
aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9i
amVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKyAgICBpZiAoaWQgdGV4dE1h
cmtlclJhbmdlID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9z
aXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlz
aWJsZUVuZCgpXSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2VdID0gdGV4dE1hcmtlclJhbmdlOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJp
bGl0eUNoYW5nZWRFbGVtZW50XSA9IG9iai0+d3JhcHBlcigpOworICAgIGlkIHRhcmdldCA9IHJv
b3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0
aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZp
Y2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNl
ZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFy
Z2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVD
aGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRp
bmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVP
YmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJD
b3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6
VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQ
b3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBA
ZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDJkZTZkYmYuLmE4
Y2FkMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
CkBAIC00OCw3ICs0OCwxMSBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVCht
X3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9
CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHR5cGUsICBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKKyNlbHNlCiBzdGF0aWMgdm9p
ZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCAgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25l
ZCBvZmZzZXQpCisjZW5kaWYKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU4LDcgKzYyLDExIEBAIHN0YXRpYyB2
b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4CiAgICAgICByZXR1cm47CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbiwgc2VsZWN0aW9uKTsKKyNlbHNlCiAgICAg
ICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNl
dCwgdGV4dCk7CisjZW5kaWYKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgp
CkBAIC02OCw3ICs3NiwxMSBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAog
ICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04p
OwogCi0gICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9ub2RlLT5ub2RlVmFsdWUoKSwgMCk7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwg
bV9ub2RlLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQ
b3NpdGlvbihtX25vZGUuZ2V0KCksIDApKSwgZnJhbWUoKS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KSk7CisjZWxzZQorICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fbm9kZS0+bm9k
ZVZhbHVlKCksIDApOworI2VuZGlmCiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCkBAIC03NiwxMCArODgsMTggQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJl
dHVybjsKICAgICAgICAgCisgICAgCisgICAgU3RyaW5nIHRleHQgPSBtX25vZGUtPm5vZGVWYWx1
ZSgpOworI2lmICFQTEFURk9STShDT0NPQSkKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJl
Zm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRl
ZCwgbV9ub2RlLT5ub2RlVmFsdWUoKSwgMCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmlu
Z0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCB0
ZXh0LCAwKTsKKyNlbmRpZgogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7
CisgICAgCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmlu
Z0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURl
bGV0ZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9uKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbiht
X25vZGUuZ2V0KCksIDApKSwgZnJhbWUoKS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSk7CisjZW5k
aWYKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IGJjZmQyNGEuLjNiMjZl
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsMTEgQEAgQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUKIHsKIH0KIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0Ep
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjphcHBseVR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUN1dDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmlu
ZGV4IDRkZjU3OTEuLjc3NjY5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0zOSw2ICszOSwxMiBAQCBwdWJs
aWM6CiAKIHByb3RlY3RlZDoKICAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisjaWYgSEFWRShB
Q0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5VHlwZSgpIG92ZXJyaWRlOworI2VuZGlmCisKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDU5N2Y0OWMuLmIxNGZkOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtNTIsMTUgKzUyLDYgQEAgU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkZWxldGVkVGV4dCgpCiAgICAgcmV0dXJuIG1fdGV4dDsKIH0KIAotI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKLXZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hh
bmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCi17Ci0gICAg
aWYgKG5vZGUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsK
QEAgLTcyLDEzICs2MywxNyBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+c3Vic3RyaW5nRGF0YShtX29mZnNldCwgbV9jb3Vu
dCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAgIAotI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09B
KQogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRo
ZSB0ZXh0CiAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKICNlbmRp
ZgogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CisKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlUeXBlKCksIG1fdGV4dCwg
VmlzaWJsZVBvc2l0aW9uKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX25vZGUuZ2V0KCks
IG1fb2Zmc2V0KSksIGZyYW1lKCkuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOworI2VuZGlmCiB9
CiAKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTkxLDgg
Kzg2LDEyIEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAg
ICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7
CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5VHlwZSgp
LCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9u
b2RlLmdldCgpLCBtX29mZnNldCkpLCBmcmFtZSgpLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpKTsK
KyNlbHNlCiAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV90ZXh0LCBtX29mZnNldCk7CiAjZW5k
aWYKKyNlbmRpZgogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMTAxLDUgKzEwMCwxNyBAQCB2b2lk
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+JiBub2RlcykKICAgICBhZGROb2RlQW5kRGVzY2VuZGFudHMobV9ub2RlLmdldCgpLCBub2Rl
cyk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JN
KENPQ09BKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6YXBwbHlUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGU7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaAppbmRleCA0ZTQ3Y2Y5Li42NTA0Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDUsOSArNDUs
NiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogCi0jaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCk7Ci0jZW5kaWYKIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92
ZXJyaWRlOwpAQCAtNTYsNyArNTMsMTIgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAg
dmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7
CiAjZW5kaWYKLSAgICAKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09D
T0EpCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseVR5cGUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVu
YXBwbHlUeXBlKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7
CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9jb3VudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDc1ZjYxYjAuLjEzMzJjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtMzcsNCArMzcsMTEgQEAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHQKIHsK
IH0KIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjphcHBseVR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCmluZGV4IGZlNTQ1MTAuLjk1YWYyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCkBAIC0zOSw2ICszOSwxMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkg
JiYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBhcHBseVR5cGUoKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMy
Li5iOWZmZjgzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTEy
NCw1ICsxMjQsMzUgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRh
bnRzKE5vZGUqIHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KICAgICAgICAgbm9kZXMuYWRk
KG5vZGUpOwogfQogI2VuZGlmCisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorI2lmIFBM
QVRGT1JNKENPQ09BKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENv
bW1hbmQ6OmFwcGx5VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlUeXBlKCkKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVVbmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKKyNlbHNlCit2
b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShO
b2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJp
bmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKKyNlbmRpZgoreworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbiwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAg
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBv
ZmZzZXQsIHRleHQpOworI2VuZGlmCisgICAgfQorfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li45
YjFiZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNyw2ICsyNyw4
IEBACiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKKwor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgi
CiAKICNpZm5kZWYgTkRFQlVHCkBAIC05Nyw2ICs5OSwxNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYK
IAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5VHlwZSgpOworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseVR5cGUoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisjZWxzZQorICAgIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5n
ZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOworI2VuZGlmCisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA5ZjA5MDI3Li42NmVmMjc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTU2LDE1ICs1Niw2IEBAIFN0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
aW5zZXJ0ZWRUZXh0KCkKICAgICByZXR1cm4gbV90ZXh0OwogfQogCi0jaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2Ug
Y2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKLXsKLSAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAg
ICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2Us
IG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgp
LnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgpOwpAQCAtODIsOCArNzMsMTIgQEAgdm9p
ZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX25vZGUtPmluc2Vy
dERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgCiAjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlUeXBlKCksIG1fdGV4dCwgVmlz
aWJsZVBvc2l0aW9uKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX25vZGUuZ2V0KCksIG1f
b2Zmc2V0KSksIGZyYW1lKCkuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOworI2Vsc2UKICAgICBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEluc2VydGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKICNlbmRpZgorI2VuZGlmCiB9
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC05OSwxMiArOTQsMTYgQEAgdm9pZCBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJs
ZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gTmVl
ZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKICAgICBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOwogI2VuZGlmCiAKICAgICBtX25v
ZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseVR5cGUo
KSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1f
bm9kZS5nZXQoKSwgbV9vZmZzZXQpKSwgZnJhbWUoKS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSk7
CisjZW5kaWYKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTExMyw1ICsxMTIsMTcgQEAgdm9pZCBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYgbm9kZXMpCiAgICAgYWRkTm9kZUFuZERlc2NlbmRhbnRzKG1fbm9kZS5nZXQoKSwgbm9kZXMp
OwogfQogI2VuZGlmCisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShD
T0NPQSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmFwcGx5VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKaW5kZXggNWNhMmQ5Ni4uZDBjZjRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQ0LDEwICs0NCw2
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQp
OwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdl
LCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCk7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHko
KSBvdmVycmlkZTsKQEAgLTU4LDcgKzU0LDEyIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwog
ICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJy
aWRlOwogI2VuZGlmCi0gICAgCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JN
KENPQ09BKQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlU
eXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSB1bmFwcGx5VHlwZSgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBSZWZQdHI8VGV4dD4gbV9u
b2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIFN0cmluZyBtX3RleHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4
IDBjYjhhZGMuLjkwMDBlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC00OSwxNSArNDksNiBAQCBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNl
cnRDaGlsZCwgUAogICAgIEFTU0VSVChtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCktPmhhc0VkaXRh
YmxlU3R5bGUoKSB8fCAhbV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpKTsKIH0K
IAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLXZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zm
c2V0KQotewotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQot
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lkIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBDb250YWluZXJOb2RlKiBwYXJl
bnQgPSBtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCk7CkBAIC02OCw4ICs1OSwxMiBAQCB2b2lkIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBwYXJlbnQtPmluc2VydEJlZm9y
ZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9O
KTsKIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBs
eVR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihjcmVh
dGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCkpLCBmcmFtZSgp
LnNlbGVjdGlvbigpLnNlbGVjdGlvbigpKTsKKyNlbHNlCiAgICAgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
SW5zZXJ0ZWQsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKICNlbmRpZgorI2VuZGlm
CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC03Nywx
MiArNzIsMTcgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAg
ICBpZiAoIWlzRWRpdGFibGVOb2RlKCptX2luc2VydENoaWxkKSkKICAgICAgICAgcmV0dXJuOwog
Ci0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIGNvbnN0IFN0cmluZyB0ZXh0ID0gbV9pbnNl
cnRDaGlsZC0+bm9kZVZhbHVlKCk7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZP
Uk0oQ09DT0EpCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2lu
c2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX2luc2VydENo
aWxkLT5ub2RlVmFsdWUoKSwgMCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgdGV4
dCwgMCk7CiAjZW5kaWYKIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBU
SU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5h
cHBseVR5cGUoKSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9uKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3Np
dGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKSksIGZyYW1lKCkuc2VsZWN0aW9uKCkuc2VsZWN0
aW9uKCkpOworI2VuZGlmCiB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC05Myw0ICs5MywxNiBAQCB2
b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExB
VEZPUk0oQ09DT0EpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6YXBwbHlUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCAzNzVk
MDk5Li41NmZlNDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCkBAIC00MiwxMCArNDIsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0
LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRDaGFuZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkKTsKLSNlbmRpZgotCiBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNTMsNyArNDksMTIgQEAgcHJpdmF0ZToKICNpZm5k
ZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkg
JiYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBhcHBseVR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIHVuYXBwbHlUeXBlKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIFJlZlB0
cjxOb2RlPiBtX2luc2VydENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAg
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBhYzBjM2NiLi4xMjQxZTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKQEAgLTM0LDUgKzM0LDEyIEBAIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNl
CiAgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewogfQorICAgIAorI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseVR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorI2VuZGlmCiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgKaW5kZXggZTczYWY3Yy4uMGJkMDdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTQwLDYg
KzQwLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExB
VEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseVR5cGUoKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMzQwN2I0My4uNWQxYzkxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSwxMSBAQCBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhcwogewogfQogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQ
TEFURk9STShDT0NPQSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5SW5zZXJ0VHlwZSgpCit7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCBhNGNm
NDFlLi5jYmE4ZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzksNiArMzks
MTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQp
KTsKICAgICB9CiAKK3Byb3RlY3RlZDoKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRG
T1JNKENPQ09BKQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBw
bHlJbnNlcnRUeXBlKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDg5OGIwMTcuLmE4OWU2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0
ICszNSwxMCBAQCBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZQogewogfQogCisjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCit7Cit9CisjZW5kaWYKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IGRmZDhlM2UuLjhjZDdmNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQyLDYgKzQyLDExIEBAIHB1YmxpYzoKIAogcHJvdGVj
dGVkOgogICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJikgb3ZlcnJpZGU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKaW5kZXggODdhNjJmOC4uOWNkZmI5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTM2LDUgKzM2LDUxIEBAIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRlCiAgICAg
LCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQogewogfQorICAgIAorI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50
KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0
dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVD
dXQ6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBj
YXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0
aW9uKG5vZGUsIHVuYXBwbHlEZWxldGVUeXBlKCksIHRleHQsIHVuYXBwbHlJbnNlcnRUeXBlKCks
IG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uLCBzZWxlY3Rpb24pOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBhcHBseURlbGV0ZVR5cGUo
KSwgbV9kZWxldGVkVGV4dCwgYXBwbHlJbnNlcnRUeXBlKCksIHRleHQsIHBvc2l0aW9uLCBzZWxl
Y3Rpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUluc2VydFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsK
K30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmFwcGx5RGVsZXRlVHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUluc2VydFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OnVuYXBwbHlEZWxldGVUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IGQ5ZmY1YmUuLmYxMmYwOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTQzLDcgKzQzLDE4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
ICYmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgYXBwbHlJbnNlcnRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBhcHBseURlbGV0ZVR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlJbnNlcnRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RGVsZXRlVHlwZSgpOworI2VuZGlmCisKIHBy
aXZhdGU6CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAg
IFN0cmluZyBtX2RlbGV0ZWRUZXh0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggM2Jm
Yjk3ZC4uNjZjMDQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNyw0ICszNywxMSBAQCBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dAogewogfQogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAm
JiBQTEFURk9STShDT0NPQSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggYjQwNzQ5OC4uZWU5NmYxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTM4LDYgKzM4LDEwIEBAIHB1YmxpYzoKICAgICB9CiBwcml2YXRlOgog
ICAgIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5VHlwZSgpIG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCmluZGV4IDMwYTRkY2YuLmM4ZGE5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
CkBAIC0zNSw0ICszNSwxMSBAQCBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbgogewogfQogCisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseVR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKyNl
bmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggYzQ0MjE5MS4uOWNiNjAzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aApAQCAtNDAsNiArNDAsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBhcHBseVR5cGUoKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA3YWMz
Y2EzLi4yNWJhN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzUs
NCArMzUsMTEgQEAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFAKIHsKIH0KIAorI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlJbnNlcnRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oCmluZGV4IDIzZmYzYTIuLjM0N2E1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTQxLDYgKzQxLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlJbnNlcnRUeXBlKCkgb3ZlcnJpZGU7CisjZW5kaWYKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uYTc3YmMxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAg
LTU0OCwxNiArNTQ4LDMxIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElu
bmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAg
IEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2
YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3RyaW5nIHByZXZp
b3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0
SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4dElzQ2hhbmdl
ZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVu
ZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1l
bnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBjYWNoZS0+cG9z
dE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0
T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpbm5lclRleHQt
PnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgaWYg
KHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQogICAgICAgICAg
ICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQ
TEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkg
eworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUg
PSBkb2N1bWVudCgpLmZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBwb3NpdGlv
biA9IFZpc2libGVQb3NpdGlvbihQb3NpdGlvbigpKTsgLy8gQVhUT0RPIHJlYWwgcG9zaXRpb24K
KyAgICAgICAgICAgICAgICAgICAgYXV0byBzZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCku
c2VsZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
LCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFs
dWUsIHBvc2l0aW9uLCBzZWxlY3Rpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1h
dGNoZXNSZW5kZXJlcih0cnVlKTsKLS0gCjIuMy4wIChBcHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250043</attachid>
            <date>2015-04-02 23:06:05 -0700</date>
            <delta_ts>2015-04-03 00:00:19 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>30864</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA2NWQ1ZTRiMDA4ODFiN2MyNzAwMWI1YTU0MGIzNDAxZDBmMjU2MzFlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAxNDEgKysrKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCAgICAgICB8ICA3OCArKysrKysrKysrKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwICAgIHwgIDI5ICsrKystCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8ICAgOCArKwogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwICAgICAgICAgICAgICAgICAgfCAgIDEgKwogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgICAgICAgICAgfCAxMzUgKysrKysrKysrKysrKysr
KysrLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCAgICAgICAgICAg
IHwgIDE3ICsrLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMu
bW0gICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCAgICAg
ICAgICAgICAgIHwgICA5ICstCiA5IGZpbGVzIGNoYW5nZWQsIDM5OCBpbnNlcnRpb25zKCspLCAy
NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcAppbmRleCBjM2NjZTFjLi4zYzQ2NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTg2Niw2ICs4NjYsMTQ3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmbmRlZiBOREVCVUcKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAm
aW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHBy
aW50ZigiRWRpdDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6Cisg
ICAgICAgIHByaW50ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3
aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoK
KyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVVbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAg
IHByaW50ZigiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAg
ICAgICAgIHByaW50ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlw
aW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZUN1dDoKKyAgICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQ
YXN0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVu
dC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmc6CisgICAgICAgICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAg
ICBwcmludGYoIkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlv
dXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzOgorICAgICAgICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSkgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25v
d246CisgICAgICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFj
dGVyOgorICAgICAgICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29y
ZDoKKyAgICAgICAgICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAg
ICAgICAgICAgIHByaW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAg
ICAgICAgICAgIHByaW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAg
ICAgICAgIHByaW50ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5j
Iik7CisgICAgcHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7
CisgICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaW50ZW50
LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0g
bV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisgICAgLy8gQVhUT0RPIHJlbW92ZSB0aGlzIG9uY2Ug
aW50ZW50cyBhcmUgaW4gZm9yIGVkaXRzCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAgICAgcHJpbnRmKCJiYWlsXG4iKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1
dGVzKCk7CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7Cisg
ICAgc2V0VGV4dFNlbGVjdGlvbkludGVudCgpOworfQorCiBzdGF0aWMgYm9vbCBzYW5pdGl6ZVBh
c3N3b3JkVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHR5cGUsIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKIHsKICAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5pc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDI3N2I5ZGUuLjBlNjQ0YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xOTIsNyArMTkyLDMwIEBA
IHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSB7CiAgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCi0gICAgICAgIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0g
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzCisgICAg
fTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdv
cmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJl
c2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2lu
Z2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5
IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQg
aW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgogICAgIH07CiAKICAgICBlbnVtIEFY
VGV4dEVkaXRUeXBlIHsKQEAgLTIwNSw2ICsyMjgsNTMgQEAgcHVibGljOgogICAgICAgICBBWFRl
eHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKICAgICB9OwogCisgICAgc3RydWN0
IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJl
Y3Rpb247CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5Owor
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0
aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24p
CisgICAgICAgICAgICA6IGRpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgICAgICAgICAsIGdyYW51
bGFyaXR5KGdyYW51bGFyaXR5KQorICAgICAgICB7IH0KKyAgICB9OworCisgICAgc3RydWN0IEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5
cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rp
b247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAg
ICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRT
dGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4
dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFs
c2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNl
bGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0KKworICAgICAg
ICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAg
ICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hh
bmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAg
ICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUs
IGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxl
Y3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAg
ICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0lu
dGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lk
IHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lk
IHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAgICAgLy8gU2ltcGxlIHRleHQgdmFs
dWUgY2hhbmdlCiAgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogICAgIC8vIENvbXBvdW5kIHRleHQgdmFsdWUgY2hh
bmdlIChyZXBsYWNlbWVudCkKQEAgLTI0MSw2ICszMTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWRO
b2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2
b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KTsKICAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKICAgICB2b2lkIHBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAj
ZWxzZQpAQCAtMjg2LDYgKzM1NywxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAg
ICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbklu
dGVudDsKKyNlbmRpZgogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTM0
NCw2ICs0MTksNyBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KgogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9
CiAjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
bihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KIGlubGluZSB2b2lkIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgcG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5Ni4uOGUw
ZDc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDI0IEBAIFBsYWlu
VGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkg
Y29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFu
Z2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRleHRD
b250cm9sKCkpIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFu
Z2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUsIHRydWUpKTsKKyNlbmRpZgogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIp
LnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0
aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7
Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9u
SXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNU
UkVBTSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwg
UG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9
IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9z
aXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxl
Y3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1f
cmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLAorI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3Ro
ID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRy
dWUpCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICk7CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApA
QCAtMTk2MCwxMyArMTk3MCwyMiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNl
dFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlm
IChyYW5nZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVu
dCB0byB1c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0
aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3Rh
cnQgPT0gcmFuZ2UuZW5kKSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5z
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRy
dWUpKTsKKyNlbmRpZgogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1v
dmVUbyhyYW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAg
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFu
Z2Uuc3RhcnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKQorI2VuZGlmCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tCmluZGV4IGVjMGRhZDIuLjRlOTNlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDgsNiArNDgsMTQgQEAK
ICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIK
KyNlbmRpZgorCiAjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKICNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGM0NzcxYmQuLjE0NTMxYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTI4NTksNiArMjg1OSw3IEBAIHZvaWQg
RWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZl
VGV4dElnbm9yZWQpOwogfQogCisvLyBBWFRPRE8gcGFzcyBpbnRlbnQgZm9yIHNlbGVjdGlvbiBj
aGFuZ2UgZnJvbSBjb21tYW5kIChMYXN0IENvbW1hbmQgaW4gYSBDb21wb3NpdGVFZGl0Q29tbWFu
ZCBzaG91bGQgYmUgdGhlIGludGVudCkKIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxl
Y3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKIHsKICAgICAvLyBJZiB0aGUgbmV3
IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYThmMWI0MS4u
ZmEzMWRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAg
LTEzOCw4ICsxMzgsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxl
bWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92
ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dl
cmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNp
YmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwg
cG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0
U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVw
RXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgp
KSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRT
ZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3Zl
VG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4
dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTI1NCw3ICsyNTMsMTkgQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0
aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBncmFudWxhcml0eSk7CisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQ7CisgICAgaWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgIGludGVudCA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
KSk7CisgICAgZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpOworI2VuZGlmCisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwKKyNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAgIGludGVu
dCwKKyNlbmRpZgorICAgICAgICAgICAgICAgIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwg
Z3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRo
b3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlv
blBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBD
dXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBA
IC0yNzYsNyArMjg3LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1l
bnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgp
KSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2Vs
ZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25G
cmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3Vt
ZW50KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsK
KyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBh
bGlnbiwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhh
dCBkdXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFz
IGJlZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJ
blBhcmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25n
ZXIgdmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8g
YmUgZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpA
QCAtMzIwLDcgKzMzMSwxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRo
b3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNv
ckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsCisjZW5kaWYKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwg
VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxh
cml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNTYsMTEgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwg
U2V0U2VsZWN0aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGlu
ZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsK
KyAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAm
JiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbnQKKyNl
bmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAKIHN0YXRpYyB2b2lkIHVw
ZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2
MCw3ICszNzksMTEgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRh
dGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2Vs
ZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExB
VEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudAorI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKIHsKICAgICBpZiAo
IW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzQw
Myw5IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAg
ICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQog
Ci0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOworI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKQpAQCAtMTAxOCw3ICsxMDQz
LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dh
cmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRl
eHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0g
TGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51
bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZy
YW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7
CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBm
YWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7
CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAgICAgICAgICAg
aWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgICAgIGZsaXAg
PSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAgIHN3
aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJv
dW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFyYWdy
YXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50
R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRh
cnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0
ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRl
bmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJh
Z3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFy
eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFy
eToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
c3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2Ug
RGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVj
dGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25C
ZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGly
ZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9v
bCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJl
Y3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dl
cmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc0LDYgKzExNzIsMTMgQEAgYm9vbCBGcmFtZVNl
bGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGly
ZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9u
TW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09B
KQorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4
dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdy
YW51bGFyaXR5KSk7CisgICAgfQorI2VuZGlmCisKICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBv
cGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8g
U2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5
IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMg
YXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcwNyw4ICsx
ODEyLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29u
dGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlv
bihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hv
dWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUFsbCkpOworI2VuZGlmCisgICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgLCBpbnRlbnQKKyNlbmRpZgor
ICAgICAgICAgICAgICAgICAgICApOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBj
bG9zZVR5cGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAw
ZTRlMjhlLi5iOTY5N2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJh
bWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVk
aXRpbmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0
LmgiCkBAIC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBD
bG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxT
ZWxlY3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRp
YyBpbmxpbmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNl
dFNlbGVjdGlvbkludGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBl
eHBsaWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBv
c2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9v
bCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRp
b25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9
IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVy
R3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1
cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFy
aXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBF
QWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2Vs
ZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3
OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQs
IEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlv
bigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAg
ICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiwgU2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFy
aXR5KTsKQEAgLTI5OCw5ICszMDQsOCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGluZURp
cmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwog
CiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZSgpOwotI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJl
Y3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0g
ZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVT
ZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJp
Z2dlcmVkKTsKQEAgLTM2Nyw3ICszNzIsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkludGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi45Y2U0MmEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpA
QCAtNDYsMTQgKzQ2LDE0IEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3Jl
ZW5SZWN0KENHUmVjdCBib3VuZHMpCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAK
LSAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UoKQorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05v
dE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgp
LmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRU
ZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJl
Y2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9S
TShJT1MpCkBAIC04MSw1ICs4MSw2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQogICAgIFVBWm9vbUNoYW5nZUZvY3VzKCZjZ1Zp
ZXdSZWN0LCAmY2dDYXJldFJlY3QsIGtVQVpvb21Gb2N1c1R5cGVJbnNlcnRpb25Qb2ludCk7CiAj
ZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIH0KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggYWU5NGJmNi4uYmNmYTA0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE4Niw3ICszMTg2LDE0
IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUs
IFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBpbnRlbnQgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25EaXNjb250aWd1b3VzKTsKKyNlbmRpZgorICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rp
b24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoVXNlclRyaWdnZXJlZCkKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JN
KENPQ09BKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgaW50ZW50CisjZW5kaWYKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICApOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXli
b2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQp
Ci0tIAoyLjMuMCAoQXBwbGUgR2l0LTU0KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250044</attachid>
            <date>2015-04-02 23:06:42 -0700</date>
            <delta_ts>2015-04-06 17:05:16 -0700</delta_ts>
            <desc>tests</desc>
            <filename>0004-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>1244</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA5N2JjNWE1NjY3YTIyYjliOWQ2MjQxMmZkZTMyMWZkNjRkYmZiYmYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAxMDo0ODo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVGVzdHMKLS0tCiAuLi4vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sICAgIHwgMyArKy0KIDEgZmlsZSBjaGFu
Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXgg
YTFlODQzZS4uMTI2NDZkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1s
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12
YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250
ZW50IGluc2lkZQogICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2
YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5v
dGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9u
IiwgInRydWUiKTsKICAgICB9CiAKLS0gCjIuMy4wIChBcHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250045</attachid>
            <date>2015-04-02 23:06:59 -0700</date>
            <delta_ts>2015-04-06 15:53:38 -0700</delta_ts>
            <desc>debugging</desc>
            <filename>0005-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>2158</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBiOWUxOTY0YmRiZmQ1NjhhMmFjNmJmMWU5MGE1M2ZlOGM3ZWU1YzRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAyMjoxMTowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKRGVidWcgTG9nZ2luZwotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBm
aWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAzYzQ2NTcyLi5mODk1MWExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTk5OCw2
ICs5OTgsMTIgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uKE5vZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hhbmcKICAgICAgICAgcHJpbnRmKCJiYWls
XG4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAKKyNpZm5kZWYgTkRFQlVHIC8vIEFY
VE9ETyByZW1vdmUgbG9nZ2luZworICAgIHByaW50ZigicG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudClcbiIpOworICAgIHNob3dJbnRlbnQoaW50
ZW50KTsKKyAgICBwcmludGYoIlxuIik7CisjZW5kaWYKIAogICAgIHN0b3BDYWNoaW5nQ29tcHV0
ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKQEAgLTEwNDEsNiArMTA0NywxMyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhU
ZXh0RWRpdFR5cGUgdAogCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKIAorI2lmbmRlZiBOREVCVUcgLy8gQVhUT0RPIHJlbW92ZSBsb2dnaW5nCisgICAgcHJpbnRm
KCJwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKEFYVGV4dEVkaXRUeXBlKVxuIik7Cisg
ICAgc2hvd0ludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCh0eXBlKSk7CisgICAgdGV4dC5z
aG93KCk7CisgICAgcHJpbnRmKCJcbiIpOworI2VuZGlmCisKICAgICBTdHJpbmcgc2FuaXRpemVk
VGV4dCA9IHRleHQ7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUo
bm9kZSk7CiAgICAgaWYgKG9iaikgewpAQCAtMTA2NSw2ICsxMDc4LDE5IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRl
eHRFZGl0VHlwZSBkCiAKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygp
OwogCisjaWZuZGVmIE5ERUJVRyAvLyBBWFRPRE8gcmVtb3ZlIGxvZ2dpbmcKKyAgICBwcmludGYo
InBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oKVxuIik7CisgICAgaWYgKGRlbGV0ZWRU
ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgIHNob3dJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoZGVsZXRpb25UeXBlKSk7CisgICAgICAgIGRlbGV0ZWRUZXh0LnNob3coKTsKKyAgICB9Cisg
ICAgaWYgKGluc2VydGVkVGV4dC5sZW5ndGgoKSkgeworICAgICAgICBzaG93SW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KGluc2VydGlvblR5cGUpKTsKKyAgICAgICAgaW5zZXJ0ZWRUZXh0
LnNob3coKTsKKyAgICB9CisgICAgcHJpbnRmKCJcbiIpOworI2VuZGlmCisKICAgICBTdHJpbmcg
c2FuaXRpemVkRGVsZXRlZFRleHQgPSBkZWxldGVkVGV4dDsKICAgICBTdHJpbmcgc2FuaXRpemVk
SW5zZXJ0ZWRUZXh0ID0gaW5zZXJ0ZWRUZXh0OwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotLSAKMi4zLjAgKEFwcGxlIEdpdC01NCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250048</attachid>
            <date>2015-04-03 00:01:12 -0700</date>
            <delta_ts>2015-04-04 13:25:08 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>33908</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA5NWE2N2EwY2RjNzcxMzNmYWM5Mjk5NTYyZGYxMTk4ZGJkNGYxNDg1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAxNDEgKysrKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCAgICAgICB8ICA3OCArKysrKysrKysrKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwICAgIHwgIDI5ICsrKystCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8ICA2NCArKysrKysrKystCiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCAgICAgICAgICB8IDEzNSArKysrKysr
KysrKysrKysrKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oICAg
ICAgICAgICAgfCAgMTcgKystCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVj
dGlvbk1hYy5tbSAgICB8ICAgNyArLQogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwICAgICAgICAgICAgICAgfCAgIDkgKy0KIDkgZmlsZXMgY2hhbmdlZCwgNDUzIGluc2VydGlv
bnMoKyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGMzY2NlMWMuLjNjNDY1NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtODY2LDYgKzg2Niwx
NDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaWZuZGVmIE5ERUJV
Rwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAg
ICAgICAgcHJpbnRmKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1vdmU6OiIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDoKKyAgICAgICAgcHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAg
ICAgICAgICAgcHJpbnRmKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9u
OgorICAgICAgICAgICAgcHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICAgICAgcHJp
bnRmKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBw
cmludGYoIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRj
aCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkJlZ2lubmluZzoKKyAgICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAg
ICAgICAgICAgIHByaW50ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRm
KCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVu
a25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlXb3JkOgorICAgICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmU6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6
CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aDoKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6
CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6Cisg
ICAgICAgICAgICAgICAgcHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAg
ICAgICAgICAgICBwcmludGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHByaW50
ZigiLVN5bmMiKTsKKyAgICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVj
dENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2Rl
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQorICAgICAgICBp
bnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKyAgICAvLyBBWFRPRE8gcmVtb3ZlIHRo
aXMgb25jZSBpbnRlbnRzIGFyZSBpbiBmb3IgZWRpdHMKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0g
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICBwcmludGYoImJhaWxcbiIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVj
dEF0dHJpYnV0ZXMoKTsKKworICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQor
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0
aW9uKTsKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKIHN0YXRpYyBib29sIHNh
bml0aXplUGFzc3dvcmRUZXh0KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iaiwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgU3RyaW5nICZ0ZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIGlmIChvYmouaXNQYXNzd29yZEZpZWxkKCkgfHwg
b2JqLmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggMjc3YjlkZS4uMGU2NDRjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTE5Miw3ICsx
OTIsMzAgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVudW0gQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIHsKICAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKLSAg
ICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAor
ICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKKyAgICB9OworCisg
ICAgZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25Vbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmcsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMKKyAgICB9OworCisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSB7CisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5V29yZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgICAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlQYWdlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50
LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBBbGwgZ3JhbnVsYXJp
dHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hvbGUgZG9jdW1lbnQg
YXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNvbWUgb3RoZXIgZ3Jh
bnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3VtZW50IHdpbGwgbm90
IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24uCiAgICAgfTsKIAogICAg
IGVudW0gQVhUZXh0RWRpdFR5cGUgewpAQCAtMjA1LDYgKzIyOCw1MyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQogICAgIH07CiAKKyAg
ICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHk7CisKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
biBkaXJlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLCBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
VW5rbm93bikKKyAgICAgICAgICAgIDogZGlyZWN0aW9uKGRpcmVjdGlvbikKKyAgICAgICAgICAg
ICwgZ3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCisgICAgICAgIHsgfQorICAgIH07CisKKyAgICBz
dHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2VsZWN0aW9u
IHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAgICAg
fTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29sIHN5
bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxl
Y3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsgfQor
CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkK
KyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAgICAg
ICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAgICB7
IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5
cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAg
ICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3luYyhzeW5j
KQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9p
ZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYKKwor
ICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5nZQor
ICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKICAgICAvLyBTaW1wbGUg
dGV4dCB2YWx1ZSBjaGFuZ2UKICAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAgICAgLy8gQ29tcG91bmQgdGV4dCB2
YWx1ZSBjaGFuZ2UgKHJlcGxhY2VtZW50KQpAQCAtMjQxLDYgKzMxMSw3IEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xk
Rm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpOwogICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogICAgIHZv
aWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKTsKICNlbHNlCkBAIC0yODYsNiArMzU3LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1l
bnQqKTsKICAgICAKICAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2Vs
ZWN0aW9uSW50ZW50OworI2VuZGlmCiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxl
cgpAQCAtMzQ0LDYgKzQxOSw3IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqCiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5v
ZGUqKSB7IH0KICNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogaW5saW5lIHZvaWQg
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDky
OTk2Li44ZTBkNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMjQg
QEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0
UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0
aXZlVGV4dENvbnRyb2woKSkgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOworI2VuZGlmCiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9y
ZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5z
ZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXIt
Pm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6
UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uu
c3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBET1dOU1RSRUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0aW9uKG5vZGUsIHJhbmdl
LnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBQb3NpdGlv
biBwb3MyID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0
aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2libGVTZWxlY3Rpb24gdmlz
aWJsZVNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9zMiwgRE9XTlNUUkVBTSk7
CisgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24odmlzaWJs
ZVNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5n
ZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSkKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgp
IGNvbnN0CkBAIC0xOTYwLDEzICsxOTcwLDIyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7
CiAgICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhl
IGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRo
YXQgcG9zaXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChy
YW5nZS5zdGFydCA9PSByYW5nZS5lbmQpIHsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAg
Y2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSkpOworI2VuZGlmCiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0
aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxz
ZSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVj
dGlvbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5k
ZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpCisjZW5kaWYKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0
Q2FjaGVNYWMubW0KaW5kZXggZWMwZGFkMi4uYmI3MDhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00OCw2ICs0
OCwxOCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5
IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5IgorI2VuZGlmCisKICNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcwog
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFs
dWVzIgogI2VuZGlmCkBAIC0xNzMsNiArMTg1LDU2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmlj
CiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFj
Tm90aWZpY2F0aW9uXTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
bikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAg
IGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiB1
c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1
XTsKKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAgICBzd2l0
Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQ6CisgICAgICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkg
eworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iai0+d3JhcHBlcigpIHRleHRN
YXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBl
bmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlXSA9IHRleHRNYXJrZXJSYW5n
ZTsKKyAgICB9CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5Q2hhbmdlZEVsZW1lbnRdID0g
b2JqLT53cmFwcGVyKCk7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigp
OworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0
LCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5m
byk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25v
dyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5v
dGlmaWNhdGlvbl07Cit9CisKIHN0YXRpYyBOU0RpY3Rpb25hcnkqIHRleHRSZXBsYWNlbWVudENo
YW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBOU1N0cmluZyogdGV4dCA9IChOU1N0cmluZyAqKXN0
cmluZzsKQEAgLTE5NCw3ICsyNTYsNyBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5KiB0ZXh0UmVwbGFj
ZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQQogICAgIH0K
ICAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07CiB9Ci0KKyAgICAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFvYmopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
aW5kZXggYzQ3NzFiZC4uMTQ1MzFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAt
Mjg1OSw2ICsyODU5LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0ln
bm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25G
b3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKKy8vIEFYVE9ETyBwYXNz
IGludGVudCBmb3Igc2VsZWN0aW9uIGNoYW5nZSBmcm9tIGNvbW1hbmQgKExhc3QgQ29tbWFuZCBp
biBhIENvbXBvc2l0ZUVkaXRDb21tYW5kIHNob3VsZCBiZSB0aGUgaW50ZW50KQogdm9pZCBFZGl0
b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBu
ZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
KQogewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0
IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcAppbmRleCBhOGYxYjQxLi5mYTMxZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTM4LDggKzEzOCw3IEBAIEVsZW1lbnQqIEZyYW1lU2Vs
ZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogCiB2
b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVV
c2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7
Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCks
IHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJl
Y3Rpb25hbCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdn
ZXJlZCksIGFsaWduKTsKKyAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVl
cEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3Nl
bGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2Vy
VHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAKIHZv
aWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVk
KQpAQCAtMjU0LDcgKzI1MywxOSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25C
eU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmICht
X3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGln
bkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAgICAKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQo
KSkKKyAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKTsKKyAgICBlbHNlCisgICAgICAgIGludGVudCA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisjZW5kaWYKKyAgICBzZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmly
ZVNlbGVjdEV2ZW50LAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0Ep
CisgICAgICAgICAgICAgICAgaW50ZW50LAorI2VuZGlmCisgICAgICAgICAgICAgICAgQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxl
Y3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODcsNyBAQCBib29sIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVT
ZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxl
Y3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3
U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAg
ICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9j
dW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVj
dGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25z
LCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1l
LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAg
ICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwg
dGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAg
IC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0
aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8v
IHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2Us
IGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzMxLDExIEBAIGJvb2wgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlv
bk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
LAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudCwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAg
ICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwg
b3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcg
KzM1NiwxMSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYg
ZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0
ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludGVudAorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5
bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM3OSwxMSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9u
KCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oCisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAg
ICByZXR1cm47CkBAIC0zODAsNyArNDAzLDkgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwg
UmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKCk7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkK
KyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CisjZW5k
aWYKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVj
dGlvbigpCkBAIC0xMDE4LDcgKzEwNDMsODAgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0
aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0
YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAg
IHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFy
YWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAg
Cit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQo
RUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVj
dGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNS
YW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwp
CisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAg
ICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hh
cmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0
eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBj
YXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFw
aEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91
bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJp
dHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51
bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFu
dWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1l
bnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5
OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6Cisg
ICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGly
ZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91
bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rp
b25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFy
eSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGlu
dGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRp
b24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzQsNiAr
MTE3MiwxMyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIs
IFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1Jhbmdl
ICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQ
b3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAg
ICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRl
bnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisjZW5kaWYKKwogICAg
IC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFy
cm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQs
IHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUg
U1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0
IHdvdWxkIGJlCkBAIC0xNzA3LDggKzE4MTIsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxl
Y3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBp
ZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2Vs
ZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkg
eworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uKEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisjZW5kaWYKKyAgICAg
ICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSB8IEZpcmVTZWxlY3RFdmVudAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAg
ICAgICAsIGludGVudAorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgfQogfQog
CiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFm
ZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLmI5Njk3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVT
ZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1
c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsK
ICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51
bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhv
dXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2Vs
ZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygp
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0
R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9w
dGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29y
QWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFy
aXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0
U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVt
IEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0
U2VsZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVj
dGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGln
bk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCw4IEBAIHByaXZhdGU6
CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmln
YXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9p
ZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7Ci0jZWxzZQotICAgIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFs
dGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vu
ZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVU
ZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3Miw3IEBAIGlubGlu
ZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdT
dHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJh
bWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5s
aW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KQogewogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmlu
ZGV4IDliZGVlMWMuLjljZTQyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NiwxNCArNDYsMTQgQEAgc3RhdGljIENHUmVjdCBh
Y2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKIH0KICNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TKQogICAgIAotICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmICht
X3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90
TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0
aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhP
YmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50
KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1f
c2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7
CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTgxLDUgKzgxLDYgQEAgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCiAgICAg
VUFab29tQ2hhbmdlRm9jdXMoJmNnVmlld1JlY3QsICZjZ0NhcmV0UmVjdCwga1VBWm9vbUZvY3Vz
VHlwZUluc2VydGlvblBvaW50KTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogfQorI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCBhZTk0YmY2Li5iY2ZhMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC0zMTg2LDcgKzMxODYsMTQgQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJk
U2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9z
aXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJp
Z2dlcmVkKSk7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAg
ICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpOworI2VuZGlmCisg
ICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKQorI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLCBpbnRlbnQKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAK
IHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1l
LCBLZXlib2FyZEV2ZW50KiBldmVudCkKLS0gCjIuMy4wIChBcHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250136</attachid>
            <date>2015-04-04 13:24:13 -0700</date>
            <delta_ts>2015-04-06 15:52:03 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>53538</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBlNTA1NDVmOWEyMjk4YzM5NGY4Mzc2NGRiNzJjNmEyMjgyYTRlYTkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAgODkgKysrKysrKysrKysr
KysrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggICAgICAg
fCAgNDYgKysrKysrKystCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAgICAgICB8ICA0MSArKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuaCAgICAgICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggfCAgIDIgKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSAgfCAgIDYgKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gIHwgMTEyICsrKysrKysrKysrKysrKysrKysr
LQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oICAgICAgICAgfCAg
IDMgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgICAgICAg
fCAgMjcgKysrKy0KIC4uLi9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICAgICAgIHwgICA3ICsrCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCB8ICAgNiArKwogLi4uL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAgfCAgMzMgKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICAxMCArLQogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgfCAgIDcgKysKIC4uLi9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgIHwgICA0ICsKIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuY3BwICAgICAgICAgICAgIHwgIDMyICsrKysrKwogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oICAgICAgICAgICAgICAgfCAgMTIgKysrCiAuLi4v
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICB8ICAzMyArKysr
LS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIHwg
IDExICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCB8ICAzNCArKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmggICB8ICAxMSArLQogLi4uL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgICAgICAgfCAgIDcgKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIHwgICA0ICsKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAgICAgIHwgICA3ICsrCiAuLi4vUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICAgICAgICB8ICAgNSArCiAuLi4vZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgICB8ICAgNiArKwogLi4uL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAgICAgfCAgIDUgKwogLi4uL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgfCAgNDYgKysrKysrKysrCiAuLi4v
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICAxMSArKwog
Li4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICAgfCAgIDcg
KysKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAgIHwg
ICA0ICsKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAgICAg
IHwgICA3ICsrCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAg
ICAgICB8ICAgNCArCiAuLi4vVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICAgICB8ICAgNyArKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggICAgICAgfCAgIDQgKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAgfCAgMTIgKystCiAzNiBmaWxlcyBjaGFuZ2VkLCA2MTEgaW5zZXJ0aW9u
cygrKSwgNTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uZTJkOWVkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xMjksNiArMTI5LDcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmls
aXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9u
UG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmly
ZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmpl
Y3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAt
NzQyLDYgKzc0MywyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVjdCgp
KTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Q
b3N0VGltZXJGaXJlZCgpCit7CisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5z
dG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5k
ZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBj
YW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0
aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0
IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29y
ZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RlIDogbm90
aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0K
KyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0
PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3RlKSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZp
c2libGVQb3NpdGlvbigpKTsKKyAgICB9Cit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90
aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpA
QCAtODUwLDYgKzg2NSw2OCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5D
aGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5k
ZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7
CiB9CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK3N0YXRpYyBib29sIHNhbml0aXplUGFzc3dvcmRU
ZXh0KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iaiwgU3RyaW5nICZ0ZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmIChvYmouaXNQYXNzd29yZEZpZWxk
KCkgfHwgb2JqLmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKKyAgICAgICAgdGV4dCA9
IG9iai5wYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpLT5wYXNzd29yZEZp
ZWxkVmFsdWUoKS5zdWJzdHJpbmcocG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVk
RWRpdGluZ09mZnNldCgpLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworLy8gQVhUT0RPIG1ha2Ugc3VyZSB0aGF0IGFz
c3VtcHRpb24gdGhhdCBwb3NpdGlvbiBjYW4gYmUgdXNlZCB0byBzZWUgaWYgYSBjaGFuZ2UgaXMg
YXQgdGhlIHNhbWUgbG9jYXRpb24gYXMgdGhlIGNhcmV0IGhvbGRzIChwb3NpdGlvbiBpcyBjcmVh
dGVkIHdpdGggYSBjaGlsZCBub2RlIGluIHNvbWUgY2FzZXMsIHdoaWNoIEkgdGhpbmsgaXMgZmlu
ZSwgYnV0IG5lZWQgdG8gbWFrZSBzdXJlKQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4
dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmli
dXRlcygpOworCisgICAgU3RyaW5nIHNhbml0aXplZFRleHQgPSB0ZXh0OworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAg
ICAgICAgaWYgKHNhbml0aXplUGFzc3dvcmRUZXh0KCpvYmosIHNhbml0aXplZFRleHQsIHBvc2l0
aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5k
KHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgdHlwZSwgc2FuaXRpemVk
VGV4dCkpOworICAgICAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVy
LmlzQWN0aXZlKCkpCisgICAgICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIC8v
IERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHR5cGUsIHNhbml0aXplZFRleHQsIHBvc2l0aW9uKTsK
K30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBk
ZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBp
bnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYg
KCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRp
dFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBp
bnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0
QXR0cmlidXRlcygpOworCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRl
ZFRleHQ7CisgICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsK
KyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBp
ZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6
ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlm
aWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmpl
Y3QoKSwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAg
ICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgw
LjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJp
Z2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwg
c2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7Cit9CisjZWxzZQogdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFu
Z2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAg
ICAgaWYgKCFub2RlKQpAQCAtODYxLDYgKzkzOCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFu
CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CiAgICAg
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNl
dCwgdGV4dCk7CiB9CisjZW5kaWYKIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdF
dmVudE5vdGlmaWNhdGlvbihGcmFtZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVu
dCkKIHsKQEAgLTEwODQsNiArMTE2MiwxNyBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUq
IG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9i
amVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7CisgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3Qg
KnJvb3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKEFjY2Vzc2li
aWxpdHlPYmplY3QgKmZpcnN0Q2hpbGQgPSByb290T2JqZWN0LT5maXJzdENoaWxkKCkpIHsKKyAg
ICAgICAgICAgIGlmIChmaXJzdENoaWxkLT5pc1dlYkFyZWEoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmlyc3RDaGlsZDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRlQ2FjaGVFbmFibGVyKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggYmZhOTI3Ny4uZjQ5ZjZl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAg
LTE4OSwxMiArMTg5LDM0IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9k
ZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUg
PSBQb3N0QXN5bmNocm9ub3VzbHkpOwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRh
cmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAorI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdAorICAgIH07CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICAgICAgQVhUZXh0
RWRpdFR5cGVVbmtub3duLAorICAgICAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJp
YyB0ZXh0IGRlbGV0ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0
ZXh0IGluc2VydAorICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0
eXBpbmcKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGlj
dGF0aW9uCisgICAgICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAg
ICAgICBBWFRleHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKKyAgICB9OworCisg
ICAgLy8gU2ltcGxlIHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UK
KyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQogICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKICAg
ICAgICAgQVhUZXh0SW5zZXJ0ZWQsCiAgICAgICAgIEFYVGV4dERlbGV0ZWQsCiAgICAgfTsKIAot
ICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KTsKKyNlbmRpZgogCiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGlu
Z1N0YXJ0ZWQsCkBAIC0yMTgsNyArMjQwLDEzIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24p
OwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBv
bGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4
dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRD
aGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKyNlbHNlCisgICAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVu
dCk7CiAgICAgdm9pZCB0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9p
ZCBsYWJlbENoYW5nZWQoRWxlbWVudCopOwpAQCAtMjI5LDYgKzI1Nyw4IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVz
LmNvbnRhaW5zKG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9v
dFdlYkFyZWEoKTsKKyAgICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFw
PEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hN
YXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYg
KzI3NCwxMSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwog
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlm
aWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCk7CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRp
bWVyOworICAgIFZlY3RvcjxzdGQ6OnR1cGxlPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhUZXh0RWRpdFR5cGUsIFN0cmluZz4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0Owor
ICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAgdm9p
ZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVh
dGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpAQCAt
MzA4LDggKzM0MywxNSBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxi
YXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFu
ZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVj
dCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hv
cihjb25zdCBOb2RlKikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIHsgfQoraW5saW5lIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3Vt
ZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3Rp
ZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLmFjMzhmMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDQ3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVu
dC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgp
IGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0
RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2Fz
dDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAo
RWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8
SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNh
Y2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUo
KTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAo
YXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7Cisg
ICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAg
aWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxl
bWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBp
ZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVy
biBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiBib29sIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0
aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uN2RiZDU5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
SW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29u
dHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJhLi5i
NTY5NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250
YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJl
YVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FY
T2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi4wOTg3ZjQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1
LDcgKzk1LDExIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigp
IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0K
IAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKQordm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKQoreworfQorCit2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCAyYzc0NDMwLi4yYzRkM2JlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAg
LTQ0LDYgKzQ0LDQyIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVk
Tm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rp
b25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRp
dFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
cyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUg
QCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hh
bmdlRWxlbWVudCIKKyNlbmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMg
ZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0x
NTcsOCArMTkzLDgyIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBl
cigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsKIH0K
IAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKQorc3RhdGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFy
eShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5T
VUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBbW05TTXV0
YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05T
QWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBO
U1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVu
Y2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5n
VG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisg
ICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAg
ICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIg
PSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0p
CisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRN
YXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVh
c2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
IHsKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlm
ICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNo
YW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBs
YWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAg
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2Vd
OworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0
YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9z
dE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hh
bmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKwor
ICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQu
CisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJp
bGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0
ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2Vy
dGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9i
aikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAg
ICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRh
YmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxl
QXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAq
Y2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlw
ZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNo
YW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hh
bmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24p
KQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVs
ZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1
c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAg
IGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxp
dHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFs
dWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2Vd
OworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBv
c3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nl
c3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAog
CiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxl
UG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3Np
dGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1h
cmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2
aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IDJkZTZkYmYuLjNhYjM5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNp
bmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNDgsNyArNDksMTEgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBB
U1NFUlQobV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVy
KCkpOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hh
bmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSB0eXBlLCAgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQorI2Vsc2UKIHN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2Us
ICBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKKyNlbmRpZgogewogICAgIGlm
ICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtNTgsNyArNjMsMTEgQEAgc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmlu
Z0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXgKICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGNhY2hl
LT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0
aW9uKTsKKyNlbHNlCiAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihu
b2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisjZW5kaWYKIH0KIAogdm9pZCBBcHBlbmROb2Rl
Q29tbWFuZDo6ZG9BcHBseSgpCkBAIC02OCwxNiArNzcsMzAgQEAgdm9pZCBBcHBlbmROb2RlQ29t
bWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgp
LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5l
QnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fbm9k
ZS0+bm9kZVZhbHVlKCksIDApOworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1fbm9kZS5nZXQoKSkg
PyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX25vZGUuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2Fj
eUVkaXRpbmdQb3NpdGlvbihtX25vZGUuZ2V0KCksIDApOzsKKyAgICBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlSW5zZXJ0LCBtX25vZGUtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRp
b24pKTsKKyNlbHNlCisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgbV9ub2RlLT5u
b2RlVmFsdWUoKSwgMCk7CisjZW5kaWYKKyNlbmRpZgogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUo
KSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRo
aXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0CisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4
dD4obV9ub2RlLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1fbm9kZS5nZXQoKSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1fbm9kZS5nZXQoKSwgMCk7OworICAg
IHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fbm9kZS0+bm9kZVZhbHVlKCksIFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbikpOworI2Vsc2UKICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9y
aW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQs
IG1fbm9kZS0+bm9kZVZhbHVlKCksIDApOworI2VuZGlmCisjZW5kaWYKIAogICAgIG1fbm9kZS0+
cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggYmNmZDI0YS4u
M2IyNmU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSwxMSBAQCBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZQogewogfQogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShD
T0NPQSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlQ3V0OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKaW5kZXggNGRmNTc5MS4uNzc2NjkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM5LDYgKzM5LDEyIEBA
IHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlUeXBlKCkgb3ZlcnJpZGU7CisjZW5kaWYKKwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTk3ZjQ5Yy4uYTRlN2U2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC01MiwxNSArNTIsNiBAQCBTdHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKICAgICByZXR1cm4gbV90ZXh0OwogfQogCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKLXsK
LSAgICBpZiAobm9kZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQot
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lk
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIEFTU0VSVChtX25v
ZGUpOwpAQCAtNzIsMTEgKzYzLDE1IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSgpCiAgICAgbV90ZXh0ID0gbV9ub2RlLT5zdWJzdHJpbmdEYXRhKG1fb2Zmc2V0LCBt
X2NvdW50LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47Ci0gICAgCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0
dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2Rl
LmdldCgpLCBhcHBseVR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9u
b2RlLCBtX29mZnNldCkpKTsKKyNlbHNlCiAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX3RleHQs
IG1fb2Zmc2V0KTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9v
ZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTkxLDggKzg2LDEyIEBAIHZvaWQgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICBtX25vZGUtPmluc2VydERhdGEobV9v
ZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlv
bihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOworI2Vsc2UKICAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dElu
c2VydGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKICNlbmRpZgorI2VuZGlmCiB9CiAKICNpZm5kZWYg
TkRFQlVHCkBAIC0xMDEsNSArMTAwLDE3IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogICAgIGFkZE5vZGVB
bmREZXNjZW5kYW50cyhtX25vZGUuZ2V0KCksIG5vZGVzKTsKIH0KICNlbmRpZgorICAgIAorI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseVR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5h
cHBseVR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydDsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDRlNDdj
ZjkuLjY1MDQyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oCkBAIC00NSw5ICs0NSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCB1bnNpZ25lZCk7CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRDaGFuZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkKTsKLSNlbmRpZgogcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CkBAIC01Niw3ICs1MywxMiBA
QCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseVR5cGUoKSBvdmVycmlkZTsKKyNl
bmRpZgorCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsK
ICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNzVm
NjFiMC4uMTMzMmNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNyw0ICszNywx
MSBAQCBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdAogewogfQogCisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKSAmJiBQTEFURk9STShDT0NPQSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5VHlwZSgpCit7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorI2VuZGlmCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggZmU1NDUx
MC4uOTVhZjJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM5LDYgKzM5LDEwIEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5VHlwZSgpIG92ZXJyaWRl
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjEyMTBjNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0xMjQsNSArMTI0LDM3IEBAIHZvaWQgU2ltcGxl
RWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hT
ZXQ8Tm9kZSo+JiBuCiAgICAgICAgIG5vZGVzLmFkZChub2RlKTsKIH0KICNlbmRpZgorICAgIAor
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyNpZiBQTEFURk9STShDT0NPQSkKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBseVR5cGUoKQoreworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVVua25vd247Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBs
ZUVkaXRDb21tYW5kOjp1bmFwcGx5VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwor
dm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorI2Vsc2UKK3ZvaWQg
U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUq
IG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYg
dGV4dCwgdW5zaWduZWQgb2Zmc2V0KQorI2VuZGlmCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlm
ICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBjYWNo
ZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3Np
dGlvbik7CisjZWxzZQorICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2Rl
LCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisjZW5kaWYKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMz
Ny4uNmNhMjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjcsNiAr
MjcsOCBAQAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgi
CisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlv
bi5oIgogCiAjaWZuZGVmIE5ERUJVRwpAQCAtOTcsNiArOTksMTYgQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2Vu
ZGlmCiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseVR5cGUoKTsKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlUeXBlKCk7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisjZWxzZQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQpOworI2VuZGlmCisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNT
aW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAppbmRleCA5ZjA5MDI3Li5lMjk0NjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTU2LDE1ICs1Niw2IEBA
IFN0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKICAgICBy
ZXR1cm4gbV90ZXh0OwogfQogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotdm9pZCBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcm
IHRleHQsIHVuc2lnbmVkIG9mZnNldCkKLXsKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0j
ZW5kaWYKLQogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAg
ICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRF
Y2hvRW5hYmxlZCgpOwpAQCAtODIsOCArNzMsMTIgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KCkKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4
dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgYXBwbHlUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9u
KG1fbm9kZSwgbV9vZmZzZXQpKSk7CisjZWxzZQogICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1f
dGV4dCwgbV9vZmZzZXQpOwogI2VuZGlmCisjZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKElPUykK
QEAgLTk4LDExICs5MywxNSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKwogICAgIC8vIE5lZWQgdG8g
bm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0CisjaWYgSEFWRShB
Q0NFU1NJQklMSVRZKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseVR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKKyNlbHNlCiAgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHREZWxldGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKICNlbmRpZgorI2VuZGlmCiAKICAg
ICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiB9CkBAIC0xMTMsNSArMTEyLDE3IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogICAgIGFk
ZE5vZGVBbmREZXNjZW5kYW50cyhtX25vZGUuZ2V0KCksIG5vZGVzKTsKIH0KICNlbmRpZgorICAg
IAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseVR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6dW5hcHBseVR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZURlbGV0ZTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4
IDVjYTJkOTYuLmQwY2Y0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC00NCwxMCArNDQsNiBAQCBwdWJsaWM6CiBwcm90
ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAotI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwg
dW5zaWduZWQpOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC01
OCw3ICs1NCwxMiBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAg
IAorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5VHlwZSgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseVR5cGUoKSBv
dmVycmlkZTsKKyNlbmRpZgorCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25l
ZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCAwY2I4YWRjLi40NWQ0NGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhv
bGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIK
KyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDksMTUgKzUwLDYgQEAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Oklu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFAKICAg
ICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwg
IW1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKSk7CiB9CiAKLSNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCi12b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFu
Z2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKLXsKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFu
Z2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbV9yZWZDaGls
ZC0+cGFyZW50Tm9kZSgpOwpAQCAtNjgsOCArNjAsMTMgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGls
ZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKICNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUG9zaXRpb24gcG9zaXRp
b24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRl
eHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlv
bihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseVR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+
bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworI2Vsc2UKICAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIDApOwog
I2VuZGlmCisjZW5kaWYKIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKQEAgLTc3LDEwICs3NCwxNSBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b1VuYXBwbHkoKQogICAgIGlmICghaXNFZGl0YWJsZU5vZGUoKm1faW5zZXJ0Q2hpbGQpKQogICAg
ICAgICByZXR1cm47CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0byBu
b3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUG9zaXRpb24gcG9zaXRpb24g
PSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+
KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbiht
X2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5VHlwZSgpLCBtX2luc2VydENoaWxkLT5u
b2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisjZWxzZQogICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKICNl
bmRpZgorI2VuZGlmCiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CkBAIC05Myw0ICs5NSwxNiBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
OworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaAppbmRleCAzNzVkMDk5Li41NmZlNDhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC00MiwxMCArNDIs
NiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAotI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UsIGNvbnN0IFN0cmluZyYsIHVu
c2lnbmVkKTsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNTMs
NyArNDksMTIgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAK
KworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseVR5cGUoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlUeXBlKCkgb3Zl
cnJpZGU7CisjZW5kaWYKKwogICAgIFJlZlB0cjxOb2RlPiBtX2luc2VydENoaWxkOwogICAgIFJl
ZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAppbmRleCBhYzBjM2NiLi4xMjQxZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTM0LDUgKzM0LDEy
IEBAIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlCiAgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQogewogfQorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09D
T0EpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjphcHBseVR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVBhc3RlOworfQorI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZTczYWY3Yy4uMGJk
MDdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKQEAgLTQwLDYgKzQwLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseVR5cGUoKSBvdmVycmlkZTsKKyNlbmRpZgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKaW5kZXggMzQwN2I0My4uNWQxYzkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0zNSw0ICszNSwxMSBAQCBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhcwogewogfQogCisj
aWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5SW5zZXJ0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlUGFzdGU7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaAppbmRleCBhNGNmNDFlLi5jYmE4ZWFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMzksNiArMzksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKICAgICB9CiAKK3Byb3RlY3RlZDoKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlJbnNlcnRUeXBlKCkgb3ZlcnJpZGU7CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDg5OGIwMTcuLjVkNzUyMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSwxMCBAQCBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZQogewogfQogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkK
K3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggZGZkOGUzZS4uNDgwMzBj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDIsNiArNDIsMTEgQEAgcHVibGljOgogCiBwcm90
ZWN0ZWQ6CiAgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworI2VuZGlm
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4
IDg3YTYyZjguLjZjOTljMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNiw1ICszNiw1
MSBAQCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZQogICAgICwgbV9kZWxldGVkVGV4dChkZWxldGVk
VGV4dCkKIHsKIH0KKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENP
Q09BKQordm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBv
c2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1
cm47CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVVua25vd246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1
dDoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNh
c2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRp
b24obm9kZSwgdW5hcHBseURlbGV0ZVR5cGUoKSwgdGV4dCwgdW5hcHBseUluc2VydFR5cGUoKSwg
bV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNoZS0+cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBhcHBseURlbGV0ZVR5cGUoKSwgbV9kZWxldGVk
VGV4dCwgYXBwbHlJbnNlcnRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlJbnNlcnRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseURlbGV0
ZVR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0
ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlJbnNlcnRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RGVsZXRl
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
OworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApp
bmRleCBkOWZmNWJlLi42Y2RiZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC00Myw3ICs0Mywx
OCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOwogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5SW5zZXJ0VHlwZSgp
OworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlEZWxldGVU
eXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
SW5zZXJ0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
dW5hcHBseURlbGV0ZVR5cGUoKTsKKyNlbmRpZgorCiBwcml2YXRlOgorI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisjZW5k
aWYKKwogICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
aW5kZXggM2JmYjk3ZC4uNjZjMDQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNyw0ICsz
NywxMSBAQCBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dAogewogfQogCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5VHlwZSgpCit7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggYjQwNzQ5OC4uZWU5NmYx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM4LDYgKzM4LDEwIEBAIHB1YmxpYzoKICAgICB9CiBw
cml2YXRlOgogICAgIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KSAmJiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIGFwcGx5VHlwZSgpIG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IDMwYTRkY2YuLmM4ZGE5ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCkBAIC0zNSw0ICszNSwxMSBAQCBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbgogewog
fQogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eVR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGlu
ZzsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggYzQ0MjE5MS4uOWNiNjAzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaApAQCAtNDAsNiArNDAsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8
Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseVR5cGUoKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApp
bmRleCA3YWMzY2EzLi4yNWJhN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cApAQCAtMzUsNCArMzUsMTEgQEAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFAKIHsKIH0KIAorI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBw
bHlJbnNlcnRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVUeXBpbmc7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDIzZmYzYTIuLjM0N2E1YjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKQEAgLTQxLDYgKzQxLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlJbnNlcnRUeXBlKCkgb3ZlcnJpZGU7CisjZW5kaWYK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uNWJmYjY0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0No
YW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3Ry
aW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAg
Ym9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4
dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5n
ZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBj
YWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdl
ZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBp
bm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAg
ICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQog
ICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVu
ZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1l
bnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9zaXRpb246
OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAog
ICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7Ci0tIAoyLjMuMCAo
QXBwbGUgR2l0LTU0KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250137</attachid>
            <date>2015-04-04 13:25:08 -0700</date>
            <delta_ts>2015-04-06 15:52:48 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>33826</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAxNzk2ZGUzODU3ZWI0NDE2NDdjZmE0MWE2NWI0ZDYxYjg4NDg4YzBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAxNDYgKysrKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCAgICAgICB8ICA3OSArKysrKysrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgICAgfCAgMjkgKysrLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSAgfCAgNTcgKysrKysrKysKIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcCAgICAgICAgICAgICAgICAgIHwgICAxICsKIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwICAgICAgICAgIHwgMTM1ICsrKysrKysrKysr
KysrKysrLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCAgICAgICAg
ICAgIHwgIDE3ICsrLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25N
YWMubW0gICAgfCAgIDcgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCAg
ICAgICAgICAgICAgIHwgICA5ICstCiA5IGZpbGVzIGNoYW5nZWQsIDQ1MyBpbnNlcnRpb25zKCsp
LCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAppbmRleCBlMmQ5ZWQzLi4xOWNlZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTg2Niw2ICs4NjYsMTUyIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmbmRlZiBOREVCVUcKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAg
IHByaW50ZigiRWRpdDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6
CisgICAgICAgIHByaW50ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVu
a25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAg
ICAgIHByaW50ZigiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAg
ICAgICAgICAgIHByaW50ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50Zigi
VHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRm
KCJQYXN0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGlu
dGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmc6CisgICAgICAgICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAg
ICAgICBwcmludGYoIkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJl
dmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzOgorICAgICAgICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3du
OgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFu
dWxhcml0eSkgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVu
a25vd246CisgICAgICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyOgorICAgICAgICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
V29yZDoKKyAgICAgICAgICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6Cisg
ICAgICAgICAgICAgICAgcHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAg
ICAgICAgICAgIHByaW50ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1T
eW5jIik7CisgICAgcHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQp
Cit7CisgICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaW50
ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50
ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisgICAgLy8gQVhUT0RPIHJlbW92ZSB0aGlzIG9u
Y2UgaW50ZW50cyBhcmUgaW4gZm9yIGVkaXRzCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAg
ICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3
b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNl
cnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBs
YXRmb3JtCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwg
aW50ZW50LCBzZWxlY3Rpb24pOworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoKTsKK30KKwog
c3RhdGljIGJvb2wgc2FuaXRpemVQYXNzd29yZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVj
dCYgb2JqLCBTdHJpbmcgJnRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7
CiAgICAgaWYgKG9iai5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBhc3N3
b3JkRmllbGQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAppbmRleCBmNDlmNmU2Li5iYWMwNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTkyLDcgKzE5MiwzMCBAQCBwdWJsaWM6CiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgewogICAgICAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAotICAgICAgICBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorICAgIH07CisKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cworICAgIH07CisKKyAgICBlbnVt
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rp
b24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4
dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNv
bXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51
bGFyaXR5IG5vdGlmaWNhdGlvbi4KICAgICB9OwogCiAgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7
CkBAIC0yMDUsNiArMjI4LDUzIEBAIHB1YmxpYzoKICAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0
ZSAvLyBJbnNlcnQgdmlhIFBhc3RlCiAgICAgfTsKIAorICAgIHN0cnVjdCBBWFRleHRTZWxlY3Rp
b24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAgICAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eTsKKworICAgICAgICBBWFRl
eHRTZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd24sIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51
bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duKQorICAgICAgICAgICAg
OiBkaXJlY3Rpb24oZGlyZWN0aW9uKQorICAgICAgICAgICAgLCBncmFudWxhcml0eShncmFudWxh
cml0eSkKKyAgICAgICAgeyB9CisgICAgfTsKKworICAgIHN0cnVjdCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAgICAgICB1
bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uOworICAgICAgICAg
ICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgICAgICB9OworICAgICAgICBib29sIHN5bmM7
CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
IHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rpb24gc2Vs
ZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJvb2wgc3luYyA9IGZhbHNlKQorICAgICAgICAg
ICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihzZWxlY3Rpb24pCisgICAg
ICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQorICAgICAgICAgICAgOiB0eXBlKEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICAgICAsIGNoYW5nZShjaGFuZ2UpCisg
ICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIHN5bmMpCisg
ICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKEFYVGV4dFNl
bGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwg
dHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAgICAgICB9
CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0U2VsZWN0
aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYpOwogICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQogICAg
IHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogICAgIC8vIENvbXBv
dW5kIHRleHQgdmFsdWUgY2hhbmdlCkBAIC0yNDEsNiArMzExLDcgQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1
c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJik7CiAgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKICAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKTsKICNlbHNlCkBAIC0yODYsNiArMzU3LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGlj
IEFjY2Vzc2liaWxpdHlPYmplY3QqIGZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVs
ZW1lbnQqKTsKICAgICAKICAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0
U2VsZWN0aW9uSW50ZW50OworI2VuZGlmCiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5h
YmxlcgpAQCAtMzQ0LDggKzQxOSwxMCBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KgogaW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25z
dCBOb2RlKikgeyB9CiAjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGlu
ZSB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKSB7IH0KIGlubGluZSB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgcG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJk
OTI5OTYuLjhlMGQ3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwy
NCBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRl
eHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVj
dGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNO
YXRpdmVUZXh0Q29udHJvbCgpKSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hl
LT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CisjZW5kaWYKICAgICAgICAgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCpt
X3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAgIHRleHRDb250cm9s
LnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0
aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJl
ci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0
aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9u
OjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAotICAgICAgICBQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
ciksIERPV05TVFJFQU0pKTsKKyAgICBQb3NpdGlvbiBwb3MxID0gUG9zaXRpb24obm9kZSwgcmFu
Z2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFBvc2l0
aW9uIHBvczIgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9z
aXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgVmlzaWJsZVNlbGVjdGlvbiB2
aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MxLCBwb3MyLCBET1dOU1RSRUFN
KTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbih2aXNp
YmxlU2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJh
bmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCB0cnVlKQorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICApOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJs
KCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NzAsMjIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MK
IHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0
aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8g
dGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYg
KHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCB0cnVlKSk7CisjZW5kaWYKICAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAgIH0KICAgICBl
bHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2Vs
ZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRlcmVyLT5mcmFt
ZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBtX3Jl
bmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZy
YW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLAorI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkKKyNlbmRpZgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbQppbmRleCAyYzRkM2JlLi40NjBhYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ4LDYg
KzQ4LDEwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkg
QCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNL
ZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKwogI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rp
b25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCiAjZW5kaWYKQEAgLTgwLDYg
Kzg0LDEwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhU
ZXh0Q2hhbmdlRWxlbWVudCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIK
KyNlbmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0
aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xOTMsNiArMjAxLDU1
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsKIH0KIAordm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAg
b2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisK
KyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFy
eSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAg
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAg
ICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAo
aW50ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNh
c2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlv
bi5kaXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3du
OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJl
dmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6Cisg
ICAgICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2Nv
bnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBp
ZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZy
b21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpz
ZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5nZTsK
KyAgICB9CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0g
b2JqLT53cmFwcGVyKCk7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigp
OworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0
LCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5m
byk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25v
dyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5v
dGlmaWNhdGlvbl07Cit9CisKIHN0YXRpYyBOU0RpY3Rpb25hcnkqIHRleHRSZXBsYWNlbWVudENo
YW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBOU1N0cmluZyogdGV4dCA9IChOU1N0cmluZyAqKXN0
cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBjNDc3MWJkLi4xNDUzMWM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yODU5LDYgKzI4NTksNyBAQCB2b2lkIEVk
aXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRl
eHRJZ25vcmVkKTsKIH0KIAorLy8gQVhUT0RPIHBhc3MgaW50ZW50IGZvciBzZWxlY3Rpb24gY2hh
bmdlIGZyb20gY29tbWFuZCAoTGFzdCBDb21tYW5kIGluIGEgQ29tcG9zaXRlRWRpdENvbW1hbmQg
c2hvdWxkIGJlIHRoZSBpbnRlbnQpCiB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJD
b21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0
aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBz
ZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLmZh
MzFkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0x
MzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1l
bnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVU
byhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJl
ZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBv
cy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNl
bGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVx
dWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSks
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRv
KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRl
bnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE5IEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlv
biB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwg
Z3JhbnVsYXJpdHkpOworICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0o
Q09DT0EpCisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
OworICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJldCgpKQorICAgICAgICBpbnRlbnQgPSBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykp
OworICAgIGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoKTsKKyNlbmRpZgorICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsCisjaWYgSEFWRShB
Q0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICBpbnRlbnQs
CisjZW5kaWYKKyAgICAgICAgICAgICAgICBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdy
YW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Q
b3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vy
c29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAt
Mjc2LDcgKzI4Nyw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50
KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkg
ewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVj
dGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJh
bWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVu
dCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7Cisg
ICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxp
Z24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQg
ZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBi
ZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5Q
YXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2Vy
IHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJl
IGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAg
LTMyMCw3ICszMzEsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JB
bGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LAorI2VuZGlmCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRl
eHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhv
dXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJp
dHkpKQogICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzU2LDExIEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNl
dFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmco
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7Cisg
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
UExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZW50CisjZW5k
aWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogfQogCiBzdGF0aWMgdm9pZCB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAs
NyArMzc5LDExIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRl
KCkKICAgICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRG
T1JNKENPQ09BKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQKKyNlbmRpZgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiB7CiAgICAgaWYgKCFt
X3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3ICs0MDMs
OSBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQogICAg
ICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KIAot
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKKyNlbmRpZgogfQogCiB2b2lkIEZyYW1lU2VsZWN0
aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgsNyArMTA0Myw4
MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJk
KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExp
bmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxh
cml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGluZSBGcmFt
ZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQorewor
ICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlwID0gZmFs
c2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkgewor
ICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAgICAgIGlm
IChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBmbGlwID0g
dHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0
Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdv
cmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3Vu
ZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFw
aEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVu
dC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdy
YW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJvdW5kYXJ5
ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVy
R3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5j
ZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdy
YXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6
CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6
CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3
aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIERp
cmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVu
dC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rp
b25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJvb2wg
RnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdnZXJl
ZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsxMTcyLDEzIEBAIGJvb2wgRnJhbWVTZWxl
Y3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVj
dGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1v
dmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkK
KyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50
KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFu
dWxhcml0eSkpOworICAgIH0KKyNlbmRpZgorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3Bl
cmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNl
dHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSBy
ZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFy
Yml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MDcsOCArMTgx
MiwxNiBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRl
bnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlBbGwpKTsKKyNlbmRpZgorICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICwgaW50ZW50CisjZW5kaWYKKyAg
ICAgICAgICAgICAgICAgICAgKTsKKyAgICB9CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xv
c2VUeXBpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0
ZTI4ZS4uYjk2OTdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1l
U2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0
aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5o
IgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gQ2xv
c2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgKHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2Vs
ZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDApOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
aW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRT
ZWxlY3Rpb25JbnRlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3Np
dGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wg
c2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9u
cyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBB
bGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3Rlckdy
YW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVm
YXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJz
b3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0
eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFm
ZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVj
dEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBF
TkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
KTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAg
dm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNl
bGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0
eSk7CkBAIC0yOTgsOSArMzA0LDggQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJl
Y3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAog
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKTsKLSNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0
aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRl
ZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdn
ZXJlZCk7CkBAIC0zNjcsNyArMzcyLDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4uOWNlNDJhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KQEAg
LTQ2LDE0ICs0NiwxNCBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2NyZWVu
UmVjdChDR1JlY3QgYm91bmRzKQogfQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCi0g
ICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3RO
dWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5k
ZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4
dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNh
dGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0o
SU9TKQpAQCAtODEsNSArODEsNiBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKICAgICBVQVpvb21DaGFuZ2VGb2N1cygmY2dWaWV3
UmVjdCwgJmNnQ2FyZXRSZWN0LCBrVUFab29tRm9jdXNUeXBlSW5zZXJ0aW9uUG9pbnQpOwogI2Vu
ZGlmIC8vICFQTEFURk9STShJT1MpCiB9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGFlOTRiZjYuLmJjZmEwNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODYsNyArMzE4NiwxNCBA
QCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBz
ZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZFKEFDQ0VT
U0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRGlzY29udGlndW91cyk7CisjZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9u
KHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKFVzZXJUcmlnZ2VyZWQpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShD
T0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIGludGVudAorI2VuZGlmCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9h
cmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQot
LSAKMi4zLjAgKEFwcGxlIEdpdC01NCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250233</attachid>
            <date>2015-04-06 15:52:03 -0700</date>
            <delta_ts>2015-04-06 16:06:35 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>59846</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAxZTc4ODYwODIzMTZhODk4ZTFkNGVlNzU1MmNiYmQxODc1NWMwMWJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAgOTIgKysrKysrKysrKysr
KysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oICAgICAg
IHwgIDY2ICsrKysrKysrKystLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwICAgICAgfCAgNDEgKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmggICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAyICsKIC4uLi9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gIHwgICA2ICstCiAuLi4vV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8IDExMiArKysrKysrKysrKysrKysr
KysrKy0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCAgICAgICAg
IHwgICAzICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwICAg
ICAgIHwgIDMwICsrKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oICAgICAgICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5jcHAgICAgfCAgIDMgKwogLi4uL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAgICAgICAgfCAgIDYgKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIHwgICA0ICsKIC4uLi9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgIHwgICA1ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIHwgICAxICsKIC4uLi9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgIHwgIDMxICsrKy0tLQogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgIDggKy0KIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgIHwgICA1ICstCiAuLi4v
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCB8ICAgNSArCiAu
Li4vZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICB8ICAgMiAr
CiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCAgICAgICAgICAgICB8ICAy
NSArKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oICAgICAgICAgICAg
ICAgfCAgIDUgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwICAgICAgICAgICAg
ICAgICAgfCAgMTcgKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCAgICAgICAg
ICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgIHwgIDMxICsrKy0tLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIHwgIDM0ICsrKystLS0KIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgIHwgICA5ICstCiAuLi4vZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAgICAgICB8ICAgNSArCiAuLi4vV2Vi
Q29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCB8ICAgMiArCiAuLi4v
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICAgICB8ICAgNSArCiAu
Li4vUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICAgICB8ICAgMiAr
CiAuLi4vZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgICB8ICAg
NSArCiAuLi4vZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICAgICB8
ICAgNCArLQogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICAgfCAgMzAgKysrKysrCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICAgICB8ICAgNSArLQogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgICAgfCAgIDUgKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICAgICAgfCAgIDMgKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwICAgICAgfCAgIDUgKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCAgICAgICAgfCAgIDIgKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICAgfCAgIDUgKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKystCiA0MyBmaWxlcyBjaGFu
Z2VkLCA1NTIgaW5zZXJ0aW9ucygrKSwgMTAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLmRhODBj
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI5LDYgKzEyOSw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBB
WE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywg
JkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTc0Miw2ICs3NDMsMjAgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAg
ICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQor
eworICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOworCisgICAgLy8g
SW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRl
bHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBl
Y3RlZCBiZWhhdmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFy
ZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAg
YXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Q
b3N0KTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbm90ZSA6IG5vdGlmaWNhdGlvbnMpIHsKKyAg
ICAgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgICAgIHBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihzdGQ6OmdldDwwPihub3RlKS5nZXQoKSwg
c3RkOjpnZXQ8MT4obm90ZSksIHN0ZDo6Z2V0PDI+KG5vdGUpLCBWaXNpYmxlUG9zaXRpb24oKSk7
CisgICAgfQorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJl
bmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRh
cmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY1LDc2
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9i
amVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRD
aGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCitz
dGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0
JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sK
KyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dv
cmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBvYmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmlu
Z1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVsZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgo
KSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2Rl
KiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1
cm47CisgICAgQVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0
b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBTdHJpbmcgc2FuaXRpemVkVGV4dCA9IHRleHQ7CisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBp
ZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pKSB7
CisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjpt
YWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpLCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7
CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0
YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdh
dGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UK
KyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlv
bi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQpOworI2Vu
ZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmlu
ZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAg
IGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChkZWxldGlvblR5cGUgPT0g
QVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNlcnRpb25UeXBlID09IEFYVGV4
dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcg
fHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRpb25U
eXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOwogCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9i
amVjdEF0dHJpYnV0ZXMoKTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5p
dGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0OworICAgIFN0cmluZyBzYW5pdGl6ZWRJbnNl
cnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0g
Z2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQ
YXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2Vf
dHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCksIGluc2VydGlvblR5cGUsIHNhbml0aXplZElu
c2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9z
dFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKwor
ICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlwZSwgc2FuaXRpemVkRGVs
ZXRlZFRleHQsIGluc2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9zaXRpb24p
OworI2Vsc2UKICAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KICAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVj
YXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlw
ZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwg
aW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9h
ZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGlu
Z0V2ZW50KQpAQCAtMTA4NCw2ICsxMTU5LDE3IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9k
ZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVj
dCAqcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAoQWNjZXNz
aWJpbGl0eU9iamVjdCAqZmlyc3RDaGlsZCA9IHJvb3RPYmplY3QtPmZpcnN0Q2hpbGQoKSkgewor
ICAgICAgICAgICAgaWYgKGZpcnN0Q2hpbGQtPmlzV2ViQXJlYSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmaXJzdENoaWxkOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBudWxscHRy
OworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIo
QVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li45YWM5
NDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksMjUgQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE5v
dGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkp
OwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRlZCwKLSAg
ICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7Cisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CisgICAg
ICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUs
IC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8v
IEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcsIC8vIElu
c2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNl
cnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZp
YSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBhc3RlCiAg
ICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4
dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICAvLyBTaW1wbGUg
dGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdT
dGFydGVkLApAQCAtMjE4LDcgKzIzMSwzMyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsK
ICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xk
Rm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0
ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hh
bmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKSB7CisgICAgICAg
IHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIG5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9h
ZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9h
ZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsK
ICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMjY4LDggQEAgcHJv
dGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0TWFy
a2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAg
IEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7CiAg
ICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7CkBA
IC0yNDQsNiArMjg1LDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Qb3N0
VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4s
IEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90aWZp
Y2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8UmVmUHRyPEFjY2Vzc2liaWxpdHlP
YmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisK
ICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJl
Z2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2Rl
Kik7CkBAIC0zMDgsOCArMzU0LDE0IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50
KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVu
ZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxl
ZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRpZgogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZDhkMjZkZS4u
YWMzOGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsNDcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4g
aW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVj
dCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNz
d29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAgICAg
ICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVy
biBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4odGhpcyk7CisgICAgfQorICAg
IAorICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAg
ICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGlm
IChBWE9iamVjdENhY2hlICpjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworICAgICAgICB9CisgICAgfQor
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0g
dGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0g
bnVsbHB0cjsKKyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkg
eworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKQorICAgICAgICAg
ICAgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCk7Cisg
ICAgfQorICAgIGlmICghaW5wdXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
CisgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIGJvb2wg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7CiAgICAgTm9k
ZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJmLi43ZGJkNTlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc05h
dGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUGFz
c3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4
IDM1ODZmMmEuLmI1Njk1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3Jk
RmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUo
KSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBiMDAuLjA5ODdmNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlP
Uy5tbQpAQCAtOTUsNyArOTUsMTEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2Jq
LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25T
dHJpbmddOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYpCit2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK3ZvaWQgcG9zdFRleHRSZXBsYWNlbWVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDJjNzQ0MzAuLjJjNGQzYmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQpAQCAtNDQsNiArNDQsNDIgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2ZVJl
Z2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVkIgogI2VuZGlmCiAK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleQorI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVj
dGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIEAiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVuZ3RoIgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIgQCJBWFRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQg
QCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUgQ29jb2EgY2Fs
bHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTE1Nyw4ICsxOTMsODIgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBb
b2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmlj
YXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYpCitzdGF0aWMgTlNEaWN0aW9uYXJ5KiB0ZXh0UmVwbGFjZW1lbnRDaGFu
Z2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcqIHRleHQgPSAoTlNTdHJpbmcgKilzdHJp
bmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICghbGVu
Z3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGNoYW5n
ZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAg
ICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAgc3Rh
dGljIGNvbnN0IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYgKGxl
bmd0aCA+IHRydW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4
dCBzdWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAobGVu
Z3RoID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV0g
PSB0ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAoaWQg
dGV4dE1hcmtlciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9u
OnBvc2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5n
ZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0
RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQogeworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgp
OworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5sZW5n
dGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogdXNlcklu
Zm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107Cisg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdl
ID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBvc2l0
aW9uKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10g
PSBAW2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVy
OworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vz
c2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmls
aXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwordm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFv
YmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZv
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0g
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNE
aWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwg
ZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBh
ZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVw
bGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0
LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBb
Y2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkp
CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdy
YXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5T
QWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vz
c2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlcklu
Zm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0
aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNh
dGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwogfQogCiB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4u
OTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2
ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdl
RnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0
aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247Cist
IChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxl
UG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5jcHAKaW5kZXggMmRlNmRiZi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEyICsyNiwxMiBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
U2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQu
aCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
OCwxNyArNDgsMjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJl
bnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1z
dGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2Rl
LCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCAgY29uc3QgU3RyaW5nJiB0ZXh0
LCB1bnNpZ25lZCBvZmZzZXQpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5n
TGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBl
KQogeworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBj
b25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNp
ZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCiAgICAgaWYgKHRleHQgPT0gIlxuIikKICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9z
aXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0
aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9
CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjgsMTYgKzc0LDE2
IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFw
cGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEluc2VydGVkLCBtX25vZGUtPm5vZGVWYWx1ZSgpLCAwKTsKKyAgICBzZW5kQVhUZXh0
Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7
CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFt
X3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAor
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fbm9kZS0+bm9kZVZhbHVlKCksIDAp
OworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwg
dW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CkBAIC05MCw0ICs5NiwxNCBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXROb2Rl
c0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVs
ZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZWRmNjgxYi4uNDljOWVhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtNDcsNiArNDcsOSBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYp
IG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVm
UHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApp
bmRleCAzMWY1MTc4Li5hZmVkMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFwcGVu
ZE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQXBwbHlTdHlsZUNvbW1hbmQuaCIKICNpbmNsdWRl
ICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNp
bmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
QEAgLTU0Miw2ICs1NDMsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZgogCiBSZWY8RWRpdENv
bW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKIHsK
KyAgICBpZiAoZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIHJldHVy
biBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3Vu
dCk7CiAgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIGNvdW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggYmNmZDI0YS4uZmRmOWJmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzUsNCArMzYsOSBAQCBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZQogewogfQogCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVD
dXQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggNGRmNTc5MS4u
YmYyZmE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM5LDYgKzM5LDEwIEBAIHB1YmxpYzoKIAogcHJvdGVj
dGVkOgogICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMTYzYzkyMi4uMWI0ZTcwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCkBAIC00Miw0ICs0Miw5IEBAIFJlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyCiAgICAgcmV0dXJu
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50
KTsKIH0KIAorRWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0
aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaAppbmRleCA5Y2JlMTU3Li4xZDA1YzMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtNDEsNiAr
NDEsNyBAQCBwcml2YXRlOgogICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQm
LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVw
bGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7
CiAKICAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1OTdmNDljLi44NTcxNjRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKQEAgLTUyLDE1ICs1Miw2IEBAIFN0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6ZGVsZXRlZFRleHQoKQogICAgIHJldHVybiBtX3RleHQ7CiB9CiAKLSNpZiBIQVZFKEFDQ0VT
U0lCSUxJVFkpCi12b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5n
ZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQotewotICAgIGlm
IChub2RlICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOwotfQotI2VuZGlmCi0KIHZvaWQgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBA
IC03MiwxMSArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291bnQs
IGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSNpZiBIQVZFKEFDQ0VT
U0lCSUxJVFkpCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBk
ZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV90ZXh0LCBtX29mZnNl
dCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgp
LCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9k
ZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291
bnQsIGVjKTsKIH0KQEAgLTkwLDkgKzgwLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3Rl
eHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1f
dGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAK
ICNpZm5kZWYgTkRFQlVHCkBAIC0xMDIsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAj
ZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaAppbmRleCA0ZTQ3Y2Y5Li43YTMxYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDUsOSArNDUs
NiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogCi0jaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCk7Ci0jZW5kaWYKIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92
ZXJyaWRlOwpAQCAtNTYsNyArNTMsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAg
dmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7
CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8
VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fY291
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9p
ZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRo
YXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVz
c2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5
cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8v
IHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4g
RWRpdEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9y
bWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2Fz
IHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAppbmRleCA3NWY2MWIwLi5mODhjNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTM3LDQgKzM3LDkgQEAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6RGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHQKIHsKIH0KIAorQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCmluZGV4IGZlNTQ1MTAuLmYyOTgzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0zOSw2ICszOSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1
MzIuLjkxZWE5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQu
aCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBA
IC0xMjQsNSArMTI1LDI5IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNj
ZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAgIG5vZGVz
LmFkZChub2RlKTsKIH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRU
eXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVVbmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsK
KyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0
ZXh0LCBwb3NpdGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLmY1Yjg2YzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
RWRpdENvbW1hbmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxl
Y3Rpb24uaCIKIApAQCAtOTcsNiArOTgsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYWRkTm9k
ZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgp
OworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVk
aXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAppbmRleCBjNDc3MWJkLi4wYjBjMTBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCkBAIC0zNzUsMjAgKzM3NSwxNSBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0
aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkg
ZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0
aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwotfQotCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGJvb2wgc21hcnREZWxldGUpCi17Ci0gICAgaWYg
KG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGFw
cGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
c21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQor
ICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3Vt
ZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7
CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTI3NSw3ICsxMjcwLDcgQEAgdm9p
ZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikK
IAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9
PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZUZvckN1
dChjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNt
YXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2
b2lkIEVkaXRvcjo6cGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggOTM5ODI2NC4u
NjZkYjAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVi
bGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhEaXJlY3Rp
b24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJpbmcsIGJv
b2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQgY2xl
YXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NTIsNyArNDUyLDYgQEAgcHJpdmF0ZToKIAog
ICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBkZWxldGVTZWxlY3Rp
b25XaXRoU21hcnREZWxldGVGb3JDdXQoYm9vbCk7CiAgICAgYm9vbCBjYW5EZWxldGVSYW5nZShS
YW5nZSopIGNvbnN0OwogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoUGFz
dGVib2FyZCYpOwogICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKFBhc3Rl
Ym9hcmQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDlmMDkwMjcuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtNTYs
MTUgKzU2LDYgQEAgU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRl
eHQoKQogICAgIHJldHVybiBtX3RleHQ7CiB9CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi12
b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNv
bnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQotewotICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0
ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3Mo
KS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC04MSw5ICs3Miw4IEBAIHZvaWQgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9v
ZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgCi0jaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOwotI2Vu
ZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlF
ZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zm
c2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTgsMTEgKzg4LDEwIEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9k
ZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgCi0jaWYgSEFWRShB
Q0NFU1NJQklMSVRZKQorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFs
bHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fdGV4dCwgbV9v
ZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5n
ZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9u
KG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQs
IG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC0xMTQsNCArMTAzLDE0
IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVE
ZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggNWNhMmQ5Ni4uZTMz
ZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTQ0LDEwICs0NCw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQot
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCk7Ci0j
ZW5kaWYKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTU4LDcgKzU0LDEwIEBA
IHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29t
bWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25l
ZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCAwY2I4YWRjLi44ZDVlYzI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhv
bGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIK
KyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDksMTUgKzUwLDYgQEAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Oklu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFAKICAg
ICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwg
IW1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKSk7CiB9CiAKLSNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCi12b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFu
Z2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKLXsKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFu
Z2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gbV9yZWZDaGls
ZC0+cGFyZW50Tm9kZSgpOwpAQCAtNjcsOSArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENo
aWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSht
X2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9pbnNl
cnRDaGlsZC0+bm9kZVZhbHVlKCksIDApOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBp
czxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1f
aW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2lu
c2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxk
LT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2
b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNzcsMTAgKzcwLDEx
IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgaWYgKCFp
c0VkaXRhYmxlTm9kZSgqbV9pbnNlcnRDaGlsZCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1
YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1f
aW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKLSNlbmRpZgorICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9u
ID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0
PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
bV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2Vy
dENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQog
CiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtOTMs
NCArODcsMTQgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCmluZGV4IDM3NWQwOTkuLjhkOWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTQyLDEwICs0Miw2
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2Vy
dEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQpOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC01Myw3
ICs0OSwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBl
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1
bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2RlPiBtX2luc2VydENo
aWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcAppbmRleCBhYzBjM2NiLi42MWFjYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAg
LTM1LDQgKzM1LDkgQEAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2UKIHsKIH0KIAorQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFz
dGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZTczYWY3Yy4uMWQwNTU5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgK
QEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAz
NDA3YjQzLi5jNDdhN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTM1
LDQgKzM1LDkgQEAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXMKIHsKIH0KIAorQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZVBhc3RlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCmluZGV4IGE0Y2Y0MWUuLjhlNmEzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC00MSw2ICs0MSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5k
ZXggODk4YjAxNy4uZTAxN2I4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNCArMzYsOCBAQCBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZQogewogfQogCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRl
eCBkZmQ4ZTNlLi5kMzBmZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw3ICsyNiw2IEBA
CiAjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDIsNiArNDEsOSBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25l
ZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA4N2E2MmY4
Li5iYTQ1NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJUZXh0LmgiCiAKQEAgLTM3LDQgKzM4LDMzIEBAIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRlCiB7CiB9CiAKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkK
KyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgor
ICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
LCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4
dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9k
ZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSwgdGV4dCwgcG9zaXRpb24pOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggZDlmZjViZS4uNTdl
NTM0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZF9oCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00Myw3ICs0MiwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpOworCiBwcml2YXRlOgorICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
IG92ZXJyaWRlOworCiAgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcAppbmRleCAzYmZiOTdkLi4zZTQyMjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTM3LDQgKzM3LDkgQEAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQKIHsKIH0KIAorQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
VHlwaW5nOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4
IGI0MDc0OTguLjAwYmQxNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0zNiw4ICszNiwxMSBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAgIH0KKwogcHJpdmF0
ZToKICAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCAzMGE0ZGNmLi43YjI0NjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBAQCBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbgog
ewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggYzQ0MjE5MS4u
ODE3NDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtNDAsNiArNDAsOCBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwg
UGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBl
KCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDdhYzNjYTMuLjMwZGQ1MzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSw5IEBAIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjNm
ZjNhMi4uOTZjMmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDEsNiAr
NDEsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1
NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFs
dWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlz
VGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlu
bmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9
IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQg
PSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5l
clRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBM
QVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7
CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0
aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxl
UGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJU
ZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5k
c1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRl
eHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENP
Q09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90
aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2
aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZp
c2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFu
Y2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xW
YWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKLS0gCjIuMy4wIChBcHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250234</attachid>
            <date>2015-04-06 15:52:48 -0700</date>
            <delta_ts>2015-04-06 16:07:11 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>39494</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA4MmIyZTNiMDMwYjQ2MmE4ZGQxYzVjMWJlMTZmNzI5MDkyZmZmZWI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAxNDIgKysrKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCAgICAgICB8ICA3OCArKysrKysrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgICAgfCAgMjkgKysrKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gIHwgIDU3ICsrKysrKysrKwogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgICAgfCAgIDcgKwogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oICAgICAgfCAgIDEgKwogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oICAgICAgICAgICAgICAgfCAgIDggKysKIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCAgICAgICAgICAgICAgICAgIHwgICA2ICst
CiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oICAgICAgICAgICAgICAgICAgICB8ICAg
MiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgICAgICAgICAg
fCAxMTAgKysrKysrKysrKysrKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oICAgICAgICAgICAgfCAgMTcgKystCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgICB8ICAgNSArCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICAgMSArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgfCAgIDkgKy0KIDE1IGZpbGVzIGNoYW5n
ZWQsIDQ1MyBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBkYTgwYzMxLi4yMDI1YWMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
QEAgLTg2NSw2ICs4NjUsMTQ4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJl
bkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJl
bmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50
KTsKIH0KIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChj
b25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50
ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAg
ICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6Iik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAg
ICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50ZigiRXh0ZW5kOjoiKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hh
bmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAg
cHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVsZXRlIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAg
ICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50ZigiRGljdGF0aW9uSW5z
ZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIHByaW50
ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAg
IHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBwcmludGYoIkJl
Z2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYoIkVuZDo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAg
IHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgcHJpbnRmKCJE
aXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHN3
aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgeworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAgICAgICAgICAgICAgcHJpbnRm
KCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIHByaW50
ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBwcmludGYo
IldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAgICAgIHByaW50ZigiTGluZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIHByaW50ZigiU2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYXJhZ3Jh
cGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFnZSIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHByaW50ZigiRG9jdW1lbnQiKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJBbGwiKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVu
dC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAgcHJpbnRmKCJcbiIpOworfQor
I2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50
ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCit7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisK
KyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgewor
ICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iaiA9IG9iai0+
b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdo
dCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihv
YmosIGludGVudCwgc2VsZWN0aW9uKTsKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9
CisKIHN0YXRpYyBib29sIHNhbml0aXplUGFzc3dvcmRUZXh0KGNvbnN0IEFjY2Vzc2liaWxpdHlP
YmplY3QmIG9iaiwgU3RyaW5nICZ0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQogewogICAgIGlmIChvYmouaXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmgKaW5kZXggOWFjOTQxMi4uNjJlM2I4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTE5MSw3ICsxOTEsOSBAQCBwdWJsaWM6CiAK
ICAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7CiAgICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24sCi0gICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKKyAgICAg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kCiAgICAgfTsKIAogICAgIGVudW0gQVhUZXh0RWRpdFR5cGUgewpAQCAtMjA5LDYgKzIx
MSw3NSBAQCBwdWJsaWM6CiAgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UKICAgICB2
b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CiAKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7Cisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91cworICAgIH07CisKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3du
LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVu
Y2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoLAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5n
IHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rp
b24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hv
bGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5vdGlmaWNh
dGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbihBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
VW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6IGRpcmVjdGlvbihkaXJl
Y3Rpb24pCisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFyaXR5KQorICAgICAgICB7
IH0KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlw
ZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRT
ZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkK
KyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhz
eW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRl
eHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3lu
YyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlw
ZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAg
ICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUg
PT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZu
ZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8v
IFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
Jik7CisKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRl
ZCwKICAgICAgICAgQVhMb2FkaW5nUmVsb2FkZWQsCkBAIC0yMzIsNiArMzAzLDcgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2Rl
KiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJik7CiAgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKICAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKTsKICNlbHNlCkBAIC0yOTcsNiArMzY5LDggQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhU
TUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRl
bnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzU0LDkgKzQyOCwx
MSBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Ny
b2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2Rl
KikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSB7IH0KICNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjhlMGQ3NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwyNCBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4dFJh
bmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CisjZW5k
aWYKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93
bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0
LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24o
bm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAot
ICAgICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRp
b246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBQb3NpdGlv
biBwb3MxID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpOworICAgIFBvc2l0aW9uIHBvczIgPSBQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
cik7CisgICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJsZVNlbGVj
dGlvbihwb3MxLCBwb3MyLCBET1dOU1RSRUFNKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbih2aXNpYmxlU2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKQorI2VuZGlmCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogfQogCiBVUkwgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NzAsMjIg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3Np
dGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxs
KCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAv
LyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdz
IHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5z
dGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgewor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBh
eE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVu
dChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CisjZW5kaWYKICAgICAg
ICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVz
ZXJUcmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlv
biBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQp
OwotICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCwgdHJ1ZSkKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCAyYzRkM2JlLi40
NjBhYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ4LDYgKzQ4LDEwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCiAjZW5k
aWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYK
KwogI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCiAjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iCiAjZW5kaWYKQEAgLTgwLDYgKzg0LDEwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKICNlbmRpZgogCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAi
QVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29h
IGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xOTMsNiArMjAxLDU1IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAg
ICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90
aWZpY2F0aW9uXTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikK
K3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlm
ICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2Vy
SW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1XTsK
KyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2gg
KGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVj
dGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iai0+
d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52
aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0
cmlidXRlXSA9IHRleHRNYXJrZXJSYW5nZTsKKyAgICB9CisgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gb2JqLT53cmFwcGVyKCk7CisgICAgaWQgdGFyZ2V0
ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3Rp
ZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRD
aGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwor
CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3Rl
ZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3Np
YmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKIHN0YXRpYyBOU0Rp
Y3Rpb25hcnkqIHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBOU1N0
cmluZyogdGV4dCA9IChOU1N0cmluZyAqKXN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggYWZlZDJiOS4uNjcyNjAzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAg
LTE1NTQsNCArMTU1NCwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vo
b2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW50ZW50KCkKK3sKKyAgICBpZiAo
bV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzW21fY29tbWFuZHMu
c2l6ZSgpLTFdLT5pbnRlbnQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4IGY4ZGY5ZDkuLjQ1
ZDM4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRh
aW5BdXRvY29ycmVjdGlvbkluZGljYXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkg
b3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFu
ZChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IGY1Yjg2
YzMuLjJjZTVjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTYwLDYg
KzYwLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQo
KSB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpOworICAgIH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1
bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTEwMiw2ICsxMDYsMTAgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVk
aXRUeXBlKCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7
CisgICAgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5k
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAppbmRleCAwYjBjMTBiLi5jMTUzYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCkBAIC0xMDA1LDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFz
c1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIg
dGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3Nl
IHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRT
ZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJh
bWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5pbnRlbnQoKSk7CiAgICAg
ZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNvbXBvc2l0aW9uLT5zdGFydGlu
Z1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY29tcG9zaXRpb24tPmVuZGluZ1Jvb3RFZGl0YWJsZUVs
ZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0yODU0
LDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3Jl
ZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRp
c21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBF
ZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlv
bnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAg
ICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUg
dGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8
fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NjYsNyArMjg2Niw3IEBAIHZv
aWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4g
U29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxl
Y3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90
Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5z
ZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwg
bV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkK
LSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBv
cHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlv
bnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBv
c2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNz
IHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNjZkYjAyMC4uZDM0M2IwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENvbXBv
c2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsKICAg
ICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9kZSk7
CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25z
KTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25z
LCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0
aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3Jt
Q3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLjdlYzU0ZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVu
dCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgp
IGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRp
b24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9s
bCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVx
dWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVj
dGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0
aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmlu
aXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWdu
KTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlv
biAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVz
ZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNz
CiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0
RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAor
ICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAo
bmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50
ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9v
bCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rp
b24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGln
biwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29u
c3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVu
dCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRy
PEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgp
KSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdT
ZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2Vs
ZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlv
bnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAg
ICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQg
c2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAg
ICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQs
IGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAg
ICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBp
cyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29s
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNv
bnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBT
ZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRl
eHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlv
bnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkp
CiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVj
dGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmll
dyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlv
dXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2Vs
ZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICgh
bV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzg4
LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAg
ICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAK
LSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogfQogCiB2b2lkIEZyYW1l
U2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgsNyAr
MTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0Jh
Y2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFy
eShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5
ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBn
cmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGlu
ZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwg
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlw
ID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92
ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAg
ICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBm
bGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAg
ICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVu
Y2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5Ogor
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBh
cmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1
bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJv
dW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hh
cmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBT
ZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2Ug
UGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91
bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91
bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBj
YXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBE
aXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAK
IGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRy
aWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsxMTU1LDExIEBAIGJvb2wgRnJh
bWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJh
dGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAg
ICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0
ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRo
ZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24u
CiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRv
IHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9u
IHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAt
MTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAg
ICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rp
b25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5n
ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAg
ICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgYXV0
byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAog
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZp
bml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5iNzRmYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2Vs
ZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
ICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNl
clRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAg
ICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpCisgICAgeworICAgICAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxs
cHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVj
dGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwg
Q3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdy
YW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRp
b25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFs
aWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0
eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNl
bGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
bGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBF
UG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNl
bGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rp
b24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25P
blNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToK
ICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdh
dGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0
aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNlCi0g
ICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdn
ZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5k
ZXggYmE0NTUzOS4uOGJjNzhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTY3LDQgKzY3
LDkgQEAgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXQKICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVJbnNlcnQ7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyZXBsYWNl
QXBwbHlFZGl0VHlwZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCmluZGV4IDU3ZTUzNDBhLi4yOTBjMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC00
Myw2ICs0Myw3IEBAIHByb3RlY3RlZDoKICAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJik7CiAKICAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxh
Y2VBcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0KaW5kZXggOWJkZWUxYy4uOTljNDU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywyMCBAQCBzdGF0
aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQog
I2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxl
Y3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogeworI2lmICFQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oSU9TKQorICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworI2VuZGlmCiAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmICht
X3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90
TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JN
KElPUykKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlv
bik7CisjZWxzZQogICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rp
b24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpB
WFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworI2VuZGlmCiAg
ICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCBhZTk0YmY2Li5iY2ZhMDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC0zMTg2LDcgKzMxODYsMTQgQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJk
U2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9z
aXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJp
Z2dlcmVkKSk7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAg
ICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpOworI2VuZGlmCisg
ICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKQorI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLCBpbnRlbnQKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAK
IHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1l
LCBLZXlib2FyZEV2ZW50KiBldmVudCkKLS0gCjIuMy4wIChBcHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>250235</attachid>
            <date>2015-04-06 15:53:38 -0700</date>
            <delta_ts>2015-04-06 17:05:48 -0700</delta_ts>
            <desc>debugging</desc>
            <filename>0005-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>application/octet-stream</type>
            <size>2172</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA2ZTBhMDIzMGFjNmI2YmYwNzVhNDNkMWIyMzZhZGE1MDg4MWMwYjQ2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgNiBBcHIgMjAxNSAxNTo0NzozOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKRGVidWcgTG9nZ2luZwotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp
bGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDIwMjVhYzMuLmEyMmVmNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtOTkyLDYg
Kzk5MiwxMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZwogICAgIGlmIChpbnRlbnQudHlwZSA9
PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQogICAgICAgICBpbnRlbnQgPSBtX3RleHRT
ZWxlY3Rpb25JbnRlbnQ7CiAKKyNpZm5kZWYgTkRFQlVHIC8vIEFYVE9ETyByZW1vdmUgbG9nZ2lu
ZworICAgIHByaW50ZigicG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBWFRleHRTdGF0
ZUNoYW5nZUludGVudClcbiIpOworICAgIHNob3dJbnRlbnQoaW50ZW50KTsKKyAgICBwcmludGYo
IlxuIik7CisjZW5kaWYKIAogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CiAKQEAgLTEwMjQsNiArMTAyOSwxMyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdAogCiAg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorI2lmbmRlZiBOREVC
VUcgLy8gQVhUT0RPIHJlbW92ZSBsb2dnaW5nCisgICAgcHJpbnRmKCJwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKEFYVGV4dEVkaXRUeXBlKVxuIik7CisgICAgc2hvd0ludGVudChBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCh0eXBlKSk7CisgICAgdGV4dC5zaG93KCk7CisgICAgcHJpbnRm
KCJcbiIpOworI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTdHJpbmcgc2FuaXRp
emVkVGV4dCA9IHRleHQ7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVh
dGUobm9kZSk7CkBAIC0xMDU1LDYgKzEwNjcsMTkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGQK
IAogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKKyNpZm5kZWYg
TkRFQlVHIC8vIEFYVE9ETyByZW1vdmUgbG9nZ2luZworICAgIHByaW50ZigicG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbigpXG4iKTsKKyAgICBpZiAoZGVsZXRlZFRleHQubGVuZ3RoKCkp
IHsKKyAgICAgICAgc2hvd0ludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChkZWxldGlvblR5
cGUpKTsKKyAgICAgICAgZGVsZXRlZFRleHQuc2hvdygpOworICAgIH0KKyAgICBpZiAoaW5zZXJ0
ZWRUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgIHNob3dJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoaW5zZXJ0aW9uVHlwZSkpOworICAgICAgICBpbnNlcnRlZFRleHQuc2hvdygpOworICAg
IH0KKyAgICBwcmludGYoIlxuIik7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0OwogICAgIFN0cmluZyBz
YW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7Ci0tIAoyLjMuMCAoQXBwbGUgR2l0
LTU0KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250236</attachid>
            <date>2015-04-06 16:06:35 -0700</date>
            <delta_ts>2015-04-06 17:04:04 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>39456</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAwYjBkNzAzMTQyYjlkNjIyMmY5ZjQyYzk4YjYyNjNiNGM3ODQ2NWUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAxNDIgKysrKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCAgICAgICB8ICA3OCArKysrKysrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgICAgfCAgMjkgKysrKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gIHwgIDU3ICsrKysrKysrKwogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgICAgfCAgIDcgKwogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oICAgICAgfCAgIDEgKwogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oICAgICAgICAgICAgICAgfCAgIDQgKwogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwICAgICAgICAgICAgICAgICAgfCAgIDYgKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggICAgICAgICAgICAgICAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCAgICAgICAgICB8
IDExMCArKysrKysrKysrKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmggICAgICAgICAgICB8ICAxNyArKy0KIC4uLi9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCAgIHwgICA1ICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggICAgIHwgICAxICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tICAgIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgICAgICAgICAgICAgICB8ICAgOSArLQogMTUgZmlsZXMgY2hhbmdl
ZCwgNDQ5IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGRhODBjMzEuLjIwMjVhYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApA
QCAtODY1LDYgKzg2NSwxNDggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVu
Q2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVu
ZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQp
OwogfQogCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNv
bnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRl
bnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAg
ICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRmKCJFZGl0OjoiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAg
ICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgcHJpbnRmKCJFeHRlbmQ6OiIpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNh
c2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGludGVudC5jaGFu
Z2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgICAgICBw
cmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJpbnRmKCJEZWxldGUiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAg
ICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgcHJpbnRmKCJEaWN0YXRpb25JbnNl
cnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlw
aW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgcHJpbnRm
KCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
UGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAg
cHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIHByaW50ZigiQmVn
aW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHByaW50ZigiRW5kOjoiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAg
cHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBwcmludGYoIkRp
c2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBwcmludGYo
IlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAgcHJpbnRm
KCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgorICAgICAgICAgICAgICAgIHByaW50Zigi
V29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJMaW5lIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTZW50ZW5jZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhcmFncmFw
aCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYWdlIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJEb2N1bWVudCIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkFsbCIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoaW50ZW50
LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsKKyAgICBwcmludGYoIlxuIik7Cit9Cisj
ZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQg
PSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKwor
ICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7Cisg
ICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBh
c3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5v
YnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0
IHBsYXRmb3JtCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9i
aiwgaW50ZW50LCBzZWxlY3Rpb24pOworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoKTsKK30K
Kwogc3RhdGljIGJvb2wgc2FuaXRpemVQYXNzd29yZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9i
amVjdCYgb2JqLCBTdHJpbmcgJnRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24p
CiB7CiAgICAgaWYgKG9iai5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBh
c3N3b3JkRmllbGQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaAppbmRleCA5MTg0MDA0Li42MzUwNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTkxLDcgKzE5MSw5IEBAIHB1YmxpYzoKIAog
ICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKICAgICAgICAgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlVW5rbm93biwKLSAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorICAgICAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKICAgICB9OwogCiAgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CkBAIC0yMDksNiArMjEx
LDc1IEBAIHB1YmxpYzoKICAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQogICAgIHZv
aWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKIAorICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25EaXNjb250aWd1b3VzCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlB
bGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3Rpbmcg
dGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlv
biBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9s
ZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0
aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uKEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25V
bmtub3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eSA9IEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICAgICAgICAgIDogZGlyZWN0aW9uKGRpcmVj
dGlvbikKKyAgICAgICAgICAgICwgZ3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCisgICAgICAgIHsg
fQorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBl
IGNoYW5nZTsKKyAgICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNl
bGVjdGlvbigpLCBib29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQor
ICAgICAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5
bmMpCisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4
dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0KQorICAgICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5j
KGZhbHNlKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChB
WFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBl
KHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAg
ICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9
PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5k
ZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRT
dGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8g
U2VsZWN0aW9uIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
bihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KTsKKwogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVk
LAogICAgICAgICBBWExvYWRpbmdSZWxvYWRlZCwKQEAgLTIzMiw2ICszMDMsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUq
IG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKICNpZiBQTEFURk9STShD
T0NPQSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mKTsKICAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpOwogI2Vsc2UKQEAgLTI5OCw2ICszNzAsOCBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRN
TEFyZWFFbGVtZW50Kik7CiAgICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVu
dDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyCkBAIC0zNTUsOSArNDI5LDEx
IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3Jv
bGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUq
KSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQogI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYp
IHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiAjZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5Ni4uOGUwZDc0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDI0IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFu
Z2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RD
YWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKKyNlbmRp
ZgogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3du
Y2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1l
bnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQs
IHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihu
b2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0g
ICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlv
bjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9u
IHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdl
LnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9y
KTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0
aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2Vs
ZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpCisjZW5kaWYKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAKIFVSTCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwxMyArMTk3MCwyMiBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0
aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwo
KSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8v
IG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3Mg
emVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0
YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKKyNlbmRpZgogICAgICAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5nZS5zdGFydCwgVXNl
clRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9u
IG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7
Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kLCB0cnVlKQorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDJjNGQzYmUuLjQ2
MGFjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2Jq
ZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbQpAQCAtNDgsNiArNDgsMTAgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKICNlbmRp
ZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgor
CiAjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KICNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiIKICNlbmRpZgpAQCAtODAsNiArODQsMTAgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgogI2VuZGlmCiAKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJB
WFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUgQ29jb2Eg
Y2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTE5Myw2ICsyMDEsNTUgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAg
ICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3Rp
ZmljYXRpb25dOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQor
eworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYg
KCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJ
bmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOwor
ICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAo
aW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0
Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdy
YW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0
aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53
cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZp
c2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAg
ICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRy
aWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQg
PSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisK
KyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVk
LgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwogc3RhdGljIE5TRGlj
dGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIE5TU3Ry
aW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCBhZmVkMmI5Li42NzI2MDMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAt
MTU1NCw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhv
bGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlmICht
X2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5z
aXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggZjhkZjlkOS4uNDVk
MzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldGFp
bkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNo
b3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGJvb2wpOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBv
dmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5k
KERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggZjViODZj
My4uNWNhMTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtNjAsNiAr
NjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkg
eyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsgfTsKKwog
cHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAgICAgRWRp
dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYpOwpAQCAtMTAyLDYgKzEwNCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudChhcHBseUVkaXRUeXBlKCkpOyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDBiMGMxMGIuLmMxNTNjOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHZvaWQg
RWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBj
bWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxl
Y3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2UgdGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNlc3Nhcnku
CiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+
aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFtZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVk
IDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRp
b25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRp
b25zLCBjbWQtPmludGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRF
dmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3Np
dGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJ
Tm93SWZTY2hlZHVsZWQoKTsKQEAgLTI4NTQsNyArMjg1NCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNt
aXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQp
OwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rp
b25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21t
YW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246
OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9y
cGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxl
Y3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigp
KQpAQCAtMjg2Niw3ICsyODY2LDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2Vl
IDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlk
CiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlv
biA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25E
aWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5n
ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAg
ICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxs
eSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8g
Rm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBj
YXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA2NmRiMDIw
Li5kNmM1ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTQ2OCw3ICs0NjgsNyBAQCBw
cml2YXRlOgogICAgIGVudW0gU2V0Q29tcG9zaXRpb25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0aW9u
LCBDYW5jZWxDb21wb3NpdGlvbiB9OwogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3Ry
aW5nJiwgU2V0Q29tcG9zaXRpb25Nb2RlKTsKIAotICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0
ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxl
Y3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMpOworICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0
ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxl
Y3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAK
ICAgICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFjdGlvbiB9
OwogICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBhOGYxYjQxLi43ZWM1
NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTM4
LDggKzEzOCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50
T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQs
IEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3Mu
YWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGFsaWduKTsKKyAgICBzZXRTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVp
dmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNlbGVj
dGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhj
b25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50
LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMjU0LDcgKzI1MywxNiBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24g
fHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47
CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdy
YW51bGFyaXR5KTsKKyAgICAKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpIHsKKyAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAgICBp
bnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlz
Y29udGlndW91cykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0gZWxzZQorICAgICAgICBp
bnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIHNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBG
aXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFu
dWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9z
c2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNv
ckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3
Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCog
bmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsK
ICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rp
b25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1l
ICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQo
KSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAg
ICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWdu
LCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1
cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVl
biBtb2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFy
ZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2
YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBk
ZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0z
MjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGln
bk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0
aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rp
bwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0
ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxl
Y3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4
LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAg
ICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1
cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5k
UmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVh
bEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50
KTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVj
dGlvbigpCkBAIC0xMDE4LDcgKzEwMjYsODAgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0
aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0
YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAg
IHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFy
YWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAg
Cit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQo
RUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVj
dGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNS
YW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwp
CisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAg
ICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hh
cmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0
eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBj
YXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFw
aEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91
bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJp
dHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51
bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFu
dWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1l
bnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5
OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6Cisg
ICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGly
ZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91
bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rp
b25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFy
eSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGlu
dGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRp
b24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzQsNiAr
MTE1NSwxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIs
IFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1Jhbmdl
ICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQ
b3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYm
IEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVj
dENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0
U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQor
CiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRp
Y2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVh
ciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6
IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNl
ZCwgaXQgd291bGQgYmUKQEAgLTE3MDcsOCArMTc5MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAot
ICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZp
cmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rp
b24pKSB7CisgICAgICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwpKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50
ZW50KTsKKyAgICB9CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2Uo
UmFuZ2UqIHJhbmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uYjc0ZmJmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEz
MiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVh
clR5cGluZ1N0eWxlIHwgKHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNl
bGVjdEV2ZW50KSA6IDApOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7CisgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxl
Y3Rpb24oRnJhbWUqID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBv
c2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMp
OwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zZWxlY3Rpb247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlv
bkludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVl
ZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNs
b3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVO
VCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRh
RGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9w
dGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSAr
MzA0LDEwIEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JC
bG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VT
U0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KCk7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVj
dGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJp
dHkpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25J
bnRlbnQoKSk7CiAjZWxzZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSgpIHsgfQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAK
ICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9y
bUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4g
c3R5bGUpCiAKICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxl
Y3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IGJhNDU1MzkuLjhiYzc4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCkBAIC02Nyw0ICs2Nyw5IEBAIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0CiAgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OwogfQogCitBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6aW50ZW50KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQocmVwbGFjZUFwcGx5RWRpdFR5cGUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCA1N2U1MzQwYS4uMjkwYzFjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtNDMsNiArNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLjk5YzQ1OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00
NywxMyArNDcsMjAgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJl
Y3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAot
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsK
KyNpZiAhUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKElPUykKKyAgICBVTlVTRURfUEFSQU0o
aW50ZW50KTsKKyNlbmRpZgogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3Vt
ZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3Nl
bGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShJT1MpCisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCks
IGludGVudCwgbV9zZWxlY3Rpb24pOworI2Vsc2UKICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90
aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIo
KSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxl
UGFyZW50KTsKKyNlbmRpZgogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggYWU5NGJmNi4uYmNmYTA0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE4Niw3ICszMTg2LDE0IEBAIHN0YXRpYyB2b2lk
IHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5zZXRT
ZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
UExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzKTsKKyNlbmRpZgorICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdn
ZXJlZCkKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICwgaW50ZW50CisjZW5kaWYKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1v
dmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCi0tIAoyLjMuMCAoQXBw
bGUgR2l0LTU0KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250237</attachid>
            <date>2015-04-06 16:07:11 -0700</date>
            <delta_ts>2015-04-06 17:04:29 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0004-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>1244</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBmYTZmZDk2OGMzZmE2MTYyYWZjZGYxMThhYWI1ZTY3ZjQyNDM5YzMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAxMDo0ODo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVGVzdHMKLS0tCiAuLi4vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sICAgIHwgMyArKy0KIDEgZmlsZSBjaGFu
Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXgg
YTFlODQzZS4uMTI2NDZkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1s
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12
YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250
ZW50IGluc2lkZQogICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2
YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5v
dGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9u
IiwgInRydWUiKTsKICAgICB9CiAKLS0gCjIuMy4wIChBcHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250241</attachid>
            <date>2015-04-06 17:03:00 -0700</date>
            <delta_ts>2015-04-08 12:20:18 -0700</delta_ts>
            <desc>Edit commands infrastructure</desc>
            <filename>0001-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>130513</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAxMDllYjI1NjIwY2FkOTcwNGY0ODUxNmQ3MGJmYzI3NWJkOTFlMmYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMTo0Nzo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKTmV3IEVkaXRpbmcgQ29tbWFuZHMKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExMiArKysrKysrKysrKysrKysrKysr
KysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwg
IDk4ICsrKysrKysrKysrKysrKysrLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5jcHAgICAgICAgfCAgMTggKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgIDM4ICsrKysrKy0KIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAgICAgIHwgICA2ICsrCiAuLi4vZWRpdGlu
Zy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAzOCArKysrKysrCiAu
Li4vV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICA0NiAr
KysrKysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgIHwgIDQ1ICsrKysrKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmggfCAgNDggKysrKysrKysrCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICB8ICAyNiArKysrLQogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgICAgICAgIHwgICA0ICstCiAuLi4vZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCB8ICA0MCArKysrKysrKwog
Li4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgfCAgNDYg
KysrKysrKysrCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcCB8ICA0NSArKysrKysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuaCAgIHwgIDQ3ICsrKysrKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmggICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgIHwgIDI5ICsrKystLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggfCAgIDkgKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIHwgIDIyICsrKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgIHwgICA4
ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggICAgICAgICB8
ICAgNyArLQogLi4uL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAg
ICAgfCAgMzggKysrKysrKwogLi4uL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggfCAgNDcgKysrKysrKysrCiAuLi4vUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgICAgICB8ICAzOCArKysrKysrCiAuLi4vUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICAgICB8ICA0OCArKysrKysrKysKIC4uLi9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgIHwgIDM4ICsrKysrKysK
IC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggICAgIHwgIDQ5
ICsrKysrKysrKwogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICAgfCAgNDAgKysrKysrKysKIC4uLi9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggICAgIHwgIDUyICsrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIHwgIDMxICsrKysrKwogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oICAgfCAgIDMgKwogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9lZGl0
aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgIHwgIDQwICsrKysrKysr
CiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICB8ICA0
NSArKysrKysrKysKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAgICAgIHwgIDM4ICsrKysrKysKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmggICAgICAgIHwgIDQ3ICsrKysrKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgfCAgNTAgKysrKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmggICB8ICA0OSArKysrKysrKysKIC4u
Li9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICAgIHwgIDM4ICsr
KysrKysKIC4uLi9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICAg
IHwgIDQ4ICsrKysrKysrKwogNDMgZmlsZXMgY2hhbmdlZCwgMTQ1OCBpbnNlcnRpb25zKCspLCA0
MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZDU3MTQwNC4uNDE4ODY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAxNS0w
NC0wNiAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
cmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMKKworICAgICAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gVGhpcyBjb21taXQgaXMgYWxsIGluZnJhc3RydWN0dXJlIGFuZCBkb2Vzbid0IGNv
bnRhaW4gYW55IGFjY2Vzc2liaWxpdHkgc3BlY2lmaWMgY2hhbmdlcy4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBl
bmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Np
dGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBl
ZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBs
eSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAg
ICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
Y3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJr
ZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNl
cnRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAg
ICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5k
OjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKwog
MjAxNS0wMy0zMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjE3MzQ4NCk6IFJlZHVjaW5nIGNvbnRlbnQgb2Ygc2Nyb2xsYWJsZSByZWdpb24g
ZG9lcyBub3QgcmVzZXQgc2Nyb2xsIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE5ZDIzNTkuLmRiMTNiMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNzIs
MTIgKzYzNzIsMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBB
bmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFw
UG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVC
OEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAg
LyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjUwNjNDMUMxQUI3NTZENTAw
OUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1
MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUY1
MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAv
KiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0
eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJ
CUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNE
NUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAq
LzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4
NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4
OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQ
bGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1
MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4
REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNl
VGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3Bw
ICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdB
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RB
RjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAv
KiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAtNjQyNywxMiArNjQzNywyNiBAQAogCQlG
NTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkg
LyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBX
ZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsg
fTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQw
MDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAv
KiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNC
NzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CisJCUY1NzRERURB
MUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRE
RUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1
QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1
NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZC
MjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmgg
Ki87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIz
QzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIz
QzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NkQxQUND
QjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1
OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTlG
QTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNUExNTQyNzEy
Nzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8q
IFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMw
IC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTVFMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUMxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRN
TERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9Owog
CQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxREUwRkZD
QTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTEzOTkz
LDYgKzE0MDE3LDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBB
bmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRz
LmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9s
bFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUx
NTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxp
ZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTQwMDUsOCArMTQwMzEsMTYgQEAKIAkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
RjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVG
RjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2
RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMx
QUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklu
cHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25J
bnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNTYsNiArMTQw
OTAsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxJbnB1dFR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1
dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vla0lucHV0
VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFDMTI1MUYxMkQw
MDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBC
RDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ2MUFDQjcw
ODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDdXJzb3JN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZUZyYW1lVmlldy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3Jl
RnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGluZ3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CkBAIC0xNDA2Niw4ICsxNDEwNiwxNiBAQAogCQlGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyog
TG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9j
YWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRDEyNTVCMjNG
MDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZFMUFD
Q0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIx
QUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFENzBGRkNB
N0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlz
dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERhdGFMaXN0
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFEOTBGRkNBN0NF
MDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNzY3NSw2ICsxNzcyMywxMCBAQAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBD
b21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAv
KiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQz
IC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENUZDMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJ
RjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZF
NTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc2ODMsNiArMTc3MzUs
MTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRp
dmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1h
bmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2
IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3
MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAor
CQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8s
CiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmNwcCAqLywKIAkJ
CQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCAqLywKQEAgLTE3NzI5
LDYgKzE3Nzg1LDEwIEBACiAJCQkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNl
bGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBN
b3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgx
IC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJCQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NUQwQkQ2
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJ
CQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjEwOTlF
NjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMz
MDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oICovLAog
CQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAq
LywKQEAgLTE3NzM5LDYgKzE3Nzk5LDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgx
IC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIzMkNE
QTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlCMzJD
REE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1MjhE
QTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJ
CUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5j
cHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNw
YW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzc0LDYgKzE3ODM4LDE0IEBACiAJCQkJOTM5
MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmggKi8sCiAJCQkJ
OTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwICovLAogCQkJCTkz
MzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0
NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1
MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2
RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJ
CUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICov
LAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8q
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOUIyRDhB
NzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FB
QjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwODZGRTk2MDlENTNBQUIw
MDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBAIC0yMzY2OSw2ICsyMzc0MSw3IEBACiAJ
CQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4
REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQg
LyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNE
QzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NDQ3MSw2ICsyNDU0NCw3IEBACiAJCQkJMzEwNjAzNzkxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdl
YktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3QjE0MzI4MUNE
MDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFt
ZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MjBFNkNDQzI4MDBCRjYwODggLyog
RE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI0Nzk1LDYg
KzI0ODY5LDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJCMEExOTM4NTUw
MEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUND
MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5w
dXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REU2MDk5RTY0OTIwMDU2RTU4MSAv
KiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYw
MEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAyNCw2
ICsyNTA5OSw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZm
ZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNB
IC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVB
NjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyog
SlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIw
M0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRB
MTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAg
LTI1MDMzLDYgKzI1MTA5LDcgQEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNB
dWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMg
LyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0Uz
QTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBK
U0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAv
KiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZD
MTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUx
NTIsNiArMjUyMjksNyBAQAogCQkJCUZEQTE1RUFDMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5O
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwMjE5NENBQzNBMDA4MUJBQUUgLyogSlNH
YW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwNDE5NENBQzNBMDA4MUJBQUUgLyog
SlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2
MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZDMDBDOTU0QjUgLyogSlNHZXN0dXJlRXZl
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUzMjYsNyArMjU0MDQsNyBAQAogCQkJCTY1REYzMjAy
MDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMjNDQTU1
RDBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFBMDI0MTgxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxQTAyNDI4MUEzOUZBREMwMEY3MjJDRiAvKiBKU1JlYWRhYmxlU3RyZWFt
UmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUEwMjQyODFBMzlGQURDMDBGNzIyQ0YgLyog
KG51bGwpIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGRTJGMTIwQzFCNTgzODAwMjAyMzVGIC8qIEpT
UmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5OEFFQ0UxM0Y5RDZDOTAwOTBCMUFBIC8qIEpT
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzRE
QTQ5MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
NTk0LDYgKzI1NjcyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBG
ODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9h
ZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNG
NzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24u
aCBpbiBIZWFkZXJzICovLApAQCAtMjY3NzMsNiArMjY4NTIsNyBAQAogCQkJCUIyQzNEQTNDMEQw
MDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNE
QTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFE
MDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY4MjYsNiArMjY5MDYsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBF
QTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0QTY0
RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJG
MEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JE
MjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1MThG
REVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5
QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NDks
MTIgKzI3MDMwLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlv
bkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMx
MzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0IC8q
IFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1
RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RD
NjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29y
ZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYz
MDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5
MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdF
eHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5ODcsNiArMjcwNzAsNyBAQAogCQkJCTZFNEU5
MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENv
bnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4
IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAx
RDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyogV2Vi
R0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3MjksNiArMjc4MTMsNyBAQAog
CQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlF
OUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
NUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENTU0lt
YWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFBOTlG
MjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgw
RTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yNzgwNiw2ICsyNzg5MSw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8q
IERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUEx
MjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBB
RjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2Nr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk0Miw2ICsyODAyOCw3IEBACiAJCQkJODVFQ0JFRjYw
QUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlz
dEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQg
LyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9u
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRDNSAv
KiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MDkwLDYg
KzI4MTc3LDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNE
T3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBF
MkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2
OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThC
ODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1
RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODIwMCw2ICsyODI4OCw3IEBACiAJCQkJNEZCMzkwQUQxNUVG
NjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZC
NjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yODIyMCw2ICsyODMwOSw3IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1
MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4
M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
QTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODM5OSw2ICsyODQ4OSw3IEBACiAJCQkJNTEwMTkyRDExOEI2
QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVC
M0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBT
b3VyY2VzICovLApAQCAtMjg4NTYsNiArMjg5NDcsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcw
MEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcw
MTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWlu
Zy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1
MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0
ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg4OTIsNiArMjg5ODQsNyBAQAogCQkJCTA3
OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9u
RGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4MzQx
NTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZG
ODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURD
MTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMjk2NjYsNiArMjk3NTksNyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0QxNENF
RTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTI5ODQxLDYgKzI5OTM1LDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyogU1FM
VHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkw
Q0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NzY1
MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFF
OUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2
MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0zMDM0NSw2ICszMDQ0MCw3IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2M0E2
IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBE
QTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3RjY2
ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1
NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3Jt
YXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYgLyog
V29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAxZGViNGRiLi4yZGU2ZGJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMjksNiAr
MjksOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtNDYsMTUgKzQ4LDE3IEBAIEFwcGVu
ZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4
dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9y
aW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hh
bmdlLCAgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCiB7Ci0gICAgU3RyaW5n
IG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOworICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gRG9uJ3Qg
Y29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVlID09
ICJcbiIpCisgICAgaWYgKHRleHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAogICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0
ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOwogfQogCiB2b2lkIEFwcGVu
ZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDggKzY4LDcgQEAgdm9pZCBBcHBlbmROb2Rl
Q29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJy
ZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX25vZGUtPm5vZGVWYWx1ZSgpLCAwKTsKIH0KIAogdm9p
ZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTc0LDggKzc3LDcgQEAgdm9pZCBB
cHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAK
ICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUg
dGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAg
ICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3Jp
bmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwg
bV9ub2RlLT5ub2RlVmFsdWUoKSwgMCk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhD
RVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApp
bmRleCBkNjRiMDRlLi5lZGY2ODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4
IDg0NjFlZTcuLjMxZjUxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCkBAIC01OCw2ICs1OCw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxv
Y2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9j
dW1lbnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5j
bHVkZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTMyMCw5
ICszMjIsMTQgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhj
b25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPEVkaXRDb21tYW5k
PiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0
cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCit7CisgICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5z
ZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCkKQEAgLTUyMiwyMyArNTI5LDQ0IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRU
ZXh0CiAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQ
b3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwgdmlzaWJsZVBvc2l0aW9u
Rm9ySW5kZXgoc3RhcnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkpKSk7CiB9CiAKK1JlZjxF
ZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKK3sKKyAgICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5z
ZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKK30KKworUmVmPEVk
aXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQp
Cit7CisgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIGNvdW50KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4
dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25l
ZCBjb3VudCkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3Vu
dCkpOworfQorCitSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50
KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0KQoreworICAgIHJldHVybiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CiB9CiAKIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4g
cHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZD4gZGVsZXRlQ29tbWFuZCA9IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNv
bW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgcmVw
bGFjZW1lbnRUZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgpKSk7CiB9CiAKIFBvc2l0
aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0
IFN0cmluZyYgdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuaAppbmRleCBjMmI0ODlkLi5mOGRmOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDsKIGNsYXNzIEVk
aXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAg
LTEwMywxNSArMTA0LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1l
bnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBz
bWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBi
b29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVl
LCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBt
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRy
dWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29s
IHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2so
Y29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4s
IFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NS
ZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJT
cGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0
dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVm
UHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9
IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwg
Ym9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQg
aW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRl
eHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2Fs
RWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAg
dm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM0LDggQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUq
IHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwog
ICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQ
b3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAg
IHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7Cisg
ICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0
KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYp
OwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJl
cGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iY2ZkMjRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NGRmNTc5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisK
KyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQp
KTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2M2M5MjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgiCisKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCisgICAgOiBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkKK3sK
K30KKworUmVmPEVkaXRDb21tYW5kPiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYmUxNTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisj
ZGVmaW5lIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNl
LCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNt
YXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9v
bCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisKKyAgICB2
aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcAppbmRleCAyZWE5NmQ1Li41OTdmNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDggQEAK
ICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0
bWxlZGl0aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3LDIwIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
CiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKIH0K
IAorU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7Cisg
ICAgcmV0dXJuIG1fdGV4dDsKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK3ZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCit7CisgICAgaWYgKG5vZGUgJiYgQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9m
ZnNldCwgdGV4dCk7Cit9CisjZW5kaWYKKwogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU3LDkgKzczLDEwIEBAIHZv
aWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm47CiAgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogICAgIC8vIE5lZWQg
dG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKKyNlbmRpZgogCiAgICAgbV9u
b2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs5MCw5
IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1f
bm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAot
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVj
dENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25v
ZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0
KTsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV90
ZXh0LCBtX29mZnNldCk7CisjZW5kaWYKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5
MWYwNS4uNGU0N2NmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDE1IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90
ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgdW5zaWduZWQpOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCk7CisjZW5kaWYKIHBy
aXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0Fw
cGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2Rm
NC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25D
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQu
Y3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAK
ICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRl
eHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0
aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8
RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGlj
dGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0
aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5z
ZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3Rl
eHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFy
a2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5z
ZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3Jl
YXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmlu
ZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRl
KGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1h
bmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVmNjFiMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mZTU0NTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4g
Y3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFy
a2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFy
a2VyU3VwcGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4
dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzlj
YjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUg
Ikluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdp
dGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
UGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzQ3NzFiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0
ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgog
I2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzgyLDYgKzM4Mywx
NCBAQCB2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21h
cnREZWxldGUpCiAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGJvb2wgc21hcnREZWxldGUpCit7CisgICAgaWYg
KG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGFw
cGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
c21hcnREZWxldGUpKTsKK30KKwogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCiB7CiAgICAgQ2xl
YXJUZXh0Q29tbWFuZDo6Q3JlYXRlQW5kQXBwbHkoJm1fZnJhbWUpOwpAQCAtMTI2Niw3ICsxMjc1
LDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVy
IGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYg
KGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERl
bGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0
aFNtYXJ0RGVsZXRlRm9yQ3V0KGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOwogfQogCiB2b2lkIEVk
aXRvcjo6cGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzkyYmM0Ni4uOTM5ODI2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC00NTIsNiArNDUyLDcgQEAgcHJpdmF0ZToK
IAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0OwogCisgICAgdm9pZCBkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQoYm9vbCk7CiAgICAgYm9vbCBjYW5EZWxldGVSYW5n
ZShSYW5nZSopIGNvbnN0OwogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQo
UGFzdGVib2FyZCYpOwogICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKFBh
c3RlYm9hcmQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLjlmMDkwMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNl
bGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDIwIEBAIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3Rl
eHQ7Cit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCit2b2lkIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5z
aWduZWQgb2Zmc2V0KQoreworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKyNlbmRpZgorCiB2
b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFz
c3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVk
KCk7CkBAIC02NSw5ICs4MCwxMCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
QXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0
LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dElu
c2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV90ZXh0LCBtX29mZnNldCk7CisjZW5kaWYKIH0K
IAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEwICs5OCwxMSBAQCB2b2lkIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmhhc0VkaXRh
YmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKyAgICAKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkg
ZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVk
LCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fdGV4dCwgbV9v
ZmZzZXQpOworI2VuZGlmCiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4
dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLjVjYTJk
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7
CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0
ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQpOworI2VuZGlmCisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExB
VEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li4wY2I4YWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYs
MTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDYgKzQ5LDE1IEBAIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGlu
c2VydENoaWxkLCBQCiAgICAgQVNTRVJUKG1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+aGFzRWRp
dGFibGVTdHlsZSgpIHx8ICFtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCktPnJlbmRlcmVyKCkpOwog
fQogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQordm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBv
ZmZzZXQpCit7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOworfQorI2VuZGlmCisKIHZvaWQgSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIENvbnRhaW5lck5vZGUqIHBh
cmVudCA9IG1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKTsKQEAgLTU3LDggKzY3LDkgQEAgdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJl
Zm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBU
SU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwg
MCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkK
KyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVl
KCksIDApOworI2VuZGlmCiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCkBAIC02Niw5ICs3NywxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b1VuYXBwbHkoKQogICAgIGlmICghaXNFZGl0YWJsZU5vZGUoKm1faW5zZXJ0Q2hpbGQpKQogICAg
ICAgICByZXR1cm47CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0byBu
b3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9k
ZVZhbHVlKCkpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1faW5zZXJ0Q2hpbGQt
Pm5vZGVWYWx1ZSgpLCAwKTsKKyNlbmRpZgogCiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElH
Tk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjM3NWQwOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNpZm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsOSArMzksMTQg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
ICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpOwogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOworI2VuZGlmCisKK3ByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uYmZhMTgxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNTksMTAgKzU5LDExIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1l
bnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CiAgICAgfQogCi1wcml2YXRlOgotCi0gICAgSW5z
ZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0
SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5z
ZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYs
IGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5
cGUpOworCitwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0ZXIoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWMwYzNjYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5lNzNhZjdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6
IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBj
aGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAg
ICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0
QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9k
ZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MDdiNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmE0Y2Y0MWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5j
bHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjg5OGIwMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsx
LDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAg
IAorUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQodGV4dCwgb2Zmc2V0
LCBjb3VudCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZDhlM2UKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
X2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0K
KworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3
YTYyZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKKyAgICAsIG1fZGVsZXRlZFRl
eHQoZGVsZXRlZFRleHQpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOWZmNWJlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3Mg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcm90
ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCitwcml2YXRl
OgorICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRl
eCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJl
Zm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNDQsMTQgKzQ1LDIw
IEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGVMaXN0Lmgi
CiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJP
YmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVk
ZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTE0ODIsNiArMTQ4OSwz
MCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1cGRhdGVOb2Rlc0luc2VydGVkKE5v
ZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50ID0gbGFzdFBvc2l0aW9uSW5P
ckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsKIH0KKyAgICAKK1JlZjxFZGl0Q29t
bWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBF
ZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0
dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBkZWZhdWx0
OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVD
b21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25z
dCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7Cisg
ICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4
dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1
cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIH0KK30K
IAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdlJ3JlIGp1c3QgcGFzdGluZyBhIHRl
eHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2VydCB0aGUgdGV4dCBub2RlCiAvLyBk
aXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xkcyB0aGUgc2VsZWN0aW9uLiAgVGhp
cyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXplZCBjb2RlIGluCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNm
Zi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIHBl
cmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVudEZyYWdtZW50Jik7CiAKKyAgICB2
aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0
cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICBQb3NpdGlvbiBtX3N0YXJ0
T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9lbmRPZkluc2VydGVkQ29udGVudDsK
ICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlvblN0eWxlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNp
bmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgi
CiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoY29u
c3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIAogdm9pZCBUeXBpbmdD
b21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwg
Ym9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5k
PiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBz
ZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5k
ID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxl
Y3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3Np
dGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5n
V2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMp
OwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9u
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uM2JmYjk3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iNDA3NDk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KK3ByaXZhdGU6Cisg
ICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBhNGRjZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVm
UHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZv
cmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jNDQyMTkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5v
ZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwK
KyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRv
SW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVm
UHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIK
KyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAi
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRD
b21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVj
dEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0
VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNl
VHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6
aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVm
PEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorewor
ICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAg
KzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5z
ZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VU
eXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVu
dCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3Ry
aW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uN2FjM2NhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRl
eHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMjNmZjNhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
PiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAotLSAKMi4zLjAgKEFwcGxlIEdpdC01NCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250242</attachid>
            <date>2015-04-06 17:04:04 -0700</date>
            <delta_ts>2015-04-07 13:25:26 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>67342</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAxZjViYjkxMGE2ZGIzNjFhYWY0OTdhYWZmYzFiNGViM2ZlNWE3NTM4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMjAgKysrKysrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
ICAgICB8ICA5MiArKysrKysrKysrKysrKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaCAgICAgICB8ICA2NyArKysrKysrKysrLS0KIC4uLi9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAgIHwgIDQxICsrKysrKysKIC4uLi9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggICAgICAgIHwgICAyICsKIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAyICsK
IC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gIHwgICA2
ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8
IDExMiArKysrKysrKysrKysrKysrKystCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLmggICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAzMCArKysrLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaCAgICAgICAgIHwgICAzICsKIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgICAzICsKIC4uLi9lZGl0aW5nL0N1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICAgIHwgICA2ICsrCiAuLi4vV2ViQ29y
ZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgNCArCiAuLi4vV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICB8ICAgNSArCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCB8ICAgMSArCiAu
Li4vV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICB8ICAzMSAr
KystLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwICB8ICAgNSArLQogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgfCAgIDUgKwogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5j
cHAgICAgICAgICAgICAgfCAgMjUgKysrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENv
bW1hbmQuaCAgICAgICAgICAgICAgIHwgICA1ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcCAgICAgICAgICAgICAgICAgIHwgIDE3ICsrLQogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaCAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgIHwgIDMxICsrKy0tLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggfCAgIDkgKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIHwgIDM0ICsrKy0t
LQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAgfCAg
IDkgKy0KIC4uLi9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICAgICAg
IHwgICA1ICsKIC4uLi9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIHwgICAyICsKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAgICAgIHwgICA1ICsKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggICAgICAgIHwgICAyICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCAgIHwgICA1ICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggICAgIHwgICA0ICstCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgICB8ICAzMCArKysrKysKIC4uLi9lZGl0aW5nL1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgIHwgICA1ICstCiAuLi4vZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICB8ICAgNSArCiAuLi4vZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICB8ICAgMyArCiAuLi4vZWRpdGluZy9U
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAgICB8ICAgNSArCiAuLi4vZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAgICAgICB8ICAgMiArCiAuLi4vVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICB8ICAgNSArCiAuLi4v
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAgICB8ICAgMiArCiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8ICAxMiAr
Ky0KIDQ0IGZpbGVzIGNoYW5nZWQsIDY3MyBpbnNlcnRpb25zKCspLCAxMDAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDQxODg2OGEuLjk0YjY5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwx
MjYgQEAKIAogICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMKIAor
ICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4g
SW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
IGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRl
Y2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBp
biB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBj
aGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdh
cnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAg
IChXZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29y
ZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hl
SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4
dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAgICAgICogZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hh
bmdlZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29t
bWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBv
c2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBl
ZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2xl
YXJUZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aW5zZXJ0RGljdGF0
aW9uUGhyYXNlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcv
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBl
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVk
aXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5u
ZXJUZXh0VmFsdWUpOgorCisyMDE1LTA0LTA2ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBw
bGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucwor
CiAgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQg
dGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQg
c2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBUaGlzIGNvbW1pdCBpcyBhbGwgaW5mcmFz
dHJ1Y3R1cmUgYW5kIGRvZXNuJ3QgY29udGFpbiBhbnkgYWNjZXNzaWJpbGl0eSBzcGVjaWZpYyBj
aGFuZ2VzLgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IGEwMGIxNWMuLmRhODBjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI5LDYg
KzEyOSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNj
ZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlm
aWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywg
JkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9
CiAKQEAgLTc0Miw2ICs3NDMsMjAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Q
b3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRP
YmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0
VGltZXIuc3RvcCgpOworCisgICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFz
IGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywg
d2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIHdoZW4gdGhlIG5v
dGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMg
bGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1f
cGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbm90
ZSA6IG5vdGlmaWNhdGlvbnMpIHsKKyAgICAgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBs
YXRmb3JtCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihz
dGQ6OmdldDwwPihub3RlKS5nZXQoKSwgc3RkOjpnZXQ8MT4obm90ZSksIHN0ZDo6Z2V0PDI+KG5v
dGUpLCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgfQorfQogICAgIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0
aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlw
ZSkKIHsKQEAgLTg1MCwxNiArODY1LDc2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0
aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxl
UGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4dChj
b25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8
IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBvYmou
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVsZFZh
bHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRp
dFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRpemVkVGV4dCA9IHRl
eHQ7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Cisg
ICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2Fu
aXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJsZU9iamVjdCgp
LCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7
CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVk
VGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxh
dGZvcm0KKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBk
ZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGlu
c2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VS
VChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOwogCiAg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0Owor
ICAgIFN0cmluZyBzYW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikg
eworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25z
VG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCksIGlu
c2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYgKCFt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2
YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0
Zm9ybQorICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRl
bGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIHNhbml0aXpl
ZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKICAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0
ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQp
OworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdl
Rm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgogfQogCiB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFt
ZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMTU5LDE3IEBAIGJv
b2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAg
ICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3Qo
KSkgeworICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqZmlyc3RDaGlsZCA9IHJvb3RP
YmplY3QtPmZpcnN0Q2hpbGQoKSkgeworICAgICAgICAgICAgaWYgKGZpcnN0Q2hpbGQtPmlzV2Vi
QXJlYSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmaXJzdENoaWxkOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6
QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2Nh
Y2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAppbmRleCBiZmE5Mjc3Li45MTg0MDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksMjUgQEAg
cHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNs
eSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1
bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5
cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d24sCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKKyAgICB9OworCisgICAgZW51
bSBBWFRleHRFZGl0VHlwZSB7CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAg
ICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAg
QVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhU
ZXh0RWRpdFR5cGVUeXBpbmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVk
aXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRF
ZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0
ZSAvLyBJbnNlcnQgdmlhIFBhc3RlCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmKTsKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZh
bHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZl
bnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzIzMSwzNCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJ
RWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2Rl
KTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdl
IHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAg
fTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRF
ZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6
CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICB9
CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7
CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENo
YW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1l
bnQqKTsKQEAgLTIyOSw2ICsyNjksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVz
ZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBw
cml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAg
ICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNz
aWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFY
SUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2ICsyODYsMTEgQEAgcHJpdmF0ZToK
ICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWly
PFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNh
dGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisg
ICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8c3Rk
Ojp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYVGV4dEVkaXRUeXBlLCBTdHJp
bmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90
aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChO
b2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9p
ZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTMwOCw4ICszNTUsMTQgQEAgaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcq
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQot
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9S
TShDT0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0
RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vs
c2UKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0
aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZp
Y2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi5hYzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApA
QCAtNTUyLDYgKzU1Miw0NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3
b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVs
ZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5v
ZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2Rl
LT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dv
cmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQg
PSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+
KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhP
YmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUo
ZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
KSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRl
KCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBl
bGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRF
bGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5p
c1Bhc3N3b3JkRmllbGQoKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJ
bnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCmluZGV4IDNlNzU3MmYuLjdkYmQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JD
b250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlk
ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAg
LTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2Uo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWlu
ZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmll
bGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
VGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJl
YSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpp
bmRleCAxMTllMGIwMC4uMDk4N2Y0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxMSBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9z
dGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgcG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sK
K30KKwordm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0KaW5kZXggMmM3NDQzMC4uMmM0ZDNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw0MiBAQAog
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFY
TGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5n
ZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRp
dFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVz
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VW
YWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFs
dWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5n
dGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0
Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5k
aWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cg
ZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU3LDggKzE5Myw4MiBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3N0YXRpYyBOU0Rp
Y3Rpb25hcnkqIHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBOU1N0
cmluZyogdGV4dCA9IChOU1N0cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9
IFt0ZXh0IGxlbmd0aF07CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBuaWw7Cisg
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSogY2hhbmdlID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFs
bG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0
RWRpdFR5cGVdID0gQCh0eXBlKTsKKyAgICBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciB0cnVuY2F0
aW9uTGVuZ3RoID0gMTAwMDsKKyAgICBpZiAobGVuZ3RoID4gdHJ1bmNhdGlvbkxlbmd0aCkgewor
ICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAo
bGVuZ3RoKTsKKyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6dHJ1bmNhdGlv
bkxlbmd0aF07CisgICAgfQorICAgIGlmIChsZW5ndGggPiAwKQorICAgICAgICBjaGFuZ2VbTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlz
Tm90TnVsbCgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0gW29iai0+d3JhcHBlcigp
IHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hh
bmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJr
ZXI7CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7CisgICAgaWYgKCFvYmop
CisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisK
KyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0
aW9uYXJ5KG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3
cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFy
ZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24s
IHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERS
VCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWRO
b3RpZmljYXRpb25dOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVk
aXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRp
dFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9
IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAg
TlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxs
b2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisg
ICAgTlNNdXRhYmxlQXJyYXkgKmNoYW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OjJdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBs
YWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBw
b3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChO
U0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2Jq
LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5n
ZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZVZhbHVlc10gPSBjaGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYg
KGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290
V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlv
bldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNh
dGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQg
YnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3Rhcmdl
dCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hh
bmdlZE5vdGlmaWNhdGlvbl07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5n
RXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2Jq
ZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi45MjIyOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVyZmFjZSBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooV2ViQ29y
ZTo6VmlzaWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFdlYkNvcmU6OlZp
c2libGVQb3NpdGlvbillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9z
aXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVu
ZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAyZGU2ZGJmLi42NzFk
MWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApA
QCAtMjYsMTIgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwZW5k
Tm9kZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5k
ZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDE3ICs0OCwyMyBAQCBBcHBlbmROb2RlQ29t
bWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFt
X3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5n
ZSBjaGFuZ2UsICBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKK3N0YXRpYyB2
b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUpCiB7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm47CisKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGNvbnN0IFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9k
ZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1h
bmQKICAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5n
ZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5k
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBv
c2l0aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwg
MCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hl
LT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCkBAIC02OCwxNiArNzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6
ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05P
UkVfRVhDRVBUSU9OKTsKIAotICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtz
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fbm9kZS0+bm9k
ZVZhbHVlKCksIDApOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1f
bm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFu
ZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkp
CiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCwgbV9ub2RlLT5ub2RlVmFsdWUoKSwgMCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBt
X25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTkwLDQgKzk2LDE0IEBAIHZv
aWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBu
b2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBl
ZGY2ODFiLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oCkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5v
ZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7
CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDMxZjUxNzguLmFmZWQyYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJB
cHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIK
KyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTQyLDYgKzU0Myw4IEBAIHZvaWQgQ29t
cG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mCiAKIFJlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogeworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0g
RWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKICAgICByZXR1cm4gRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcAppbmRleCBiY2ZkMjRhLi5mZGY5YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNSw0ICszNiw5IEBAIEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaAppbmRleCA0ZGY1NzkxLi5iZjJmYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzks
NiArMzksMTAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2
YXRlOgorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApp
bmRleCAxNjNjOTIyLi4xYjRlNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTQyLDQgKzQyLDkgQEAgUmVmPEVk
aXRDb21tYW5kPiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHIKICAgICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCitFZGl0QWN0aW9uIEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBF
ZGl0QWN0aW9uQ3V0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IDljYmUx
NTcuLjFkMDVjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oCkBAIC00MSw2ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVy
Z2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxF
bGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKIAogICAgIHZpcnR1YWwgUmVmPEVkaXRDb21t
YW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24oKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDU5N2Y0OWMuLjg1NzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtNTIsMTUgKzUyLDYgQEAgU3Ry
aW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCiAgICAgcmV0dXJu
IG1fdGV4dDsKIH0KIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLXZvaWQgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9k
ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCB1bnNpZ25lZCBvZmZzZXQpCi17Ci0gICAgaWYgKG5vZGUgJiYgQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
bm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4
dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTcyLDExICs2MywxMCBAQCB2b2lkIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+c3Vi
c3RyaW5nRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuOwotICAgIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKwogICAgIC8vIE5lZWQgdG8g
bm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpB
WFRleHREZWxldGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKLSNlbmRpZgorICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBW
aXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9k
ZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtOTAsOSArODAsOCBA
QCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25v
ZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV90ZXh0LCBt
X29mZnNldCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRp
b24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTEwMiw0ICs5
MSwxNCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5k
KEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVu
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlSW5zZXJ0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDRlNDdjZjku
LjdhMzFjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCkBAIC00NSw5ICs0NSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAg
ICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCk7CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRDaGFuZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkKTsKLSNlbmRpZgogcHJpdmF0ZToKIAog
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CkBAIC01Niw3ICs1MywxMCBAQCBw
cml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQg
bV9vZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9jb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDJiYmM2ZWQuLjQ5ZjAwZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRv
QXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rp
b24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVTZWxlY3Rpb25Db21tYW5kIGlz
IGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERlbGV0ZSBrZXksCi0gICAgLy8g
YnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFuZCB0aGF0IHN1cHBsaWVzIHRo
ZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8gbWVudSBjb3JyZWN0bHkgc2hv
d3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworICAgIHJldHVybiBF
ZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0IHByZXNl
cnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBGb3IgZXhh
bXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDc1ZjYxYjAuLmY4OGM0MDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzcsNCArMzcsOSBAQCBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdAogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb247Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggZmU1NDUxMC4uZjI5ODM2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUzMi4uOTFlYTkwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTEyNCw1ICsxMjUsMjkgQEAgdm9pZCBTaW1w
bGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwgSGFz
aFNldDxOb2RlKj4mIG4KICAgICAgICAgbm9kZXMuYWRkKG5vZGUpOwogfQogI2VuZGlmCisgICAg
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
U2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK3ZvaWQgU2ltcGxl
RWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAg
aWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKK30KKyNlbmRpZgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgK
aW5kZXggMDNlNmMzNy4uZjViODZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
aApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRD
b21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0QWN0
aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBAIC05Nyw2ICs5OCwxMCBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hT
ZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGM0Nzcx
YmQuLjBiMGMxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM3NSwyMCArMzc1
LDE1IEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlv
biBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0
ZSkKK3ZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFy
dERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNl
bGVjdGlvbigpLmlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQo
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7
Ci19Ci0KLXZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQo
Ym9vbCBzbWFydERlbGV0ZSkKLXsKLSAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXBwbHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChlZGl0
aW5nQWN0aW9uID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChEZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBl
bHNlCisgICAgICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4
dCgpCkBAIC0xMjc1LDcgKzEyNzAsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShF
ZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bh
c3RlYm9hcmQoKTsKICAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOwor
ICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxl
dGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAppbmRleCA5Mzk4MjY0Li42NmRiMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFy
dERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRp
dEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsKQEAg
LTQ1Miw3ICs0NTIsNiBAQCBwcml2YXRlOgogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29u
c3Q7CiAKLSAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZUZvckN1dChib29s
KTsKICAgICBib29sIGNhbkRlbGV0ZVJhbmdlKFJhbmdlKikgY29uc3Q7CiAgICAgYm9vbCBjYW5T
bWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgdm9pZCBwYXN0ZUFz
UGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggOWYwOTAy
Ny4uYWVjNDc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC01NiwxNSArNTYsNiBAQCBTdHJpbmcmIEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCiAgICAgcmV0dXJuIG1fdGV4dDsKIH0K
IAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLXZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBv
ZmZzZXQpCi17Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
Ci0gICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOwotfQotI2VuZGlmCi0KIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVj
aG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAg
LTgxLDkgKzcyLDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
IAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBU
SU9OKTsKICAgICAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCwgbV90ZXh0LCBtX29mZnNldCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBv
c2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJ
T1MpCkBAIC05OCwxMSArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpk
b1VuYXBwbHkoKQogewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKICAgICAvLyBOZWVk
IHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZCwgbV90ZXh0LCBtX29mZnNldCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90
ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAg
IG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIH0KQEAgLTExNCw0ICsxMDMsMTQgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5k
aWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaAppbmRleCA1Y2EyZDk2Li5lMzNmNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDQsMTAgKzQ0LDYg
QEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7
CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2Us
IGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkKTsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgp
IG92ZXJyaWRlOwpAQCAtNTgsNyArNTQsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAg
ICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJp
ZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQ
dHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIFN0cmluZyBtX3Rl
eHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCmluZGV4IDBjYjhhZGMuLjhkNWVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSwxNSArNTAsNiBA
QCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUAogICAgIEFTU0VSVChtX3JlZkNoaWxkLT5wYXJlbnRO
b2RlKCktPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5y
ZW5kZXJlcigpKTsKIH0KIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLXZvaWQgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5v
ZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4
dCwgdW5zaWduZWQgb2Zmc2V0KQotewotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQotICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKLX0KLSNlbmRp
ZgotCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBDb250
YWluZXJOb2RlKiBwYXJlbnQgPSBtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCk7CkBAIC02Nyw5ICs1
OSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBh
cmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCks
IElHTk9SRV9FWENFUFRJT04pOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgMCk7Ci0j
ZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewor
ICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkp
ID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3Jl
YXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBh
cHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRp
b24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvVW5hcHBseSgpCkBAIC03NywxMCArNzAsMTEgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6ZG9VbmFwcGx5KCkKICAgICBpZiAoIWlzRWRpdGFibGVOb2RlKCptX2luc2VydENoaWxk
KSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogICAgIC8vIE5l
ZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIDAp
OwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
IHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdl
dCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6
IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAg
ICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQo
KSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxl
UG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUo
SUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC05Myw0ICs4NywxNCBAQCB2b2lkIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9
CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggMzc1ZDA5
OS4uOGQ5YzYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaApAQCAtNDIsMTAgKzQyLDYgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAg
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwg
UGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSk7CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCk7Ci0jZW5kaWYKLQogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
b1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTUzLDcgKzQ5LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVm
IE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
CiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVm
Q2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGFjMGMzY2Iu
LjYxYWNhYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBAQCBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4gaW5zZQogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBl
NzNhZjdjLi4xZDA1NTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtNDAsNiArNDAsOCBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5v
ZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDM0MDdiNDMuLmM0N2E3ZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBAQCBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhcwogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggYTRjZjQx
ZS4uOGU2YTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQxLDYgKzQxLDgg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBy
ZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA4OThiMDE3Li5lMDE3YjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAKKyNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0zNSw0ICszNiw4IEBAIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRlCiB7CiB9CiAKK3Zv
aWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IGRmZDhlM2UuLmQzMGZkYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZF9oCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Miw2ICs0MSw5IEBA
IHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDg3YTYyZjguLmJhNDU1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIApAQCAt
MzcsNCArMzgsMzMgQEAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGUKIHsKIH0KIAordm9pZCBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAg
IGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd246
CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZVBhc3RlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAg
IGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCByZXBsYWNlQXBwbHlFZGl0
VHlwZSgpLCB0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaAppbmRleCBkOWZmNWJlLi41N2U1MzQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMjYsNyArMjYsNiBAQAogI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCiAjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAotI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQyLDExIEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBl
KCk7CisKIHByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKICAgICBTdHJpbmcgbV9k
ZWxldGVkVGV4dDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDNiZmI5N2QuLjNlNDIy
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzcsNCArMzcsOSBAQCBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dAogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggYjQwNzQ5OC4uMDBiZDE0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTM2LDggKzM2LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7CiAgICAgfQorCiBwcml2YXRlOgogICAgIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBl
KCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
CmluZGV4IDMwYTRkY2YuLjdiMjQ2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSw5
IEBAIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaAppbmRleCBjNDQyMTkxLi44MTc0NjEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC00
MCw2ICs0MCw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggN2Fj
M2NhMy4uMzBkZDUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTM1
LDQgKzM1LDkgQEAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFAKIHsKIH0KIAorQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyM2ZmM2EyLi45NmMyZTBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCkBAIC00MSw2ICs0MSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIu
LjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
ICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9v
bCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQp
OworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRl
eHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAg
ICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7Cisj
aWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0
ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAg
ICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhW
YWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYK
ICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0
aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFu
Z2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMs
IFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9CisjZW5kaWYK
ICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwot
LSAKMi4zLjAgKEFwcGxlIEdpdC01NCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250243</attachid>
            <date>2015-04-06 17:04:29 -0700</date>
            <delta_ts>2015-04-07 13:25:59 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>43066</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBlYjcyY2VjMTJjMDBhMjYxZDFmOTMxNmIzMGVlNjM3ZTM2NGRjNmU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTYgKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICAgIHwgMTQy
ICsrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggICAgICAgfCAgNzggKysrKysrKysrKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgIHwgIDI5ICsrKystCiAuLi4vV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8ICA1NyArKysrKysrKysKIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgICA3ICsK
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAgICAgIHwgICAx
ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCAgICAgICAgICAgICAgIHwg
ICA0ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCAgICAgICAgICAgICAgICAg
IHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oICAgICAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
ICAgICAgICAgfCAxMTAgKysrKysrKysrKysrKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oICAgICAgICAgICAgfCAgMTcgKystCiAuLi4vZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICB8ICAgNSArCiAuLi4vZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSAgICB8ICAgOSArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgfCAgIDkgKy0KIDE2IGZp
bGVzIGNoYW5nZWQsIDUwNSBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggOTRiNjkwZC4uY2YwMmQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDYyIEBACiAKICAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCiAKKyAgICAgICAgUmlj
aGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1
Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJl
cGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJl
bGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBz
ZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29y
ZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbklu
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhU
ZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24pOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAg
ICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9F
ZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjph
cHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNl
bGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAg
ICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCisyMDE1LTA0LTA2ICBEb3VnIFJ1c3Nl
bGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFu
Z2Ugbm90aWZpY2F0aW9ucworCiAgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNo
YW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24g
dG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVz
cG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hh
bmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29h
bGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4K
IAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRl
eCBkYTgwYzMxLi4yMDI1YWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKQEAgLTg2NSw2ICs4NjUsMTQ4IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBw
b3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJn
ZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQor
eworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRp
dDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHBy
aW50ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50
ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtu
b3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50Zigi
RGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZUluc2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHBy
aW50ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoK
KyAgICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5r
bm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAg
ICAgICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYo
IkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAg
ICAgICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgewor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAg
ICAgICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAg
ICAgIHByaW50ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAg
IHByaW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAg
IHByaW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHBy
aW50ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRm
KCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAg
cHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90
ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCit7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0g
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2Vs
ZWN0aW9uSW50ZW50OworCisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRl
cygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7
CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBv
YmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIC8vIERl
bGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0aW9uKTsKKyAgICBzZXRUZXh0U2Vs
ZWN0aW9uSW50ZW50KCk7Cit9CisKIHN0YXRpYyBib29sIHNhbml0aXplUGFzc3dvcmRUZXh0KGNv
bnN0IEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iaiwgU3RyaW5nICZ0ZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIGlmIChvYmouaXNQYXNzd29yZEZpZWxkKCkgfHwg
b2JqLmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggOTE4NDAwNC4uNjM1MDYwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTE5MSw3ICsx
OTEsOSBAQCBwdWJsaWM6CiAKICAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7CiAgICAg
ICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCi0gICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCiAgICAgfTsKIAogICAgIGVudW0gQVhUZXh0RWRpdFR5
cGUgewpAQCAtMjA5LDYgKzIxMSw3NSBAQCBwdWJsaWM6CiAgICAgLy8gQ29tcG91bmQgdGV4dCB2
YWx1ZSBjaGFuZ2UKICAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAKKyAgICBlbnVtIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cworICAgIH07CisKKyAgICBl
bnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBh
Y3Rpb24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24u
IEV4dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBl
bmNvbXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdy
YW51bGFyaXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVj
dGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAg
ICA6IGRpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51
bGFyaXR5KQorICAgICAgICB7IH0KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAg
IHVuaW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAg
ICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3lu
YzsKKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5
cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBz
ZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAg
ICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAg
ICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUo
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkK
KyAgICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykK
KyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0
U2VsZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAg
ICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8
fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAg
IH0KKyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxl
Y3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJik7CisKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAg
ICAgQVhMb2FkaW5nU3RhcnRlZCwKICAgICAgICAgQVhMb2FkaW5nUmVsb2FkZWQsCkBAIC0yMzIs
NiArMzAzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlF
bGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUp
OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAgICAgdm9pZCBwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKICAgICB2b2lk
IHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKICNlbHNlCkBAIC0yOTgsNiArMzcw
LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZElt
YWdlTWFwVUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJ
RChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBt
X3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxl
cgpAQCAtMzU1LDkgKzQyOSwxMSBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVT
Y3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCop
IHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRl
ck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRU
b0FuY2hvcihjb25zdCBOb2RlKikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQogaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KICNpZiBQTEFURk9STShDT0NPQSkKK2lubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjhlMGQ3
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwyNCBAQCBQbGFpblRl
eHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNv
bnN0CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdl
KGNvbnN0IFBsYWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29u
dHJvbCgpKSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2Vs
ZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdl
Lmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLCB0cnVlKSk7CisjZW5kaWYKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQm
IHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlv
blJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwot
ICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLAotICAgICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJh
bmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJF
QU0pKTsKKyAgICBQb3NpdGlvbiBwb3MxID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBv
c2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFBvc2l0aW9uIHBvczIgPSBQ
b3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0
aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0
aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MxLCBwb3MyLCBET1dOU1RSRUFNKTsKKyAgICBtX3Jl
bmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbih2aXNpYmxlU2VsZWN0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+
IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQg
OiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVl
KQorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICApOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAg
LTE5NjAsMTMgKzE5NzAsMjIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRT
ZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAo
cmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQg
dG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlv
bgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0
ID09IHJhbmdlLmVuZCkgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0
VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVl
KSk7CisjZW5kaWYKICAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3Zl
VG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAg
ICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdl
LnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFt
ZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkKKyNlbmRpZgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQppbmRleCAyYzRkM2JlLi40NjBhYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ4LDYgKzQ4LDEwIEBACiAj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVT
eW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRT
dGF0ZVN5bmMiCisjZW5kaWYKKwogI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24g
QCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCiAjZW5kaWYKQEAgLTgwLDYgKzg0LDEwIEBACiAj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxl
bWVudCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtl
clJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtl
clJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCiAv
LyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRp
b25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xOTMsNiArMjAxLDU1IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdl
YkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFi
bGVEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5p
dFdpdGhDYXBhY2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAoaW50ZW50
LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50LnR5cGUp
OworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24p
OworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25C
ZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICAg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XSA9IEAo
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
IH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1h
cmtlclJhbmdlID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9z
aXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlz
aWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVNlbGVjdGVk
VGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5nZTsKKyAgICB9CisgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gb2JqLT53cmFwcGVy
KCk7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNj
ZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3Vz
ZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlm
aWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3Rp
ZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbl07
Cit9CisKIHN0YXRpYyBOU0RpY3Rpb25hcnkqIHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKIHsKICAgICBOU1N0cmluZyogdGV4dCA9IChOU1N0cmluZyAqKXN0cmluZzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggYWZl
ZDJiOS4uNjcyNjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKQEAgLTE1NTQsNCArMTU1NCwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+
IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICBy
ZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQogCitBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW50
ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2Nv
bW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT5pbnRlbnQoKTsKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5o
CmluZGV4IGY4ZGY5ZDkuLjQ1ZDM4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvcigpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvcihib29s
KTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBD
b21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29t
bWFuZC5oCmluZGV4IGY1Yjg2YzMuLjVjYTE5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRv
QXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChE
b2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTEwMiw2ICsxMDQsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBwbHlFZGl0VHlwZSgpKTsgfQorCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRl
eCAwYjBjMTBiLi5jMTUzYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMDA1
LDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21w
b3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBz
dHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNl
d2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246
OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5k
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5k
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5pbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0
YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNvbXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJs
ZUVsZW1lbnQoKSwgY29tcG9zaXRpb24tPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAK
ICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0yODU0LDcgKzI4NTQsNyBA
QCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9h
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRl
cm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFm
dGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUg
bmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlv
bi4KICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rp
b24uZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NjYsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpj
aGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2Vs
ZWN0aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRD
aGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQg
YXJlIG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9z
aXRpb24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsK
ICAgICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxl
Y3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9m
cmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAg
ICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRp
b25zLCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRo
ZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhp
biB0aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0
aGUgZm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKaW5kZXggNjZkYjAyMC4uZDZjNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBA
IC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7
IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENv
bXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lk
IGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lk
IGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRB
Y3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0
aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggYThmMWI0MS4uN2VjNTRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsxMzgsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6
cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29uc3QKIAogdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdn
ZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewotICAgIHNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVl
cEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwo
KSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBh
bGlnbik7CisgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFs
ZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24u
aXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJl
ZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1l
U2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTI1
NCw3ICsyNTMsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlm
RGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rp
b24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9u
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJl
dCgpKQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0
aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8K
ICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJh
c2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlv
bkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlm
IChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9
IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFt
ZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24s
IGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVj
dGlvbkludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8vIEl0
J3MgcG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJh
bWVTZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBzZWxl
Y3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVj
dGlvbiBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUgZnJh
bWUgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBv
dXIgc2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlv
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMg
b3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3Jv
bGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNl
bGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGln
biwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbiwgU2V0U2VsZWN0aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5
b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oKTsKKyAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3Rh
dGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZy
YW1lKQpAQCAtMzYwLDcgKzM2OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2Vs
ZWN0aW9uVXBkYXRlKCkKICAgICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25V
cGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3ICszODgsNyBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQogICAgICAgICByZXZlYWxTZWxlY3Rp
b24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KIAotICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKGludGVudCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZURh
dGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKQpAQCAtMTAxOCw3ICsxMDI2LDgwIEBAIFZpc2libGVQ
b3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8
IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3Vt
ZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpU
ZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAo
YWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVu
dC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9m
U2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAg
ICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJp
dHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5
OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5l
R3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6
CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6Cisg
ICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAg
ICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToK
KyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6
CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0
eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBh
cmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91
bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rp
b24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2Fy
ZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
QmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZs
aXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgor
ICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQg
OiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2Vy
ZWQpCiB7CkBAIC0xMDc0LDYgKzExNTUsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5
KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAg
ICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlv
biA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50
KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFu
dWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMg
c2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEg
c2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBs
YXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkg
YmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzA3LDggKzE3OTMsMTAgQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24g
bmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9k
ZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVj
dGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisgICAgICAgIHNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBG
aXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29s
IGNsb3NlVHlwaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IDBlNGUyOGUuLmI3NGZiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBG
cmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
RWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJl
Y3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJu
IENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJldmVh
bFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9CisgICAgCisgICAgc3Rh
dGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JU
IGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyAr
MTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3Qg
UG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBi
b29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9w
dGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xs
ID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0
ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9
IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVs
YXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSos
IEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyAr
Mjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFS
VCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwog
ICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBz
ZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVs
YXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGlu
ZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUp
OwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50
ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVj
dGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICsz
NzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1Jl
ZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlu
bGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkK
IHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCBiYTQ1NTM5Li44YmM3OGMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtNjcsNCArNjcsOSBAQCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFj
ZUFwcGx5RWRpdAogICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2Vy
dDsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggNTdlNTM0
MGEuLjI5MGMxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHJvdGVj
dGVkOgogICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKTsK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRl
ZTFjLi45OWM0NTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFt
ZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNl
bGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDIwIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJp
bGl0eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JN
KElPUykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBpbnRlbnQpCiB7CisjaWYgIVBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShJT1Mp
CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisjZW5kaWYKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCku
aXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9TKQorICAgICAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQo
KS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKKyNlbHNlCiAgICAgICAg
ICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0
ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdl
ZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisjZW5kaWYKICAgICB9CiAKICNpZiAhUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGFlOTRiZjYuLmJj
ZmEwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODYsNyArMzE4
NiwxNCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZy
YW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAK
LSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gaW50ZW50ID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRGlzY29udGlndW91cyk7CisjZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0U2Vs
ZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFU
Rk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIGludGVudAorI2VuZGlm
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxl
S2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2
ZW50KQotLSAKMi4zLjAgKEFwcGxlIEdpdC01NCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250244</attachid>
            <date>2015-04-06 17:05:16 -0700</date>
            <delta_ts>2015-04-08 13:10:12 -0700</delta_ts>
            <desc>tests</desc>
            <filename>0004-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>1928</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA3NWExMjY3MjAzYTFmOGQ2ZTRiZDVlN2Q0ZjdkNzE1MzAzOTgzOTE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAxMDo0ODo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVGVzdHMKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKysrKysrKysKIC4uLi9zZWxlY3Rp
b24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgICAgICAgICAgICB8ICAzICsr
LQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGY4OThjOGQuLjhlM2M2NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0wNC0wNiAg
RG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVy
IHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMKKworICAgICAgICBGaXggZmFpbGluZyB0ZXN0CisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4
dGJveC5odG1sOgorCiAyMDE1LTAzLTMxICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OIChyMTczNDg0KTogUmVkdWNpbmcgY29udGVudCBvZiBzY3Jv
bGxhYmxlIHJlZ2lvbiBkb2VzIG5vdCByZXNldCBzY3JvbGwgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXgg
YTFlODQzZS4uMTI2NDZkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1s
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12
YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250
ZW50IGluc2lkZQogICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2
YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5v
dGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9u
IiwgInRydWUiKTsKICAgICB9CiAKLS0gCjIuMy4wIChBcHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250245</attachid>
            <date>2015-04-06 17:05:48 -0700</date>
            <delta_ts>2015-04-08 13:10:29 -0700</delta_ts>
            <desc>debugging</desc>
            <filename>0005-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>3268</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBmYjRjN2VkYWMyZDVlNzQyNmRkMDQ3ZGY4M2YzYmZhMjA3ODcxMTI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgNiBBcHIgMjAxNSAxNTo0NzozOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKRGVidWcgTG9nZ2luZwotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIHwgMjUgKysrKysrKysrKysrKysrKysr
KysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGNmMDJkM2YuLmE2YzM4ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyMiBAQAogCiAgICAgICAg
IEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucwogCisgICAgICAgIERlYnVnIGxv
Z2dpbmcKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKworMjAxNS0wNC0wNiAgRG91ZyBSdXNz
ZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hh
bmdlIG5vdGlmaWNhdGlvbnMKKwogICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KIAogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAyMDI1YWMzLi5hMjJl
ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKQEAgLTk5Miw2ICs5OTIsMTEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hhbmcKICAgICBpZiAo
aW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKICAgICAgICAgaW50
ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogCisjaWZuZGVmIE5ERUJVRyAvLyBBWFRPRE8g
cmVtb3ZlIGxvZ2dpbmcKKyAgICBwcmludGYoInBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24oQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpXG4iKTsKKyAgICBzaG93SW50ZW50KGludGVudCk7
CisgICAgcHJpbnRmKCJcbiIpOworI2VuZGlmCiAKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2Jq
ZWN0QXR0cmlidXRlcygpOwogCkBAIC0xMDI0LDYgKzEwMjksMTMgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVk
aXRUeXBlIHQKIAogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAK
KyNpZm5kZWYgTkRFQlVHIC8vIEFYVE9ETyByZW1vdmUgbG9nZ2luZworICAgIHByaW50ZigicG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBWFRleHRFZGl0VHlwZSlcbiIpOworICAgIHNo
b3dJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQodHlwZSkpOworICAgIHRleHQuc2hvdygp
OworICAgIHByaW50ZigiXG4iKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
U3RyaW5nIHNhbml0aXplZFRleHQgPSB0ZXh0OwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGdldE9yQ3JlYXRlKG5vZGUpOwpAQCAtMTA1NSw2ICsxMDY3LDE5IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRl
eHRFZGl0VHlwZSBkCiAKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygp
OwogCisjaWZuZGVmIE5ERUJVRyAvLyBBWFRPRE8gcmVtb3ZlIGxvZ2dpbmcKKyAgICBwcmludGYo
InBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oKVxuIik7CisgICAgaWYgKGRlbGV0ZWRU
ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgIHNob3dJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoZGVsZXRpb25UeXBlKSk7CisgICAgICAgIGRlbGV0ZWRUZXh0LnNob3coKTsKKyAgICB9Cisg
ICAgaWYgKGluc2VydGVkVGV4dC5sZW5ndGgoKSkgeworICAgICAgICBzaG93SW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KGluc2VydGlvblR5cGUpKTsKKyAgICAgICAgaW5zZXJ0ZWRUZXh0
LnNob3coKTsKKyAgICB9CisgICAgcHJpbnRmKCJcbiIpOworI2VuZGlmCisKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBTdHJpbmcgc2FuaXRpemVkRGVsZXRlZFRleHQgPSBkZWxldGVkVGV4dDsK
ICAgICBTdHJpbmcgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0ID0gaW5zZXJ0ZWRUZXh0OwotLSAKMi4z
LjAgKEFwcGxlIEdpdC01NCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250246</attachid>
            <date>2015-04-06 17:21:33 -0700</date>
            <delta_ts>2015-04-07 13:24:26 -0700</delta_ts>
            <desc>Full patch</desc>
            <filename>0001-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>223005</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAxZWMyNzQ2ZTM1N2MwMWYxN2U4MGFmMjI1YjRjM2JhYjMzZjBmNjhmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgNiBBcHIgMjAxNSAxNzoxOToyMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4
dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFu
ZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCgpSaWNoZXIgYWNjZXNzaWJpbGl0eSB2
YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQg
Zm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQg
YSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRz
IGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNo
YW5nZXMuCgpSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlv
bnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9m
IHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBh
cHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdl
YiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2Vz
IG9uIHBhc3N3b3JkIGZpZWxkcy4KCkRlYnVnIGxvZ2dpbmcKLS0tCiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMSArCiAuLi4vc2VsZWN0aW9u
LXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sICB8ICAgMyArLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1MDggKysrKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogICB8ICA5OCArKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgICB8IDI1OSArKysrKysrKysrLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmggICAgICAgfCAxNDMgKysrKystCiAuLi4vYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgICAgICB8ICA0MSArKwogLi4uL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCAgICAgICAgfCAgIDIgKwogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggfCAgIDIgKwogLi4uL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgfCAgMjkgKy0KIC4u
Li9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gIHwgICA2ICst
CiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8IDE2
OSArKysrKystCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggICAg
ICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNw
cCAgICAgICB8ICA0MCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oICAgICAgICAgfCAgIDUgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwICAgIHwgIDQ4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmggICAgICB8ICAgNyArCiAuLi4vZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICA0NCArKwogLi4uL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgNTAgKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcv
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgIHwgIDUwICsrCiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCB8ICA0OSArKwogLi4uL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgfCAgMjcgKy0KIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIHwgIDEyICstCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICB8ICAgNSArLQog
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCAgICAgICAgfCAgIDQg
Ky0KIC4uLi9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIHwg
IDQ1ICsrCiAuLi4vZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
ICB8ICA0OCArKwogLi4uL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5jcHAgfCAgNDUgKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuaCAgIHwgIDQ3ICsrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNw
cCAgICAgICAgICAgICB8ICAyNSArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmggICAgICAgICAgICAgICB8ICAgOSArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAgICAgICAgICAgICAgICAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaCAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwICAgICAgICAgIHwgMTEwICsrKystCiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggICAgICAgICAgICB8ICAxNyArLQogLi4uL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgfCAgMjggKy0KIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIHwgIDEwICstCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCB8ICAyNiArLQog
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAgfCAgIDkg
Ky0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCAgICAgICAgIHwg
ICA3ICstCiAuLi4vZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAgICAg
ICB8ICA0MyArKwogLi4uL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggfCAgNDkgKysKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAgICAgIHwgIDQzICsrCiAuLi4vUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICAgICAgICB8ICA1MCArKwogLi4uL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwICAgfCAgNDMgKysKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggICAgIHwgIDUxICsrKwogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgfCAgNzUgKysrCiAuLi4vZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICA1NiArKysKIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIHwgIDMxICsrCiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggICB8ICAgMyArCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwICAgICAgICAgICB8ICAgMyArLQogLi4u
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICAgfCAgNDUgKysK
IC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAgIHwgIDQ4
ICsrCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAgICB8
ICA0MyArKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgICAg
ICAgfCAgNDkgKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuY3BwIHwgIDUwICsrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRD
b21tYW5kLmggICB8ICA0OSArKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAgICAgfCAgNDMgKysKIC4uLi9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICAgICAgIHwgIDUwICsrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9G
cmFtZVNlbGVjdGlvbk1hYy5tbSAgICB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAgIHwgICA5ICstCiA2MiBmaWxlcyBjaGFuZ2Vk
LCAyODMwIGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBmODk4YzhkLi5jODU2ODVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTUtMDQtMDYgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAg
ICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuCisgICAgICAgIE5lZWQgdGhl
IGJ1ZyBVUkwgKE9PUFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1j
aGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbDoKKworMjAxNS0wNC0wNiAgRG91ZyBSdXNzZWxs
ICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdl
IG5vdGlmaWNhdGlvbnMKKworICAgICAgICBGaXggZmFpbGluZyB0ZXN0CisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgor
CiAyMDE1LTAzLTMxICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMTczNDg0KTogUmVkdWNpbmcgY29udGVudCBvZiBzY3JvbGxhYmxlIHJlZ2lv
biBkb2VzIG5vdCByZXNldCBzY3JvbGwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0
Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rp
b24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2
NDZkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
c2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2Vz
LWZvci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQog
ICAgICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRl
ZE5vdGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmlj
YXRpb25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3Rp
ZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNh
bGxiYWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNTcxNDA0Li5mYzcyZjhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTExIEBACisyMDE1LTA0LTA2ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUu
Y29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisg
ICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhh
dCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmls
aXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUs
IHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29u
dGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxl
bWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBm
aWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ug
b2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5k
IGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBh
c3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0
byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNl
bGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBEZWJ1ZyBsb2dn
aW5nCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmly
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2FuaXRpemVQYXNzd29yZFRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb246OkFYVGV4dFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250
YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0
ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCisyMDE1LTA0LTA2
ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIERlYnVnIGxvZ2dpbmcKKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJl
cGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKworMjAxNS0wNC0wNiAgRG91ZyBSdXNzZWxsICA8ZF9y
dXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlm
aWNhdGlvbnMKKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFu
IG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Np
c3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBj
aGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVj
dGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uOjpBWFRleHRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxl
UG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0Q29tbWFuZDo6aW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNlbGVjdEFsbCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0
aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbik6CisK
KzIwMTUtMDQtMDYgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAg
ICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisKKyAgICAgICAgUmljaGVy
IGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRl
eHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQu
IEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNz
d29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0
aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpBWE9iamVjdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6c2Fu
aXRpemVQYXNzd29yZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFp
bmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5n
ZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xp
bmVCcmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAg
KiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
b1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0
aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9y
bUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNsZWFyVGV4dCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydERpY3RhdGlvblBocmFzZXMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRv
QXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5h
cHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpnZXROb2Rlc0luQ29tbWFuZCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAq
IGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAg
ICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VB
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAg
ICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToK
KworMjAxNS0wNC0wNiAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAg
ICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMKKworICAgICAgICBOZXcg
RWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4gVGhpcyBjb21taXQgaXMgYWxsIGluZnJhc3RydWN0dXJlIGFuZCBk
b2Vzbid0IGNvbnRhaW4gYW55IGFjY2Vzc2liaWxpdHkgc3BlY2lmaWMgY2hhbmdlcy4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBl
bmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgor
ICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JD
dXQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjppbnNlcnRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6
CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAg
ICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdD
b21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRl
eHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAg
ICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKwogMjAxNS0wMy0zMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjE3MzQ4NCk6IFJlZHVjaW5nIGNvbnRlbnQgb2Ygc2Nyb2xsYWJs
ZSByZWdpb24gZG9lcyBub3QgcmVzZXQgc2Nyb2xsIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE5ZDIzNTkuLmRiMTNiMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTYzNzIsMTIgKzYzNzIsMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNj
cm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmlt
YXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3
QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhB
MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjUwNjNDMUMx
QUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFCMUFC
NzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87
IH07CisJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZv
cm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87
IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJE
QzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEw
MDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZh
bGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJF
NiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAg
Ki87IH07CisJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9y
bUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9Owog
CQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3
QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFB
QzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMx
MDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1
dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9Owog
CQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQw
MDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAtNjQyNywxMiArNjQzNywy
NiBAQAogCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJE
MDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNF
RjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBl
LmNwcCAqLzsgfTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFD
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07CisJCUY1NUQwQkQ3MUFD
QjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ1MUFDQjcwODIw
MDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1
RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ2MUFD
QjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CisJ
CUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1ODcyQTc0
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJC
MDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3
MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVB
MkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3
M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9j
YWxlTWFjLmggKi87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RE
RjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVC
MjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjND
MCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVC
MjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAg
LyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1OUZBNDZDMUFDQ0IzQzAw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZBMUFDQ0IzQzAwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5
RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZC
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87
IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlG
QTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9
OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZG
MUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlG
NUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5NTM0RDAw
RDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0MjgxMjc5NTM0
RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRh
dGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUy
OTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
NTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFEQTBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFM
aXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1M
RGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5o
ICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVD
MDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsK
QEAgLTEzOTkzLDYgKzE0MDE3LDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNj
cm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2lu
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBT
dHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
U3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2lu
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUExQUI3NTZDQzAwOUFC
NTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Db250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZE
QiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTQwMDUsOCArMTQwMzEsMTYgQEAKIAkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNB
IC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5n
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
YW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q2MDAxQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZv
cm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3
MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4
MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJE
MDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8q
IEJ1dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBCdXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQw
NTYsNiArMTQwOTAsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0
VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxJbnB1dFR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8q
IFdlZWtJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2Vla0lucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFD
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQw
QkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDgxQUNBMjI4RDAwNTk4
MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ5MUFD
QTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzIx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzMxQUI3NUEyQjAwODBG
NDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDdXJzb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZUZyYW1l
Vmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGlu
Z3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CkBAIC0xNDA2Niw4ICsxNDEwNiwxNiBAQAogCQlGNTk3M0RERjE1Q0ZCMjAzMDAy
N0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVG
RDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2MjND
MCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZGMUFDQ0I1MEUwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmFsaWRhdGlvbk1lc3Nh
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNjEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMw
NDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhU
TUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRN
TERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFE
OTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzY3NSw2ICsxNzcyMywxMCBAQAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2
RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEw
MDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1NjYwOUM2NzAw
MTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkIxQUNCMDlE
QTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1
NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
Ki8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZFNTgxIC8qIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDkwMDk5RTY0OTEwMDU2
RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTEwOTlF
NjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc2ODMs
NiArMTc3MzUsMTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9u
QWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0
aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3Rh
dGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjUwNjNDMUIxQUI3NTZD
QzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJ
CQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0QWN0
aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCAqLywK
QEAgLTE3NzI5LDYgKzE3Nzg1LDEwIEBACiAJCQkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5REFDMDk5RTY0OTEwMDU2
RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQUQwOTlFNjQ5
MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJCQkJRjU1RDBCRDUxQUNC
NzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJ
CUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmggKi8sCisJCQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMz
MDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFu
ZC5oICovLAogCQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21t
YW5kLmNwcCAqLywKQEAgLTE3NzM5LDYgKzE3Nzk5LDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5
MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJ
CQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAog
CQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJ
CQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3
QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4
REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
ICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8q
IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzc0LDYgKzE3ODM4LDE0IEBA
CiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmgg
Ki8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwICov
LAogCQkJCTkzMzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmggKi8sCisJ
CQkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjEx
IC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk2MDFB
Q0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJ
CQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oICovLAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NUMxQUNDRThFMDAw
NTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJ
CQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi8sCiAJCQkJRDA4NkZF
OTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwODZGRTk2
MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBAIC0yMzY2OSw2ICsyMzc0
MSw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1h
dGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4
Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8q
IEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RD
MDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZC
QkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNDQ3MSw2ICsyNDU0NCw3IEBACiAJCQkJMzEwNjAzNzkxNDMyODFDRDAwQUJGNEJB
IC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3
QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWVJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZy
YW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8q
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01D
U1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MjBFNkNDQzI4MDBC
RjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAg
LTI0Nzk1LDYgKzI0ODY5LDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0
d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJC
MEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIzNzBBNEIwMDBDNjE2MSAv
KiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REU2MDk5RTY0OTIw
MDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUU0
MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNTAyNCw2ICsyNTA5OSw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpT
QXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTAxMkIwM0VF
MTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAz
QTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRB
MTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI1MDMzLDYgKzI1MTA5LDcgQEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4
QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5
MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlG
RjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAwMEMyNjQ0N0EwMDlF
MjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQ2MzQ4MTA3QTkzNjYw
MDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1
NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjUxNTIsNiArMjUyMjksNyBAQAogCQkJCUZEQTE1RUFDMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwMjE5NENBQzNBMDA4MUJB
QUUgLyogSlNHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwNDE5NENBQzNBMDA4
MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDVGRTFB
Q0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZDMDBDOTU0QjUgLyogSlNH
ZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUzMjYsNyArMjU0MDQsNyBAQAogCQkJ
CTY1REYzMjAyMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlEMjNDQTU1RDBBQjBFQUFFMDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFBMDI0MTgxQTM5RkFEQzAwRjcyMkNGIC8qIEpTUmVhZGFibGVTdHJlYW0u
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxQTAyNDI4MUEzOUZBREMwMEY3MjJDRiAvKiBKU1JlYWRh
YmxlU3RyZWFtUmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUEwMjQyODFBMzlGQURDMDBG
NzIyQ0YgLyogKG51bGwpIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGRTJGMTIwQzFCNTgzODAwMjAy
MzVGIC8qIEpTUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5OEFFQ0UxM0Y5RDZDOTAwOTBC
MUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNzREQTQ5MTAxM0Y0NjgwMDc5ODdBRCAvKiBKU1JHQkNvbG9yLmggaW4gSGVhZGVycyAq
LywKQEAgLTI1NTk0LDYgKzI1NjcyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYg
LyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0
OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVx
dWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhF
eGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3NzMsNiArMjY4NTIsNyBAQAogCQkJCUIy
QzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0
MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjgu
aCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjYsNiArMjY5MDYsNyBAQAogCQkJCTE4NUJDRjI5MEYz
Mjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNB
NjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxl
cklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1
QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4
OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApA
QCAtMjY5NDksMTIgKzI3MDMwLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8q
IFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAw
MDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Yx
OTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vo
b2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYg
LyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Qx
MjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50
RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlC
QjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3Jl
TlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5ODcsNiArMjcwNzAsNyBAQAog
CQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250
ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAv
KiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4
MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBC
MEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3MjksNiArMjc4
MTMsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJy
YXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2
IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJG
ODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkx
IC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1
RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yNzgwNiw2ICsyNzg5MSw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAw
REMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5
RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk0Miw2ICsyODAyOCw3IEBACiAJCQkJ
ODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERP
TUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURB
MDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVu
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01I
VE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUw
MEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAg
LTI4MDkwLDYgKzI4MTc3LDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0
ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkx
QUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJh
bnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIwMCw2ICsyODI4OCw3IEBACiAJCQkJNEZC
MzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRG
NERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VN
YWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMCw2ICsyODMwOSw3IEBACiAJCQkJQjJBMDE1
QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8q
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhp
c3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM5OSw2ICsyODQ4OSw3IEBACiAJCQkJNTEw
MTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFn
ZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1h
Yy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTYsNiArMjg5NDcsNyBAQAogCQkJCUU1MUE4MURG
MTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3Jt
YW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
REVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyog
SlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg4OTIsNiArMjg5ODQsNyBA
QAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUxMDA3RkY4NDIgLyogSlNS
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0Qw
N0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0Qx
NDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3Bv
bnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2NjYsNiArMjk3NTksNyBAQAogCQkJCTA3Mzc5
NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Bl
ZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5
MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI5ODQxLDYgKzI5OTM1LDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3
QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgy
NDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0zMDM0NSw2ICszMDQ0MCw3IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2
NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4
N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCUExNDgz
MkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTA2
M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0MDBFQTA0MUMgLyogV09G
RkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBG
MUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAx
MEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4u
YTIyZWY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5LDcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxh
ZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0
aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzQyLDYgKzc0Mywy
MCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAg
ICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiB9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCgpCit7CisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAg
ICAvLyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1l
ZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1
bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMg
Y2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4K
KyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlv
bnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykg
eworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICAgICAgcG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdl
dCgpLCBzdGQ6OmdldDwxPihub3RlKSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZpc2libGVQb3NpdGlv
bigpKTsKKyAgICB9Cit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRp
b24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4
NjUsMjQzIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNl
bGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBB
WFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQu
dHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAg
cHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRmKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBw
cmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgcHJpbnRmKCJFeHRlbmQ6OiIpOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGludGVudC5jaGFuZ2Up
IHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgICAgICBwcmlu
dGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJpbnRmKCJEZWxldGUiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAg
cHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgcHJpbnRmKCJEaWN0YXRpb25JbnNlcnQi
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5n
OgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgcHJpbnRmKCJD
dXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFz
dGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgcHJp
bnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIHByaW50ZigiQmVnaW5u
aW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHByaW50ZigiRW5kOjoiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgor
ICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgcHJp
bnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBwcmludGYoIkRpc2Nv
bnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dpdGNo
IChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBwcmludGYoIlVu
a25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJD
aGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgorICAgICAgICAgICAgICAgIHByaW50ZigiV29y
ZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJMaW5lIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTZW50ZW5jZSIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhcmFncmFwaCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYWdlIik7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJEb2N1bWVudCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkFsbCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoaW50ZW50LnN5
bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsKKyAgICBwcmludGYoIlxuIik7Cit9CisjZW5k
aWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBp
bnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKyNpZm5k
ZWYgTkRFQlVHIC8vIEFYVE9ETyByZW1vdmUgbG9nZ2luZworICAgIHByaW50ZigicG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudClcbiIpOworICAg
IHNob3dJbnRlbnQoaW50ZW50KTsKKyAgICBwcmludGYoIlxuIik7CisjZW5kaWYKKworICAgIHN0
b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAg
IGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRm
b3JtCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgaW50
ZW50LCBzZWxlY3Rpb24pOworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoKTsKK30KKworc3Rh
dGljIGJvb2wgc2FuaXRpemVQYXNzd29yZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYg
b2JqLCBTdHJpbmcgJnRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKG9iai5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQoKSkgeworICAgICAgICB0ZXh0ID0gb2JqLnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKCktPnBhc3N3b3JkRmllbGRWYWx1ZSgpLnN1YnN0cmluZyhwb3NpdGlvbi5k
ZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQubGVuZ3RoKCkp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSog
bm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJu
OworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9w
Q2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisjaWZuZGVmIE5ERUJVRyAvLyBB
WFRPRE8gcmVtb3ZlIGxvZ2dpbmcKKyAgICBwcmludGYoInBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24oQVhUZXh0RWRpdFR5cGUpXG4iKTsKKyAgICBzaG93SW50ZW50KEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KHR5cGUpKTsKKyAgICB0ZXh0LnNob3coKTsKKyAgICBwcmludGYoIlxuIik7
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0
ID0gdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2Rl
KTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2Jq
LCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2Jq
ZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmpl
Y3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAg
ICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCBzYW5p
dGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdo
dCBwbGF0Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5v
ZGUpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRU
eXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5
cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47
CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAg
QVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9u
VHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVk
aXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7
CiAKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCisjaWZuZGVm
IE5ERUJVRyAvLyBBWFRPRE8gcmVtb3ZlIGxvZ2dpbmcKKyAgICBwcmludGYoInBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24oKVxuIik7CisgICAgaWYgKGRlbGV0ZWRUZXh0Lmxlbmd0aCgp
KSB7CisgICAgICAgIHNob3dJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoZGVsZXRpb25U
eXBlKSk7CisgICAgICAgIGRlbGV0ZWRUZXh0LnNob3coKTsKKyAgICB9CisgICAgaWYgKGluc2Vy
dGVkVGV4dC5sZW5ndGgoKSkgeworICAgICAgICBzaG93SW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KGluc2VydGlvblR5cGUpKTsKKyAgICAgICAgaW5zZXJ0ZWRUZXh0LnNob3coKTsKKyAg
ICB9CisgICAgcHJpbnRmKCJcbiIpOworI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBTdHJpbmcgc2FuaXRpemVkRGVsZXRlZFRleHQgPSBkZWxldGVkVGV4dDsKKyAgICBTdHJpbmcg
c2FuaXRpemVkSW5zZXJ0ZWRUZXh0ID0gaW5zZXJ0ZWRUZXh0OworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAgICAg
aWYgKHNhbml0aXplUGFzc3dvcmRUZXh0KCpvYmosIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9z
aXRpb24pKSB7CisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBl
bmQoc3RkOjptYWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpLCBpbnNlcnRpb25UeXBl
LCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dv
cmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBkZWxldGlvblR5cGUs
IHNhbml0aXplZERlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBzYW5pdGl6ZWRJbnNlcnRlZFRl
eHQsIHBvc2l0aW9uKTsKKyNlbHNlCiAgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRm
b3JtCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0g
ICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9m
ZnNldCwgdGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmos
IHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZh
bGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRUZXh0KTsKKyAgICBub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBl
KGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKIH0KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSogZnJhbWUsIEFYTG9hZGlu
Z0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMyNiwxNyBAQCBib29sIGlzTm9kZUFy
aWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBY2Nlc3NpYmls
aXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7CisgICAgaWYgKEFjY2Vz
c2liaWxpdHlPYmplY3QgKnJvb3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0KCkpIHsKKyAgICAg
ICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QgKmZpcnN0Q2hpbGQgPSByb290T2JqZWN0LT5maXJz
dENoaWxkKCkpIHsKKyAgICAgICAgICAgIGlmIChmaXJzdENoaWxkLT5pc1dlYkFyZWEoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmlyc3RDaGlsZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRl
Q2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXgg
YmZhOTI3Ny4uNjM1MDYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwg
MjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDk2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogICAgIHZv
aWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5v
dGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFz
eW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAgQVhUZXh0
SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51bSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAorICAgICAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CisgICAgICAgIEFYVGV4
dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVy
aWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdlbmVyaWMg
dGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcsIC8vIEluc2VydCB2aWEg
dHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRp
Y3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAg
ICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBhc3RlCisgICAgfTsKKwor
ICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRleHQgdmFsdWUgY2hhbmdl
CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMs
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0gICAgdm9pZCBub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgewor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1
bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51
bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3Vt
ZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVy
IGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxs
IG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorICAgIH07CisK
KyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHk7CisKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLCBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5VW5rbm93bikKKyAgICAgICAgICAgIDogZGlyZWN0aW9uKGRpcmVjdGlvbikKKyAgICAgICAg
ICAgICwgZ3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCisgICAgICAgIHsgfQorICAgIH07CisKKyAg
ICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2VsZWN0
aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAg
ICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5r
bm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29s
IHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBz
ZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsg
fQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5n
ZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAg
ICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAg
ICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAg
ICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3luYyhz
eW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAg
dm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYK
KworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5n
ZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0g
QVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzMw
MiwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFu
ZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5l
d0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQor
ICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAg
IEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFu
Z2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZl
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZl
bnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZv
aWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDEsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rl
cy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJv
b3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1h
cDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNo
TWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2
ICszNTgsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsK
ICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3Rp
ZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Q
b3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lcjsKKyAgICBWZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4s
IEFYVGV4dEVkaXRUeXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsK
KyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZv
aWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3Jl
YXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAg
LTI1MSw2ICszNzAsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAgICAg
QVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRl
Q2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDI5LDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0ln
bm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikg
eyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3Vt
ZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3Rp
ZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLmFjMzhmMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDQ3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVu
dC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgp
IGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0
RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2Fz
dDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAo
RWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8
SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNh
Y2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUo
KTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAo
YXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7Cisg
ICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAg
aWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxl
bWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBp
ZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVy
biBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiBib29sIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0
aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uN2RiZDU5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
SW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29u
dHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJhLi5i
NTY5NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250
YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJl
YVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjhlMGQ3NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwyNCBAQCBQbGFpblRleHRSYW5nZSBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lk
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBs
YWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50
ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+
IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQg
OiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVl
KSk7CisjZW5kaWYKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250
cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNv
bnRyb2xFbGVtZW50KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJh
bmdlLnN0YXJ0LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVu
ZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24o
UG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5B
bmNob3IpLAotICAgICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0
aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAg
ICBQb3NpdGlvbiBwb3MxID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQ
b3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFBvc2l0aW9uIHBvczIgPSBQb3NpdGlvbihu
b2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZz
ZXRJbkFuY2hvcik7CisgICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uID0gVmlz
aWJsZVNlbGVjdGlvbihwb3MxLCBwb3MyLCBET1dOU1RSRUFNKTsKKyAgICBtX3JlbmRlcmVyLT5m
cmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbih2aXNpYmxlU2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKQorI2VuZGlm
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogfQog
CiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMg
KzE5NzAsMjIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZp
c2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3Rh
cnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAg
CisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0
LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlm
IChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdl
LmVuZCkgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVj
dGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CisjZW5k
aWYKICAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uu
c3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCBy
YW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAx
MTllMGIwMC4uMDk4N2Y0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxMSBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgcG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwor
dm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5k
ZXggMmM3NDQzMC4uNDYwYWMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJl
Z2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5
bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lm
bmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFs
dWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRl
ZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lm
bmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFY
U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBj
YWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTU3LDggKzIwMSwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAg
ICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3Rp
ZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
KQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVz
ZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVd
OworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRj
aCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBz
d2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2Vs
ZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2Jq
LT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9u
LnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAg
ICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VB
dHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJn
ZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07
CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9z
dGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vz
c2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5T
RGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5T
U3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3Ro
ID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsK
KyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRl
eHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5j
YXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7
CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0g
QChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0
aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24u
aXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVy
KCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1h
cmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9i
aikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsK
KworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURp
Y3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlk
IHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2Vi
QXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldp
dGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlv
biwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkg
RFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdl
ZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0
RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRF
ZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2Jq
ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAg
ICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisK
KyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQs
IHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYg
KE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShv
YmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hh
bmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBp
ZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJv
b3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0
aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZp
Y2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNl
ZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFy
Z2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVD
aGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRp
bmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVP
YmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJD
b3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6
VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQ
b3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBA
ZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3
MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
CkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBl
bmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJl
bmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVD
b21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVu
dCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwg
IW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hh
bmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGlu
ZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQog
ewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5v
ZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQg
PSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGlu
IHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9
PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
bm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUt
Pm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1
ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRl
eHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9z
aXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpA
QCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAg
ICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAg
ICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmlu
Z0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFw
cGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0Vk
aXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQg
dG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRl
eHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRp
ZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
SW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29t
bWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3
ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOwor
ICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQ
dHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikg
b3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmlu
ZGV4IDg0NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5k
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpA
QCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUg
IlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5j
bHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNp
bmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQs
IFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVy
biBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hp
bGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5z
ZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGlu
c2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NS
ZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01
MjIsMjMgKzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29u
c3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRp
bmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFy
dEluZGV4LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXgg
KyBsZW5ndGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJu
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOwor
fQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsK
ICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7
CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5n
QWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4g
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwog
fQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRp
dENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0
dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkK
IHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBj
b3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21t
YW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3Vu
dCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYg
KCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBs
YWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRl
bGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpA
QCAtMTUyMyw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFj
ZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlm
IChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5k
cy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4u
NDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1M
RWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRp
Y2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAg
ZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1
LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0
cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9
IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2Ug
PSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0
aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3Bl
Y2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRl
eHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSop
OwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4s
IGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24o
UGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0
Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1Jl
ZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZv
aWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJl
ZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJs
b2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJy
ZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFz
c1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFu
Y2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
bW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9k
ZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBk
YXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5v
ZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVm
PERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBS
ZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3Np
dGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQg
cmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5
YmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQor
ICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQorewor
fQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUg
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoK
KyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxl
dGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQor
eworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0g
dHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRz
ID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21h
cnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNp
YWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNp
YWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRD
b21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZk
NS4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBA
IC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29m
ZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7
Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAg
QVNTRVJUKG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEo
bV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5n
IHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZz
ZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQo
KSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25v
ZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2Nv
dW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90
ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9z
aXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcK
QEAgLTg0LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9k
ZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0
ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5k
ZXggMjQ5MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5k
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOwor
Citwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6
CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNo
U2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNl
dDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBA
IC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgp
CiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNv
bnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1
c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4g
dGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRp
bmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5k
byBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rp
b25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhl
IHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2Rm
NC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25D
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQu
Y3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAK
ICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRl
eHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0
aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8
RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGlj
dGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0
aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5z
ZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3Rl
eHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFy
a2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5z
ZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3Jl
YXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmlu
ZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRl
KGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1h
bmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0
aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5j
bHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
UGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQor
ICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQor
eworfQorCitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNl
cnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmlu
ZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29t
bWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxp
ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4
dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50
LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8
VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1h
bmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNp
bXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBI
YXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAg
ICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93
bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1w
bGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9k
ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAg
ICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
aAppbmRleCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRp
dENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRB
Y3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDgg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3Rl
Y3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21t
YW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2Rl
QW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7
CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUq
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4u
YzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5o
IgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5o
IgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24o
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAg
ICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0
KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQo
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRl
KSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAg
dm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1h
bmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlz
IHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vz
c2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0g
Y21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25Ucmln
Z2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24s
IG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24s
IG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hh
bmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNv
bXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRp
dG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6
OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRp
ZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rp
b24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlP
ckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNt
YXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFz
dGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9u
UGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlz
cyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQg
RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0
aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4g
ZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgp
LmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcg
KzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9i
bGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJh
bmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNl
bGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURP
TVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRp
dGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZm
ZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3
aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtl
ZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlv
bkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5n
QWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwog
I2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdl
YWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRD
b21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07
CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1v
ZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0
aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0
aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9u
U3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0
T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLjdlYzU0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCog
RnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNv
bnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24g
JnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlv
bi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1
c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
KHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5
KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsK
IH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
YmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJU
cmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAg
ICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZl
bnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAg
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3
U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50
LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24s
IFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwg
VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9
IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZy
YW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7
CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxl
Y3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAg
bmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0
aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMs
IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAg
ICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2Vs
ZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAg
ICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1
dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAg
ICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0
aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0
IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRT
ZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRH
cmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMg
b3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBD
dXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7
CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlv
biwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQx
LDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAm
JiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGlu
dGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRP
clN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0
aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlv
bigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9w
ZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzg4LDcg
QEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAg
ICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogfQogCiB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgsNyArMTAy
Niw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3
YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShU
ZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09
IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFu
dWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGluZSBG
cmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwgU2Vs
ZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQor
eworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlwID0g
ZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkg
eworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAgICAg
IGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBmbGlw
ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBz
d2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VC
b3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFn
cmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVu
dEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50
LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJvdW5k
YXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFj
dGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50
ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFy
YWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRh
cnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRh
cnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNl
IERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlv
bi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJl
Y3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50
LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
QmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRp
cmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJv
b2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdn
ZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsxMTU1LDExIEBAIGJvb2wgRnJhbWVT
ZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlv
bk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAg
IGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0ZXIs
IGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRoZSBh
Ym92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAg
ICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBv
c3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5
cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcw
Nyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25G
cm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNl
bGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBp
ZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgYXV0byBp
bnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25E
aXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFs
bCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9v
bCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0
eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5iNzRmYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0
aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNp
bmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRy
aWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAg
fQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpCisgICAgeworICAgICAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRy
KTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFs
aWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlv
bkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vy
c29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51
bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25z
ID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWdu
T25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9
IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVj
dGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVh
cigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9z
aXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0
ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVj
dGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24o
KTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNj
cm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAg
ICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlv
bihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9u
LCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNlCi0gICAg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9p
ZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0
aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJl
ZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5
cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZP
Uk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLmFlYzQ3
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDExIEBA
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsK
IH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQor
eworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5z
ZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAgdm9pZCBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBtX25vZGUt
Pmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0KLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlF
ZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zm
c2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9k
ZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0
KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0
aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lkIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBu
b2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2Rl
ZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1w
cml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
ZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlk
ZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgogI2lmbmRl
ZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2Rl
Kj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAg
U3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI2LDkg
KzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcs
OCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihk
b3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0
aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUo
KSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikp
OworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
QEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5v
ZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlv
bikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9O
KTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Omdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5z
ZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKICNkZWZp
bmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4
LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgor
cHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkg
b3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rl
c0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7
CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5i
ZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBA
IC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9
CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJv
dGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIEluc2Vy
dFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0
ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0
ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
ZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8
Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxh
Y2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZhMzUyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsK
KworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0
ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzBmZGJk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
X2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgor
ICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCww
ICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0
ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisg
ICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBp
bmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwg
dGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQs
IHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVs
ZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDU2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0
ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpOwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBT
dHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgw
Yy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZvcmVUZXh0
SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNp
bmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBAQAogI2lu
Y2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1
ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFy
dFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxl
ZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAgQEAgdm9p
ZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2RlICpub2Rl
KQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JBZnRlck5v
ZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1hbmQ+IFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlv
blR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpj
cmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2Ug
RWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0
ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGlu
c2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAKIC8vIER1
cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0IG5vZGUg
aW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGlyZWN0bHkg
aW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMgaXMgbXVj
aCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYuLmUyNmE5
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJmb3JtVHJp
dmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmlydHVhbCBS
ZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4s
IFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9mSW5zZXJ0
ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUmVm
UHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
Ik1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAi
VGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNp
bmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC0z
NzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmlu
ZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFu
ZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5z
ZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IFR5cGlu
Z0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0
ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25l
ID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3Bh
Y2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsKIAogICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNDIy
MTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5
cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kIDog
cHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBj
aGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAg
ICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2Vy
dEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUg
IlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisj
aW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0lu
c2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAg
IDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwg
cmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsK
K30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBw
dWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSBy
ZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxF
ZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENv
bW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFj
ZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YzJlMGYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBU
ZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1
YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4uOTljNDU5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0
NywyMCBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1Jl
Y3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZy
YW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3Zv
aWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogeworI2lmICFQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oSU9TKQorICAgIFVOVVNFRF9QQVJBTShpbnRlbnQp
OworI2VuZGlmCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsK
IAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9u
LmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyNpZiBQTEFURk9STShDT0NPQSkg
JiYgIVBMQVRGT1JNKElPUykKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50
LCBtX3NlbGVjdGlvbik7CisjZWxzZQogICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRp
b24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9i
amVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQp
OworI2VuZGlmCiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4u
NWJmYjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29s
IHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7
CisgICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4
dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAg
ICBpZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRl
eHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAg
ICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZh
bHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgog
ICAgICAgICBpbm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAKICAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRo
KCdccicpKQogICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShB
Q0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5n
ZWQgJiYgcmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBj
YWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywg
UG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgog
ICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggYWU5NGJmNi4uYmNmYTA0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE4Niw3ICszMTg2LDE0IEBAIHN0
YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVj
dGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVj
dGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25EaXNjb250aWd1b3VzKTsKKyNlbmRpZgorICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlz
aWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
VXNlclRyaWdnZXJlZCkKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09B
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgaW50ZW50CisjZW5kaWYKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICApOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNl
bGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCi0tIAoy
LjMuMCAoQXBwbGUgR2l0LTU0KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250289</attachid>
            <date>2015-04-07 13:24:26 -0700</date>
            <delta_ts>2015-04-07 13:31:32 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>198580</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDM1ZTdkZDAwYjcxYTI2ODI5ZThiMmExNTc3ODM3NGZmYzVkNWExMjMKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDEzOjIw
OjM1IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmVmYjViMy4uYzgyZjNjZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDQtMDYgIEFuZHkgRXN0ZXMgIDxh
ZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHAvdGVzdHMvY29udGVudGZpbHRlcmluZy9i
bG9jay1hZnRlci1yZWRpcmVjdC5odG1sIGZhaWxzIG9uIFdpbmRvd3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFu
Z2VzLWZvci1hcmlhLXRleHRib3guaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApp
bmRleCBhMWU4NDNlLi4xMjY0NmRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0
aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCkBAIC00Nyw3ICs0Nyw4IEBA
IGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIC8vIFRyaWdnZXIgdmFsdWUgY2hhbmdlLgogICAgICAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7CiAK
LSAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gYXhUZXh0Ym94LmFkZE5vdGlmaWNhdGlv
bkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAgdmFyIHdlYkFyZWEgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwogICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmlj
YXRpb24iLCAidHJ1ZSIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY4NjgwYWMuLjUxZGRlNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMDYgQEAKKzIwMTUtMDQtMDcgIERvdWcgUnVzc2VsbCAg
PGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisKKyAgICAgICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNz
ZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBt
b3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCisK
KyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
biBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0
ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUg
Y2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3
YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBh
Y2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJs
ZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0
aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmll
bGRzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0cyBhcmUgc3RpbGwgaW4gZGV2ZWxvcG1lbnQuIFN1Ym1pdHRpbmcgcGF0Y2ggZWFybHkgZm9y
IGZlZWRiYWNrLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6c2FuaXRpemVQYXNzd29yZFRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb246OkFYVGV4dFNlbGVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudDo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFz
c3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omlz
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3Mv
QVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBs
eSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKToK
KyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAg
ICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6RGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNl
cnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGllZEVkaXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgor
ICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAg
ICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgor
ICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlv
bk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwog
MjAxNS0wNC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBT
eW5jaHJvbml6ZSBmdWxsc2NyZWVuIGFuaW1hdGlvbiBiZXR3ZWVuIHByb2Nlc3Nlcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBi
ZWY5YWIwLi4xOWFmNDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc3LDEyICs2Mzc3LDIyIEBACiAJCUY0Nzg3NTU1MTk5
ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4
NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4
QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0
eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNu
YXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAg
Ki87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9Owog
CQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVG
RjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJB
RDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAv
KiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgz
MDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQg
LyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBD
ODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQg
LyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4
MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1
MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVC
M0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsK
QEAgLTY0MzIsMTIgKzY0NDIsMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVS
TElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9OwogCQlG
NTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYy
NjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2
OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICov
OyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFD
QTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFB
Q0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNG
QjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAy
N0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsg
fTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlD
OTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsg
fTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1
RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovOyB9Owor
CQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07
CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0
RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFB
Q0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1
MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjEx
IC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcw
MDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVD
MDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNB
N0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhU
TUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8q
IERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxp
c3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNSw2ICsxNDAyOSw4IEBACiAJCUY0Nzg3NTUzMTk5
ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyog
U3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9s
bFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5
NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUv
U3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkND
MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMw
MEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDE3LDggKzE0MDQzLDE2IEBACiAJCUY1MjNE
MzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0
NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBF
bXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1w
dHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNC
MDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJB
ODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8q
IEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJh
c2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdC
MTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE0MDY4LDYgKzE0MTAyLDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQw
MDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFC
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQx
MjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0
MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0Ex
NDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwNzgsOCArMTQxMTgsMTYgQEAKIAkJ
RjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlD
OTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8q
IFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJC
MTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZG
Q0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1l
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2OTUsNiArMTc3NDMsMTAgQEAKIAkJCQk5
MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJ
CQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAog
CQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAor
CQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5
RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5
MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICov
LAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAqLywKQEAgLTE3NzAzLDYgKzE3NzU1LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAw
RTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhG
RjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4
RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZD
QzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAor
CQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkx
MDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4
MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc0OSw2ICsxNzgwNSwxMCBAQAogCQkJCUM2RDc0QUQz
MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5
MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAog
CQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICov
LAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAv
KiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0
REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1v
dmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0Yg
LyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc1OSw2ICsxNzgxOSwxMCBAQAog
CQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJl
ZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVy
ZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1
MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyog
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEw
MEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJB
MDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0x
Nzc5NCw2ICsxNzg1OCwxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0
SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBU
eXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlw
aW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUy
OTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJC
MTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJ
CUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3Rl
cC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNw
cCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICov
LApAQCAtMjM2ODgsNiArMjM3NjAsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAv
KiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAw
RDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRB
NEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3
MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hl
R3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0OTAsNiArMjQ1NjMsNyBAQAogCQkJCTMxMDYw
Mzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRl
clZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJG
NjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVF
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNT
U0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkND
QzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxMyw2ICsyNDg4Nyw3IEBACiAJCQkJQTE5RDkzNEIxQUEx
MUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5
QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDIsNiArMjUxMTcsNyBAQAogCQkJCUZERjdFOUM0MTNB
QzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9D
b250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyog
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVu
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1
ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA1MSw2ICsyNTEyNyw3IEBACiAJCQkJQkU4
RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVy
cm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTcwLDYgKzI1MjQ3LDcgQEAKIAkJCQlGREExNUVB
QzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4
RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAv
KiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAw
RDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgz
MjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MzQ0
LDcgKzI1NDIyLDcgQEAKIAkJCQk2NURGMzIwMjA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRDIzQ0E1NUQwQUIwRUFBRTAwNTEwOEE1IC8qIEpTUmFuZ2VF
eGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTAyNDE4MUEzOUZBREMwMEY3MjJDRiAv
KiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MUEwMjQyODFBMzlGQURD
MDBGNzIyQ0YgLyogSlNSZWFkYWJsZVN0cmVhbVJlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDFBMDI0MjgxQTM5RkFEQzAwRjcyMkNGIC8qIChudWxsKSBpbiBIZWFkZXJzICovLAogCQkJCUJD
RkUyRjEyMEMxQjU4MzgwMDIwMjM1RiAvKiBKU1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5
OThBRUNFMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc0REE0OTEwMTNGNDY4MDA3OTg3QUQgLyogSlNSR0JD
b2xvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTYxMyw2ICsyNTY5MSw3IEBACiAJCQkJQkM2MERB
M0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQx
MEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4
REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2Vy
aWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8q
IEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUw
MEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzkzLDYg
KzI2ODcyLDcgQEAKIAkJCQlCMkMzREEzQzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjSUNV
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzRTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENv
ZGVjTGF0aW4xLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5QTBEMDBBNURGMDAzMDA3NEQg
LyogVGV4dENvZGVjTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTc0REVEQjFBQ0EyRjQ3MDA1
OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBNDAwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VzZXJEZWZp
bmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVF
RSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODQ2LDYgKzI2OTI2LDcg
QEAKIAkJCQkxODVCQ0YyOTBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QUEzQTY5QTE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFGNzJCRjBCMTg3RkQ0NUMwMDA5QkNCMyAvKiBUaWxlQ29u
dHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDcxMUFD
Q0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0FBM0E2QTQxOTRCNUMyMjAwMUNCRDI0IC8qIFRpbGVDb3ZlcmFnZU1hcC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFGODlBNDIxNTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUMxOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVHcmlk
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTcwLDEyICsyNzA1MSwxNCBAQAogCQkJCTJEM0VGNDQ4
MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2Fw
aXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8q
IFdlYkNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJEM0VGNDRBMTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNGMTk5QTgwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJD
b3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlE
RDYxNjMyMDI2QzAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNj
cmVlbldpbmRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0Q5MTExMTQzMTBDQzAwMEQ4MTdF
IC8qIFdlYkNvcmVKU0NsaWVudERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTYyMUFD
Q0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVLZXlib2FyZFVJ
TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1
MDA3QjQyQTkgLyogV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3
MDA4LDYgKzI3MDkxLDcgQEAKIAkJCQk2RTRFOTFBRjEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xD
b250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGNkYxRUUxMjdGNzBCMTAw
NTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwMUQzQ0Y4
MzE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250ZXh0R3JvdXAuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMUQzQ0Y4NTE0QkQwQTMwMDBGRTk5NzAgLyogV2Vi
R0xDb250ZXh0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGNjE0NEY4MjU1MDBG
ODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBF
RTBERjgxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmggaW4gSGVhZGVycyAq
LywKQEAgLTI3NzUwLDYgKzI3ODM0LDcgQEAKIAkJCQk2Rjk5NUEzOTFBNzA4MzM3MDBBNzM1RjQg
LyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEM0Uy
NTIzMTgwNDZCQ0QwMEUyN0Y1NiAvKiBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZCRjg5MDQ1MTY5RTlGMUYwMDUyRDg2RSAvKiBDU1NHcm91cGluZ1J1
bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NjExQUNDRUE3MDAwNTEyQjExIC8qIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjNF
NzZDMERBRTg4QTkwMDlGREM5MSAvKiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzOTNFNUZGMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0ZFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJ
bWFnZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc4MjcsNiArMjc5MTIsNyBAQAogCQkJ
CTMxRkIxQTU4MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMxRkIxQTVBMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rp
b25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIxQTVDMTIwQTVEMDYwMERDMDJBMCAv
KiBEZXZpY2VNb3Rpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTg3MkE3NDFBQjc1
QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzE0MDM3OUUxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTkzMDlBMTExMUY0QUU1ODAwMjUwNjAzIC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjkz
OTcyNjFBNEE1RkJEMDBFODM0OUQgLyogTkZBLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5NjMs
NiArMjgwNDksNyBAQAogCQkJCTg1RUNCRUY2MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTW9k
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REY4MTJDMEFBNzc4NzIwMDQ4NkFENyAv
KiBET01IVE1MT2JqZWN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0RDE2MEFB
Njg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODVGMzJBRUYwQUE2M0I4NzAwRkYzMTg0IC8qIERP
TUhUTUxPcHRHcm91cEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTQwNzU2QzBBRDZD
QkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk4NURGMkY5QzBBQTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1t
IGluIFNvdXJjZXMgKi8sCkBAIC0yODExMSw2ICsyODE5OCw3IEBACiAJCQkJNDREQUI1QjExNUE2
MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1QzQzMDRCMDE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3NzI4Njk0RTE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NzRERURBMUFD
QTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5k
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhBMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNv
bG9yTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhDMEUxREUyRDYwMDdGMjQ4
MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgyMjEsNiAr
MjgzMDksNyBAQAogCQkJCTRGQjM5MEFEMTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFn
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2Vu
ZXJpY0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjMxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDcwMUFD
Q0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5NzQ2QUYyNjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjYyNTJFMThERTFCMTUwMEEwN0MwNSAvKiBHZW9t
ZXRyeVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM4MzBEMDBBNUMxMDAz
MDA3NEQgLyogR2x5cGhQYWdlTWFjLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgyNDEsNiArMjgz
MzAsNyBAQAogCQkJCUIyQTAxNUFBMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNERjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAz
RUYyNjkgLyogSGlkZGVuSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTVE
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE5RDlGMzE5NUI5NTAzMDAxQjJCNUMgLyogSElE
R2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTc5Q0UzNjE5NUNBQzdFMDAxOUMxOTgg
LyogSElER2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTREMTUzMEMy
NzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg0MTksNiAr
Mjg1MDksNyBAQAogCQkJCTUxMDE5MkQxMThCNkI5QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xz
Um9vdEVsZW1lbnRNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc3OTc5MTkwRDZCOUQwQzAw
Mzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzIwNUFCNTEyMzky
OTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUy
OERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQzExMjUxRjEyRDAwM0VGMjY5IC8qIEltYWdl
SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4OTU4MjU1MEU4NTdBN0UwMEY4MkM4
MyAvKiBJbWFnZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU3QjBCMDUzODE0
MDAyQ0U2NEYgLyogSW1hZ2VNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTI4ODc3LDYgKzI4OTY4
LDcgQEAKIAkJCQlFNTFBODFERjE3Mjk4RDc3MDBCRkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4QTlBNTg3MDExRTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3Jt
YW5jZU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0M0M4NUYxODlFMTVBNjAw
MDE5QUUyIC8qIEpTUGVyZm9ybWFuY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0
M0Q2MDExQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkRFQTYyNDYxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNX
YXZlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjcwRDZCMDlFQjBDN0MwMDlEODQ2OCAvKiBK
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4OUYwMUQx
MEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTI4OTEzLDYgKzI5MDA1LDcgQEAKIAkJCQkwNzk2OURCQjE3RDE0MTUxMDA3RkY4NDIgLyogSlNS
VENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkQxN0Qx
NDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDdEMDdCMTQxODM0MTU4ODAwQUJERDNDIC8qIEpTUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NUQwQkQ3MUFDQjcwODIw
MDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OTY5REJGMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzQ2FsbGJhY2suY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQzExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3Rh
dHNSZXBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQzMxN0QxNDE1MTAwN0ZGODQy
IC8qIEpTUlRDU3RhdHNSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5Njg5LDYgKzI5
NzgyLDcgQEAKIAkJCQkwNzM3OTRGRDE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9j
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzM3OTRERDE5RUUyQzUyMDBFNUEwNDUgLyogUlRD
T2ZmZXJBbnN3ZXJPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBCMTdEMTRD
RUUwMDQyMEFBMSAvKiBSVENQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
NTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEYxMTlF
RTM3QkIwMEU1QTA0NSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3OEUwOTBDMTdEMTRDRUUwMDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3Jp
cHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTg2NSw2ICsyOTk1OSw3IEBACiAJCQkJRkUz
NkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBMkU2RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5
R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDN0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNO
b2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0Ig
LyogU3RlcFJhbmdlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAzNjksNiArMzA0NjQsNyBAQAog
CQkJCUExNDgzMkMwMTg3RjY1NjYwMERBNjNBNiAvKiBXS0dyYXBoaWNzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTE0ODMyQzIxODdGNjVDNzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291
cmNlcyAqLywKIAkJCQlBMTQ4MzJDNTE4N0Y2NjgzMDBEQTYzQTYgLyogV0tWaWV3Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJRjUwNjNDMUQxQUI3NTZEODAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5OTE5OTYxMjAw
RERGNDAwRUEwNDFDIC8qIFdPRkZGaWxlRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJF
NDM0NjQ1MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjM4MjA4OTYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IGEwMGIxNWMuLjcwODM2ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI5LDYg
KzEyOSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNj
ZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlm
aWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywg
JkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9
CiAKQEAgLTc0Miw2ICs3NDMsMjIgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Q
b3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRP
YmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fcGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOworCisgICAgLy8gSW4gRFJULCBwb3N0
aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAg
b3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlv
cgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVu
ZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmlj
YXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAg
IGZvciAoY29uc3QgYXV0byYgbm90ZSA6IG5vdGlmaWNhdGlvbnMpIHsKKyAgICAgICAgLy8gRGVs
ZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihzdGQ6OmdldDwwPihub3RlKS5nZXQoKSwgc3RkOjpnZXQ8MT4o
bm90ZSksIHN0ZDo6Z2V0PDI+KG5vdGUpLCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgfQorI2Vu
ZGlmCit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVy
T2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjcsMjI3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFu
Z2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgewor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJV
bmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdDoKKyAgICAgICAgcHJpbnRmKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1v
dmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDoKKyAgICAgICAgcHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25v
d24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlOgorICAgICAgICAgICAgcHJpbnRmKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJ
bnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uOgorICAgICAgICAgICAgcHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAg
ICAgICAgcHJpbnRmKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAg
ICAgICAgICBwcmludGYoIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAg
ICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtu
b3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgICAgIHByaW50ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAg
ICAgcHJpbnRmKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0
OjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQu
c2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIi
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlXb3JkOgorICAgICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVBhcmFncmFwaDoKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhZ2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9j
dW1lbnQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFs
bDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAg
ICAgIHByaW50ZigiLVN5bmMiKTsKKyAgICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9p
ZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihO
b2RlICpub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsK
IAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRl
bnQ7CisKKwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAo
b2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250
YWluZWRCeVBhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2Jq
ID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgb24g
dGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0
aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdl
ZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7Cisg
ICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rp
b25JbnRlbnQoKTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGJvb2wgc2FuaXRp
emVQYXNzd29yZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBTdHJpbmcgJnRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bh
c3N3b3JkRmllbGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAg
ICAgICB0ZXh0ID0gb2JqLnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkt
PnBhc3N3b3JkRmllbGRWYWx1ZSgpLnN1YnN0cmluZyhwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgp
LmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQubGVuZ3RoKCkpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBT
dHJpbmcgc2FuaXRpemVkVGV4dCA9IHRleHQ7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRp
emVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAg
ICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxl
KG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpLCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAg
ICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAg
ICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hv
dCgwLjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0g
b2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhl
IHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICAvLyBE
ZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1
aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0
ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9k
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRp
dFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBl
SW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0
aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFY
VGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJp
YnV0ZXMoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWREZWxl
dGVkVGV4dCA9IGRlbGV0ZWRUZXh0OworICAgIFN0cmluZyBzYW5pdGl6ZWRJbnNlcnRlZFRleHQg
PSBpbnNlcnRlZFRleHQ7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVh
dGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRl
eHQoKm9iaiwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAg
IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCksIGluc2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4
dCkpOworICAgICAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIC8vIERl
bGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0
Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQs
IGluc2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UK
ICAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBl
KGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0
aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRU
ZXh0KTsKKyNlbmRpZgogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50
Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpA
QCAtMTA4NCw2ICsxMzEyLDE3IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2Fj
aGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqcm9vdE9i
amVjdCA9IHRoaXMtPnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU9i
amVjdCAqZmlyc3RDaGlsZCA9IHJvb3RPYmplY3QtPmZpcnN0Q2hpbGQoKSkgeworICAgICAgICAg
ICAgaWYgKGZpcnN0Q2hpbGQtPmlzV2ViQXJlYSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBm
aXJzdENoaWxkOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCiBB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RD
YWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li42MzUwNjAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTg5LDEyICsxODksOTYgQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlv
bihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0
VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAg
ZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhU
ZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgICAgIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAg
ICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorICAgIH07CisKKyAgICBl
bnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAg
ICAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0ZQorICAgICAg
ICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgICAgICBB
WFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0eXBpbmcKKyAgICAgICAgQVhUZXh0
RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAgICAgIEFYVGV4
dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgICAgICBBWFRleHRFZGl0VHlwZVBh
c3RlIC8vIEluc2VydCB2aWEgUGFzdGUKKyAgICB9OworCisgICAgLy8gU2ltcGxlIHRleHQgdmFs
dWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7
CisgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7
CisKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkJlZ2lubmluZywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91cwogICAgIH07CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5v
ZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAg
ZW51bSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5VW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXIsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgICAgICBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVBhcmFncmFwaCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50LAorICAgICAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBBbGwgZ3JhbnVsYXJpdHkgcmVwcmVzZW50cyB0aGUg
YWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hvbGUgZG9jdW1lbnQgYXMgYSBzaW5nbGUgYWN0aW9u
LiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNvbWUgb3RoZXIgZ3JhbnVsYXJpdHkgdW50aWwgaXQg
ZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3VtZW50IHdpbGwgbm90IHJlc3VsdCBpbiBhIGFsbCBn
cmFudWxhcml0eSBub3RpZmljYXRpb24uCisgICAgfTsKKworICAgIHN0cnVjdCBBWFRleHRTZWxl
Y3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eTsKKworICAgICAgICBB
WFRleHRTZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdy
YW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duKQorICAgICAgICAg
ICAgOiBkaXJlY3Rpb24oZGlyZWN0aW9uKQorICAgICAgICAgICAgLCBncmFudWxhcml0eShncmFu
dWxhcml0eSkKKyAgICAgICAgeyB9CisgICAgfTsKKworICAgIHN0cnVjdCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAgICAg
ICB1bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uOworICAgICAg
ICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgICAgICB9OworICAgICAgICBib29sIHN5
bmM7CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rpb24g
c2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJvb2wgc3luYyA9IGZhbHNlKQorICAgICAg
ICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihzZWxlY3Rpb24pCisg
ICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQorICAgICAgICAgICAgOiB0eXBl
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICAgICAsIGNoYW5nZShjaGFuZ2Up
CisgICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIHN5bmMp
CisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKEFYVGV4
dFNlbGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUg
fHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAgICAg
ICB9CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29uc3Qg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0U2Vs
ZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAgICAg
ICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMzAyLDM1IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhO
b3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hh
bmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAg
dm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRleHRDaGFuZ2Ug
eworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICB9
OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4dEVk
aXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToK
KyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIH0K
KyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsK
KyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9pZCB0ZXh0Q2hh
bmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5nZWQoRWxlbWVu
dCopOwpAQCAtMjI5LDYgKzM0MSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9kZUluVXNl
KE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9CiAKIHBy
aXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKyAgICAKICAg
ICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3Np
YmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJ
RD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzM1OCwxMSBAQCBwcml2YXRlOgog
ICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZpY2F0
aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisKKyAg
ICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZlY3RvcjxzdGQ6
OnR1cGxlPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhUZXh0RWRpdFR5cGUsIFN0cmlu
Zz4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0OworICAgIHZvaWQgcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5v
ZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lk
IGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpAQCAtMjUxLDYgKzM3MCw4IEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZvY3VzZWRJbWFnZU1hcFVJRWxl
bWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAgICAKICAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJp
bGl0eU9iamVjdCopOworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0
aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4
ICs0MjksMTYgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBk
YXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqKSB7
IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29u
c3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
IHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikg
eyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCiBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKSB7IH0KKyNlbmRpZgogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwg
UG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlv
bihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAKaW5kZXggZDhkMjZkZS4uYWMzOGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1
Miw2ICs1NTIsNDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZp
ZWxkKCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsK
IH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3
b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBu
b2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBpZiAoSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9J
bnB1dEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmll
bGQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Kj4odGhpcyk7CisgICAgfQorICAgIAorICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9k
ZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxl
bWVudCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlICpjYWNoZSA9IGF4T2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1l
bnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29u
c3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9
IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbnVsbHB0cjsKKyAgICBpZiAoRWxlbWVudCogZWxlbWVu
dCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVu
dD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElu
cHV0RWxlbWVudD4oZWxlbWVudCk7CisgICAgfQorICAgIGlmICghaW5wdXRFbGVtZW50KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNz
d29yZEZpZWxkKCk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJ
bWFnZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aAppbmRleCAzZTc1NzJmLi43ZGJkNTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFp
bmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQ
cm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Nl
YXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLmI1Njk1NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMs
NiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkg
Y29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRD
b250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFy
Y2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBj
b25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAKaW5kZXggMmQ5Mjk5Ni4uOGUwZDc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0x
NDg4LDE0ICsxNDg4LDI0IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQog
ewogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAg
ICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKKyNlbmRpZgogICAgICAgICBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJU
ZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAg
ICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0
ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5v
ZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rp
b24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5z
dGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0
aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25J
c09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQb3Np
dGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
cik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFu
Z2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBWaXNp
YmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEsIHBv
czIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwxMyArMTk3MCwyMiBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29u
c3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5l
bmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0
aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgs
IHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdl
LmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUo
KSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKKyNlbmRpZgogICAgICAgICBtX3JlbmRlcmVy
LT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7
CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlv
biA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1f
cmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7
CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVl
KQorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi42ODJkM2ZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0KQEAgLTk1LDcgKzk1LDE2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29i
ai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9u
U3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCit7CisgICAgcG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iaiwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KQoreworfQorCit2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQppbmRleCBiMzAwZTc3Li5iMzBlNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUw
IEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9u
IEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
Q2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRF
ZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5n
ZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VW
YWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxl
bmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRl
eHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0
cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0
cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCiAvLyBUaGUgc2lt
cGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMjAwLDEzMSBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
Tm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVh
KCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSogdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7CisgICAgaWYgKGludGVudC50eXBl
ICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKGludGVudC50eXBlKTsKKyAg
ICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKTsKKyAg
ICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eV0gPSBAKGludGVu
dC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXJS
YW5nZSA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9u
czpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRpb246c2VsZWN0aW9uLnZpc2libGVF
bmQoKV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRN
YXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFuZ2U7CisgICAgfQorICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IG9iai0+d3JhcHBlcigpOwor
ICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2li
aWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5
U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5m
byByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRp
b25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb25dOworfQor
CitzdGF0aWMgTlNEaWN0aW9uYXJ5KiB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24p
CiB7CisgICAgTlNTdHJpbmcqIHRleHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAgTlNVSW50
ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICghbGVuZ3RoKQorICAgICAgICBy
ZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGNoYW5nZSA9IFtbTlNNdXRhYmxl
RGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2VbTlNBY2Nl
c3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAgc3RhdGljIGNvbnN0IE5TVUlu
dGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYgKGxlbmd0aCA+IHRydW5jYXRp
b25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0lu
ZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkKKyAgICAg
ICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV0gPSB0ZXh0OworICAgIGlm
IChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlciA9IFtv
YmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOnBvc2l0aW9uXSkKKyAg
ICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtl
cl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFv
YmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogdXNlckluZm8gPSBbW05TTXV0YWJs
ZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107CisgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBAW2NoYW5nZV07CisK
KyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdl
dCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90
aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2Vk
Tm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAg
Ly8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAg
ICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5
VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRl
eHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRU
ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQor
ICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJl
dHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgZGVsZXRpb25UeXBlLCBk
ZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdl
XTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisg
ICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNl
XTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAgaWQg
dGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBv
c3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisK
KyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVk
LgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2li
aWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBp
bnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3Np
dGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9u
OihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFya2Vy
Rm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZpc2li
bGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXgg
MWRlYjRkYi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwxNSArNDgsMjMgQEAg
QXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVy
Tm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRhYmxl
U3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hl
OjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOwor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBT
dHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxp
bmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAg
IGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwg
MCwgbm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0
aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkg
OiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5w
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQ
b3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6
ZG9BcHBseSgpCkBAIC02NCwxOCArNzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
Z2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hh
bmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9
CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3Bh
cmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAg
ICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRl
eHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAg
ICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5n
TGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9k
ZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODgsNCArOTYsMTQgQEAgdm9pZCBB
cHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVz
KQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVuZE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFw
cGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IGQ2NGIw
NGUuLjQ5YzllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBBcHBl
bmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0
cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2Rl
PiwgUGFzc1JlZlB0cjxOb2RlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ3LDYgKzQ3
LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNl
dDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9kZT4g
bV9ub2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uNjcyNjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21tYW5kLmgi
CiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJr
ZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVw
bGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTMyMCw5ICszMjMsMTQg
QEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhjb25zdCBOb2Rl
KiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7
CisgICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQs
IHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9CisKIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2Rl
PiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
CiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2Rl
QWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZD
aGlsZCkKQEAgLTUyMiwyMyArNTMwLDQ2IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
cHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0CiAgICAg
ICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbkZv
ckluZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwgdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgo
c3RhcnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkpKSk7CiB9CiAKK1JlZjxFZGl0Q29tbWFu
ZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sK
KyAgICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgdGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKK30KKworUmVmPEVkaXRDb21tYW5k
PiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAg
aWYgKGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICByZXR1cm4gQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwor
ICAgIHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCBjb3VudCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9t
Tm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsK
K30KKworUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9
CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkK
K3sKKyAgICByZXR1cm4gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOwogfQogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+IHBycE5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+
IGRlbGV0ZUNvbW1hbmQgPSByZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVDb21tYW5k
KTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHJlcGxhY2Vt
ZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSkpOwogfQogCiBQb3NpdGlvbiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJp
bmcmIHRleHQpCkBAIC0xNTIzLDQgKzE1NTQsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVh
dGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJu
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KIAorQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmludGVudCgp
Cit7CisgICAgaWYgKG1fY29tbWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5k
c1ttX2NvbW1hbmRzLnNpemUoKS0xXS0+aW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRl
eCBjMmI0ODlkLi40NWQzOGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsK
IGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTg3LDYgKzg4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbklu
ZGljYXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29y
cmVjdGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0
QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CiAKIHByb3Rl
Y3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpAQCAt
MTAzLDE1ICsxMDUsMTggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVkRWxlbWVu
dChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihib29sIHNt
YXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJv
b2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUs
IGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1
ZSk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJvb2wgaXNSZW1vdmFibGVCbG9jayhj
b25zdCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAgICAgdm9pZCBpbnNlcnROb2RlQXQoUGFzc1Jl
ZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydE5vZGVBdFRhYlNw
YW5Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOworICAgIHZpcnR1
YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5v
ZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSk7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID0g
RG9Ob3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBi
b29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSk7CiAgICAgdm9pZCBp
bnNlcnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4
dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIHZvaWQgbWVyZ2VJZGVudGljYWxF
bGVtZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2
b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2ICsxMzUsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05ld1BhcmVudChOb2RlKiwgTm9kZSog
cGFzdExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IHBycE5ld1BhcmVudCk7CiAg
ICAgdm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVSZW1vdmFsUHJlc2VydmluZ0NoaWxkcmVuKFBv
c2l0aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAg
dmlydHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gcmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQp
OwogICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmZkZjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwg
Y291bnQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjJmYTc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRf
aAorI2RlZmluZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKwor
cHJvdGVjdGVkOgorICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
YjRlNzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgorI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9v
bCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2Us
IGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQorICAg
IDogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRp
emVNYXJrdXApCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKworRWRp
dEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1YzMzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorI2RlZmlu
ZSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kIDogcHVibGljIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0
ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVj
aWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKGRv
Y3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERl
bGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJrdXApOworCisgICAgdmlydHVh
bCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApp
bmRleCAyZWE5NmQ1Li44NTcxNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0
aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3LDExIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAg
QVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKIH0KIAorU3Ry
aW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0
dXJuIG1fdGV4dDsKK30KKwogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU2LDEwICs2MywxMCBAQCB2b2lkIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+c3Vi
c3RyaW5nRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuOwotICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFs
bHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9v
ZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzgwLDggQEAgdm9pZCBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1f
b2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQs
IFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZu
ZGVmIE5ERUJVRwpAQCAtODQsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYK
IAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaAppbmRleCAyNDkxZjA1Li43YTMxYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAog
I2lmbmRlZiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
RWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCArNDAsMTIgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKICAgICB9CiAKKyAgICBTdHJpbmcmIGRlbGV0
ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKIHByaXZhdGU6Ci0gICAgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyArNTMsMTAg
QEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5D
b21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2ln
bmVkIG1fb2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40OWYw
MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5k
Ojpkb0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5n
QWN0aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAg
IC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGll
cyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5
IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICByZXR1
cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBw
cmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9y
IGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApp
bmRleCBjMTczZGY0Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uQ29tbWFuZC5jcHAKQEAgLTI3LDExICsyNywxMSBAQAogI2luY2x1ZGUgIkRpY3RhdGlvbkNv
bW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgiCi0jaW5jbHVk
ZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2Vy
dFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgogewog
ICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwogICAg
IGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxlbmd0
aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNv
bW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3Vt
ZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBE
aWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOworICAg
IFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNl
cnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBs
aWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODhjNDAwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVEaWN0YXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5ODM2YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6
IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6
OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2Vy
U3VwcGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2Vy
U3VwcGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzljYjQx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhN
YXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFz
c1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwg
UGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICB2aXJ0dWFsIFJl
ZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjkxZWE5MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0xMjQsNSArMTI1LDI5
IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBz
dGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAgIG5vZGVzLmFkZChub2RlKTsKIH0K
ICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVF
ZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQor
Cit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYg
KCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47
CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7
Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLjVjYTE5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1hbmRfaAog
I2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5j
bHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAt
NTksNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsK
IAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KCkgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsg
fTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAg
ICAgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYpOwpAQCAtOTcsNiArMTAwLDEyIEBAIHByb3RlY3RlZDoKICAgICB2
b2lkIGFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNlbmRp
ZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRU
eXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBwbHlFZGl0VHlwZSgpKTsgfQorCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRl
eCA3MTBhYTM5Li5jMTUzYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3Np
dGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAj
aW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkFs
dGVybmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwxNSBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0
aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkg
ZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0
aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChlZGl0aW5nQWN0aW9uID09IEVk
aXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBlbHNlCisgICAgICAgIGFw
cGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
c21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCkBAIC0xMDAxLDcg
KzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21wb3Np
dGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBzdHls
ZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNld2hl
cmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246OkRp
Y3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5pbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJs
ZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNvbXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVs
ZW1lbnQoKSwgY29tcG9zaXRpb24tPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAg
ICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjY2LDcgKzEyNzAsNyBAQCB2
b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9u
KQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAoYWN0aW9u
ID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNh
blNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZvaWQg
RWRpdG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlz
c0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsK
IH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBvcnBo
YW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2VsZWN0
aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4oKSkK
QEAgLTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNlZSA8
cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdl
IGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxpZAog
ICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rpb24g
PT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9uRGlk
Tm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxlY3Rp
b24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAgICAg
Ly8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkg
d2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8vIEZv
ciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUgY2Fy
ZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzkyYmM0Ni4u
ZDZjNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVi
bGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhEaXJlY3Rp
b24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJpbmcsIGJv
b2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQgY2xl
YXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAg
ICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29t
cG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENv
bXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRT
ZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRT
ZWxlY3Rpb25PcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBF
ZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lk
IHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYThmMWI0MS4uN2VjNTRkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsxMzgsNyBA
QCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRF
bGVtZW50KCkgY29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGln
bk9uU2Nyb2xsIGFsaWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBv
cy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCks
IG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0U2VsZWN0aW9uKFZpc2li
bGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBw
b3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQo
KSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJUcmln
Z2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTI1NCw3ICsyNTMsMTYgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZp
cmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7
CisgICAgCisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAg
ICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJldCgpKQorICAgICAgICAgICAgaW50ZW50ID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2
ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwog
fQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91
dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcg
QEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlv
bkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlm
IChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQt
PmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1l
ICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAg
ICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAg
ICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJp
dHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFi
b3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQg
YnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlT
ZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UK
ICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJ
ZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVh
cmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFu
Y2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1
cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW8KICAgICBpZiAo
ZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRhdGVBbmRSZXZlYWxT
ZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRh
dGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2OCw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAgICAgICAgdmlldy0+
Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAg
ICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4
MCw3ICszODgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oKQogICAgICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwog
ICAgIH0KIAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiB9CiAKIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKQpAQCAt
MTAxOCw3ICsxMDI2LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5
TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBp
c0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3Jh
bnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5k
YXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9u
IGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBi
b29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgewor
ICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAg
ICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVu
dC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51
bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdy
YW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3Jk
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91
bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAg
Y2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAg
ICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6Cisg
ICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJp
dHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNl
IExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9j
dW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0
OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAg
ICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAg
ICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9Cisj
ZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc0LDYgKzExNTUsMTEgQEAg
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25E
aXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9
PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQor
ICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbklu
dGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNv
bWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2
aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNh
dmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQg
cG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxk
IGJlCkBAIC0xNzA3LDggKzE3OTMsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxs
KCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246
OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hv
dWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZl
bnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAg
ICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5QWxsKSk7CisgICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAg
fQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5n
ZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLmI3NGZiZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
RnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50
UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHls
ZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkg
OiAwKTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOwor
ICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1l
KiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92
ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJv
b2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0
aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVj
dGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwg
Q3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdy
YW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAg
IHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZl
YWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZh
dWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0Zv
clNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBw
cml2YXRlOgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rp
b25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQot
ICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQo
RUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwog
I2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7
IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1
cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVV
c2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAj
aWYgIShQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQog
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5
NGU3ZS4uYWVjNDc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgpAQCAtNTAs
NiArNTEsMTEgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBBU1NFUlQoIW1fdGV4dC5p
c0VtcHR5KCkpOwogfQogCitTdHJpbmcmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2Vy
dGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQg
PSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgpOwpAQCAtNjUsOSArNzEs
OSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0KIAog
ICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9O
KTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlv
bihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwg
bV90ZXh0KTsKKyAgICAKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdl
dCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1f
bm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04MiwxMCArODgs
MTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAg
IGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGlu
ZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zm
c2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0
KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbiht
X25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBt
X3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtOTcsNCArMTAzLDE0IEBA
IHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNl
dDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxl
dGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uZTMzZjU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsK
ICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3Rl
ZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCitwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBs
eSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTUxLDcgKzU0LDEwIEBAIHByaXZh
dGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChI
YXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29m
ZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li44ZDVlYzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC01Nyw4ICs1OSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0Fw
cGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1f
cmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUo
KSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAg
ICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/
IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBw
bHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9u
KHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b1VuYXBwbHkoKQpAQCAtNjcsOCArNzEsMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTmVlZCB0byBub3RpZnkg
dGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVl
KCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7Cisg
ICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkg
PyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVh
dGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAg
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVu
YXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0
aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9S
RV9FWENFUFRJT04pOwogfQpAQCAtODEsNCArODcsMTQgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2Vu
ZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjhk
OWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzgsMTYgKzM5LDIwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2Vy
dEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKICAgICB9CiAK
LXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRC
ZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAorcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
b1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2
b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYK
LSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Tm9kZT4gbV9p
bnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4
IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmgKQEAgLTU5LDEwICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGll
cikpOwogICAgIH0KIAotcHJpdmF0ZToKLQotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50
JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNl
VHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25z
dCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7
CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKKworcHJpdmF0ZToKIAogICAg
IHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjYxYWNhYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQ
YXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBT
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxk
LCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVBhc3RlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjFkMDU1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVi
bGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxk
VG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZv
cmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwg
UGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBl
KCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDdhN2Y5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjhlNmEzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
IDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTdiODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwgY291bnQpCit7Cit9CisKK3Zv
aWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmQzMGZkYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJjNzhjMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKKyAgICAsIG1fZGVsZXRl
ZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYg
KCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGlj
dGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgbV9k
ZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURl
bGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSwgdGV4dCwgcG9zaXRp
b24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0
OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW50ZW50KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVwbGFjZUFwcGx5RWRpdFR5cGUoKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTBjMWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0Owor
CitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9
CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVk
aXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlk
ZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApp
bmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNDQsMTQgKzQ1
LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGVMaXN0
LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5k
ZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2lu
Y2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTE0ODIsNiArMTQ4
OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1cGRhdGVOb2Rlc0luc2VydGVk
KE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50ID0gbGFzdFBvc2l0aW9u
SW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsKIH0KKyAgICAKK1JlZjxFZGl0
Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAg
cmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwg
cmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZv
cmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7
CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVk
VGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICBy
ZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIH0K
K30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdlJ3JlIGp1c3QgcGFzdGluZyBh
IHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2VydCB0aGUgdGV4dCBub2RlCiAv
LyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xkcyB0aGUgc2VsZWN0aW9uLiAg
VGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXplZCBjb2RlIGluCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3
YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBib29s
IHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVudEZyYWdtZW50Jik7CiAKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICBQb3NpdGlvbiBtX3N0
YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9lbmRPZkluc2VydGVkQ29udGVu
dDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlvblN0eWxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
ICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQo
Y29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIAogdm9pZCBUeXBp
bmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4
dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21t
YW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0
LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21t
YW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBz
ZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21w
b3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWls
aW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFj
ZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0
aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uM2U0MjIxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAg
OiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKwor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYmQxNDQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyNDYwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNo
aWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2Vy
dENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MTc0NjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJl
Zm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBj
aGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQ
YXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTY2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgor
CisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5j
ZVR5cGUpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5z
ZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGlu
Z0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
cmV0dXJuIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5k
OjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRU
ZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTNiNWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKyNk
ZWZpbmUgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLCBSZWJh
bGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0
ZXNwYWNlcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5j
ZVR5cGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJhbGFuY2VUeXBlKTsKKworICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGRkNTMxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOTZjMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
PiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4wN2UyYTRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpA
QCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3Jl
ZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAg
ICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQp
CiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAg
IGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgp
LmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90
aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIo
KSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxl
UGFyZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVj
dGlvbik7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uNWJm
YjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRl
eHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7Cisg
ICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7
CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBp
ZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJ
c0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAg
ICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVl
Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAg
ICAgICBpbm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAKICAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdc
cicpKQogICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQg
JiYgcmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9z
aXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAg
IH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDYwNTFjNi4uMDdmMzg4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE4NCw3ICszMTg0LDE0IEBAIHN0YXRp
YyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlv
bkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlv
bi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25E
aXNjb250aWd1b3VzKTsKKyNlbmRpZgorICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJs
ZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNl
clRyaWdnZXJlZCkKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgaW50ZW50CisjZW5kaWYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICApOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVj
dGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250290</attachid>
            <date>2015-04-07 13:25:26 -0700</date>
            <delta_ts>2015-04-08 12:21:07 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>67401</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA0OTYwOTM2ZmQ5ODFmZGY3ZjRjMWYyYmYwYTE4ZGUzMTQyMDQ3MjYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMjAgKysrKysrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
ICAgICB8ICA5NiArKysrKysrKysrKysrKysrLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmggICAgICAgfCAgNjcgKysrKysrKysrKy0tCiAuLi4vYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgICAgICB8ICA0MSArKysrKysrCiAuLi4v
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oICAgICAgICB8ICAgMiArCiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCB8ICAgMiAr
CiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tICB8ICAg
NiArLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSAg
fCAxMTIgKysrKysrKysrKysrKysrKysrLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5oICAgICAgICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAgICAgICAgfCAgMzAgKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCAgICB8ICAgMyArCiAuLi4vZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAgNiArKwogLi4uL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgIDQgKwogLi4uL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAgfCAgIDUgKwogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggfCAgIDEgKwog
Li4uL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgfCAgMzEg
KysrLS0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAgfCAgIDUgKy0KIC4uLi9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIHwgICA1ICsKIC4uLi9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCAgIHwgICAyICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
Y3BwICAgICAgICAgICAgIHwgIDI1ICsrKysrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmggICAgICAgICAgICAgICB8ICAgNSArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAgICAgICAgICAgICAgICAgICB8ICAxNyArKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmggICAgICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICB8ICAzMSArKystLS0KIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIHwgICA5ICstCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCB8ICAzNCArKyst
LS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgIHwg
ICA5ICstCiAuLi4vZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAgICAg
ICB8ICAgNSArCiAuLi4vV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCB8ICAgMiArCiAuLi4vUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgICAgICB8ICAgNSArCiAuLi4vUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICAgICAgICB8ICAgMiArCiAuLi4vZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAgICB8ICAgNSArCiAuLi4vZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oICAgICB8ICAgNCArLQogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICAgfCAgMzAgKysrKysrCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICAgNSArLQogLi4uL2VkaXRpbmcvVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICAgfCAgIDUgKwogLi4uL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICAgfCAgIDMgKwogLi4uL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICAgICAgfCAgIDUgKwogLi4uL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgICAgICAgfCAgIDIgKwogLi4uL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICAgfCAgIDUgKwogLi4u
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICAgfCAgIDIgKwog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIg
KystCiA0NCBmaWxlcyBjaGFuZ2VkLCA2NzcgaW5zZXJ0aW9ucygrKSwgMTAwIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA1ZGQ4NDU1Li5hNWMxNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIs
MTI2IEBACiAKICAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCiAK
KyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
biBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0
ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUg
Y2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3
YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6c2FuaXRpemVQYXNzd29yZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dv
cmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5n
UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNo
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRS
ZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNv
bW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRU
eXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgICog
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAg
ICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0
aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9F
ZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBw
bHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFu
ZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNs
ZWFyVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydERpY3Rh
dGlvblBocmFzZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZSk6
IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5n
L1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlF
ZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElu
bmVyVGV4dFZhbHVlKToKKworMjAxNS0wNC0wNiAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFw
cGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMK
KwogICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0
IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5k
IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gVGhpcyBjb21taXQgaXMgYWxsIGluZnJh
c3RydWN0dXJlIGFuZCBkb2Vzbid0IGNvbnRhaW4gYW55IGFjY2Vzc2liaWxpdHkgc3BlY2lmaWMg
Y2hhbmdlcy4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAppbmRleCBhMDBiMTVjLi5lYTdhNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw2
ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFj
Y2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3Rp
ZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0
VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMs
ICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewog
fQogCkBAIC03NDIsNiArNzQzLDIyIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50
T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIERSVCwgcG9z
dGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVw
IG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZp
b3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBl
bmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZp
Y2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIG5vdGUgOiBub3RpZmljYXRpb25zKSB7CisgICAgICAgIC8vIERl
bGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oc3RkOjpnZXQ8MD4obm90ZSkuZ2V0KCksIHN0ZDo6Z2V0PDE+
KG5vdGUpLCBzdGQ6OmdldDwyPihub3RlKSwgVmlzaWJsZVBvc2l0aW9uKCkpOworICAgIH0KKyNl
bmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdl
dCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY3LDc4IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFu
Z2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWYg
UExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4dChjb25zdCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5p
c0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBvYmoucGFzc3dv
cmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVsZFZhbHVlKCku
c3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRF
ZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0
ZXMoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0g
dGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsK
KyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBz
YW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0
KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dv
cmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6
ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBw
bGF0Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUp
OworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdl
Rm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVk
aXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBl
IGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUg
aW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47Cisg
ICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNT
RVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlw
ZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CiAK
ICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7
CisgICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2Jq
KSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNl
cnRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlv
bnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwg
aW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAo
IW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAg
ICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNl
cnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBs
YXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwg
ZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRp
emVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAgIC8vIERlbGVnYXRlIG9uIHRo
ZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3Jl
YXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0
ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRp
b24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4
dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFu
Z2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5k
ZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCiB9CiAKIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUqIGZy
YW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzExNjMsMTcgQEAg
Ym9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEoKQorewor
ICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVj
dCgpKSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpmaXJzdENoaWxkID0gcm9v
dE9iamVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZC0+aXNX
ZWJBcmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGQ7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVy
OjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1f
Y2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oCmluZGV4IGJmYTkyNzcuLjkxODQwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4OSwyNSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlv
biwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91
c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERv
Y3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0
VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0g
ICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAgIGVudW0g
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5r
bm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorICAgIH07CisKKyAgICBl
bnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAg
ICAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0ZQorICAgICAg
ICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgICAgICBB
WFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0eXBpbmcKKyAgICAgICAgQVhUZXh0
RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAgICAgIEFYVGV4
dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgICAgICBBWFRleHRFZGl0VHlwZVBh
c3RlIC8vIEluc2VydCB2aWEgUGFzdGUKICAgICB9OwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYpOworICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRleHQg
dmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdF
dmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMjMxLDM0IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2Vk
VUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5v
ZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRleHRDaGFu
Z2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAg
ICB9OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4
dEVkaXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0
ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3du
OgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAg
IH0KKyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9pZCB0ZXh0
Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5nZWQoRWxl
bWVudCopOwpAQCAtMjI5LDYgKzI2OSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9kZUlu
VXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9CiAK
IHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKyAgICAK
ICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nl
c3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0Kiwg
QVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzI4NiwxMSBAQCBwcml2YXRl
OgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBh
aXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZp
Y2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisK
KyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZlY3Rvcjxz
dGQ6OnR1cGxlPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhUZXh0RWRpdFR5cGUsIFN0
cmluZz4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0OworICAgIHZvaWQgcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAgdm9pZCBoYW5kbGVNZW51T3BlbmVk
KE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKICAgICB2
b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpAQCAtMzA4LDggKzM1NSwxNCBAQCBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmll
dyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9
Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikg
eyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRG
T1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9Cisj
ZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmlj
YXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RU
YXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3Rp
ZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLmFjMzhmMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
CkBAIC01NTIsNiArNTUyLDQ3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFz
c3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZp
ZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAg
Tm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG5v
ZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNQYXNz
d29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAoRWxlbWVudCogZWxlbWVu
dCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVu
dD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSAqY2FjaGUgPSBh
eE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0
ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVs
ZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5v
ZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1
dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQq
IGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1
dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0
PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVu
dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQt
PmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpp
c0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uN2RiZDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiAr
ODgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRP
ckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Ns
aWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJhLi5iNTY5NTc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApA
QCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0
b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3Jk
RmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRh
aW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRp
dmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNXZWJB
cmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CmluZGV4IDExOWUwYjAwLi4wOTg3ZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDcgKzk1LDExIEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQor
eworfQorCit2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQppbmRleCBiMzAwZTc3Li4yMWQyMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDQyIEBA
CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAi
QVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRF
ZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5n
ZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VW
YWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxl
bmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRl
eHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNl
bmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJv
dyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMTkyLDgyIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQorc3RhdGljIE5T
RGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIE5T
U3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3Ro
ID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsK
KyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRl
eHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5j
YXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7
CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0g
QChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0
aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24u
aXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVy
KCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1h
cmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKKyAgICBpZiAoIW9i
aikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsK
KworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURp
Y3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlk
IHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2Vi
QXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldp
dGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlv
biwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkg
RFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdl
ZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0
RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRF
ZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2Jq
ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAg
ICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisK
KyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQs
IHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYg
KE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShv
YmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hh
bmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBp
ZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJv
b3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0
aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZp
Y2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNl
ZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFy
Z2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVD
aGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRp
bmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVP
YmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJD
b3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6
VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQ
b3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBA
ZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDJkZTZkYmYuLjY3
MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
CkBAIC0yNiwxMiArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBl
bmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJl
bmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsMTcgKzQ4LDIzIEBAIEFwcGVuZE5vZGVD
b21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVu
dCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwg
IW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hh
bmdlIGNoYW5nZSwgIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQorc3RhdGlj
IHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKwogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5u
b2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29t
bWFuZAogICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hh
bmdlLCBvZmZzZXQsIHRleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUt
PmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24g
cG9zaXRpb24gPSBpczxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUp
LCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2Fj
aGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlz
aWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKQEAgLTY4LDE2ICs3NCwxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKIAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElH
Tk9SRV9FWENFUFRJT04pOwogCi0gICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9ub2RlLT5u
b2RlVmFsdWUoKSwgMCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
bV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUo
KSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRo
aXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRE
ZWxldGVkLCBtX25vZGUtPm5vZGVWYWx1ZSgpLCAwKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAg
IG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtOTAsNCArOTYsMTQgQEAg
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVu
ZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIEFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4
IGVkZjY4MWIuLjQ5YzllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmgKQEAgLTQ3LDYgKzQ3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVu
dDsKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggMzFmNTE3OC4uYWZlZDJiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkFwcGx5U3R5bGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5o
IgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC01NDIsNiArNTQzLDggQEAgdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2YKIAogUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7CisgICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9
PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogICAgIHJldHVybiBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCmluZGV4IGJjZmQyNGEuLmZkZjliZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJU
ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDQgKzM2LDkgQEAgQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUKIHsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCmluZGV4IDRkZjU3OTEuLmJmMmZhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0z
OSw2ICszOSwxMCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IDE2M2M5MjIuLjFiNGU3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNDIsNCArNDIsOSBAQCBSZWY8
RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cgogICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CiB9CiAKK0VkaXRBY3Rpb24gQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IEVkaXRBY3Rpb25DdXQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggOWNi
ZTE1Ny4uMWQwNWMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTQxLDYgKzQxLDcgQEAgcHJpdmF0ZToKICAgICBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBt
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJrdXApOwogCiAgICAgdmlydHVhbCBSZWY8RWRpdENv
bW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKaW5kZXggNTk3ZjQ5Yy4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC01MiwxNSArNTIsNiBAQCBT
dHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKICAgICByZXR1
cm4gbV90ZXh0OwogfQogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotdm9pZCBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBu
b2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIHVuc2lnbmVkIG9mZnNldCkKLXsKLSAgICBpZiAobm9kZSAmJiBBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0
ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogewogICAgIEFTU0VSVChtX25vZGUpOwpAQCAtNzIsMTEgKzYzLDEwIEBAIHZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgbV90ZXh0ID0gbV9ub2RlLT5z
dWJzdHJpbmdEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm47Ci0gICAgCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCiAgICAgLy8gTmVlZCB0
byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dERlbGV0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQs
IFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9u
b2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC05MCw5ICs4MCw4
IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1f
bm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAot
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX3RleHQs
IG1fb2Zmc2V0KTsKLSNlbmRpZgorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25v
ZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3Np
dGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMTAyLDQg
KzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggNGU0N2Nm
OS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKQEAgLTQ1LDkgKzQ1LDYgQEAgcHVibGljOgogcHJvdGVjdGVkOgog
ICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IHVuc2lnbmVkKTsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOwotI2VuZGlmCiBwcml2YXRlOgog
CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKQEAgLTU2LDcgKzUzLDEwIEBA
IHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29t
bWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25l
ZCBtX29mZnNldDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0Fj
dGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQg
aXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAv
LyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMg
dGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBz
aG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJu
IEVkaXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJl
c2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBl
eGFtcGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNzVmNjFiMC4uZjg4YzQwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNyw0ICszNyw5IEBAIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0CiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCBmZTU0NTEwLi5mMjk4
MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzksNiArMzksOCBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNp
bXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBI
YXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAg
ICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93
bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1w
bGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9k
ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAg
ICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
aAppbmRleCAwM2U2YzM3Li5mNWI4NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRp
dENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRB
Y3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTk3LDYgKzk4LDEw
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFz
aFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYzQ3
NzFiZC4uMGIwYzEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzc1LDIwICsz
NzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVs
ZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNt
YXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUu
c2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFu
ZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUp
KTsKLX0KLQotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZUZvckN1
dChib29sIHNtYXJ0RGVsZXRlKQotewotICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9u
ZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgaWYgKGVk
aXRpbmdBY3Rpb24gPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAg
IGVsc2UKKyAgICAgICAgYXBwbHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJU
ZXh0KCkKQEAgLTEyNzUsNyArMTI3MCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5
KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7
CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRl
bGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCmluZGV4IDkzOTgyNjQuLjY2ZGIwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4
dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNt
YXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhT
bWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBF
ZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElP
UykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpA
QCAtNDUyLDcgKzQ1Miw2IEBAIHByaXZhdGU6CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBj
b25zdDsKIAotICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGJv
b2wpOwogICAgIGJvb2wgY2FuRGVsZXRlUmFuZ2UoUmFuZ2UqKSBjb25zdDsKICAgICBib29sIGNh
blNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQmKTsKICAgICB2b2lkIHBhc3Rl
QXNQbGFpblRleHRXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA5ZjA5
MDI3Li5hZWM0NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTU2LDE1ICs1Niw2IEBAIFN0cmluZyYgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKICAgICByZXR1cm4gbV90ZXh0Owog
fQogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVk
IG9mZnNldCkKLXsKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKLSAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3b3Jk
RWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgpOwpA
QCAtODEsOSArNzIsOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENF
UFRJT04pOwogICAgIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dElu
c2VydGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKLSNlbmRpZgorICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxl
UG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JN
KElPUykKQEAgLTk4LDExICs4OCwxMCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKwogICAgIC8vIE5l
ZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKLSNlbmRpZgorICAgIGlmIChB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBt
X3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAg
ICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9F
WENFUFRJT04pOwogfQpAQCAtMTE0LDQgKzEwMywxNCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNl
bmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCmluZGV4IDVjYTJkOTYuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC00NCwxMCArNDQs
NiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KTsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5n
ZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5
KCkgb3ZlcnJpZGU7CkBAIC01OCw3ICs1NCwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVy
cmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJl
ZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1f
dGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKaW5kZXggMGNiOGFkYy4uOGQ1ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1
ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDE1ICs1MCw2
IEBAIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQCiAgICAgQVNTRVJUKG1fcmVmQ2hpbGQtPnBhcmVu
dE5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCkt
PnJlbmRlcmVyKCkpOwogfQogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotdm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSog
bm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCi17Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCi0gICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOwotfQotI2Vu
ZGlmCi0KIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIENv
bnRhaW5lck5vZGUqIHBhcmVudCA9IG1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKTsKQEAgLTY3LDkg
KzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAg
cGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsK
LSNlbmRpZgorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7
CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQo
KSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBj
cmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3Np
dGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6ZG9VbmFwcGx5KCkKQEAgLTc3LDEwICs3MCwxMSBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghaXNFZGl0YWJsZU5vZGUoKm1faW5zZXJ0Q2hp
bGQpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8g
TmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBB
WE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwg
MCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQu
Z2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDAp
IDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOwor
ICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdl
dCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92
ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTkzLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykK
IH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCAzNzVk
MDk5Li44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCkBAIC00MiwxMCArNDIsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0
LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRDaGFuZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkKTsKLSNlbmRpZgotCiBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNTMsNyArNDksMTAgQEAgcHJpdmF0ZToKICNpZm5k
ZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9y
ZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggYWMwYzNj
Yi4uNjFhY2FiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSw5IEBAIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0
cjxOb2RlPiBpbnNlCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4
IGU3M2FmN2MuLjFkMDU1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC00MCw2ICs0MCw4IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMzQwN2I0My4uYzQ3YTdmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSw5IEBAIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCBhNGNm
NDFlLi44ZTZhMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDEsNiArNDEs
OCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDg5OGIwMTcuLmUwMTdiODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKIAorI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM1LDQgKzM2LDggQEAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGUKIHsKIH0KIAor
dm9pZCBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggZGZkOGUzZS4uZDMwZmRiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMjYsNyArMjYsNiBAQAogI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kX2gKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDYgKzQxLDkg
QEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSos
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKaW5kZXggODdhNjJmOC4uYmE0NTUzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCkBA
IC0zNyw0ICszOCwzMyBAQCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZQogewogfQogCit2b2lkIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93
bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgor
ICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAg
ICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVk
aXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCmluZGV4IGQ5ZmY1YmUuLjU3ZTUzNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
CkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKICNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogCi0jaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsNyArNDIsMTEgQEAgcHVibGljOgog
cHJvdGVjdGVkOgogICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKIAorICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5
cGUoKTsKKwogcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKKwogICAgIFN0cmluZyBt
X2RlbGV0ZWRUZXh0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggM2JmYjk3ZC4uM2U0
MjIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNyw0ICszNyw5IEBAIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0CiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCBiNDA3NDk4Li4wMGJkMTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMzYsOCArMzYsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIHRleHQpKTsKICAgICB9CisKIHByaXZhdGU6CiAgICAgVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKaW5kZXggMzBhNGRjZi4uN2IyNDYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTM1LDQgKzM1
LDkgQEAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW4KIHsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCmluZGV4IGM0NDIxOTEuLjgxNzQ2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAg
LTQwLDYgKzQwLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA3
YWMzY2EzLi4zMGRkNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAt
MzUsNCArMzUsOSBAQCBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUAogewogfQogCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZVR5cGluZzsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDIzZmYzYTIuLjk2YzJlMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQxLDYgKzQxLDggQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZi
Mi4uNWJmYjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBi
b29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4
dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVy
VGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsK
ICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsK
KyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYg
KHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAg
ICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpB
WFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRp
ZgogICAgICAgICBpbm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CiAKICAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNX
aXRoKCdccicpKQogICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0No
YW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAg
ICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhp
cywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRp
ZgogICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7
Ci0tIAoyLjMuMCAoQXBwbGUgR2l0LTU0KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250291</attachid>
            <date>2015-04-07 13:25:59 -0700</date>
            <delta_ts>2015-04-08 12:21:37 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>43925</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAxODkwZjY5NDc3ZjBlNWU1NGIwODRmZmNlZDNhNzVhZDU0YTIxNmNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTYgKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICAgIHwgMTQ5
ICsrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggICAgICAgfCAgNzggKysrKysrKysrKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgIHwgIDI5ICsrKy0KIC4uLi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gIHwgICA1ICsKIC4uLi9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gIHwgIDU3ICsrKysrKysrCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCAgICB8ICAgNyAr
CiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggICAgICB8ICAg
MSArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggICAgICAgICAgICAgICB8
ICAgNCArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgICAgICAgICAgICAgICAg
ICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCAgICAgICAgICAgICAg
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
ICAgICAgICAgIHwgMTEwICsrKysrKysrKysrKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oICAgICAgICAgICAgfCAgMTcgKystCiAuLi4vZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICB8ICAgNSArCiAuLi4vZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSAgICB8ICAgNCArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgfCAgIDkgKy0KIDE3IGZp
bGVzIGNoYW5nZWQsIDUxMSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYTVjMTYzNy4uMjI1YjkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDYyIEBACiAKICAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCiAKKyAgICAgICAgUmlj
aGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1
Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJl
cGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJl
bGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBz
ZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29y
ZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbklu
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhU
ZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24pOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAg
ICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9F
ZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjph
cHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNl
bGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAg
ICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCisyMDE1LTA0LTA2ICBEb3VnIFJ1c3Nl
bGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFu
Z2Ugbm90aWZpY2F0aW9ucworCiAgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNo
YW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24g
dG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVz
cG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hh
bmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29h
bGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4K
IAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRl
eCBlYTdhNzMxLi43MDgzNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKQEAgLTg2Nyw2ICs4NjcsMTU1IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBw
b3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJn
ZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQor
eworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRp
dDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHBy
aW50ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50
ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtu
b3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50Zigi
RGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZUluc2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHBy
aW50ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoK
KyAgICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5r
bm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAg
ICAgICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYo
IkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAg
ICAgICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgewor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAg
ICAgICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAg
ICAgIHByaW50ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAg
IHByaW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAg
IHByaW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHBy
aW50ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRm
KCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAg
cHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90
ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCit7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAg
ICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisKKyAgICBzdG9wQ2FjaGluZ0Nv
bXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5p
c1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgp
OworICAgIH0KKworICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0
aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9i
amVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQp
OworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24p
OworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKICNpZiBQTEFU
Rk9STShDT0NPQSkKIHN0YXRpYyBib29sIHNhbml0aXplUGFzc3dvcmRUZXh0KGNvbnN0IEFjY2Vz
c2liaWxpdHlPYmplY3QmIG9iaiwgU3RyaW5nICZ0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAppbmRleCA5MTg0MDA0Li42MzUwNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTkxLDcgKzE5MSw5IEBAIHB1YmxpYzoKIAogICAg
IGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKICAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93biwKLSAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorICAgICAgICBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQKICAgICB9OwogCiAgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CkBAIC0yMDksNiArMjExLDc1
IEBAIHB1YmxpYzoKICAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQogICAgIHZvaWQg
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKTsKIAorICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwg
Ly8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhl
IHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBi
eSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBk
b2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9u
LgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uKEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtu
b3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eSA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICAgICAgICAgIDogZGlyZWN0aW9uKGRpcmVjdGlv
bikKKyAgICAgICAgICAgICwgZ3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkpCisgICAgICAgIHsgfQor
ICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBB
WFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAg
QVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNo
YW5nZTsKKyAgICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVj
dGlvbigpLCBib29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAg
ICAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMp
CisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVk
aXRUeXBlIGNoYW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0KQorICAgICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZh
bHNlKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5
cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAg
ICAgICwgc3luYyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYg
TkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0
ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2Vs
ZWN0aW9uIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsK
KwogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLAog
ICAgICAgICBBWExvYWRpbmdSZWxvYWRlZCwKQEAgLTIzMiw2ICszMDMsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9s
ZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mKTsKICAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOwogI2Vsc2UKQEAgLTI5OCw2ICszNzAsOCBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFy
ZWFFbGVtZW50Kik7CiAgICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsK
IH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyCkBAIC0zNTUsOSArNDI5LDExIEBA
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxW
aWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIHsgfQogI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiAjZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5Ni4uOGUwZDc0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCkBAIC0xNDg4LDE0ICsxNDg4LDI0IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2Um
IHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNo
ZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKKyNlbmRpZgog
ICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2Fz
dDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQo
KTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJh
bmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2Rl
LCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAg
ICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6
UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9uIHBv
czEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZz
ZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0
YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsK
KyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9u
KHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpCisjZW5kaWYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAKIFVSTCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwxMyArMTk3MCwyMiBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9u
UmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8
fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1h
a2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVy
byBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0
ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2Jq
ZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKKyNlbmRpZgogICAgICAgICBt
X3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5nZS5zdGFydCwgVXNlclRy
aWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5l
d1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7Ci0g
ICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCksCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kLCB0cnVlKQorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDA5ODdmNDUuLjY4MmQz
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0
Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbQpAQCAtOTUsNiArOTUsMTEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMK
ICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3Rp
ZmljYXRpb25TdHJpbmddOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3sKKyAgICBwb3N0
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworfQorCiB2
b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCAyMWQyMzAyLi5iMzBlNGZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAg
LTQ4LDYgKzQ4LDEwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5
cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0
ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKwogI2lmbmRlZiBOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCiAjZW5kaWYKQEAg
LTgwLDYgKzg0LDEwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50
IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJS
YW5nZSIKKyNlbmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBk
b24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xOTIsNiAr
MjAwLDU1IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsKIH0KIAordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQs
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAg
ICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1
cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LnN5bmMp
CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlF
UzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikg
eworICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5
XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAg
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9u
LmRpcmVjdGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25V
bmtub3duOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQ6CisgICAgICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAg
ICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJS
YW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3Np
dGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJS
YW5nZTsKKyAgICB9CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1l
bnRdID0gb2JqLT53cmFwcGVyKCk7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3Jh
cHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
dGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1
c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQg
dG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vz
c2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hh
bmdlZE5vdGlmaWNhdGlvbl07Cit9CisKIHN0YXRpYyBOU0RpY3Rpb25hcnkqIHRleHRSZXBsYWNl
bWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBOU1N0cmluZyogdGV4dCA9IChOU1N0cmlu
ZyAqKXN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKaW5kZXggYWZlZDJiOS4uNjcyNjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTE1NTQsNCArMTU1NCwxMSBAQCBQ
YXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFs
c2UpOwogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6aW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisg
ICAgICAgIHJldHVybiBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT5pbnRlbnQoKTsK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4IGY4ZGY5ZDkuLjQ1ZDM4YWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTg4LDYgKzg4LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGlj
YXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29ycmVj
dGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0Qmxp
bmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IGY1Yjg2YzMuLjVjYTE5YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50Jiwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTEw
Miw2ICsxMDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIAorICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJp
ZGUgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBwbHlF
ZGl0VHlwZSgpKTsgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRD
b21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAppbmRleCAwYjBjMTBiLi5jMTUzYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCkBAIC0xMDA1LDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRp
bmcoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3Qg
Y2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRv
IHRob3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgp
ID8gRnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5pbnRlbnQoKSk7
CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNvbXBvc2l0aW9uLT5z
dGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY29tcG9zaXRpb24tPmVuZGluZ1Jvb3RFZGl0
YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBA
IC0yODU0LDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFz
SWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNv
bkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6
OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdT
ZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQor
dm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkK
IHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1
cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBo
YW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NjYsNyArMjg2Niw3
IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcy
OTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZv
ciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9u
RGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rp
b24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRp
b24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0
aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9w
ZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3Rpbmcg
aXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91
IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4p
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNjZkYjAyMC4uZDZjNWUzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNl
dENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24g
fTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9u
TW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25P
cHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25P
cHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rp
b25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1D
dXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYThmMWI0MS4uN2VjNTRkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsxMzgsNyBAQCBFbGVtZW50
KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkg
Y29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlv
biAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xs
IGFsaWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1
aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0
aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rp
b24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5p
dHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24p
OwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNl
clRyaWdnZXJlZCkKQEAgLTI1NCw3ICsyNTMsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MK
ICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RF
dmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisg
ICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChu
ZXdTZWxlY3Rpb24uaXNDYXJldCgpKQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRl
bnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29s
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlv
biwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWdu
LCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcgQEAgYm9vbCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25z
dCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50
ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8
RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkp
IHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1Nl
bGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAg
ICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxl
Y3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9u
cywgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOwogICAg
ICAgICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFib3ZlIHNldCBz
ZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQgYnkKICAgICAg
ICAgICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlTZWxlY3RlZCwg
YnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UKICAgICAgICAg
ICAgICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJZiB0aGlzIGlz
IHRoZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3IEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29u
c3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNl
dFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9u
cyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQs
IEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkK
IHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0
aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBAIC0z
NDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW8KICAgICBpZiAoZnJhbWVWaWV3
ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICB1
cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
aW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91
dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2OCw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAgICAgICAgdmlldy0+Y2xlYXJTZWxl
Y3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgaWYgKCFt
X3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3ICszODgs
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQogICAg
ICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KIAot
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiB9CiAKIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKQpAQCAtMTAxOCw3ICsx
MDI2LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFj
a3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5
KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkg
PT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdy
YW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5l
IEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkp
Cit7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAg
PSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3Zl
KSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAgICAgICAg
ICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgICAgIGZs
aXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAg
IHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5Ogor
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5j
ZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6Cisg
ICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFy
YWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3Vt
ZW50R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91
bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFy
YWN0ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNl
bnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQ
YXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3Vu
ZGFyeToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3Vu
ZGFyeToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNh
c2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERp
cmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAog
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25E
aXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJp
Z2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc0LDYgKzExNTUsMTEgQEAgYm9vbCBGcmFt
ZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0
aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAg
ICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRl
ciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhl
IGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4K
ICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8g
cG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24g
dHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0x
NzA3LDggKzE3OTMsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAg
IFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlv
bkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdl
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAg
IGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBhdXRv
IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkRpc2NvbnRpZ3VvdXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
QWxsKSk7CisgICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBi
b29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmlu
aXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLmI3NGZiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxl
Y3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgog
I2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2Vy
VHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAg
ICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxw
dHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRW
YWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0
aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBD
dXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3Jh
bnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlv
bnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxp
Z25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5
ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2Vs
ZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNs
ZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQ
b3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlv
bigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgog
ICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0
aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRp
b24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAg
ICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxl
Y3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dl
cmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkludGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRl
eCBiYTQ1NTM5Li44YmM3OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtNjcsNCArNjcs
OSBAQCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdAogICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZUluc2VydDsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VB
cHBseUVkaXRUeXBlKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKaW5kZXggNTdlNTM0MGEuLjI5MGMxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQz
LDYgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKTsKIAogICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFj
ZUFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVT
ZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlv
bk1hYy5tbQppbmRleCA5YmRlZTFjLi4wN2UyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRp
YyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAj
ZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgp
LmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0
YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxl
Y3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAgIGNh
Y2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCku
ZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYgIVBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2
Li4wN2YzODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcg
KzMxODQsMTQgQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1l
JiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAg
fQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2Vs
ZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvIGludGVudCA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpOworI2VuZGlmCisgICAgc2VsZWN0aW9uLnNl
dFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKQorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
UExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBpbnRlbnQKKyNl
bmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAKIHN0YXRpYyB2b2lkIGhh
bmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50
KiBldmVudCkKLS0gCjIuMy4wIChBcHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250292</attachid>
            <date>2015-04-07 13:31:32 -0700</date>
            <delta_ts>2015-04-07 13:46:36 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>198063</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGY1Y2VhYzkzYjA2YWUwNjk2NmM0MTBkZmUyM2Q2YTkzZDNiMTc0N2QKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDEzOjIw
OjM1IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxM2M4OC4u
YzQ2ZTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNiBAQAorMjAxNS0wNC0wNyAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQg
c3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0
byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8g
Y2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9z
dCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNr
cyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAg
UmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBl
YXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21O
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
ZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBs
aWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZE
aWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6
CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rp
b24pOgorCiAyMDE1LTA0LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFtNYWNdIHZpZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3Vs
ZCBub3QgYmUgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEy
ICs2Mzc5LDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5t
bSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3
QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhF
NDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2
M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2
NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAv
KiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyog
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlD
bGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVG
QjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87
IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
ICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4
REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAq
LzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYx
MjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyog
QnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1
QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8q
IFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vl
a0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcw
ODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFB
Q0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVE
ODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEy
QjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIw
MzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICov
OyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAw
MjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0Iz
QzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlG
QTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0
NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBW
YWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAv
KiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdl
LmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
OyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQu
Y3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVD
MDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJ
RjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5
NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2
ICsxNDAzMSw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNj
cm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5j
cHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
MDE5LDggKzE0MDQ1LDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1
MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4
IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8q
IEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1
dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5w
dXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0
LDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgy
RTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgw
RjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZy
YW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpA
QCAtMTQwODAsOCArMTQxMjAsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExv
Y2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2Fs
ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5
RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlk
YXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFD
Q0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc2OTcsNiArMTc3NDUsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyog
Q3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAv
KiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1
NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAq
LywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4
MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEw
IEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZl
LmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQu
Y3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5k
LmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAog
CQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2
ICsxNzgwNywxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAv
KiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2
OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJ
CUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0
OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJ
CQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc2MSw2ICsxNzgyMSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4
MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RB
NzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlB
ODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3Bw
ICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIx
NDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkz
MzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMw
OURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZB
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywK
KwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4
MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIw
MDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1
QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJ
CTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8q
IEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMw
MDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0
OTMsNiArMjQ1NjYsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAw
QUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
N0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVz
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERP
TUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsy
NDg5MCw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBB
OEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5
NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0
U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyog
SFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBE
NzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiAr
MjUxMjAsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVy
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYx
MkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNF
RTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1
RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NTA1NCw2ICsyNTEzMCw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVk
aW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8q
IEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0Ew
MDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNC
YXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyog
SlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2
OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTcz
LDYgKzI1MjUwLDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2Ft
ZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpT
R2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBE
MkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQg
LyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUEx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxp
emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNY
UGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5
MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4
NzQsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNM
YXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBU
ZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29k
ZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8q
IFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAog
CQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9s
bGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBp
biBIZWFkZXJzICovLApAQCAtMjY5NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3
OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFs
aXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2Vi
Q29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQz
RUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVG
dWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2
MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyog
V2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29y
ZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdC
NDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAs
NiArMjcwOTMsNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNC
MDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRC
RDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENv
bnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIw
RCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERG
ODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApA
QCAtMjc3NTIsNiArMjc4MzYsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBK
U1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMx
ODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMw
REFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdl
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFG
QjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2
MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsy
ODA1MSw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERP
TUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRN
TE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkw
MDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKQEAgLTI4MTEzLDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4
MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVC
MDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JN
YXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMx
MSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmlj
RXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5
VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0
RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3
IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2
OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1l
cGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBI
SURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4
QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUx
Miw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUx
QjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAw
MEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8q
IEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBA
QAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNl
TmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlB
RTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYw
MTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3
QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5
MTQsNiArMjkwMDYsNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3Jp
cHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jl
cG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMs
NyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZl
ckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAw
NDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZB
NDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdC
QjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQx
NjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5l
cmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBT
dGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJ
QTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNl
cyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0
MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2
NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgy
MDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uNzA4MzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3Np
YmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0
aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtNzQyLDYgKzc0MywyMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcg
bm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhl
ciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisg
ICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJ
bnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlv
bnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0
ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3Rl
KSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYK
K30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9z
dFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJl
bkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2Fj
aGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0
ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYg
TkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25v
d24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
OgorICAgICAgICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kOgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6
CisgICAgICAgICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAg
ICBwcmludGYoIlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAg
ICAgIHByaW50ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
OgorICAgICAgICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBw
cmludGYoIlByZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZToKKyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFnZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAg
cHJpbnRmKCItU3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUg
Km5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsK
KworCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmop
IHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBv
YmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24o
bm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBU
YXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbklu
dGVudCgpOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBh
c3N3b3JkVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dv
cmRGaWVsZCgpIHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAg
IHRleHQgPSBvYmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFz
c3dvcmRGaWVsZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4
dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NF
UlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21w
dXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmlu
ZyBzYW5pdGl6ZWRUZXh0ID0gdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBh
c3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAg
IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAg
IGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAu
MDI1KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmln
aHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVn
YXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9
IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5v
ZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNl
cnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25U
eXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0
RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRl
cygpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRU
ZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGlu
c2VydGVkVGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgq
b2JqLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9i
c2VydmFibGVPYmplY3QoKSwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7
CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0
YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdh
dGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAg
IC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVs
ZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQp
OworI2VuZGlmCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3Rp
ZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0x
MDg0LDYgKzEzMTIsMTcgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6
cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0
ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0
ICpmaXJzdENoaWxkID0gcm9vdE9iamVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBp
ZiAoZmlyc3RDaGlsZC0+aXNXZWJBcmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0
Q2hpbGQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hl
KiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xODksMTIgKzE4OSw5NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0g
QVhUZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAg
IEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4
dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRp
dFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUg
Ly8gSW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBj
aGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAg
ICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwor
ICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVt
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rp
b24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4
dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNv
bXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51
bGFyaXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlv
biB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6
IGRpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFy
aXR5KQorICAgICAgICB7IH0KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVu
aW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAg
ICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsK
KworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUg
dHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxl
Y3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAg
ICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAg
ICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAg
ICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAg
ICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2Vs
ZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0
eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0K
KyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rp
b25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAg
QVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbik7CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2Vk
KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7Cisg
ICAgICAgIEFYVGV4dEluc2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07Cisg
ICAgaW5saW5lIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAg
ICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAg
IH0KKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2Vu
ZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2Vk
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7
CkBAIC0yMjksNiArMzQxLDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9k
ZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0
ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERv
Y3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBt
X3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAg
VGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25z
VG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRp
bWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVw
bGU8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4g
bV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSop
OwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFu
ZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50
KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25J
bnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQy
OSwxNiBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUo
U2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBO
b2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0K
K2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAppbmRleCBkOGQyNmRlLi5hYzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYg
KzU1Miw0NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQo
KSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQog
CitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUg
PSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0
RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qq
Pih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNo
ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAor
eworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5r
bm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0g
bm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pigq
ZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3Jk
RmllbGQoKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdl
KCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmlu
ZGV4IDNlNzU3MmYuLjdkYmQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5n
UGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dy
ZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNo
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25z
dCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0
NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3
b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCAyZDkyOTk2Li44ZTBkNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgs
MTQgKzE0ODgsMjQgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAg
ICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAg
ICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOworI2VuZGlmCiAgICAgICAgIEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRD
b250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0
ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyBy
YW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9
IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0
LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24o
bm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0aW9u
KG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsK
KyAgICBQb3NpdGlvbiBwb3MyID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5s
ZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2libGVT
ZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9zMiwg
RE9XTlNUUkVBTSk7CisgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3Rpb24odmlzaWJsZVNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OnVybCgpIGNvbnN0CkBAIC0xOTYwLDEzICsxOTcwLDIyIEBAIHZvaWQgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBW
aXNpYmxlUG9zCiB7CiAgICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24g
YW5kIHRlbGwgdGhlIGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhl
biBtb3ZlIHRvIHRoYXQgcG9zaXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5k
KQorICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpIHsKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQor
ICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOworI2VuZGlmCiAgICAgICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAg
ICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0g
VmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5k
ZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAg
ICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpCisj
ZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICApOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBiMDAuLjY4MmQzZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bQpAQCAtOTUsNyArOTUsMTYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53
cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJp
bmddOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworfQorCit2b2lkIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7
Cit9CisKK3ZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tCmluZGV4IGIzMDBlNzcuLmIzMGU0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNTAgQEAK
ICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJB
WExpdmVSZWdpb25DcmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlQ2hhbmdlVHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFu
Z2VUeXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
U3RhdGVTeW5jS2V5IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVk
aXRUeXBlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRU
eXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcwor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFs
dWVzIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVl
IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3Ro
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENo
YW5nZVZhbHVlTGVuZ3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZVZhbHVlU3RhcnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZh
bHVlU3RhcnRNYXJrZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1
dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1
dGUgQCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUg
Q29jb2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTE1Niw4ICsyMDAsMTMxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3Rp
ZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
bWFjTm90aWZpY2F0aW9uXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2Us
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsK
KworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9u
YXJ5KiB1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBh
Y2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0g
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAg
ICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAg
ICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBp
ZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdl
ID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNl
bGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgp
XSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtl
clJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5nZTsKKyAgICB9CisgICAgdXNlckluZm9b
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gb2JqLT53cmFwcGVyKCk7CisgICAg
aWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0
eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlTZWxl
Y3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3N0
YXRpYyBOU0RpY3Rpb25hcnkqIHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsK
KyAgICBOU1N0cmluZyogdGV4dCA9IChOU1N0cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2Vy
IGxlbmd0aCA9IFt0ZXh0IGxlbmd0aF07CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVy
biBuaWw7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogY2hhbmdlID0gW1tOU011dGFibGVEaWN0
aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIGNoYW5nZVtOU0FjY2Vzc2li
aWxpdHlUZXh0RWRpdFR5cGVdID0gQCh0eXBlKTsKKyAgICBzdGF0aWMgY29uc3QgTlNVSW50ZWdl
ciB0cnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKyAgICBpZiAobGVuZ3RoID4gdHJ1bmNhdGlvbkxl
bmd0aCkgeworICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVu
Z3RoXSA9IEAobGVuZ3RoKTsKKyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6
dHJ1bmNhdGlvbkxlbmd0aF07CisgICAgfQorICAgIGlmIChsZW5ndGggPiAwKQorICAgICAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBv
c2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0gW29iai0+
d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAg
ICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9
IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30K
Kwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAg
aWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdCk7CisKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRD
aGFuZ2VEaWN0aW9uYXJ5KG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAg
IGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0g
cm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmlj
YXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBV
c2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0
YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1
ZUNoYW5nZWROb3RpZmljYXRpb25dOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmos
IEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwg
QVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAg
ICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJu
OworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQpOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmNoYW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0V2l0aENhcGFjaXR5OjJdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9
IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBkZWxldGlvblR5cGUsIGRlbGV0
ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOwor
ICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rp
b25hcnkob2JqLCBpbnNlcnRpb25UeXBlLCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAg
ICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlc10gPSBjaGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOwor
CisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9b
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJn
ZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdl
ZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAg
IC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisg
ICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0
eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJh
bWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBh
eEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi45MjIyOGU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVy
ZmFjZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9u
czooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFdl
YkNvcmU6OlZpc2libGVQb3NpdGlvbillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JW
aXNpYmxlUG9zaXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBv
czsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAxZGVi
NGRiLi42NzFkMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNs
dWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxl
ZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDE1ICs0OCwyMyBAQCBBcHBl
bmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2Rl
PiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHls
ZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRl
eHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
dHlwZSkKIHsKLSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IFN0cmlu
ZyB0ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJy
ZWFrcyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYg
KHRleHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
IGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBu
b2RlVmFsdWUpOworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50
KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24g
PSBpczxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNy
ZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0
aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKQEAgLTY0LDE4ICs3NCwxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKIAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENF
UFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
Ci0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAog
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50
LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAv
LyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAot
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5l
QnJlYWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5y
ZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC04OCw0ICs5NiwxNCBAQCB2b2lkIEFwcGVu
ZE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9
CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5k
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4u
NDljOWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApA
QCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIEFwcGVuZE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5v
ZGU+KTsKKyAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+LCBQ
YXNzUmVmUHRyPE5vZGU+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDcsNiArNDcsOSBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAg
ICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX25v
ZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAppbmRleCA4NDYxZWU3Li42NzI2MDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkFwcGVuZE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQXBwbHlTdHlsZUNvbW1hbmQuaCIKICNp
bmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKQEAgLTU4LDYgKzU5LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5o
IgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVk
ZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNl
Tm9kZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMzIwLDkgKzMyMywxNCBAQCBi
b29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5v
ZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2Vy
dENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAg
ICByZXR1cm4gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKK30KKwogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGlu
c2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsK
LSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3Jl
YXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRl
cihQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxk
KQpAQCAtNTIyLDIzICs1MzAsNDYgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRU
ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKICAgICAgICAg
c2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uRm9ySW5k
ZXgoc3RhcnRJbmRleCwgc2NvcGUuZ2V0KCkpLCB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFy
dEluZGV4ICsgbGVuZ3RoLCBzY29wZS5nZXQoKSkpKTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAg
IHJldHVybiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
dGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnRUZXh0SW50b05v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICBpZiAo
ZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIHJldHVybiBDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAg
cmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNv
dW50KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkK
IHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworfQor
CitSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKwor
UmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorewor
ICAgIHJldHVybiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gZGVs
ZXRlQ29tbWFuZCA9IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwog
ICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKHJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRU
ZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYg
dGV4dCkKQEAgLTE1MjMsNCArMTU1NCwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJs
b2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQogCitBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW50ZW50KCkKK3sK
KyAgICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzW21f
Y29tbWFuZHMuc2l6ZSgpLTFdLT5pbnRlbnQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4IGMy
YjQ4OWQuLjQ1ZDM4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOwogY2xhc3MgRWRpdGluZ1N0eWxlOwogY2xh
c3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAtODcsNiArODgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNh
dG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3JyZWN0
aW9uSW5kaWNhdG9yKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlu
a2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jik7CkBAIC0xMDMs
MTUgKzEwNSwxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1vdmVTdHlsZWRFbGVtZW50KFBh
c3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9uKGJvb2wgc21hcnRE
ZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCBy
ZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9v
bCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwogICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsK
KyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCk7CiAgICAgdm9pZCBpbnB1dFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQgPSBmYWxzZSk7CiAgICAgYm9vbCBpc1JlbW92YWJsZUJsb2NrKGNvbnN0
IE5vZGUqKTsKICAgICB2b2lkIGluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+LCBQYXNz
UmVmUHRyPE5vZGU+IHJlZkNoaWxkKTsKICAgICB2b2lkIGluc2VydE5vZGVBdChQYXNzUmVmUHRy
PE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0VGFiU3BhblBv
c2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CisgICAgdmlydHVhbCBS
ZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4s
IFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsK
ICAgICB2b2lkIGluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgPSBEb05v
dEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2b2lkIGluc2VydFBhcmFncmFw
aFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wg
cGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlKTsKICAgICB2b2lkIGluc2Vy
dExpbmVCcmVhaygpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50
b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsK
ICAgICB2b2lkIGluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgdm9pZCBtZXJnZUlkZW50aWNhbEVsZW1l
bnRzKFBhc3NSZWZQdHI8RWxlbWVudD4sIFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQg
cmViYWxhbmNlV2hpdGVzcGFjZSgpOwpAQCAtMTMwLDYgKzEzNSw4IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIG1vdmVSZW1haW5pbmdTaWJsaW5nc1RvTmV3UGFyZW50KE5vZGUqLCBOb2RlKiBwYXN0
TGFzdE5vZGVUb01vdmUsIFBhc3NSZWZQdHI8RWxlbWVudD4gcHJwTmV3UGFyZW50KTsKICAgICB2
b2lkIHVwZGF0ZVBvc2l0aW9uRm9yTm9kZVJlbW92YWxQcmVzZXJ2aW5nQ2hpbGRyZW4oUG9zaXRp
b24mLCBOb2RlJik7CiAgICAgdm9pZCBwcnVuZShQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICB2aXJ0
dWFsIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiByZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CiAg
ICAgUG9zaXRpb24gcmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcmKTsKICAg
ICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNl
bWVudFRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZmRmOWJmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3Vu
dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMmZhNzcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisj
ZGVmaW5lIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcm90
ZWN0ZWQ6CisgICAgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNGU3
MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKKyNpbmNsdWRlICJDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNt
YXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9v
bCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCisgICAgOiBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1h
cmt1cCkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
OjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitFZGl0QWN0
aW9uIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDVjMzMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisjZGVmaW5lIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRl
bGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxF
bGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1l
bnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisKKyAgICB2aXJ0dWFsIFJl
ZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4
IDJlYTk2ZDUuLjg1NzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJh
bWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcu
aCIKIApAQCAtNDUsNiArNDcsMTEgQEAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBBU1NF
UlQobV9vZmZzZXQgKyBtX2NvdW50IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwogfQogCitTdHJpbmcm
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4g
bV90ZXh0OworfQorCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQog
ewogICAgIEFTU0VSVChtX25vZGUpOwpAQCAtNTYsMTAgKzYzLDEwIEBAIHZvaWQgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgbV90ZXh0ID0gbV9ub2RlLT5zdWJzdHJp
bmdEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm47Ci0gICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBk
ZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50
KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQs
IG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25v
ZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRp
b24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNl
dCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZz
ZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNo
ZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZm5kZWYg
TkRFQlVHCkBAIC04NCw0ICs5MSwxNCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVEZWxldGU7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oCmluZGV4IDI0OTFmMDUuLjdhMzFjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0
Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw4ICs0MCwxMiBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwogICAgIH0KIAorICAgIFN0cmluZyYgZGVsZXRlZFRl
eHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKwogcHJpdmF0ZToKLSAgICBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00OCw3ICs1MywxMCBAQCBw
cml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQg
bV9vZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9jb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDJiYmM2ZWQuLjQ5ZjAwZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRv
QXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rp
b24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVTZWxlY3Rpb25Db21tYW5kIGlz
IGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERlbGV0ZSBrZXksCi0gICAgLy8g
YnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFuZCB0aGF0IHN1cHBsaWVzIHRo
ZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8gbWVudSBjb3JyZWN0bHkgc2hv
d3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworICAgIHJldHVybiBF
ZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0IHByZXNl
cnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBGb3IgZXhh
bXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCmluZGV4
IGMxNzNkZjQuLjE5ZjlmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25D
b21tYW5kLmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVkZSAiRGljdGF0aW9uQ29tbWFu
ZC5oIgogCiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oIgorI2luY2x1ZGUg
IkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCIKLSNpbmNsdWRlICJJ
bnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4
dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBzaXplX3QgbGluCiB7CiAgICAg
VmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAgICAgY29s
bGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVuZ3RoLCBh
bHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFu
ZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQo
KSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3Rh
dGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CisgICAgUmVm
UHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5z
dWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6
OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OGM0MDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjk4MzZhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVi
bGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZjQxNWY3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBw
bGllcikKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBw
bGllcikKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOWNiNDEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gK
KyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0
VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVm
UHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChk
b2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBQYXNz
UmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIHZpcnR1YWwgUmVmPEVk
aXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUzMi4uOTFlYTkwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTEyNCw1ICsxMjUsMjkgQEAg
dm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqIHN0YXJ0
Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KICAgICAgICAgbm9kZXMuYWRkKG5vZGUpOwogfQogI2Vu
ZGlmCisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZVVua25vd247Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRD
b21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK3Zv
aWQgU2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5v
ZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhY2hlLT5wb3N0VGV4
dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKK30K
KyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmgKaW5kZXggMDNlNmMzNy4uNWNhMTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVm
aW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBAIC01OSw2
ICs2MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQo
KSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOyB9Owor
CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKICAgICBF
ZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJik7CkBAIC05Nyw2ICsxMDAsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUo
KTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0
VHlwZSgpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChhcHBseUVkaXRUeXBlKCkpOyB9CisKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDcx
MGFhMzkuLmMxNTNjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9u
RXZlbnQuaCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNs
dWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGljdGF0aW9uQWx0ZXJu
YXRpdmUuaCIKQEAgLTM3NCwxMiArMzc1LDE1IEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGly
ZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBnCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25X
aXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgaWYgKGVkaXRpbmdBY3Rpb24gPT0gRWRpdEFj
dGlvbkN1dCkKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGVsc2UKKyAgICAgICAgYXBwbHlD
b21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFy
dERlbGV0ZSkpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTEwMDEsNyArMTAw
NSw3IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVk
aXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0aGUgdHlwaW5nIHN0eWxlIHdp
dGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2UgdGhpbmdzIGVsc2V3aGVyZSBp
ZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0
aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFtZVNlbGVjdGlvbjo6RGljdGF0
aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2Vs
ZWN0aW9uLCBvcHRpb25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2Vs
ZWN0aW9uLCBvcHRpb25zLCBjbWQtPmludGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29u
dGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVu
dCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVw
ZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjYsNyArMTI3MCw3IEBAIHZvaWQg
RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAK
ICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0g
Q3V0QWN0aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21h
cnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0
b3I6OnBhc3RlKCkKQEAgLTI4NTAsNyArMjg1NCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29y
cmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIt
PmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQog
Ci12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNl
bGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVk
LCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24u
c3RhcnQoKS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAt
Mjg2Miw3ICsyODY2LDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFy
Oi8vcHJvYmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29u
dGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAg
Ym9vbCBzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBt
X2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RD
aGFuZ2VET01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVj
dGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBT
b21lIGVkaXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRo
b3V0IGFmZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4
YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBp
cyBtYXJrZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li5kNmM1
ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihT
ZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBp
c1R5cGluZ0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25X
aXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRl
eHQoKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVV
bmNoYW5nZWFibGVTdHlsZXMoKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVu
dW0gU2V0Q29tcG9zaXRpb25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3Np
dGlvbiB9OwogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9z
aXRpb25Nb2RlKTsKIAotICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvbk9wdGlvbnMpOworICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvbk9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBlbnVtIEVkaXRv
ckFjdGlvblNwZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFjdGlvbiB9OwogICAgIHZvaWQgcGVy
Zm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBhOGYxYjQxLi43ZWM1NGQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTM4LDggKzEzOCw3IEBAIEVs
ZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1l
bnQoKSBjb25zdAogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25T
Y3JvbGwgYWxpZ24pCiB7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRl
ZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9z
ZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnModXNlclRyaWdnZXJlZCksIGFsaWduKTsKKyAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5h
ZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLCBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBh
bGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9z
aXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJl
ZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMjU0LDcgKzI1MywxNiBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
cGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3VsZENoYW5n
ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNl
bGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAg
ICAKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAg
aWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb24o
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQs
IGludGVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAK
IGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFu
Y2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGly
ZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwg
YWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBi
b29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9j
dW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJl
ZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJh
bWUoKSkgewogICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYg
bmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAg
ICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5l
d1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBv
cHRpb25zLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7
CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUg
c2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQog
ICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVj
dGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAg
ICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRo
aXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAg
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
biwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWdu
LCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25P
cHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShz
ZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsK
QEAgLTM0MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFt
ZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5n
TGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVh
clNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxT
ZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBp
ZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcg
KzM4OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigp
CiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAg
fQogCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIH0KIAogdm9pZCBG
cmFtZVNlbGVjdGlvbjo6dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpCkBAIC0xMDE4
LDcgKzEwMjYsODAgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3Zp
bmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91
bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxh
cml0eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkg
fHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bmxpbmUgRnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0
ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSkKK3sKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wg
ZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlv
bk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAg
ICAgICAgICBpZiAoZGlyZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwpCisgICAgICAgICAgICAg
ICAgZmxpcCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5
cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7
CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJp
dHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNl
bnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFy
eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9v
bCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNl
IENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNh
c2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBj
YXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGlu
ZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVu
dEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6Cisg
ICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblByZXZpb3VzIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNh
c2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRp
ZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVj
dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVz
ZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzQsNiArMTE1NSwxMSBAQCBib29s
IEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFs
dGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50
KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBv
ZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0
aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBp
dCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3Np
dGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUK
QEAgLTE3MDcsOCArMTc5MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQog
CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7
CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAg
IGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlBbGwpKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAgICB9CiB9
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBF
QWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uYjc0ZmJmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFt
ZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwg
KHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDAp
OwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAg
fQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0g
bnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0
aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBz
ZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247
IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRl
eHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9u
T3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVs
YXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBz
ZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVu
dW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9p
ZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRT
ZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2Vs
ZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFu
Y2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFs
aWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBAIHByaXZh
dGU6CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5h
dmlnYXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0
ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAjZWxz
ZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQor
ICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0
ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJU
cmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAh
KFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdl
Li5hZWM0NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBAIC01MCw2ICs1
MSwxMSBAQCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVCghbV90ZXh0LmlzRW1w
dHkoKSk7CiB9CiAKK1N0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRU
ZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZy
YW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5ICs3MSw5IEBA
IHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgfQogCiAgICAg
bV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwot
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3Rl
eHQpOworICAgIAorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEwICs4OCwxMCBA
QCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYg
KCFtX25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAK
KwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRo
ZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQs
IG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwg
dW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9k
ZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4
dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC05Nyw0ICsxMDMsMTQgQEAgdm9p
ZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAzMTBiYmIzLi5lMzNmNTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKICNkZWZpbmUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzksOSArNDAsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAg
IH0KIAotcHJpdmF0ZToKKyAgICBTdHJpbmcmIGluc2VydGVkVGV4dCgpOworcHJvdGVjdGVkOgog
ICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkg
b3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNTEsNyArNTQsMTAgQEAgcHJpdmF0ZToK
ICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0
OwogICAgIFN0cmluZyBtX3RleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGQxNmI1ZDYuLjhkNWVjMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBA
IC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisjaW5jbHVkZSAi
VGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTU3LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHko
KQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZD
aGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNo
ZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsK
KyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAg
ICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9z
aXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVk
aXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9z
aXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7
CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAg
ICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBv
c2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxl
Z2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBs
eUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24o
cG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VY
Q0VQVElPTik7CiB9CkBAIC04MSw0ICs4NywxNCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYK
IAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uOGQ5YzYw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9o
CiAjZGVmaW5lIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zOCwxNiArMzksMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVm
b3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJp
dmF0ZToKK3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9y
ZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCitwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5h
cHBseSgpIG92ZXJyaWRlOwogICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAg
IAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRU
eXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2RlPiBtX2luc2Vy
dENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEw
ZDJmZS4uYmZhMTgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuaApAQCAtNTksMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7
CiAgICAgfQogCi1wcml2YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBl
KTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0
cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAg
ICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBz
ZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9p
ZCBkZWxldGVDaGFyYWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjFhY2FiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NS
ZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlUGFzdGU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMWQwNTU5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0lu
c2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNz
UmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0N2E3ZjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU2
YTM1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFRleHQ7CisKK2NsYXNzIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBw
dWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZTAxN2I4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0w
LDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRl
eHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQodGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKwordm9pZCBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZDMwZmRiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4g
Y3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmM3OGMwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
QEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQorICAgICwgbV9kZWxldGVkVGV4
dChkZWxldGVkVGV4dCkKK3sKK30KKwordm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNh
Y2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgY2FzZSBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlVHlwaW5nOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRp
b246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVE
ZWxldGUsIHRleHQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0
ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
LCBtX2RlbGV0ZWRUZXh0LCByZXBsYWNlQXBwbHlFZGl0VHlwZSgpLCB0ZXh0LCBwb3NpdGlvbik7
CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyZXBsYWNlQXBwbHlFZGl0VHlwZSgpKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjI5MGMxYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2Ns
YXNzIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKwor
cHJvdGVjdGVkOgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5
cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudCgpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOwor
CisgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4
IGZiMzg4MGMuLjMwYzQ3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQmVm
b3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC00NCwxNCArNDUsMjAg
QEAKICNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiU21hcnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVk
ZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTQ4Miw2ICsxNDg5LDMw
IEBAIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnVwZGF0ZU5vZGVzSW5zZXJ0ZWQoTm9k
ZSAqbm9kZSkKIAogICAgIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQgPSBsYXN0UG9zaXRpb25Jbk9y
QWZ0ZXJOb2RlKG5vZGUtPmxhc3REZXNjZW5kYW50KCkpOwogfQorICAgIAorUmVmPEVkaXRDb21t
YW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVk
aXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1
cm4gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZD
aGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSk7CisgICAgfQorfQorCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAg
ICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0
LCBkZWxldGVkVGV4dCk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVy
biBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgfQorfQog
CiAvLyBEdXJpbmcgc2ltcGxlIHBhc3Rlcywgd2hlcmUgd2UncmUganVzdCBwYXN0aW5nIGEgdGV4
dCBub2RlIGludG8gYSBydW4gb2YgdGV4dCwgd2UgaW5zZXJ0IHRoZSB0ZXh0IG5vZGUKIC8vIGRp
cmVjdGx5IGludG8gdGhlIHRleHQgbm9kZSB0aGF0IGhvbGRzIHRoZSBzZWxlY3Rpb24uICBUaGlz
IGlzIG11Y2ggZmFzdGVyIHRoYW4gdGhlIGdlbmVyYWxpemVkIGNvZGUgaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2Zm
Li5lMjZhOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oCkBAIC0xMTEsNiArMTExLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGVy
Zm9ybVRyaXZpYWxSZXBsYWNlKGNvbnN0IFJlcGxhY2VtZW50RnJhZ21lbnQmKTsKIAorICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKwogICAgIFBvc2l0aW9uIG1fc3RhcnRP
Zkluc2VydGVkQ29udGVudDsKICAgICBQb3NpdGlvbiBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50Owog
ICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1faW5zZXJ0aW9uU3R5bGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCA5MzI5Y2RmLi44YzBmYjAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5k
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
IApAQCAtMzczLDcgKzM3NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25z
dCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogCiB2b2lkIFR5cGluZ0Nv
bW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNl
bGVjdEluc2VydGVkVGV4dCwKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQg
PSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVj
dEluc2VydGVkVGV4dCwKICAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0
aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdX
aGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7
CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24o
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zZTQyMjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVUeXBpbmc7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBiZDE0NAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KyNkZWZpbmUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQp
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi43YjI0NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZVR5cGluZzsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjgxNzQ2MTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3Jl
LAorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxk
VG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NS
ZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wMWIxNjY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCisKKyNp
bmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydFRleHRDb21tYW5kOjpU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlw
ZSkKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRl
ZFRleHQsIHJlYmFsYW5jZVR5cGUpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1
cm4gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
dGV4dCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OnJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBk
ZWxldGVkVGV4dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQp
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRD
b21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ5M2I1ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmlu
ZSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydFRleHRDb21t
YW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFR5cGluZ0luc2VydFRleHRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsIFJlYmFsYW5j
ZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3Bh
Y2VzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlw
ZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IFN0cmluZyYsIGJvb2wsIFJlYmFsYW5jZVR5cGUpOworCisgICAgdmlydHVh
bCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVm
PEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZGQ1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45
NmMyZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgVGV4dDsKKworY2xhc3MgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQgOiBwdWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00
NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJl
Y3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAot
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYg
KG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNO
b3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQt
PmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmlj
YXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBB
WE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJl
bnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24o
bV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9u
KTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElz
Q2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBT
dHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAg
ICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0
ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hh
bmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAg
IGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFu
Z2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAg
IGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAog
ICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykp
CiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiBy
ZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5w
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlv
bjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQog
CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li4wN2YzODhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMxODQsMTQgQEAgc3RhdGljIHZv
aWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNl
dFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAm
JiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2Nv
bnRpZ3VvdXMpOworI2VuZGlmCisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9z
aXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJp
Z2dlcmVkKQorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLCBpbnRlbnQKKyNlbmRpZgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9u
TW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250294</attachid>
            <date>2015-04-07 13:46:36 -0700</date>
            <delta_ts>2015-04-07 13:51:54 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>197906</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ3MTJmMTcxYmFlNjI4ZjgzMjMzZWEyYTlkYTk0ODdjNWU0NTk0MmYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDEzOjIw
OjM1IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxM2M4OC4u
YzQ2ZTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNiBAQAorMjAxNS0wNC0wNyAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQg
c3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0
byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8g
Y2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9z
dCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNr
cyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAg
UmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBl
YXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21O
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
ZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBs
aWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZE
aWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6
CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rp
b24pOgorCiAyMDE1LTA0LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFtNYWNdIHZpZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3Vs
ZCBub3QgYmUgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEy
ICs2Mzc5LDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5t
bSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3
QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhF
NDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2
M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2
NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAv
KiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyog
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlD
bGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVG
QjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87
IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
ICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4
REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAq
LzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYx
MjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyog
QnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1
QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8q
IFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vl
a0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcw
ODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFB
Q0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVE
ODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEy
QjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIw
MzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICov
OyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAw
MjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0Iz
QzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlG
QTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0
NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBW
YWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAv
KiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdl
LmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
OyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQu
Y3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVD
MDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJ
RjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5
NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2
ICsxNDAzMSw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNj
cm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5j
cHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
MDE5LDggKzE0MDQ1LDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1
MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4
IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8q
IEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1
dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5w
dXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0
LDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgy
RTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgw
RjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZy
YW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpA
QCAtMTQwODAsOCArMTQxMjAsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExv
Y2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2Fs
ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5
RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlk
YXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFD
Q0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc2OTcsNiArMTc3NDUsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyog
Q3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAv
KiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1
NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAq
LywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4
MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEw
IEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZl
LmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQu
Y3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5k
LmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAog
CQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2
ICsxNzgwNywxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAv
KiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2
OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJ
CUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0
OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJ
CQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc2MSw2ICsxNzgyMSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4
MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RB
NzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlB
ODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3Bw
ICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIx
NDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkz
MzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMw
OURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZB
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywK
KwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4
MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIw
MDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1
QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJ
CTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8q
IEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMw
MDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0
OTMsNiArMjQ1NjYsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAw
QUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
N0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVz
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERP
TUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsy
NDg5MCw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBB
OEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5
NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0
U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyog
SFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBE
NzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiAr
MjUxMjAsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVy
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYx
MkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNF
RTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1
RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NTA1NCw2ICsyNTEzMCw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVk
aW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8q
IEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0Ew
MDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNC
YXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyog
SlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2
OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTcz
LDYgKzI1MjUwLDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2Ft
ZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpT
R2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBE
MkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQg
LyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUEx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxp
emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNY
UGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5
MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4
NzQsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNM
YXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBU
ZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29k
ZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8q
IFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAog
CQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9s
bGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBp
biBIZWFkZXJzICovLApAQCAtMjY5NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3
OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFs
aXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2Vi
Q29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQz
RUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVG
dWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2
MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyog
V2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29y
ZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdC
NDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAs
NiArMjcwOTMsNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNC
MDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRC
RDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENv
bnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIw
RCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERG
ODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApA
QCAtMjc3NTIsNiArMjc4MzYsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBK
U1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMx
ODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMw
REFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdl
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFG
QjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2
MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsy
ODA1MSw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERP
TUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRN
TE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkw
MDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKQEAgLTI4MTEzLDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4
MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVC
MDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JN
YXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMx
MSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmlj
RXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5
VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0
RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3
IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2
OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1l
cGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBI
SURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4
QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUx
Miw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUx
QjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAw
MEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8q
IEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBA
QAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNl
TmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlB
RTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYw
MTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3
QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5
MTQsNiArMjkwMDYsNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3Jp
cHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jl
cG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMs
NyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZl
ckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAw
NDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZB
NDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdC
QjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQx
NjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5l
cmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBT
dGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJ
QTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNl
cyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0
MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2
NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgy
MDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uNzA4MzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3Np
YmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0
aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtNzQyLDYgKzc0MywyMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcg
bm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhl
ciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisg
ICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJ
bnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlv
bnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0
ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3Rl
KSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYK
K30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9z
dFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJl
bkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2Fj
aGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0
ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYg
TkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25v
d24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
OgorICAgICAgICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kOgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6
CisgICAgICAgICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAg
ICBwcmludGYoIlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAg
ICAgIHByaW50ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
OgorICAgICAgICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBw
cmludGYoIlByZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZToKKyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFnZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAg
cHJpbnRmKCItU3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUg
Km5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsK
KworCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmop
IHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBv
YmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24o
bm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBU
YXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbklu
dGVudCgpOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBh
c3N3b3JkVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dv
cmRGaWVsZCgpIHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAg
IHRleHQgPSBvYmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFz
c3dvcmRGaWVsZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4
dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NF
UlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21w
dXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmlu
ZyBzYW5pdGl6ZWRUZXh0ID0gdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBh
c3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAg
IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAg
IGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAu
MDI1KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmln
aHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVn
YXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9
IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5v
ZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNl
cnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25U
eXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0
RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRl
cygpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRU
ZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGlu
c2VydGVkVGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgq
b2JqLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9i
c2VydmFibGVPYmplY3QoKSwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7
CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0
YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdh
dGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAg
IC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVs
ZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQp
OworI2VuZGlmCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3Rp
ZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0x
MDg0LDYgKzEzMTIsMTcgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6
cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0
ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0
ICpmaXJzdENoaWxkID0gcm9vdE9iamVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBp
ZiAoZmlyc3RDaGlsZC0+aXNXZWJBcmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0
Q2hpbGQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hl
KiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xODksMTIgKzE4OSw5NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0g
QVhUZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAg
IEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4
dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRp
dFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUg
Ly8gSW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBj
aGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAg
ICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwor
ICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVt
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rp
b24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4
dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNv
bXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51
bGFyaXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlv
biB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6
IGRpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFy
aXR5KQorICAgICAgICB7IH0KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVu
aW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAg
ICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsK
KworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUg
dHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxl
Y3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAg
ICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAg
ICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAg
ICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAg
ICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2Vs
ZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0
eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0K
KyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rp
b25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAg
QVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbik7CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2Vk
KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7Cisg
ICAgICAgIEFYVGV4dEluc2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07Cisg
ICAgaW5saW5lIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAg
ICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAg
IH0KKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2Vu
ZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2Vk
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7
CkBAIC0yMjksNiArMzQxLDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9k
ZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0
ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERv
Y3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBt
X3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAg
VGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25z
VG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRp
bWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVw
bGU8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4g
bV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSop
OwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFu
ZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50
KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25J
bnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQy
OSwxNiBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUo
U2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBO
b2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0K
K2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAppbmRleCBkOGQyNmRlLi5hYzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYg
KzU1Miw0NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQo
KSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQog
CitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUg
PSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0
RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qq
Pih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNo
ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAor
eworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5r
bm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0g
bm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pigq
ZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3Jk
RmllbGQoKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdl
KCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmlu
ZGV4IDNlNzU3MmYuLjdkYmQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5n
UGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dy
ZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNo
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25z
dCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0
NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3
b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCAyZDkyOTk2Li4zODU0MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgs
MTQgKzE0ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAg
ICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5n
ZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENv
bnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3Jt
Q29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2Uo
cmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVu
Z3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOwor
ICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246
OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9u
KG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09m
ZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBW
aXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXIt
PmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMjIgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlv
blJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkg
fHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBt
YWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHpl
cm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFy
dCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CisjZW5kaWYKICAgICAgICAg
bV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJU
cmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwot
ICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCwgdHJ1ZSkKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uNjgy
ZDNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZp
YwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5v
dGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAg
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9
CisKK3ZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00
NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5v
dGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBl
IEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJB
WFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhU
ZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVu
Z3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJr
ZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVs
ZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwog
Ly8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0
aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSBy
b290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChp
bnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQu
dHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAg
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHld
ID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91
czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0
ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlv
bi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0K
KyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndy
YXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAg
TlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAg
ICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4g
bm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0
aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGlj
dGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOwor
ICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBb
W05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hh
bmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBj
b25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGgg
PiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vi
c3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+
IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4
dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRN
YXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3Np
dGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
U3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0
b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKwor
ICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0g
W1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRl
eHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikp
CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtj
aGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAg
ICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmls
aXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZh
bHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNl
XTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBw
b3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNj
ZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQor
ICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtb
TlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlv
bmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0
aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2Jq
ZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9z
aXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5n
ZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVy
OworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vz
c2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmls
aXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9i
amVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMs
OSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBl
bmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQp
dGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0
aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUg
KzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5o
YXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGlj
IHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2Rl
VmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBj
b25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0g
IlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRl
eHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
bm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4o
bm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAg
ICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0
LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRU
eXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAg
IGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0
aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAK
ICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0
IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBB
cHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApp
bmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBA
IC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkg
b3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVm
UHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJs
b2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERv
Y3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAs
OSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2so
Y29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFu
ZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGlu
c2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxl
UG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlv
bkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8
RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxF
ZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAg
cmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxl
dGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVy
biBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
Y291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAog
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJp
bmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsK
LSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVs
ZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAog
UG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUo
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJu
IG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0
aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04
Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2Nv
cnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0
YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRl
OwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1l
bnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0
eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rp
b24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUg
PSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxz
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFs
c2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1h
cmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJp
bmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3Zh
YmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQ
dHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9k
ZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnRO
b2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsK
KyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQg
aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQg
PSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwog
ICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdl
SWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50
Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9k
ZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQ
YXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdD
aGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9k
ZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNp
Z25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQ
YXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYy
ZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNp
bmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsK
KyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9v
bCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1h
cmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRl
LCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7
Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMz
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
X2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJl
cGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJv
b2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7
CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQor
eworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAg
dm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBt
X25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMp
CiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVm
b3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUt
Pm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQ
b3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxl
dGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5z
ZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUo
KSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsK
IH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQog
fQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDgg
KzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3Ry
aW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRl
OgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4
LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsK
ICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJi
YzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRl
IGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRo
YXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51
IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7
CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9u
IGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9y
ZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJE
aWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5o
IgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21t
YW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVf
dCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0lu
TGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQs
IGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRD
b21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBw
bGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5l
TGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxp
bmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1f
dGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25N
YXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4
YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisg
ICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYy
OTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNp
bmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRl
eHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0
dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNp
bmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBj
cmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBw
bGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0
IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAg
dmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45
MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0
LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFu
dHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQo
bm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5r
bm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQor
eworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAg
Y2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwg
cG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRD
b21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9u
LmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1
bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+
Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUo
KSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVk
ZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisj
aW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFu
c2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJE
aWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6
OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdy
YW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNl
bGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0Fj
dGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQor
ICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpA
QCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQ
dHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0
eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGlu
Z3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2Vs
ZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3Bh
dGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290
RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50
KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsx
MjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAg
aWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwog
fQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0
b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0
SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNl
dFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rp
b24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYg
KG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlz
T3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAg
ICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25n
ZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3
U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNl
bGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hv
dWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50
KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9u
IHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4K
ICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2lu
ZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4
IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3
NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVX
aXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtp
bGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0
RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAg
ICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHBy
aXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24s
IENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJp
bmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAog
ICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07
CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLjdlYzU0
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgs
OCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRP
ckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhj
b25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwg
Q3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5h
ZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVj
dGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQs
IEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8
fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNj
b250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZp
cmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51
bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3Nz
aWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29y
QWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2
LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBu
ZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewog
ICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlv
bkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUg
IT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgp
KSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAg
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24s
IGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVy
aW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVu
IG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJl
bnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZh
bGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRl
c3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMy
MCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWdu
T25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRp
bmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlv
CiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgs
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAg
ICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1
cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFs
RXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQp
OwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0
aW9uKCkKQEAgLTEwMTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rp
b246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3Rh
dGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAg
cmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJh
Z3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAK
K30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChF
QWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0
aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1Jh
bmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkK
KyAgICAgICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAg
ICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFy
YWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5
OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBo
Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3Vu
ZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0
eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVu
dEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6
CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAg
ICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJl
Y3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3Vu
ZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlv
bkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5
KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50
ZW50OworfQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlv
biBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsx
MTU1LDExIEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwg
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2Ug
JiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBv
c2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYg
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRT
ZWxlY3Rpb25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisK
ICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGlj
YWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFy
IGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTog
dGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2Vk
LCBpdCB3b3VsZCBiZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0g
ICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmly
ZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlv
bikpIHsKKyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRl
bnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShS
YW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5iNzRmYmZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiArMTMy
LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENsZWFy
VHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2Vs
ZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgp
CisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVj
dGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9z
aXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7
CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3Jv
bGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9u
SW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xv
c2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5U
IH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURhdGFE
ZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0
aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5ICsz
MDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJs
b2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0
aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0
eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAog
ICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3Jt
Q29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBz
dHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQu
aCIKQEAgLTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJU
KCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVj
aG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAg
LTY1LDkgKzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICB9CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JF
X0VYQ0VQVElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwg
bV9vZmZzZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQ
b3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
ODIsMTAgKzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFs
bHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YSht
X29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQg
KzEwMywxNCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJi
YjMuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7
Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwx
MCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5z
aWduZWQgbV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1
ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24u
aCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxk
LmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxk
LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+
bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGls
ZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwg
MCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQu
Z2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQg
dG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hp
bGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQt
Pm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hp
bGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDAp
OworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxk
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBk
NGI3NjJkLi44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNo
aWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7
CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGls
ZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAK
K3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFy
a2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQs
IFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJT
dXBwbGllcj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZh
dGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUs
CisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRv
SW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1
ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQor
eworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
ICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAg
LCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
OworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
UGFzdGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRl
eHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFj
ZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRU
eXBlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJs
aWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBs
YWNlQXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxv
Y2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5j
bHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAg
LTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUg
IlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1h
bmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRp
ZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5j
bHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0
cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0x
NDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9k
ZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxh
c3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAg
CitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+
IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikg
eworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6
CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5z
ZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2Vy
dGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRp
dEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToK
KyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0
KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0
IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRl
eHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNl
bGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBp
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
CmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVu
dCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9z
aXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNl
cnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhj
MGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAs
NiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAK
IHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBT
dHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNl
cnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29t
bWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9
PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRp
bmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFs
bFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVu
ZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQp
Cit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApA
QCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxk
VG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRU
b0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlw
ZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQs
IHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21t
YW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0
LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBm
YWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRy
YWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7
CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4u
MDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxl
Y3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlD
b252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50
KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVj
dGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNo
ZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCkt
PnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0
T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVu
dCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFl
NmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVl
KQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0g
ICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5l
clRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCpp
bm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFs
dWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2Rlcygp
KSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAg
IGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAg
ICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNo
ZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9Cisj
ZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5l
bmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJS
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0
SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9u
KHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9Cisj
ZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYuLjA3ZjM4
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQsNyArMzE4NCwx
NCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1l
LCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246
OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gaW50ZW50ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91cyk7CisjZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKFVzZXJUcmlnZ2VyZWQpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIGludGVudAorI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5
Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250296</attachid>
            <date>2015-04-07 13:51:54 -0700</date>
            <delta_ts>2015-04-07 13:55:36 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>197906</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGRhYmZkYmZhNDU3MDA0MGEyMDc3YmI1YzUzYTM0NDA5MzdkNzczOGEKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDEzOjIw
OjM1IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxM2M4OC4u
YzQ2ZTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNiBAQAorMjAxNS0wNC0wNyAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQg
c3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0
byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8g
Y2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9z
dCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNr
cyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAg
UmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBl
YXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21O
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
ZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBs
aWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZE
aWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6
CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rp
b24pOgorCiAyMDE1LTA0LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFtNYWNdIHZpZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3Vs
ZCBub3QgYmUgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEy
ICs2Mzc5LDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5t
bSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3
QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhF
NDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2
M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2
NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAv
KiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyog
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlD
bGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVG
QjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87
IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
ICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4
REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAq
LzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYx
MjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyog
QnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1
QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8q
IFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vl
a0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcw
ODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFB
Q0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVE
ODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEy
QjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIw
MzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICov
OyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAw
MjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0Iz
QzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlG
QTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0
NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBW
YWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAv
KiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdl
LmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
OyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQu
Y3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVD
MDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJ
RjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5
NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2
ICsxNDAzMSw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNj
cm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5j
cHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
MDE5LDggKzE0MDQ1LDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1
MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4
IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8q
IEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1
dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5w
dXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0
LDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgy
RTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgw
RjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZy
YW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpA
QCAtMTQwODAsOCArMTQxMjAsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExv
Y2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2Fs
ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5
RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlk
YXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFD
Q0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc2OTcsNiArMTc3NDUsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyog
Q3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAv
KiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1
NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAq
LywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4
MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEw
IEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZl
LmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQu
Y3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5k
LmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAog
CQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2
ICsxNzgwNywxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAv
KiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2
OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJ
CUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0
OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJ
CQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc2MSw2ICsxNzgyMSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4
MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RB
NzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlB
ODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3Bw
ICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIx
NDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkz
MzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMw
OURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZB
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywK
KwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4
MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIw
MDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1
QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJ
CTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8q
IEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMw
MDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0
OTMsNiArMjQ1NjYsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAw
QUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
N0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVz
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERP
TUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsy
NDg5MCw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBB
OEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5
NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0
U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyog
SFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBE
NzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiAr
MjUxMjAsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVy
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYx
MkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNF
RTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1
RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NTA1NCw2ICsyNTEzMCw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVk
aW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8q
IEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0Ew
MDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNC
YXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyog
SlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2
OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTcz
LDYgKzI1MjUwLDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2Ft
ZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpT
R2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBE
MkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQg
LyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUEx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxp
emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNY
UGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5
MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4
NzQsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNM
YXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBU
ZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29k
ZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8q
IFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAog
CQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9s
bGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBp
biBIZWFkZXJzICovLApAQCAtMjY5NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3
OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFs
aXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2Vi
Q29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQz
RUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVG
dWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2
MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyog
V2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29y
ZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdC
NDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAs
NiArMjcwOTMsNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNC
MDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRC
RDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENv
bnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIw
RCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERG
ODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApA
QCAtMjc3NTIsNiArMjc4MzYsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBK
U1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMx
ODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMw
REFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdl
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFG
QjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2
MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsy
ODA1MSw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERP
TUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRN
TE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkw
MDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKQEAgLTI4MTEzLDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4
MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVC
MDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JN
YXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMx
MSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmlj
RXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5
VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0
RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3
IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2
OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1l
cGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBI
SURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4
QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUx
Miw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUx
QjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAw
MEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8q
IEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBA
QAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNl
TmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlB
RTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYw
MTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3
QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5
MTQsNiArMjkwMDYsNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3Jp
cHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jl
cG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMs
NyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZl
ckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAw
NDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZB
NDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdC
QjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQx
NjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5l
cmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBT
dGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJ
QTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNl
cyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0
MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2
NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgy
MDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uNzA4MzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3Np
YmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0
aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtNzQyLDYgKzc0MywyMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcg
bm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhl
ciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisg
ICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJ
bnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlv
bnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0
ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3Rl
KSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYK
K30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9z
dFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJl
bkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2Fj
aGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0
ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYg
TkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25v
d24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
OgorICAgICAgICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kOgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6
CisgICAgICAgICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAg
ICBwcmludGYoIlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAg
ICAgIHByaW50ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
OgorICAgICAgICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBw
cmludGYoIlByZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZToKKyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFnZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAg
cHJpbnRmKCItU3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUg
Km5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsK
KworCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmop
IHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBv
YmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24o
bm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBU
YXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbklu
dGVudCgpOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBh
c3N3b3JkVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dv
cmRGaWVsZCgpIHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAg
IHRleHQgPSBvYmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFz
c3dvcmRGaWVsZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4
dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NF
UlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21w
dXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmlu
ZyBzYW5pdGl6ZWRUZXh0ID0gdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBh
c3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAg
IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAg
IGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAu
MDI1KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmln
aHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVn
YXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9
IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5v
ZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNl
cnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25U
eXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0
RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRl
cygpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRU
ZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGlu
c2VydGVkVGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgq
b2JqLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9i
c2VydmFibGVPYmplY3QoKSwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7
CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0
YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdh
dGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAg
IC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVs
ZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQp
OworI2VuZGlmCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3Rp
ZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0x
MDg0LDYgKzEzMTIsMTcgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6
cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0
ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0
ICpmaXJzdENoaWxkID0gcm9vdE9iamVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBp
ZiAoZmlyc3RDaGlsZC0+aXNXZWJBcmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0
Q2hpbGQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hl
KiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xODksMTIgKzE4OSw5NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0g
QVhUZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAg
IEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4
dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRp
dFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUg
Ly8gSW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBj
aGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAg
ICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwor
ICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVt
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rp
b24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4
dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNv
bXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51
bGFyaXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlv
biB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6
IGRpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFy
aXR5KQorICAgICAgICB7IH0KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVu
aW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAg
ICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsK
KworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUg
dHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxl
Y3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAg
ICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAg
ICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAg
ICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAg
ICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2Vs
ZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0
eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0K
KyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rp
b25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAg
QVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbik7CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2Vk
KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7Cisg
ICAgICAgIEFYVGV4dEluc2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07Cisg
ICAgaW5saW5lIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAg
ICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAg
IH0KKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2Vu
ZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2Vk
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7
CkBAIC0yMjksNiArMzQxLDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9k
ZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0
ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERv
Y3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBt
X3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAg
VGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25z
VG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRp
bWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVw
bGU8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4g
bV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSop
OwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFu
ZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50
KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25J
bnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQy
OSwxNiBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUo
U2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBO
b2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0K
K2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAppbmRleCBkOGQyNmRlLi5hYzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYg
KzU1Miw0NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQo
KSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQog
CitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUg
PSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0
RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qq
Pih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNo
ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAor
eworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5r
bm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0g
bm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pigq
ZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3Jk
RmllbGQoKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdl
KCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmlu
ZGV4IDNlNzU3MmYuLjdkYmQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5n
UGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dy
ZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNo
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25z
dCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0
NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3
b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCAyZDkyOTk2Li4zODU0MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgs
MTQgKzE0ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAg
ICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5n
ZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENv
bnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3Jt
Q29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2Uo
cmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVu
Z3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOwor
ICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246
OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9u
KG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09m
ZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBW
aXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXIt
PmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMjIgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlv
blJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkg
fHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBt
YWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHpl
cm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFy
dCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CisjZW5kaWYKICAgICAgICAg
bV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJU
cmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwot
ICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCwgdHJ1ZSkKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uNjgy
ZDNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZp
YwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5v
dGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAg
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9
CisKK3ZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00
NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5v
dGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBl
IEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJB
WFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhU
ZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVu
Z3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJr
ZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVs
ZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwog
Ly8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0
aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSBy
b290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChp
bnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQu
dHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAg
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHld
ID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91
czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0
ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlv
bi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0K
KyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndy
YXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAg
TlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAg
ICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4g
bm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0
aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGlj
dGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOwor
ICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBb
W05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hh
bmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBj
b25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGgg
PiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vi
c3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+
IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4
dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRN
YXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3Np
dGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
U3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0
b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKwor
ICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0g
W1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRl
eHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikp
CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtj
aGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAg
ICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmls
aXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZh
bHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNl
XTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBw
b3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNj
ZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQor
ICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtb
TlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlv
bmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0
aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2Jq
ZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9z
aXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5n
ZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVy
OworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vz
c2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmls
aXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9i
amVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMs
OSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBl
bmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQp
dGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0
aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUg
KzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5o
YXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGlj
IHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2Rl
VmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBj
b25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0g
IlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRl
eHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
bm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4o
bm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAg
ICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0
LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRU
eXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAg
IGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0
aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAK
ICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0
IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBB
cHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApp
bmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBA
IC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkg
b3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVm
UHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJs
b2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERv
Y3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAs
OSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2so
Y29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFu
ZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGlu
c2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxl
UG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlv
bkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8
RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxF
ZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAg
cmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxl
dGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVy
biBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
Y291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAog
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJp
bmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsK
LSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVs
ZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAog
UG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUo
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJu
IG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0
aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04
Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2Nv
cnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0
YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRl
OwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1l
bnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0
eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rp
b24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUg
PSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxz
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFs
c2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1h
cmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJp
bmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3Zh
YmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQ
dHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9k
ZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnRO
b2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsK
KyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQg
aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQg
PSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwog
ICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdl
SWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50
Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9k
ZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQ
YXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdD
aGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9k
ZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNp
Z25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQ
YXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYy
ZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNp
bmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsK
KyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9v
bCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1h
cmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRl
LCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7
Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMz
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
X2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJl
cGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJv
b2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7
CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQor
eworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAg
dm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBt
X25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMp
CiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVm
b3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUt
Pm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQ
b3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxl
dGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5z
ZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUo
KSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsK
IH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQog
fQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDgg
KzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3Ry
aW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRl
OgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4
LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsK
ICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJi
YzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRl
IGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRo
YXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51
IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7
CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9u
IGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9y
ZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJE
aWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5o
IgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21t
YW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVf
dCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0lu
TGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQs
IGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRD
b21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBw
bGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5l
TGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxp
bmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1f
dGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25N
YXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4
YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisg
ICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYy
OTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNp
bmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRl
eHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0
dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNp
bmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBj
cmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBw
bGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0
IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAg
dmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45
MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0
LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFu
dHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQo
bm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5r
bm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQor
eworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAg
Y2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwg
cG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRD
b21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9u
LmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1
bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+
Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUo
KSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVk
ZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisj
aW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFu
c2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJE
aWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6
OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdy
YW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNl
bGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0Fj
dGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQor
ICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpA
QCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQ
dHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0
eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGlu
Z3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2Vs
ZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3Bh
dGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290
RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50
KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsx
MjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAg
aWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwog
fQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0
b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0
SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNl
dFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rp
b24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYg
KG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlz
T3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAg
ICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25n
ZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3
U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNl
bGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hv
dWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50
KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9u
IHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4K
ICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2lu
ZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4
IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3
NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVX
aXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtp
bGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0
RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAg
ICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHBy
aXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24s
IENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJp
bmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAog
ICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07
CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLjdlYzU0
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgs
OCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRP
ckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhj
b25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwg
Q3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5h
ZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVj
dGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQs
IEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8
fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNj
b250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZp
cmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51
bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3Nz
aWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29y
QWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2
LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBu
ZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewog
ICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlv
bkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUg
IT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgp
KSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAg
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24s
IGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVy
aW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVu
IG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJl
bnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZh
bGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRl
c3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMy
MCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWdu
T25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRp
bmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlv
CiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgs
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAg
ICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1
cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFs
RXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQp
OwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0
aW9uKCkKQEAgLTEwMTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rp
b246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3Rh
dGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAg
cmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJh
Z3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAK
K30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChF
QWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0
aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1Jh
bmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkK
KyAgICAgICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAg
ICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFy
YWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5
OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBo
Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3Vu
ZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0
eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVu
dEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6
CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAg
ICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJl
Y3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3Vu
ZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlv
bkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5
KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50
ZW50OworfQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlv
biBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsx
MTU1LDExIEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwg
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2Ug
JiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBv
c2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYg
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRT
ZWxlY3Rpb25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisK
ICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGlj
YWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFy
IGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTog
dGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2Vk
LCBpdCB3b3VsZCBiZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0g
ICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmly
ZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlv
bikpIHsKKyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRl
bnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShS
YW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5iNzRmYmZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiArMTMy
LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENsZWFy
VHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2Vs
ZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgp
CisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVj
dGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9z
aXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7
CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3Jv
bGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9u
SW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xv
c2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5U
IH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURhdGFE
ZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0
aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5ICsz
MDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJs
b2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0
aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0
eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAog
ICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3Jt
Q29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBz
dHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQu
aCIKQEAgLTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJU
KCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVj
aG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAg
LTY1LDkgKzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICB9CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JF
X0VYQ0VQVElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwg
bV9vZmZzZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQ
b3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
ODIsMTAgKzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFs
bHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YSht
X29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQg
KzEwMywxNCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJi
YjMuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7
Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwx
MCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5z
aWduZWQgbV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1
ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24u
aCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxk
LmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxk
LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+
bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGls
ZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwg
MCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQu
Z2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQg
dG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hp
bGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQt
Pm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hp
bGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDAp
OworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxk
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBk
NGI3NjJkLi44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNo
aWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7
CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGls
ZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAK
K3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFy
a2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQs
IFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJT
dXBwbGllcj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZh
dGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUs
CisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRv
SW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1
ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQor
eworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
ICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAg
LCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
OworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
UGFzdGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRl
eHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFj
ZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRU
eXBlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJs
aWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBs
YWNlQXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxv
Y2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5j
bHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAg
LTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUg
IlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1h
bmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRp
ZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5j
bHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0
cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0x
NDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9k
ZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxh
c3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAg
CitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+
IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikg
eworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6
CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5z
ZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2Vy
dGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRp
dEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToK
KyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0
KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0
IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRl
eHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNl
bGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBp
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
CmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVu
dCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9z
aXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNl
cnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhj
MGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAs
NiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAK
IHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBT
dHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNl
cnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29t
bWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9
PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRp
bmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFs
bFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVu
ZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQp
Cit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApA
QCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxk
VG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRU
b0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlw
ZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQs
IHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21t
YW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0
LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBm
YWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRy
YWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7
CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4u
MDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxl
Y3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlD
b252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50
KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVj
dGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNo
ZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCkt
PnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0
T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVu
dCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFl
NmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVl
KQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0g
ICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5l
clRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCpp
bm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFs
dWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2Rlcygp
KSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAg
IGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAg
ICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNo
ZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9Cisj
ZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5l
bmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJS
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0
SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9u
KHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9Cisj
ZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYuLjA3ZjM4
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQsNyArMzE4NCwx
NCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1l
LCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246
OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gaW50ZW50ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91cyk7CisjZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKFVzZXJUcmlnZ2VyZWQpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIGludGVudAorI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5
Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250297</attachid>
            <date>2015-04-07 13:55:36 -0700</date>
            <delta_ts>2015-04-07 14:04:39 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>197906</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGIyNjA1Y2NhMWE3MWMzMmQyOTYwZTMxNzk3MjQyMWMxYTg5Zjg4YmEKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDEzOjIw
OjM1IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxM2M4OC4u
YzQ2ZTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNiBAQAorMjAxNS0wNC0wNyAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQg
c3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0
byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8g
Y2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9z
dCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNr
cyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAg
UmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBl
YXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21O
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
ZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBs
aWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZE
aWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6
CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rp
b24pOgorCiAyMDE1LTA0LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFtNYWNdIHZpZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3Vs
ZCBub3QgYmUgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEy
ICs2Mzc5LDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5t
bSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3
QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhF
NDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2
M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2
NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAv
KiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyog
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlD
bGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVG
QjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87
IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
ICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4
REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAq
LzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYx
MjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyog
QnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1
QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8q
IFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vl
a0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcw
ODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFB
Q0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVE
ODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEy
QjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIw
MzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICov
OyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAw
MjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0Iz
QzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlG
QTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0
NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBW
YWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAv
KiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdl
LmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
OyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQu
Y3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVD
MDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJ
RjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5
NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2
ICsxNDAzMSw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNj
cm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5j
cHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
MDE5LDggKzE0MDQ1LDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1
MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4
IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8q
IEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1
dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5w
dXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0
LDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgy
RTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgw
RjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZy
YW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpA
QCAtMTQwODAsOCArMTQxMjAsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExv
Y2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2Fs
ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5
RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlk
YXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFD
Q0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc2OTcsNiArMTc3NDUsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyog
Q3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAv
KiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1
NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAq
LywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4
MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEw
IEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZl
LmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQu
Y3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5k
LmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAog
CQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2
ICsxNzgwNywxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAv
KiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2
OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJ
CUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0
OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJ
CQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc2MSw2ICsxNzgyMSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4
MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RB
NzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlB
ODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3Bw
ICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIx
NDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkz
MzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMw
OURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZB
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywK
KwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4
MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIw
MDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1
QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJ
CTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8q
IEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMw
MDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0
OTMsNiArMjQ1NjYsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAw
QUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
N0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVz
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERP
TUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsy
NDg5MCw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBB
OEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5
NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0
U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyog
SFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBE
NzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiAr
MjUxMjAsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVy
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYx
MkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNF
RTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1
RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NTA1NCw2ICsyNTEzMCw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVk
aW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8q
IEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0Ew
MDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNC
YXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyog
SlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2
OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTcz
LDYgKzI1MjUwLDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2Ft
ZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpT
R2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBE
MkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQg
LyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUEx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxp
emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNY
UGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5
MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4
NzQsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNM
YXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBU
ZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29k
ZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8q
IFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAog
CQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9s
bGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBp
biBIZWFkZXJzICovLApAQCAtMjY5NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3
OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFs
aXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2Vi
Q29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQz
RUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVG
dWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2
MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyog
V2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29y
ZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdC
NDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAs
NiArMjcwOTMsNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNC
MDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRC
RDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENv
bnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIw
RCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERG
ODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApA
QCAtMjc3NTIsNiArMjc4MzYsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBK
U1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMx
ODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMw
REFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdl
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFG
QjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2
MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsy
ODA1MSw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERP
TUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRN
TE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkw
MDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKQEAgLTI4MTEzLDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4
MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVC
MDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JN
YXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMx
MSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmlj
RXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5
VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0
RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3
IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2
OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1l
cGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBI
SURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4
QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUx
Miw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUx
QjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAw
MEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8q
IEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBA
QAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNl
TmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlB
RTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYw
MTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3
QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5
MTQsNiArMjkwMDYsNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3Jp
cHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jl
cG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMs
NyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZl
ckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAw
NDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZB
NDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdC
QjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQx
NjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5l
cmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBT
dGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJ
QTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNl
cyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0
MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2
NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgy
MDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uNzA4MzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3Np
YmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0
aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtNzQyLDYgKzc0MywyMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcg
bm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhl
ciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisg
ICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJ
bnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlv
bnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0
ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3Rl
KSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYK
K30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9z
dFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJl
bkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2Fj
aGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0
ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYg
TkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25v
d24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
OgorICAgICAgICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kOgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6
CisgICAgICAgICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAg
ICBwcmludGYoIlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAg
ICAgIHByaW50ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
OgorICAgICAgICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBw
cmludGYoIlByZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZToKKyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFnZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAg
cHJpbnRmKCItU3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUg
Km5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsK
KworCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmop
IHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBv
YmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24o
bm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBU
YXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbklu
dGVudCgpOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBh
c3N3b3JkVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dv
cmRGaWVsZCgpIHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAg
IHRleHQgPSBvYmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFz
c3dvcmRGaWVsZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4
dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NF
UlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21w
dXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmlu
ZyBzYW5pdGl6ZWRUZXh0ID0gdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBh
c3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAg
IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAg
IGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAu
MDI1KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmln
aHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVn
YXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9
IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5v
ZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNl
cnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25U
eXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0
RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRl
cygpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRU
ZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGlu
c2VydGVkVGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgq
b2JqLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9i
c2VydmFibGVPYmplY3QoKSwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7
CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0
YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdh
dGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAg
IC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVs
ZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQp
OworI2VuZGlmCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3Rp
ZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0x
MDg0LDYgKzEzMTIsMTcgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6
cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0
ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0
ICpmaXJzdENoaWxkID0gcm9vdE9iamVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBp
ZiAoZmlyc3RDaGlsZC0+aXNXZWJBcmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0
Q2hpbGQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hl
KiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xODksMTIgKzE4OSw5NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0g
QVhUZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAg
IEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4
dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRp
dFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUg
Ly8gSW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBj
aGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAg
ICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwor
ICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVt
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rp
b24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4
dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNv
bXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51
bGFyaXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlv
biB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6
IGRpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFy
aXR5KQorICAgICAgICB7IH0KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVu
aW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAg
ICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsK
KworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUg
dHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxl
Y3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAg
ICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAg
ICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAg
ICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAg
ICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2Vs
ZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0
eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0K
KyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rp
b25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAg
QVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbik7CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2Vk
KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7Cisg
ICAgICAgIEFYVGV4dEluc2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07Cisg
ICAgaW5saW5lIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAg
ICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAg
IH0KKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2Vu
ZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2Vk
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7
CkBAIC0yMjksNiArMzQxLDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9k
ZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0
ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERv
Y3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBt
X3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAg
VGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25z
VG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRp
bWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVw
bGU8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4g
bV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSop
OwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFu
ZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50
KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25J
bnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQy
OSwxNiBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUo
U2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBO
b2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0K
K2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAppbmRleCBkOGQyNmRlLi5hYzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYg
KzU1Miw0NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQo
KSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQog
CitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUg
PSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0
RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qq
Pih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNo
ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAor
eworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5r
bm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0g
bm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pigq
ZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3Jk
RmllbGQoKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdl
KCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmlu
ZGV4IDNlNzU3MmYuLjdkYmQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5n
UGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dy
ZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNo
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25z
dCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0
NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3
b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCAyZDkyOTk2Li4zODU0MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgs
MTQgKzE0ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAg
ICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5n
ZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENv
bnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3Jt
Q29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2Uo
cmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVu
Z3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOwor
ICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246
OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9u
KG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09m
ZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBW
aXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXIt
PmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMjIgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlv
blJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkg
fHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBt
YWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHpl
cm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFy
dCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CisjZW5kaWYKICAgICAgICAg
bV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJU
cmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwot
ICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpLAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCwgdHJ1ZSkKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uNjgy
ZDNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZp
YwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5v
dGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAg
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9
CisKK3ZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00
NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5v
dGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBl
IEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJB
WFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhU
ZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVu
Z3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJr
ZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVs
ZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwog
Ly8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0
aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSBy
b290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChp
bnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQu
dHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAg
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHld
ID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91
czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0
ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlv
bi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0K
KyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndy
YXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAg
TlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAg
ICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4g
bm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0
aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGlj
dGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOwor
ICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBb
W05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hh
bmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBj
b25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGgg
PiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vi
c3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+
IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4
dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRN
YXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3Np
dGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
U3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0
b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKwor
ICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0g
W1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRl
eHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikp
CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtj
aGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAg
ICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmls
aXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZh
bHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNl
XTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBw
b3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNj
ZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQor
ICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtb
TlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlv
bmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0
aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2Jq
ZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9z
aXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5n
ZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVy
OworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vz
c2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmls
aXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9i
amVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMs
OSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBl
bmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQp
dGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0
aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUg
KzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5o
YXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGlj
IHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2Rl
VmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBj
b25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0g
IlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRl
eHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
bm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4o
bm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAg
ICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0
LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRU
eXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAg
IGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0
aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAK
ICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0
IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBB
cHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApp
bmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBA
IC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkg
b3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVm
UHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJs
b2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERv
Y3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAs
OSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2so
Y29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFu
ZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGlu
c2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxl
UG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlv
bkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8
RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxF
ZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAg
cmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxl
dGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVy
biBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
Y291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAog
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJp
bmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsK
LSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVs
ZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAog
UG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUo
Y29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxl
bWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJu
IG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0
aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04
Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2Nv
cnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0
YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRl
OwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1l
bnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0
eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rp
b24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUg
PSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxz
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFs
c2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1h
cmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJp
bmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3Zh
YmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQ
dHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9k
ZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnRO
b2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsK
KyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQg
aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQg
PSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwog
ICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdl
SWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50
Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9k
ZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQ
YXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdD
aGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9k
ZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNp
Z25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQ
YXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYy
ZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNp
bmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsK
KyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9v
bCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1h
cmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRl
LCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7
Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlv
bigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMz
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
X2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJl
cGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJv
b2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4
IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7
CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQor
eworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAg
dm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBt
X25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMp
CiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVm
b3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUt
Pm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQ
b3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxl
dGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5z
ZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUo
KSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsK
IH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQog
fQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDgg
KzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3Ry
aW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRl
OgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4
LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsK
ICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJi
YzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRl
IGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRo
YXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51
IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7
CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9u
IGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9y
ZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJE
aWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5o
IgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21t
YW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVf
dCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0lu
TGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQs
IGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRD
b21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBw
bGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5l
TGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxp
bmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1f
dGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25N
YXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4
YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisg
ICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYy
OTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNp
bmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRl
eHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0
dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNp
bmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBj
cmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBw
bGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0
IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAg
dmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45
MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0
LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFu
dHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQo
bm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5r
bm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQor
eworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAg
Y2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwg
cG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRD
b21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9u
LmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1
bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+
Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUo
KSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVk
ZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisj
aW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFu
c2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJE
aWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6
OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdy
YW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNl
bGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0Fj
dGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQor
ICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpA
QCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQ
dHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0
eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGlu
Z3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2Vs
ZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3Bh
dGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290
RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50
KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsx
MjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAg
aWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwog
fQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0
b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVU
ZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0
SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNl
dFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rp
b24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYg
KG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlz
T3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAg
ICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25n
ZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3
U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNl
bGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hv
dWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50
KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9u
IHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4K
ICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2lu
ZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4
IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3
NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVX
aXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtp
bGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0
RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAg
ICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHBy
aXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24s
IENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJp
bmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAog
ICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07
CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLjdlYzU0
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgs
OCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRP
ckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhj
b25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwg
Q3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5h
ZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVj
dGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQs
IEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8
fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNj
b250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZp
cmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51
bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3Nz
aWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29y
QWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2
LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBu
ZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewog
ICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlv
bkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUg
IT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgp
KSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAg
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24s
IGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVy
aW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVu
IG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJl
bnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZh
bGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRl
c3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMy
MCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWdu
T25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRp
bmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlv
CiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVj
dGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgs
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAg
ICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1
cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFs
RXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQp
OwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0
aW9uKCkKQEAgLTEwMTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rp
b246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3Rh
dGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAg
cmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJh
Z3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAK
K30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChF
QWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0
aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1Jh
bmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkK
KyAgICAgICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAg
ICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFy
YWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5
OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBo
Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3Vu
ZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0
eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVu
dEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6
CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAg
ICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJl
Y3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3Vu
ZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlv
bkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5
KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50
ZW50OworfQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlv
biBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsx
MTU1LDExIEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwg
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2Ug
JiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBv
c2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYg
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRT
ZWxlY3Rpb25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisK
ICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGlj
YWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFy
IGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTog
dGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2Vk
LCBpdCB3b3VsZCBiZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0g
ICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmly
ZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlv
bikpIHsKKyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRl
bnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShS
YW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5iNzRmYmZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiArMTMy
LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENsZWFy
VHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2Vs
ZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgp
CisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVj
dGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9z
aXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7
CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3Jv
bGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9u
SW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xv
c2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5U
IH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURhdGFE
ZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0
aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5ICsz
MDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJs
b2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0
aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0
eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAog
ICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3Jt
Q29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBz
dHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQu
aCIKQEAgLTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJU
KCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVj
aG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAg
LTY1LDkgKzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICB9CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JF
X0VYQ0VQVElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwg
bV9vZmZzZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQ
b3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
ODIsMTAgKzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFs
bHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YSht
X29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQg
KzEwMywxNCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJi
YjMuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7
Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwx
MCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5z
aWduZWQgbV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1
ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24u
aCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxk
LmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxk
LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+
bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGls
ZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwg
MCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQu
Z2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQg
dG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hp
bGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQt
Pm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hp
bGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDAp
OworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxk
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBk
NGI3NjJkLi44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNo
aWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7
CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGls
ZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAK
K3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFy
a2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQs
IFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJT
dXBwbGllcj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZh
dGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUs
CisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRv
SW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1
ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQor
eworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
ICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAg
LCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
OworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
UGFzdGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRl
eHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFj
ZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRU
eXBlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJs
aWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBs
YWNlQXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxv
Y2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5j
bHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAg
LTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUg
IlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1h
bmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRp
ZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5j
bHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0
cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0x
NDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9k
ZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxh
c3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAg
CitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+
IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikg
eworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6
CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5z
ZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2Vy
dGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRp
dEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToK
KyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0
KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0
IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRl
eHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNl
bGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBp
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
CmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVu
dCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9z
aXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNl
cnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhj
MGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAs
NiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAK
IHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBT
dHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNl
cnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29t
bWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9
PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRp
bmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFs
bFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVu
ZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQp
Cit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApA
QCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxk
VG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRU
b0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlw
ZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQs
IHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21t
YW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0
LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBm
YWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRy
YWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7
CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4u
MDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxl
Y3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlD
b252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50
KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVj
dGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNo
ZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCkt
PnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0
T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVu
dCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFl
NmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVl
KQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0g
ICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5l
clRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCpp
bm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFs
dWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2Rlcygp
KSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAg
IGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAg
ICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNo
ZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9Cisj
ZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5l
bmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJS
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0
SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9u
KHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9Cisj
ZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYuLjA3ZjM4
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQsNyArMzE4NCwx
NCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1l
LCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246
OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gaW50ZW50ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91cyk7CisjZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKFVzZXJUcmlnZ2VyZWQpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIGludGVudAorI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5
Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250298</attachid>
            <date>2015-04-07 14:04:39 -0700</date>
            <delta_ts>2015-04-07 14:22:31 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>197741</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDY4YTRlNmY3ZmY0N2Q2ZmMxZTMyNTkzOTY5YTBiNGFjZDJjODIyMTIKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDEzOjIw
OjM1IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxM2M4OC4u
YzQ2ZTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNiBAQAorMjAxNS0wNC0wNyAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQg
c3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0
byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8g
Y2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9z
dCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNr
cyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAg
UmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBl
YXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21O
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
ZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBs
aWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZE
aWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6
CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rp
b24pOgorCiAyMDE1LTA0LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFtNYWNdIHZpZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3Vs
ZCBub3QgYmUgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEy
ICs2Mzc5LDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5t
bSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3
QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhF
NDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2
M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2
NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAv
KiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyog
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlD
bGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVG
QjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87
IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
ICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4
REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAq
LzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYx
MjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyog
QnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1
QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8q
IFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vl
a0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcw
ODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFB
Q0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVE
ODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEy
QjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIw
MzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICov
OyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAw
MjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0Iz
QzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlG
QTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0
NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBW
YWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAv
KiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdl
LmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
OyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQu
Y3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVD
MDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJ
RjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5
NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2
ICsxNDAzMSw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNj
cm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5j
cHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
MDE5LDggKzE0MDQ1LDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1
MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4
IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBs
YXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8q
IEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1
dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5w
dXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0
LDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAz
RUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgy
RTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgw
RjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZy
YW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpA
QCAtMTQwODAsOCArMTQxMjAsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExv
Y2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2Fs
ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5
RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlk
YXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFD
Q0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc2OTcsNiArMTc3NDUsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyog
Q3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAv
KiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1
NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAq
LywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4
MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEw
IEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZl
LmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQu
Y3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5k
LmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAog
CQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2
ICsxNzgwNywxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAv
KiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2
OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJ
CUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0
OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJ
CQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc2MSw2ICsxNzgyMSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4
MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RB
NzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlB
ODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3Bw
ICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIx
NDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkz
MzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMw
OURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZB
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywK
KwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4
MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIw
MDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1
QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJ
CTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8q
IEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMw
MDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0
OTMsNiArMjQ1NjYsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJL
aXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAw
QUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
N0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVz
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERP
TUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsy
NDg5MCw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBB
OEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5
NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0
U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyog
SFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBE
NzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiAr
MjUxMjAsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVy
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYx
MkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNF
RTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1
RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NTA1NCw2ICsyNTEzMCw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVk
aW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8q
IEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0Ew
MDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNC
YXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyog
SlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2
OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTcz
LDYgKzI1MjUwLDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2Ft
ZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpT
R2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBE
MkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQg
LyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUEx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxp
emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNY
UGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5
MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4
NzQsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNM
YXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBU
ZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29k
ZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8q
IFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAog
CQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9s
bGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBp
biBIZWFkZXJzICovLApAQCAtMjY5NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3
OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFs
aXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2Vi
Q29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQz
RUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVG
dWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2
MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyog
V2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29y
ZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdC
NDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAs
NiArMjcwOTMsNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNC
MDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRC
RDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENv
bnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIw
RCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERG
ODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApA
QCAtMjc3NTIsNiArMjc4MzYsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBK
U1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMx
ODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMw
REFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdl
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFG
QjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2
MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsy
ODA1MSw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERP
TUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2
ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlG
NTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRN
TE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkw
MDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKQEAgLTI4MTEzLDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4
MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVC
MDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JN
YXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMx
MSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmlj
RXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5
VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0
RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3
IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2
OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1l
cGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBI
SURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4
QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUx
Miw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290
RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUx
QjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAw
MEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8q
IEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJD
RTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBA
QAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNl
TmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlB
RTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYw
MTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3
QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5
MTQsNiArMjkwMDYsNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3Jp
cHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jl
cG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMs
NyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZl
ckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAw
NDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZB
NDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdC
QjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQx
NjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5l
cmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBT
dGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJ
QTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNl
cyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0
MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2
NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgy
MDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uNzA4MzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3Np
YmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0
aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtNzQyLDYgKzc0MywyMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcg
bm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhl
ciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisg
ICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJ
bnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlv
bnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0
ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3Rl
KSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYK
K30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9z
dFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJl
bkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2Fj
aGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0
ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYg
TkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25v
d24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
OgorICAgICAgICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kOgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6
CisgICAgICAgICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAg
ICBwcmludGYoIlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAg
ICAgIHByaW50ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
OgorICAgICAgICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBw
cmludGYoIlByZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZToKKyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFnZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAg
cHJpbnRmKCItU3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUg
Km5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsK
KworCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmop
IHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBv
YmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24o
bm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBU
YXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbklu
dGVudCgpOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBh
c3N3b3JkVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dv
cmRGaWVsZCgpIHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAg
IHRleHQgPSBvYmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFz
c3dvcmRGaWVsZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4
dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NF
UlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21w
dXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmlu
ZyBzYW5pdGl6ZWRUZXh0ID0gdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBh
c3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAg
IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAg
IGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAu
MDI1KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmln
aHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVn
YXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9
IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5v
ZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNl
cnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25U
eXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0
RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRl
cygpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRU
ZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGlu
c2VydGVkVGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgq
b2JqLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9i
c2VydmFibGVPYmplY3QoKSwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7
CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0
YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdh
dGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAg
IC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVs
ZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQp
OworI2VuZGlmCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3Rp
ZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0x
MDg0LDYgKzEzMTIsMTcgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6
cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0
ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0
ICpmaXJzdENoaWxkID0gcm9vdE9iamVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBp
ZiAoZmlyc3RDaGlsZC0+aXNXZWJBcmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0
Q2hpbGQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hl
KiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xODksMTIgKzE4OSw5NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0g
QVhUZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAg
IEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4
dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRp
dFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUg
Ly8gSW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBj
aGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAg
ICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwor
ICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVt
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rp
b24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4
dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNv
bXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51
bGFyaXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlv
biB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6
IGRpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFy
aXR5KQorICAgICAgICB7IH0KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVu
aW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAg
ICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsK
KworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUg
dHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxl
Y3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAg
ICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAg
ICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAg
ICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAg
ICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2Vs
ZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAg
ICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0
eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0K
KyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rp
b25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAg
QVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbik7CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2Vk
KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7Cisg
ICAgICAgIEFYVGV4dEluc2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07Cisg
ICAgaW5saW5lIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5
cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAg
ICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAg
IH0KKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2Vu
ZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2Vk
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7
CkBAIC0yMjksNiArMzQxLDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9k
ZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0
ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERv
Y3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBt
X3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAg
VGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25z
VG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRp
bWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVw
bGU8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4g
bV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSop
OwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFu
ZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50
KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25J
bnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQy
OSwxNiBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUo
U2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBO
b2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0K
K2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAppbmRleCBkOGQyNmRlLi5hYzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYg
KzU1Miw0NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQo
KSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQog
CitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUg
PSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0
RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qq
Pih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNo
ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAor
eworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5r
bm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0g
bm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pigq
ZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3Jk
RmllbGQoKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdl
KCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmlu
ZGV4IDNlNzU3MmYuLjdkYmQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5n
UGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dy
ZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNo
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25z
dCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0
NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3
b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCAyZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgs
MTQgKzE0ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAg
ICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5n
ZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENv
bnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3Jt
Q29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2Uo
cmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVu
Z3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOwor
ICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246
OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9u
KG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09m
ZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBW
aXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXIt
PmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlv
blJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkg
fHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBt
YWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHpl
cm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFy
dCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAg
ICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9u
KCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7
CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlv
bihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIw
MC4uNjgyZDNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
QVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
Tm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQor
eworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdl
ZCk7Cit9CisKK3ZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
CkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3Jl
YXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRl
ZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVk
aXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
IEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZh
bHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3Rh
cnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENo
YW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRl
eHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRl
eHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5k
aWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cg
ZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBv
YmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKwor
ICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAg
IGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAg
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChp
bnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9u
LmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0
aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAg
ICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlm
IChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJv
bVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNl
bGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmls
aXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOwor
ICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBv
YmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7
CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQs
IE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZv
KTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93
IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90
aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hh
bmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3Ry
aW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFu
Z2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07Cisg
ICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0
YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChs
ZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3Rl
eHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxl
bmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVd
ID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlk
IHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlv
bjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFu
Z2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4
dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEo
KTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVu
Z3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJ
bmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOwor
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5n
ZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3Np
dGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNd
ID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAg
ICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBl
cjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nl
c3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJp
bGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyBy
ZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25z
IGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9u
Ok5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBT
dHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sK
KyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICgh
b2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5m
byA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9
IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5T
RGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmos
IGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMg
YWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4
dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1
c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAg
W2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigp
KQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3
cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBO
U0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nl
c3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJ
bmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNh
dGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmlj
YXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9p
ZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdF
dmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAu
LjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMs
NiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDog
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5n
ZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3Np
dGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOwor
LSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFy
ZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAot
c3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9k
ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2Rl
LT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBE
b24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFs
dWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5v
ZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAg
ICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8
VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOwor
ICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBl
LCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBw
ZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5k
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9k
ZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xp
bmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7Cisg
ICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBs
eUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQog
ewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJu
OwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5
IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4
dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUo
KSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQg
Kzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBw
YXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJp
ZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRU
eXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAg
ICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBs
eVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNp
bmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJl
bmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5k
ZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBA
IC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxl
QmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0
Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3Jl
YXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3Jl
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2
aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29wZS5nZXQoKSksIHZpc2libGVQ
b3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgpKSkpOwogfQog
CitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAg
ICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisK
K1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAg
ICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAg
IHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsK
IH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1Jl
ZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBO
b2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQot
ICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsK
IH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJ
bk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBAIFBhc3NSZWZQ
dHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9
CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAg
cmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFz
cyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7
CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWlu
QXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
dWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29s
IHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQo
RG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJl
bW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVT
ZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJE
ZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBk
ZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUg
PSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNl
ID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5p
dGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25z
dCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlz
UmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBh
c3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBp
bnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRp
b24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRy
PE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAg
IHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFs
c2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENv
bW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lk
IG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxF
bGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1
LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJl
bnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBw
cnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNl
cnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQ
dHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2Rl
KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFy
a2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCww
ICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9o
CisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291
bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkg
b3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5n
U3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVu
dCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5p
dGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0
RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJl
dHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBj
b3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRl
ICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+
IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9v
bCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJv
b2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAg
PSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxl
dGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVu
dCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCBy
ZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3Vw
KTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2
ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNp
bmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5n
dGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRl
eHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01NiwxMCArNjMs
MTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3Rl
eHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRo
aXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZp
c2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2Rl
LT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBA
IHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9k
ZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUu
Z2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsK
KyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRp
dFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNl
dCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5v
ZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAg
LTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVm
aW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisg
ICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCiBw
cml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9B
cHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsK
QEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwg
dm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlm
Ci0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1f
bm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUg
RGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21t
YW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5k
byBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rp
b25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRl
bGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50
IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNs
dWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQs
IHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0
aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5l
U3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2Vy
dFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJr
ZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0
LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2
ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50
KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0
YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkK
K3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNp
bmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2Vy
U3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1l
bnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7Cisg
ICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9o
CisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRD
b21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJr
ZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYs
IGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2
NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5k
LmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRp
dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpA
QCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVz
Y2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rl
cy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47
CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwg
dGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVm
IEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2Vs
ZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFu
ZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8
Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRl
IHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRp
dFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29t
bWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAj
aW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5k
LmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRh
dGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNs
dWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBF
ZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwg
VGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0
b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNO
b25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRp
dGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAg
ZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRl
eHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBh
c3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFy
IHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9z
ZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0
U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZy
YW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAg
IGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRp
bmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVF
bGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2
Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9u
U3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7
CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldp
dGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25D
dXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9p
ZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRp
dmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rp
b246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBz
ZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAg
ICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVu
ZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdl
U2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlv
biwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBu
byBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9u
ID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAg
aWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9u
KCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAg
IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywg
aW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2Vs
ZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhl
IERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZv
bGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0
LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBk
ZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBi
b29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29s
IHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRl
KTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3
IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9z
aXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25z
dCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rp
b25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rp
b25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
KTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0
aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEu
LjdlYzU0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBA
IC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVs
ZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1v
dmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdn
ZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlz
aWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCks
IHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVl
cEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwo
KSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0
U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92
ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZl
eHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBA
IHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVj
dGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRl
ZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAg
ICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25EaXNjb250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAg
ICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cisg
ICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywg
Q3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpA
QCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhv
dXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3Vt
ZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQo
KSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1Nl
bGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9u
RnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1
bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7
CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwg
YWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRo
YXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhh
cyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50
SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9u
Z2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRv
IGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4K
QEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRo
b3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNv
ckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNl
bGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0
ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3
ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgp
CiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rp
b246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAg
ICByZXR1cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwg
UmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShp
bnRlbnQpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9y
U2VsZWN0aW9uKCkKQEAgLTEwMTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVT
ZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7
CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9
PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5Owot
fSAgICAKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbklu
dGVudChFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1l
U2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlm
IChpc1JhbmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09
IFJUTCkKKyAgICAgICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxz
ZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2Fz
ZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVy
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5Ogor
ICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFy
aXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFy
YWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1l
bnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFu
dWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3Jk
R3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGlu
ZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBE
b2N1bWVudEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91
bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFy
eToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2Fz
ZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlm
IChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxp
cCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERp
cmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJv
dW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1
cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0
ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3
NCw2ICsxMTU1LDExIEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBh
bHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2Fz
UmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxT
dGFydFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJh
bWUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50
KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAg
ICB9CisKICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9y
VmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxs
IGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8g
Tm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMg
dW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihW
aXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkp
OwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAg
ICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygp
IHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbikpIHsKKyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50
LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRS
YW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5iNzRm
YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25f
aAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5o
IgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEs
NiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8
IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBG
aXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFt
ZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29u
c3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRG
b2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7
IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0
aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29y
T25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xs
SWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJv
b2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwg
RVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZv
aWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0
ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0
aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5
OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2lu
dEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0
U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVj
dGlvbkludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5k
aWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRl
eHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5l
IHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0
eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxp
bmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCmluZGV4IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9s
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgog
I2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlRleHQuaCIKQEAgLTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAg
QVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZv
aWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNz
d29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQo
KTsKQEAgLTY1LDkgKzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICB9CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwg
SUdOT1JFX0VYQ0VQVElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3Np
dGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9T
KQpAQCAtODIsMTAgKzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9V
bmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUg
YWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9z
aXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRl
RGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAg
LTk3LDQgKzEwMywxNCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4
IDMxMGJiYjMuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRU
ZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAor
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3
ICs1NCwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBl
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1
bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAg
ICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVk
Ni4uOGQ1ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2Vy
dENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2Vy
dENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRD
aGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNl
cnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdl
dCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQo
KSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCks
IFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8v
IE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5z
ZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0
Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5z
ZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5n
ZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0
KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2Vy
dENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVl
KCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hp
bGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+
JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApp
bmRleCBkNGI3NjJkLi44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNl
cnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZv
cmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2Rl
PiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJV
RwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92
ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAg
UmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7
CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4
dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRl
ZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5k
KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25N
YXJrZXJTdXBwbGllcj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisK
K3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAs
MCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRC
ZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBj
aGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdm
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQp
Cit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNv
dW50KQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitj
bGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3Vu
dCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6
CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUq
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQp
CisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYg
KCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47
CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAg
ICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2Fj
aGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBl
KCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBs
eUVkaXRUeXBlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQg
OiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0
ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJy
ZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgi
CisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQu
aCIKQEAgLTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNp
bmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1
ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgi
CiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1
cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVBy
b3BlcnRpZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2li
bGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgi
CkBAIC0xNDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBk
YXRlTm9kZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVu
dCA9IGxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9
CisgICAgCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRy
PE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFj
dGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9u
UGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVh
dGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFu
ZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2gg
KG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0
dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25Q
YXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0
ZWRUZXh0KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdy
ZSBqdXN0IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQg
dGhlIHRleHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMg
dGhlIHNlbGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQg
Y29kZSBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oCmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRG
cmFnbWVudCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZv
cmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0
Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAg
ICAgUG9zaXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5k
T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25T
dHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjlj
ZGYuLjhjMGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApA
QCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJS
ZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNs
dWRlICJodG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21t
YW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQpCiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhj
b25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0
cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUo
ZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRU
ZXh0Q29tbWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9j
dW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9u
VHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5j
ZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFs
YW5jZUFsbFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1h
bmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAor
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IHRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
MGJkMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDog
cHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1Jl
ZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2Rl
ZmluZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+
IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
Y2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxh
bmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQs
IHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVk
aXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0
ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1
ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGlu
Z0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0
ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNl
VHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQor
eworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAg
fQorCitwcml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJk
ZWUxYy4uMDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVT
ZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2li
aWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9S
TShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRv
Y3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBt
X3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAg
ICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWRO
b2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwg
VGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCks
IGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmlu
ZGV4IDFlNmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcm
IHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2wo
KSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9t
KCppbm5lclRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVG
cm9tKCppbm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZp
b3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGRO
b2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAg
ICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCkpCiAgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmpl
Y3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAg
ICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VS
VF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2
YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQo
SFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
KworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlm
ICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAg
ICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRl
cmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYu
LjA3ZjM4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQsNyAr
MzE4NCwxNCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUm
IGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9
CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxl
Y3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gaW50ZW50ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cyk7CisjZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0
U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQ
TEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIGludGVudAorI2Vu
ZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKIH0KIAogc3RhdGljIHZvaWQgaGFu
ZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQq
IGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250300</attachid>
            <date>2015-04-07 14:22:31 -0700</date>
            <delta_ts>2015-04-07 14:37:53 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>198708</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDFlM2M4YzQwYmU3NzY1YWQ5NzlkOGJlZGQ1NGY3NjdjYjA0YWM5OWQKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uZGE3NGVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRo
ZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUt
Y2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKKzIwMTUtMDQtMDcgIERvdWcgUnVzc2Vs
bCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5n
ZSBub3RpZmljYXRpb25zCisKKyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbDoK
KwogMjAxNS0wMi0yNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBVcGRhdGUgdHJhY2sgc2l6ZXMgYWZ0ZXIgZGlz
dHJpYnV0aW5nIGV4dHJhIHNwYWNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2NDZk
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZv
ci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQogICAg
ICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRlZE5v
dGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRp
b25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmlj
YXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxi
YWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmZjEzYzg4Li5kNDVhNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjA4IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29t
PgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgYXJlIHN0aWxsIGluIGRl
dmVsb3BtZW50LiBTdWJtaXR0aW5nIHBhdGNoIGVhcmx5IGZvciBmZWVkYmFjay4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNh
bml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uOjpBWFRleHRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29y
ZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9u
UmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAg
ICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpB
cHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9O
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5z
ZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6
Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZCk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0Q29tbWFuZDo6aW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxl
Y3RBbGwpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0
ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
QXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAg
ICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAg
ICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRl
eHRDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElu
bmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCiAyMDE1LTA0LTA3ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIHZp
ZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3VsZCBub3QgYmUgaW50ZXJydXB0ZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEyICs2Mzc5LDIyIEBACiAJCUY0Nzg3
NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYw
MDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0Ux
OTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAw
IC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNj
cm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50
cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2
NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
OyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNB
M0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9Owog
CQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5
RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFB
Q0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAy
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1
Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsK
KwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9Owog
CQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1
dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAq
LzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5
IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9
OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQw
MDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyog
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRE
RURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0
REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNE
REUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZC
MjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5t
bSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICov
OyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlk
YXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAg
Ki87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVE
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1
Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAw
NTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVB
NTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFB
Q0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsK
IAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFE
QjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRB
IC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5
RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1M
RGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2ICsxNDAzMSw4IEBACiAJCUY0Nzg3
NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMx
MDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdB
NUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0g
c3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFB
Qjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3Jt
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3Jt
Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDE5LDggKzE0MDQ1LDE2IEBACiAJ
CUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMw
NDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJF
NiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1
RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0LDEyIEBACiAJCUY1NUIzREFBMTI1
MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5
MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1
OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0Ew
MkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwODAsOCArMTQxMjAsMTYg
QEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBC
MEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcw
MDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJC
MTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRh
TGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0
MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlz
dEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2OTcsNiArMTc3NDUsMTAgQEAK
IAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAq
LywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3Bw
ICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5o
ICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0Iw
QzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5
RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywK
IAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3
NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQx
NTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1
MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUEx
QUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5
OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEw
MDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZF
NTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2ICsxNzgwNywxMCBAQAogCQkJCUM2
RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywK
IAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2
NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc2MSw2ICsxNzgyMSwx
MCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBS
ZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyog
UmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMx
MDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJ
CQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0
NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkz
MzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAv
KiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4
MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEg
LyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJ
CUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICov
LAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBV
bmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21t
YW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFu
ZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQz
MENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFG
MTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlv
bkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0OTMsNiArMjQ1NjYsNyBAQAogCQkJ
CTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENT
U0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0ND
MjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1
QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8q
IERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4
MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsyNDg5MCw3IEBACiAJCQkJQTE5RDkz
NEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRN
TElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBG
NDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiArMjUxMjAsNyBAQAogCQkJCUZERjdF
OUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlv
TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA1NCw2ICsyNTEzMCw3IEBACiAJ
CQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21w
bGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVu
bG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTczLDYgKzI1MjUwLDcgQEAKIAkJCQlG
REExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBE
NkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0
NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdD
MUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1
MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVw
bG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNF
NTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRp
b24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4NzQsNyBAQAogCQkJCUIyQzNEQTND
MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBI
ZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0Uw
MDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0
QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3
MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAx
Q0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1
MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5
NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFj
dGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FB
NDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0
IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4
MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUx
NEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1
RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJp
bmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAsNiArMjcwOTMsNyBAQAogCQkJCTZF
NEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJH
TENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyog
V2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3NTIsNiArMjc4MzYsNyBA
QAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENT
U0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUx
NjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFB
NUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdG
MDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBO
RkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsyODA1MSw3IEBACiAJCQkJODVFQ0JF
RjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxP
TGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0
aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRD
NSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MTEz
LDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9u
czNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgw
MDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3
Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1
RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMxMSw3IEBACiAJCQkJNEZCMzkwQUQx
NUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYw
MDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3IEBACiAJCQkJQjJBMDE1QUEwQUY2
Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RG
NzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rvcnku
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUxMiw3IEBACiAJCQkJNTEwMTkyRDEx
OEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3Vt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBp
biBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBAQAogCQkJCUU1MUE4MURGMTcyOThE
NzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1
ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRp
bWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyog
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0
NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BT
dGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5MTQsNiArMjkwMDYsNyBAQAogCQkJ
CTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4
MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAw
N0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2
OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMsNyBAQAogCQkJCTA3Mzc5NEZEMTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0Qx
NENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyog
U1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZF
NTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0
NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkw
MDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3
RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2
M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3
MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3
RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFB
Qjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVG
b3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYg
LyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uNzA4MzZk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9k
b2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAm
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzQyLDYgKzc0MywyMiBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAg
ICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0
ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGlj
aCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZp
Y2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0
IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNz
d29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RlIDog
bm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZv
cm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKHN0ZDo6
Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3RlKSwgc3RkOjpnZXQ8Mj4obm90ZSks
IFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlm
aWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9z
dFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3Rp
ZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2Vy
dmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkK
K3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBwcmludGYoIkVk
aXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBw
cmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGlu
dGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5r
bm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICBwcmludGYo
IkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2VydCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBw
cmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBwcmludGYoIlR5cGluZ0luc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6
CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHByaW50ZigiUGFzdGUiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVu
a25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAg
ICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgcHJpbnRm
KCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBwcmludGYoIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAg
ICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoKKyAg
ICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAg
ICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAg
ICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIHByaW50
ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgcHJpbnRmKCItU3luYyIpOworICAg
IHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQoreworICAgIG1f
dGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewog
ICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAg
ICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsKKworCiAgICAgc3RvcENhY2hpbmdD
b21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+
aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVj
dGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhP
YmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50
KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9u
KTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudCgpOworfQorCisjaWYgUExB
VEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4dChjb25zdCBBY2Nl
c3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5pc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBvYmoucGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVsZFZhbHVlKCkuc3Vi
c3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQo
KSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0
VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0gdGV4
dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAg
ICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5p
dGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCks
IHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsK
KyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6ZWRU
ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0
Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwor
ICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9y
RWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJU
KGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9
PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAg
ICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7Cisg
ICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7
CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1f
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAg
ICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRm
b3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVs
ZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVk
SW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAgIC8vIERlbGVnYXRlIG9uIHRoZSBy
aWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRl
KG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0
Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7
CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VG
b3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXBy
ZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1l
LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEzMTIsMTcgQEAgYm9v
bCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
QWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAg
IGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVjdCgp
KSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpmaXJzdENoaWxkID0gcm9vdE9i
amVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZC0+aXNXZWJB
cmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGQ7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2Fj
aGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4OSw5NiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5
KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3Vt
ZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0gICAg
ICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAgIGVudW0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0RWRpdFR5cGUgeworICAg
ICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRl
LCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAv
LyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJ
bnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5z
ZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8vIERlbGV0ZSB2
aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQor
ICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZh
bHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzCiAgICAgfTsKIAotICAgIHZv
aWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIC8v
IEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5nIHRoZSB3
aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rpb24gYnkg
c29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hvbGUgZG9j
dW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5vdGlmaWNhdGlvbi4K
KyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbihBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6IGRpcmVjdGlvbihkaXJlY3Rpb24p
CisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFyaXR5KQorICAgICAgICB7IH0KKyAg
ICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIEFY
VGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFu
Z2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rp
b24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAg
ICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQor
ICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0
VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3luYyhmYWxz
ZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlwZSh0eXBl
KQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgICAg
ICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZuZGVmIE5E
RUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYp
OworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8vIFNlbGVj
dGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAK
ICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAg
LTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBw
bGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2Rl
LCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lk
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsK
KyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
OworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7CisgICAgICAgIEFYVGV4dEluc2VydGVk
LAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07CisgICAgaW5saW5lIEFYVGV4dENoYW5n
ZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNl
cnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENo
YW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1l
TG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
TG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMzQxLDggQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0
TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50Owog
ICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7
CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7
CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90
aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8UmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4gbV9wYXNzd29yZE5vdGlmaWNhdGlv
bnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7
CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2
ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChO
b2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJp
bGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwog
ICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQyOSwxNiBAQCBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVj
b21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
bihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShD
T0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVj
dCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi5h
YzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1Miw0NyBAQCBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBp
bnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAg
IGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisgICAg
CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0
aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
CisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBu
dWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7
CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAg
ICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAg
ICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKK30KKwogYm9vbCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2Rl
KiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLjdkYmQ1OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0
aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNz
d29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXgg
MzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgp
ID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li42ZWZh
YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTggQEAgUGxhaW5U
ZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBj
b25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5n
ZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENv
bnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENh
Y2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5k
ZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAg
ICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0
YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUq
IG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBv
c2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQ
b3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBW
aXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEs
IHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVs
bCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUg
dG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAg
aWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAg
ICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0
LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2Uu
ZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVl
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uNjgyZDNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmlu
Z107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgcG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sK
K30KKwordm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAog
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFY
TGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5n
ZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRp
dFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5
cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1
ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUi
CisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hh
bmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0
ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0
ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBD
b2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlm
aWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpt
YWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOwor
CisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAg
ICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlm
ICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2Ug
PSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2Vs
ZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCld
KQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2Vy
UmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBp
ZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5
UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVs
ZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBh
cmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3Rh
dGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewor
ICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIg
bGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJp
bGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2Vy
IHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVu
Z3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5n
dGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0
cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNo
YW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9z
aXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53
cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAg
ICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0g
dGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0
aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENo
YW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAg
aWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSBy
b290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVz
ZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3Rh
cmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVl
Q2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBB
WFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAg
ICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47
CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlv
bmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0g
dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRl
ZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAg
ICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisK
KyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdl
dCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90
aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2Vk
Tm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAg
Ly8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAg
ICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5
VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFt
ZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJm
YWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25z
OihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2Vi
Q29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZp
c2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9z
OworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0
ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVu
ZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4
dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9y
aW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0
eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5n
IHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJl
YWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAo
dGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5v
ZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9
IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3Jl
YXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRp
b24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
LSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2
b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQt
Pmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8v
IE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNl
bmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5k
Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0K
ICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmRO
b2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40
OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBA
IC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9k
ZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBh
c3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAg
ICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9k
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
QXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgi
CisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJv
b2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9k
ZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0
Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAg
IHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZD
aGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewot
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVh
dGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21t
YW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVy
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQp
CkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBz
ZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRl
eChzdGFydEluZGV4LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0
SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
cmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRl
eHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChl
ZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBy
ZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291
bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQog
ewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisK
K1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitS
ZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7Cisg
ICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50
VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxl
dGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAg
ICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRl
eHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0
ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxv
Y2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQorewor
ICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9j
b21tYW5kcy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJi
NDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFz
cyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0
b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rp
b25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5r
aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6
CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywx
NSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFz
c1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERl
bGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJl
cGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29s
IHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRl
bGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVj
dEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3Qg
Tm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8
Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9z
aXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJl
ZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwg
UGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwog
ICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5v
ZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBw
YXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0
TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVu
dHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBy
ZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RM
YXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZv
aWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlv
biYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1
YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsK
ICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9m
ZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAg
ICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2Vt
ZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNk
ZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcw
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21h
cnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFy
a3VwKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rp
b24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21t
YW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVu
dCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUs
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVm
PEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXgg
MmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5o
IgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VS
VChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBt
X3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7
CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmlu
Z0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
bjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRl
bGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwg
bV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9k
ZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlv
bihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0
LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNl
dCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBO
REVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5k
ZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRD
b21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4
dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHBy
aXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFu
ZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBt
X29mZnNldDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9B
cHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlv
bigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMg
YWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBi
dXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhl
IGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93
cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVk
aXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2Vy
dmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFt
cGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
YzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNv
bW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5k
LmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIklu
c2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0
UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBW
ZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xs
ZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFs
dGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5k
ID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgp
LCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0
aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQ
dHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1
YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6
Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJs
aWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
NDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBs
aWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBs
aWVyKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
OjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAor
I2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRU
ZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2Vy
U3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQ
dHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRv
Y3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NS
ZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRp
dENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2
b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnRO
b2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5k
aWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
VW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9p
ZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9k
ZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQor
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENv
bW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZp
bmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYg
KzYwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgp
IHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisK
IHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVk
aXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBh
ZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
OworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRU
eXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEw
YWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1
ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5h
dGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJl
Y3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldp
dGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9j
dW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0
aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNv
bW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0
RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1
LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRp
dENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0
aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlm
IG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRp
b25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRp
b25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250
ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50
KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBk
YXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBF
ZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAog
ICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBD
dXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFy
dENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
KGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRv
cjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3Jy
ZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+
ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAK
LXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlv
bnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2Vs
ZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQs
IHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5z
dGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0y
ODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5k
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6
Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250
YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBi
b29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENo
YW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNv
bWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhv
dXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhh
bXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlz
IG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVl
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNl
bGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlz
VHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldp
dGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4
dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVu
Y2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51
bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0
aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3Np
dGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9y
QWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJm
b3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLjdlYzU0ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxl
bWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVu
dCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9z
aXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNj
cm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVl
cEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3Nl
bGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2Vs
ZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFm
ZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFs
aWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3Np
dGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVk
IHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBw
YXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdl
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2Vs
ZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAg
IAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBp
ZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwg
aW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAog
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJv
b2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1
bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVm
UHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFt
ZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBu
ZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAg
ICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3
U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9w
dGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsK
ICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBz
ZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAg
ICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0
ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAg
ICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhp
cyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBi
b29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24s
IFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNl
bGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1l
VmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdM
YXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFy
U2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlm
ICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyAr
Mzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkK
ICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9
CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogfQogCiB2b2lkIEZy
YW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgs
NyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmlu
Z0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3Vu
ZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFy
aXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8
fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
bGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRl
ciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBm
bGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9u
TW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAg
ICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAg
ICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlw
ZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsK
KyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0
eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2Vu
dGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5
OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
b2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29s
IGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2Ug
Q2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5Ogor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5l
Qm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50
Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAg
ICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2Fz
ZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlm
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNl
clRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsxMTU1LDExIEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0
ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQo
YWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9m
IHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRp
b24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0
IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0
aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpA
QCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxl
Y3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsK
KyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAg
YXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0K
IAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVB
ZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5iNzRmYmZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1l
U2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAo
dXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7
CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpCisgICAgeworICAgICAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBu
dWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRo
b3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNl
bGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsg
fQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4
dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25P
cHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNv
ckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxh
cml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNl
dFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51
bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lk
IHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNl
dFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxl
Y3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxp
Z25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5ICszMDQsMTAgQEAgcHJpdmF0
ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2
aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRl
cmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNl
Ci0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9Cisg
ICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRl
U2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRy
aWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEo
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2Uu
LmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUx
LDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0
eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRl
eHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJh
bWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAg
dm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBt
X25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0K
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4
dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwg
YXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUs
IG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBA
IHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAo
IW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAor
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwg
bV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1
bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0
Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lk
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAg
fQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAg
ICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBv
dmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgog
I2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNl
dDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7
CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAg
LTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgp
CiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNo
aWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOwor
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAg
IFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3Np
dGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdh
Y3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3Np
dGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMg
YmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsK
KyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAg
ICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9z
aXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihw
b3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhD
RVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgog
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gK
ICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZv
cmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2
YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3Jl
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFw
cGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0
Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBk
MmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRl
eHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFu
ZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsK
ICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUp
OworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAg
IEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lk
IGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
X2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZh
MzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1
YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
MzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVj
dGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0
KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2Fj
aGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlv
bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURl
bGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRl
ZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUs
IG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsx
LDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xh
c3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlw
ZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisK
KyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
ZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQu
aCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBA
QAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgog
I2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRl
ICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRl
ICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAg
QEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2Rl
ICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JB
ZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1h
bmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRp
dEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVy
biBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNo
aWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQs
IGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJu
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAK
IC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0
IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGly
ZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMg
aXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYu
LmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJm
b3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9m
SW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAg
ICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgog
CkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0
IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29t
bWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9
IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0
SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRp
b25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1do
aXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsK
IAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRl
eHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
UGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGls
ZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUs
CisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRU
b0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBl
KQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVk
VGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVy
biBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5l
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNl
VHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFj
ZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBl
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8
RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2
YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1YTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBA
IC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQg
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVl
MWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2Vs
ZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmls
aXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9z
ZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAg
Y2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9k
ZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRh
cmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBp
bnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkp
OwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgq
aW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJv
bSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91
c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9k
ZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAg
ICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0
Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFs
dWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhU
TUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisK
KyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAo
dGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAg
ICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3Np
dGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAg
fQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJl
cih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li4w
N2YzODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMx
ODQsMTQgQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBm
cmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
Ci0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0
aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvIGludGVudCA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpOworI2VuZGlmCisgICAgc2VsZWN0aW9uLnNldFNl
bGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKQorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExB
VEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBpbnRlbnQKKyNlbmRp
ZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRs
ZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBl
dmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250304</attachid>
            <date>2015-04-07 14:37:53 -0700</date>
            <delta_ts>2015-04-07 14:59:36 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>198708</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDFlM2M4YzQwYmU3NzY1YWQ5NzlkOGJlZGQ1NGY3NjdjYjA0YWM5OWQKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uZGE3NGVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRo
ZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUt
Y2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKKzIwMTUtMDQtMDcgIERvdWcgUnVzc2Vs
bCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5n
ZSBub3RpZmljYXRpb25zCisKKyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbDoK
KwogMjAxNS0wMi0yNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBVcGRhdGUgdHJhY2sgc2l6ZXMgYWZ0ZXIgZGlz
dHJpYnV0aW5nIGV4dHJhIHNwYWNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2NDZk
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZv
ci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQogICAg
ICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRlZE5v
dGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRp
b25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmlj
YXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxi
YWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmZjEzYzg4Li5kNDVhNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjA4IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29t
PgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgYXJlIHN0aWxsIGluIGRl
dmVsb3BtZW50LiBTdWJtaXR0aW5nIHBhdGNoIGVhcmx5IGZvciBmZWVkYmFjay4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNh
bml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uOjpBWFRleHRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29y
ZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9u
UmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAg
ICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpB
cHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9O
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5z
ZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6
Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZCk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0Q29tbWFuZDo6aW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxl
Y3RBbGwpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0
ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
QXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAg
ICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAg
ICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRl
eHRDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElu
bmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCiAyMDE1LTA0LTA3ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIHZp
ZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3VsZCBub3QgYmUgaW50ZXJydXB0ZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEyICs2Mzc5LDIyIEBACiAJCUY0Nzg3
NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYw
MDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0Ux
OTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAw
IC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNj
cm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50
cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2
NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
OyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNB
M0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9Owog
CQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5
RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFB
Q0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAy
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1
Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsK
KwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9Owog
CQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1
dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAq
LzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5
IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9
OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQw
MDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyog
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRE
RURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0
REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNE
REUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZC
MjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5t
bSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICov
OyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlk
YXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAg
Ki87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVE
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1
Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAw
NTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVB
NTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFB
Q0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsK
IAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFE
QjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRB
IC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5
RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1M
RGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2ICsxNDAzMSw4IEBACiAJCUY0Nzg3
NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMx
MDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdB
NUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0g
c3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFB
Qjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3Jt
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3Jt
Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDE5LDggKzE0MDQ1LDE2IEBACiAJ
CUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMw
NDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJF
NiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1
RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0LDEyIEBACiAJCUY1NUIzREFBMTI1
MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5
MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1
OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0Ew
MkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwODAsOCArMTQxMjAsMTYg
QEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBC
MEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcw
MDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJC
MTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRh
TGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0
MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlz
dEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2OTcsNiArMTc3NDUsMTAgQEAK
IAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAq
LywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3Bw
ICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5o
ICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0Iw
QzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5
RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywK
IAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3
NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQx
NTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1
MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUEx
QUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5
OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEw
MDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZF
NTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2ICsxNzgwNywxMCBAQAogCQkJCUM2
RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywK
IAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2
NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc2MSw2ICsxNzgyMSwx
MCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBS
ZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyog
UmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMx
MDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJ
CQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0
NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkz
MzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAv
KiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4
MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEg
LyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJ
CUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICov
LAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBV
bmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21t
YW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFu
ZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQz
MENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFG
MTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlv
bkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0OTMsNiArMjQ1NjYsNyBAQAogCQkJ
CTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENT
U0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0ND
MjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1
QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8q
IERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4
MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsyNDg5MCw3IEBACiAJCQkJQTE5RDkz
NEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRN
TElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBG
NDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiArMjUxMjAsNyBAQAogCQkJCUZERjdF
OUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlv
TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA1NCw2ICsyNTEzMCw3IEBACiAJ
CQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21w
bGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVu
bG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTczLDYgKzI1MjUwLDcgQEAKIAkJCQlG
REExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBE
NkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0
NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdD
MUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1
MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVw
bG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNF
NTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRp
b24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4NzQsNyBAQAogCQkJCUIyQzNEQTND
MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBI
ZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0Uw
MDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0
QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3
MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAx
Q0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1
MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5
NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFj
dGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FB
NDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0
IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4
MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUx
NEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1
RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJp
bmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAsNiArMjcwOTMsNyBAQAogCQkJCTZF
NEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJH
TENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyog
V2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3NTIsNiArMjc4MzYsNyBA
QAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENT
U0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUx
NjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFB
NUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdG
MDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBO
RkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsyODA1MSw3IEBACiAJCQkJODVFQ0JF
RjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxP
TGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0
aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRD
NSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MTEz
LDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9u
czNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgw
MDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3
Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1
RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMxMSw3IEBACiAJCQkJNEZCMzkwQUQx
NUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYw
MDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3IEBACiAJCQkJQjJBMDE1QUEwQUY2
Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RG
NzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rvcnku
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUxMiw3IEBACiAJCQkJNTEwMTkyRDEx
OEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3Vt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBp
biBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBAQAogCQkJCUU1MUE4MURGMTcyOThE
NzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1
ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRp
bWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyog
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0
NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BT
dGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5MTQsNiArMjkwMDYsNyBAQAogCQkJ
CTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4
MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAw
N0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2
OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMsNyBAQAogCQkJCTA3Mzc5NEZEMTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0Qx
NENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyog
U1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZF
NTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0
NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkw
MDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3
RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2
M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3
MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3
RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFB
Qjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVG
b3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYg
LyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uNzA4MzZk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9k
b2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAm
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzQyLDYgKzc0MywyMiBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAg
ICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0
ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGlj
aCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZp
Y2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0
IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNz
d29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RlIDog
bm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZv
cm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKHN0ZDo6
Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3RlKSwgc3RkOjpnZXQ8Mj4obm90ZSks
IFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlm
aWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9z
dFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3Rp
ZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2Vy
dmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkK
K3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBwcmludGYoIkVk
aXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBw
cmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGlu
dGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5r
bm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICBwcmludGYo
IkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2VydCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBw
cmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBwcmludGYoIlR5cGluZ0luc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6
CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHByaW50ZigiUGFzdGUiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVu
a25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAg
ICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgcHJpbnRm
KCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBwcmludGYoIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAg
ICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoKKyAg
ICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAg
ICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAg
ICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIHByaW50
ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgcHJpbnRmKCItU3luYyIpOworICAg
IHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQoreworICAgIG1f
dGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewog
ICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAg
ICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsKKworCiAgICAgc3RvcENhY2hpbmdD
b21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+
aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVj
dGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhP
YmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50
KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9u
KTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudCgpOworfQorCisjaWYgUExB
VEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4dChjb25zdCBBY2Nl
c3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5pc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBvYmoucGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVsZFZhbHVlKCkuc3Vi
c3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQo
KSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0
VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0gdGV4
dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAg
ICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5p
dGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCks
IHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsK
KyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6ZWRU
ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0
Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwor
ICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9y
RWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJU
KGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9
PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAg
ICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7Cisg
ICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7
CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1f
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAg
ICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRm
b3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVs
ZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVk
SW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAgIC8vIERlbGVnYXRlIG9uIHRoZSBy
aWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRl
KG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0
Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7
CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VG
b3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXBy
ZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1l
LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEzMTIsMTcgQEAgYm9v
bCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
QWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAg
IGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVjdCgp
KSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpmaXJzdENoaWxkID0gcm9vdE9i
amVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZC0+aXNXZWJB
cmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGQ7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2Fj
aGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4OSw5NiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5
KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3Vt
ZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0gICAg
ICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAgIGVudW0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0RWRpdFR5cGUgeworICAg
ICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRl
LCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAv
LyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJ
bnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5z
ZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8vIERlbGV0ZSB2
aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQor
ICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZh
bHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzCiAgICAgfTsKIAotICAgIHZv
aWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIC8v
IEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5nIHRoZSB3
aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rpb24gYnkg
c29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hvbGUgZG9j
dW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5vdGlmaWNhdGlvbi4K
KyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbihBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6IGRpcmVjdGlvbihkaXJlY3Rpb24p
CisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFyaXR5KQorICAgICAgICB7IH0KKyAg
ICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIEFY
VGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFu
Z2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rp
b24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAg
ICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQor
ICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0
VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3luYyhmYWxz
ZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlwZSh0eXBl
KQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgICAg
ICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZuZGVmIE5E
RUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYp
OworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8vIFNlbGVj
dGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAK
ICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAg
LTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBw
bGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2Rl
LCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lk
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsK
KyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
OworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7CisgICAgICAgIEFYVGV4dEluc2VydGVk
LAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07CisgICAgaW5saW5lIEFYVGV4dENoYW5n
ZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNl
cnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENo
YW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1l
TG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
TG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMzQxLDggQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0
TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50Owog
ICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7
CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7
CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90
aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8UmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4gbV9wYXNzd29yZE5vdGlmaWNhdGlv
bnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7
CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2
ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChO
b2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJp
bGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwog
ICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQyOSwxNiBAQCBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVj
b21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
bihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShD
T0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVj
dCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi5h
YzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1Miw0NyBAQCBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBp
bnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAg
IGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisgICAg
CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0
aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
CisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBu
dWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7
CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAg
ICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAg
ICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKK30KKwogYm9vbCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2Rl
KiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLjdkYmQ1OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0
aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNz
d29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXgg
MzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgp
ID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li42ZWZh
YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTggQEAgUGxhaW5U
ZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBj
b25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5n
ZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENv
bnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENh
Y2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5k
ZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAg
ICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0
YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUq
IG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBv
c2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQ
b3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBW
aXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEs
IHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVs
bCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUg
dG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAg
aWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAg
ICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0
LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2Uu
ZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVl
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uNjgyZDNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmlu
Z107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgcG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sK
K30KKwordm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAog
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFY
TGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5n
ZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRp
dFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5
cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1
ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUi
CisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hh
bmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0
ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0
ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBD
b2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlm
aWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpt
YWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOwor
CisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAg
ICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlm
ICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2Ug
PSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2Vs
ZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCld
KQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2Vy
UmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBp
ZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5
UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVs
ZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBh
cmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3Rh
dGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewor
ICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIg
bGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJp
bGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2Vy
IHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVu
Z3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5n
dGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0
cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNo
YW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9z
aXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53
cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAg
ICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0g
dGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0
aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENo
YW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAg
aWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSBy
b290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVz
ZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3Rh
cmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVl
Q2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBB
WFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAg
ICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47
CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlv
bmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0g
dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRl
ZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAg
ICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisK
KyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdl
dCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90
aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2Vk
Tm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAg
Ly8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAg
ICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5
VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFt
ZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJm
YWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25z
OihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2Vi
Q29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZp
c2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9z
OworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0
ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVu
ZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4
dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9y
aW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0
eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5n
IHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJl
YWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAo
dGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5v
ZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9
IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3Jl
YXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRp
b24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
LSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2
b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQt
Pmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8v
IE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNl
bmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5k
Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0K
ICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmRO
b2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40
OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBA
IC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9k
ZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBh
c3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAg
ICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9k
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
QXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgi
CisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJv
b2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9k
ZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0
Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAg
IHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZD
aGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewot
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVh
dGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21t
YW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVy
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQp
CkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBz
ZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRl
eChzdGFydEluZGV4LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0
SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
cmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRl
eHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChl
ZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBy
ZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291
bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQog
ewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisK
K1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitS
ZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7Cisg
ICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50
VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxl
dGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAg
ICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRl
eHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0
ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxv
Y2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQorewor
ICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9j
b21tYW5kcy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJi
NDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFz
cyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0
b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rp
b25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5r
aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6
CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywx
NSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFz
c1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERl
bGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJl
cGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29s
IHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRl
bGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVj
dEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3Qg
Tm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8
Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9z
aXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJl
ZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwg
UGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwog
ICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5v
ZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBw
YXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0
TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVu
dHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBy
ZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RM
YXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZv
aWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlv
biYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1
YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsK
ICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9m
ZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAg
ICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2Vt
ZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNk
ZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcw
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21h
cnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFy
a3VwKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rp
b24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21t
YW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVu
dCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUs
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVm
PEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXgg
MmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5o
IgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VS
VChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBt
X3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7
CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmlu
Z0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
bjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRl
bGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwg
bV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9k
ZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlv
bihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0
LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNl
dCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBO
REVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5k
ZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRD
b21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4
dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHBy
aXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFu
ZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBt
X29mZnNldDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9B
cHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlv
bigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMg
YWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBi
dXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhl
IGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93
cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVk
aXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2Vy
dmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFt
cGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
YzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNv
bW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5k
LmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIklu
c2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0
UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBW
ZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xs
ZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFs
dGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5k
ID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgp
LCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0
aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQ
dHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1
YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6
Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJs
aWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
NDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBs
aWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBs
aWVyKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
OjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAor
I2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRU
ZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2Vy
U3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQ
dHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRv
Y3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NS
ZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRp
dENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2
b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnRO
b2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5k
aWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
VW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9p
ZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9k
ZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQor
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENv
bW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZp
bmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYg
KzYwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgp
IHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisK
IHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVk
aXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBh
ZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
OworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRU
eXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEw
YWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1
ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5h
dGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJl
Y3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldp
dGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9j
dW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0
aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNv
bW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0
RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1
LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRp
dENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0
aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlm
IG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRp
b25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRp
b25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250
ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50
KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBk
YXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBF
ZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAog
ICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBD
dXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFy
dENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
KGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRv
cjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3Jy
ZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+
ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAK
LXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlv
bnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2Vs
ZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQs
IHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5z
dGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0y
ODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5k
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6
Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250
YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBi
b29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENo
YW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNv
bWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhv
dXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhh
bXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlz
IG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVl
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNl
bGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlz
VHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldp
dGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4
dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVu
Y2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51
bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0
aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3Np
dGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9y
QWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJm
b3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLjdlYzU0ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxl
bWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVu
dCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9z
aXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNj
cm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVl
cEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3Nl
bGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2Vs
ZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFm
ZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFs
aWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3Np
dGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVk
IHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBw
YXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdl
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2Vs
ZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAg
IAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBp
ZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwg
aW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAog
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJv
b2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1
bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVm
UHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFt
ZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBu
ZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAg
ICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3
U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9w
dGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsK
ICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBz
ZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAg
ICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0
ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAg
ICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhp
cyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBi
b29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24s
IFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNl
bGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1l
VmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdM
YXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFy
U2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlm
ICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyAr
Mzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkK
ICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9
CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogfQogCiB2b2lkIEZy
YW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgs
NyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmlu
Z0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3Vu
ZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFy
aXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8
fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
bGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRl
ciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBm
bGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9u
TW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAg
ICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAg
ICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlw
ZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsK
KyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0
eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2Vu
dGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5
OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
b2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29s
IGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2Ug
Q2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5Ogor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5l
Qm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50
Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAg
ICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2Fz
ZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlm
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNl
clRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsxMTU1LDExIEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0
ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQo
YWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9m
IHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRp
b24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0
IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0
aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpA
QCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxl
Y3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsK
KyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAg
YXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0K
IAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVB
ZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5iNzRmYmZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1l
U2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAo
dXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7
CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpCisgICAgeworICAgICAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBu
dWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRo
b3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNl
bGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsg
fQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4
dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25P
cHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNv
ckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxh
cml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNl
dFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51
bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lk
IHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNl
dFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxl
Y3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxp
Z25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5ICszMDQsMTAgQEAgcHJpdmF0
ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2
aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRl
cmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNl
Ci0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9Cisg
ICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRl
U2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRy
aWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEo
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2Uu
LmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUx
LDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0
eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRl
eHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJh
bWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAg
dm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBt
X25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0K
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4
dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwg
YXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUs
IG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBA
IHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAo
IW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAor
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwg
bV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1
bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0
Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lk
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAg
fQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAg
ICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBv
dmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgog
I2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNl
dDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7
CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAg
LTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgp
CiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNo
aWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOwor
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAg
IFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3Np
dGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdh
Y3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3Np
dGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMg
YmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsK
KyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAg
ICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9z
aXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihw
b3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhD
RVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgog
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gK
ICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZv
cmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2
YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3Jl
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFw
cGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0
Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBk
MmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRl
eHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFu
ZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsK
ICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUp
OworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAg
IEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lk
IGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
X2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZh
MzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1
YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
MzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVj
dGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0
KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2Fj
aGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlv
bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURl
bGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRl
ZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUs
IG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsx
LDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xh
c3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlw
ZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisK
KyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
ZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQu
aCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBA
QAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgog
I2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRl
ICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRl
ICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAg
QEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2Rl
ICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JB
ZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1h
bmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRp
dEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVy
biBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNo
aWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQs
IGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJu
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAK
IC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0
IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGly
ZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMg
aXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYu
LmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJm
b3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9m
SW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAg
ICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgog
CkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0
IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29t
bWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9
IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0
SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRp
b25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1do
aXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsK
IAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRl
eHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
UGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGls
ZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUs
CisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRU
b0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBl
KQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVk
VGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVy
biBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5l
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNl
VHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFj
ZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBl
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8
RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2
YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1YTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBA
IC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQg
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVl
MWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2Vs
ZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmls
aXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9z
ZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAg
Y2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9k
ZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRh
cmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBp
bnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkp
OwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgq
aW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJv
bSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91
c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9k
ZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAg
ICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0
Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFs
dWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhU
TUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisK
KyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAo
dGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAg
ICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3Np
dGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAg
fQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJl
cih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li4w
N2YzODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMx
ODQsMTQgQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBm
cmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
Ci0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0
aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvIGludGVudCA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpOworI2VuZGlmCisgICAgc2VsZWN0aW9uLnNldFNl
bGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKQorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExB
VEZPUk0oQ09DT0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBpbnRlbnQKKyNlbmRp
ZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRs
ZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBl
dmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250307</attachid>
            <date>2015-04-07 14:59:36 -0700</date>
            <delta_ts>2015-04-07 15:41:15 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>198738</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGFkN2UxYzkyOTZjMDEzYWE1OThmZTJkMjFmYzNlZTc1YzE2ODkxZWQKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uZGE3NGVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRo
ZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUt
Y2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKKzIwMTUtMDQtMDcgIERvdWcgUnVzc2Vs
bCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5n
ZSBub3RpZmljYXRpb25zCisKKyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbDoK
KwogMjAxNS0wMi0yNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBVcGRhdGUgdHJhY2sgc2l6ZXMgYWZ0ZXIgZGlz
dHJpYnV0aW5nIGV4dHJhIHNwYWNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2NDZk
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZv
ci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQogICAg
ICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRlZE5v
dGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRp
b25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmlj
YXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxi
YWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmZjEzYzg4Li5kNDVhNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjA4IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29t
PgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgYXJlIHN0aWxsIGluIGRl
dmVsb3BtZW50LiBTdWJtaXR0aW5nIHBhdGNoIGVhcmx5IGZvciBmZWVkYmFjay4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNh
bml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uOjpBWFRleHRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29y
ZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9u
UmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAg
ICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpB
cHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9O
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5z
ZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6
Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZCk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0Q29tbWFuZDo6aW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxl
Y3RBbGwpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0
ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
QXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAg
ICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAg
ICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRl
eHRDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElu
bmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCiAyMDE1LTA0LTA3ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIHZp
ZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3VsZCBub3QgYmUgaW50ZXJydXB0ZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEyICs2Mzc5LDIyIEBACiAJCUY0Nzg3
NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYw
MDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0Ux
OTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAw
IC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNj
cm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50
cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2
NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
OyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNB
M0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9Owog
CQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5
RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFB
Q0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAy
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1
Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsK
KwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9Owog
CQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1
dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAq
LzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5
IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9
OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQw
MDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyog
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRE
RURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0
REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNE
REUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZC
MjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5t
bSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICov
OyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlk
YXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAg
Ki87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVE
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1
Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAw
NTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVB
NTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFB
Q0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsK
IAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFE
QjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRB
IC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5
RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1M
RGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2ICsxNDAzMSw4IEBACiAJCUY0Nzg3
NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMx
MDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdB
NUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0g
c3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFB
Qjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3Jt
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3Jt
Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDE5LDggKzE0MDQ1LDE2IEBACiAJ
CUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMw
NDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJF
NiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1
RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0LDEyIEBACiAJCUY1NUIzREFBMTI1
MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5
MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1
OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0Ew
MkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwODAsOCArMTQxMjAsMTYg
QEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBC
MEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcw
MDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJC
MTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRh
TGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0
MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlz
dEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2OTcsNiArMTc3NDUsMTAgQEAK
IAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAq
LywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3Bw
ICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5o
ICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0Iw
QzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5
RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywK
IAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3
NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQx
NTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1
MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUEx
QUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5
OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEw
MDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZF
NTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2ICsxNzgwNywxMCBAQAogCQkJCUM2
RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywK
IAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2
NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc2MSw2ICsxNzgyMSwx
MCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBS
ZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyog
UmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMx
MDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJ
CQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0
NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkz
MzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAv
KiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4
MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEg
LyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJ
CUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICov
LAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBV
bmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21t
YW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFu
ZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQz
MENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFG
MTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlv
bkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0OTMsNiArMjQ1NjYsNyBAQAogCQkJ
CTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENT
U0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0ND
MjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1
QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8q
IERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4
MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsyNDg5MCw3IEBACiAJCQkJQTE5RDkz
NEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRN
TElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBG
NDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiArMjUxMjAsNyBAQAogCQkJCUZERjdF
OUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlv
TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA1NCw2ICsyNTEzMCw3IEBACiAJ
CQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21w
bGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVu
bG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTczLDYgKzI1MjUwLDcgQEAKIAkJCQlG
REExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBE
NkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0
NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdD
MUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1
MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVw
bG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNF
NTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRp
b24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4NzQsNyBAQAogCQkJCUIyQzNEQTND
MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBI
ZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0Uw
MDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0
QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3
MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAx
Q0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1
MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5
NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFj
dGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FB
NDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0
IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4
MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUx
NEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1
RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJp
bmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAsNiArMjcwOTMsNyBAQAogCQkJCTZF
NEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJH
TENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyog
V2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3NTIsNiArMjc4MzYsNyBA
QAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENT
U0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUx
NjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFB
NUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdG
MDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBO
RkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsyODA1MSw3IEBACiAJCQkJODVFQ0JF
RjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxP
TGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0
aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRD
NSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MTEz
LDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9u
czNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgw
MDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3
Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1
RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMxMSw3IEBACiAJCQkJNEZCMzkwQUQx
NUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYw
MDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3IEBACiAJCQkJQjJBMDE1QUEwQUY2
Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RG
NzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rvcnku
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUxMiw3IEBACiAJCQkJNTEwMTkyRDEx
OEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3Vt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBp
biBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBAQAogCQkJCUU1MUE4MURGMTcyOThE
NzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1
ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRp
bWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyog
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0
NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BT
dGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5MTQsNiArMjkwMDYsNyBAQAogCQkJ
CTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4
MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAw
N0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2
OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMsNyBAQAogCQkJCTA3Mzc5NEZEMTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0Qx
NENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyog
U1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZF
NTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0
NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkw
MDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3
RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2
M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3
MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3
RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFB
Qjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVG
b3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYg
LyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uNzA4MzZk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9k
b2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAm
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzQyLDYgKzc0MywyMiBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAg
ICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0
ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGlj
aCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZp
Y2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0
IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNz
d29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RlIDog
bm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZv
cm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKHN0ZDo6
Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3RlKSwgc3RkOjpnZXQ8Mj4obm90ZSks
IFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlm
aWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9z
dFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3Rp
ZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2Vy
dmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkK
K3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBwcmludGYoIkVk
aXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBw
cmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGlu
dGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5r
bm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICBwcmludGYo
IkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2VydCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBw
cmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBwcmludGYoIlR5cGluZ0luc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6
CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHByaW50ZigiUGFzdGUiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVu
a25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAg
ICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgcHJpbnRm
KCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBwcmludGYoIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAg
ICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoKKyAg
ICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAg
ICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAg
ICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIHByaW50
ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgcHJpbnRmKCItU3luYyIpOworICAg
IHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQoreworICAgIG1f
dGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewog
ICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAg
ICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsKKworCiAgICAgc3RvcENhY2hpbmdD
b21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+
aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVj
dGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhP
YmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50
KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9u
KTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudCgpOworfQorCisjaWYgUExB
VEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4dChjb25zdCBBY2Nl
c3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5pc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBvYmoucGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVsZFZhbHVlKCkuc3Vi
c3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQo
KSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0
VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0gdGV4
dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAg
ICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5p
dGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCks
IHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsK
KyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6ZWRU
ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0
Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwor
ICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9y
RWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJU
KGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9
PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAg
ICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7Cisg
ICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7
CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1f
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAg
ICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRm
b3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVs
ZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVk
SW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAgIC8vIERlbGVnYXRlIG9uIHRoZSBy
aWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRl
KG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0
Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7
CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VG
b3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXBy
ZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1l
LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEzMTIsMTcgQEAgYm9v
bCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
QWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAg
IGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVjdCgp
KSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpmaXJzdENoaWxkID0gcm9vdE9i
amVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZC0+aXNXZWJB
cmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGQ7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2Fj
aGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4OSw5NiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5
KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3Vt
ZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0gICAg
ICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAgIGVudW0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0RWRpdFR5cGUgeworICAg
ICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRl
LCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAv
LyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJ
bnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5z
ZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8vIERlbGV0ZSB2
aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQor
ICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZh
bHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzCiAgICAgfTsKIAotICAgIHZv
aWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIC8v
IEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5nIHRoZSB3
aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rpb24gYnkg
c29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hvbGUgZG9j
dW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5vdGlmaWNhdGlvbi4K
KyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbihBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6IGRpcmVjdGlvbihkaXJlY3Rpb24p
CisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFyaXR5KQorICAgICAgICB7IH0KKyAg
ICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIEFY
VGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFu
Z2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rp
b24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAg
ICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQor
ICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0
VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3luYyhmYWxz
ZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlwZSh0eXBl
KQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgICAg
ICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZuZGVmIE5E
RUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYp
OworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8vIFNlbGVj
dGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAK
ICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAg
LTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBw
bGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2Rl
LCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lk
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsK
KyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
OworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7CisgICAgICAgIEFYVGV4dEluc2VydGVk
LAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07CisgICAgaW5saW5lIEFYVGV4dENoYW5n
ZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNl
cnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENo
YW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1l
TG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
TG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMzQxLDggQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0
TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50Owog
ICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7
CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7
CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90
aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8UmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4gbV9wYXNzd29yZE5vdGlmaWNhdGlv
bnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7
CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2
ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChO
b2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJp
bGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwog
ICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQyOSwxNiBAQCBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVj
b21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
bihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShD
T0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVj
dCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi5h
YzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1Miw0NyBAQCBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBp
bnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAg
IGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisgICAg
CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0
aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
CisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBu
dWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7
CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAg
ICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAg
ICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKK30KKwogYm9vbCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2Rl
KiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLjdkYmQ1OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0
aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNz
d29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXgg
MzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgp
ID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li42ZWZh
YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTggQEAgUGxhaW5U
ZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBj
b25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5n
ZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENv
bnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENh
Y2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5k
ZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAg
ICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0
YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUq
IG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBv
c2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQ
b3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBW
aXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEs
IHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVs
bCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUg
dG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAg
aWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAg
ICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0
LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2Uu
ZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVl
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYWI3OTM0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmlu
Z107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZl
UmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYK
IAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5
bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5n
ZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBA
IkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFu
Z2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9u
J3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIw
MCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lk
IEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQor
ICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJl
dHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3lu
YykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBA
WUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3du
KSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7Cisg
ICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtl
clJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBv
c2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtl
clJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53
cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5m
byh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24s
IHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERS
VCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRD
aGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxh
Y2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3Ry
aW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAg
ICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9u
YXJ5KiBjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNp
dHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUp
OworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOwor
ICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0
ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9Cisg
ICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAg
ICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2li
bGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0
dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9v
dFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25h
cnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0
ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBw
ZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRd
ID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7Cisg
ICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5T
QWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1
c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3Rp
ZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKwor
ICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5
ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5
XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAq
Y2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAg
W2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdl
ID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGlu
c2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdl
XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5n
ZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+
d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIo
KTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdl
dCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7Cisg
ICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVu
IG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0
ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsK
IH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50
IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4
IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
aApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRN
YXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24p
c3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBv
c2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29y
ZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0j
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNs
dWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNT
RVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigp
KTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0
aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFs
dWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsK
ICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlm
IChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkg
eworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5v
ZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihu
b2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAK
IHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZv
aWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENo
aWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdl
dCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5l
QnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0K
QEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5
KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5h
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9w
YXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNs
dWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5j
bHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1
ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlz
UmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVD
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVm
Q2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRO
b2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4g
cmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hp
bGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29wZS5nZXQoKSks
IHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgp
KSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRU
ZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0
eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlv
bkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50
KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0
ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5v
ZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4g
bm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNF
bXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRU
ZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxl
Y3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBA
IFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBm
YWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkK
KyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmludGVudCgp
OworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxl
ZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRp
dENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9p
ZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAg
ICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21h
cnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9v
bCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwg
Ym9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5k
PiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0
VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAg
ICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9k
ZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAg
IHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAg
ICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29u
c3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQ
YXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRB
cmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBS
ZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsK
ICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFz
c1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0x
MzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdz
VG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxF
bGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVt
b3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5l
KFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRU
ZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVz
ZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6
IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywg
Ym9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1l
bnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRpdENvbW1h
bmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQor
eworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisK
KyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBm
YWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0g
ZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRp
emVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVN
YXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50
aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9u
b2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01
NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVj
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8g
bm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBt
X3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAg
ICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4
ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAog
ICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9O
KTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlv
bihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwg
bV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1
bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZv
aWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAg
ICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWdu
ZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBv
dmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25lZCBtX2Nv
dW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZv
aWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0
aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJl
c3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBU
eXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAv
LyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJu
IEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5v
cm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdh
cyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEg
QEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9p
ZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBs
aW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+
IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5S
YW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVm
UHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmco
bGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShh
bHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1h
bmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVy
KGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5n
dGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkp
OwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAg
LTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0
aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1h
bmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRpdENvbW1h
bmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVibGljIElu
c2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBs
aWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGll
cikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1
cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApp
bmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVk
aXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGRO
b2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAg
ICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAg
ICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9k
ZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2Ex
OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJW
aXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBF
ZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEw
MCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSos
IEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgp
IG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1w
bGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxp
bmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUg
QEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBF
ZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQor
dm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVs
ZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0
aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxl
dGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAg
ICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1h
bmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRl
KSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9y
OjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRF
ZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERv
bid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBX
ZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1h
bmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50
KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlv
bi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290
RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgp
OwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRp
dG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0
ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNl
bGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAg
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVk
aXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0
LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAg
IG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5n
QWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rp
b25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJh
bWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpj
aGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYg
dGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxl
Y3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2Vs
ZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRv
cjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0
aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURP
TVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7
CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
b3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5n
ZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3
aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4g
aW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51
bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVs
ZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERl
bGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4
LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25m
aXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3Np
dGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9u
LCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNw
ZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4
IGE4ZjFiNDEuLjdlYzU0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RF
ZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxl
Y3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQg
dXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVp
dmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAot
ICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24p
OworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgp
LCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGly
ZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyAr
MjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZl
cmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09
IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRT
ZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3Jv
bGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkK
KyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBl
bHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xs
SWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2Vs
ZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBu
ZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMg
b3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAg
aWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCku
ZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFt
ZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3
U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2Zy
YW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFu
dWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25J
bnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBv
c3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2Vs
ZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJh
bWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24g
aXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlz
IGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNl
bGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlv
bnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFs
aWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rp
b25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdy
YW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBl
bmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2
b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkK
QEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlv
blVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJh
bWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0
aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRl
KQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFs
aWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZShpbnRlbnQpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0
ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRp
b24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFu
dWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJv
dW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNl
bGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVy
ID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlw
ZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7Cisg
ICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVj
dGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7
CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlv
bi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50
ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAg
IGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNh
c2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dp
dGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAg
IGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6Cisg
ICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNl
bnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3Jh
cGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5
ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7
CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6Cisg
ICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0
aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAg
ICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24g
PSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhP
YmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1v
ZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQog
ewpAQCAtMTA3NCw2ICsxMTU1LDExIEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0
ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAg
IGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0g
b3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
aWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewor
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0
aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJp
dHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBh
biB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVj
dGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIu
CiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1
c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9v
dC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24p
KQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNl
bGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9z
ZVR5cGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRl
MjhlLi5iNzRmYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVT
ZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRp
bmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0Lmgi
CkBAIC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9z
ZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxl
Y3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBp
bmxpbmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNl
bGVjdGlvbkludGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBs
aWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0
aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBz
aG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25z
ID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3Jh
bnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZh
dWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNv
ck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZm
aW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0
QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVO
RCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigp
OworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2
b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2Vs
ZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwg
U2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5
KTsKQEAgLTI5OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJl
Y3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAog
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24s
IFRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkg
eyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25J
c0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcg
QEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8
RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpCiB7CiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7
Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAg
Ym9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNo
b0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQs
IG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZp
c2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExB
VEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgp
KQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhp
cyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBj
YWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBW
aXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9k
ZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9O
KTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0
Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYg
aW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1Mp
CkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRp
ZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBs
eUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBt
X25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5k
ZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
RnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRp
bmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9y
ZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9O
KTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlv
bihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwg
bV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4
dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2Vy
dENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRD
aGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9k
ZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZv
aWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRo
ZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAs
IG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRl
eHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNl
cnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+
bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1f
aW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0
IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21t
YW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNo
aWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1Jl
ZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZu
ZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1f
cmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1
bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJ
bnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJ
bnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50
JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNl
VHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFz
c1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmlu
ZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxk
VG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRv
SW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVs
ZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3Yjgx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBv
ZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVm
aW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBU
ZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhi
Yzc4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lk
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7
CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5r
bm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNh
c2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
OgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBs
eUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJl
cGxhY2VBcHBseUVkaXRUeXBlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRl
eHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZh
dGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5v
ZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2lu
Y2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xh
cmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5o
IgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVy
SW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4
dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5j
bHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1w
bGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRl
ICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0
ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNp
bmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAi
bWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2Vy
dGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRh
bnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2gg
KG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0
dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBF
ZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxF
ZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAg
ICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAg
ICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVk
aXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRl
eHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRl
eHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3
aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3
ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRo
YXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2Vu
ZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEs
OSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVw
bGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0
aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9p
bnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmlu
ZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21t
YW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNp
bmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5j
bHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMu
aCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBU
eXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXRO
ZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewot
ICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0
cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpj
cmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2Nv
bXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6
OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1h
bmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGls
ZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRl
ICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZv
cmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2Rl
PiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAg
IAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4
dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQo
ZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30K
KworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5k
PiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
aW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1h
bmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxh
bmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAg
IFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwg
UmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4
dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBk
ZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0
ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
cmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9u
QXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNw
cAppbmRleCA3YzIxMzY1Li5lNjk1YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lk
IG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+
IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Zy
YW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcs
MTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0
IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lk
IEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0
aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkp
IHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9z
ZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENh
Y2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAg
ICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rp
b24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9
CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApA
QCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0
SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9
IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJl
dmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRl
eHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFu
Z2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiBy
ZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5w
b3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJn
ZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4
dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBp
ZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAg
ICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigp
KSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJl
cGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2Vy
dCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRp
b25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0
Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li4wN2YzODhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMxODQsMTQgQEAgc3RhdGljIHZvaWQgc2V0SW5p
dGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlv
bih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMp
OworI2VuZGlmCisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZy
YW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKQor
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLCBpbnRlbnQKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQo
RnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250309</attachid>
            <date>2015-04-07 15:41:15 -0700</date>
            <delta_ts>2015-04-07 16:45:07 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>199388</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDAxZDNhNjkxNjM3ODc2ZDI4ZWExM2E1OGNkZWE3YWUyMzdlN2U0MTYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uZGE3NGVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRo
ZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUt
Y2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKKzIwMTUtMDQtMDcgIERvdWcgUnVzc2Vs
bCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5n
ZSBub3RpZmljYXRpb25zCisKKyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbDoK
KwogMjAxNS0wMi0yNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBVcGRhdGUgdHJhY2sgc2l6ZXMgYWZ0ZXIgZGlz
dHJpYnV0aW5nIGV4dHJhIHNwYWNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2NDZk
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZv
ci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQogICAg
ICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRlZE5v
dGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRp
b25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmlj
YXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxi
YWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmZjEzYzg4Li5kNDVhNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjA4IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29t
PgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgYXJlIHN0aWxsIGluIGRl
dmVsb3BtZW50LiBTdWJtaXR0aW5nIHBhdGNoIGVhcmx5IGZvciBmZWVkYmFjay4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNh
bml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uOjpBWFRleHRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29y
ZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9u
UmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAg
ICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpB
cHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9O
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5z
ZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6
Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZCk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0Q29tbWFuZDo6aW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxl
Y3RBbGwpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0
ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
QXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAg
ICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAg
ICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRl
eHRDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElu
bmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCiAyMDE1LTA0LTA3ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIHZp
ZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2aWNlIHNob3VsZCBub3QgYmUgaW50ZXJydXB0ZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEyICs2Mzc5LDIyIEBACiAJCUY0Nzg3
NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYw
MDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0Ux
OTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAw
IC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNj
cm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50
cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2
NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYg
LyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICov
OyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNB
M0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9Owog
CQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5
RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFB
Q0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAy
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1
Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsK
KwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9Owog
CQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1
dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAq
LzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5
IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9
OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQw
MDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyog
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRE
RURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0
REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNE
REUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZC
MjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5t
bSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICov
OyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlk
YXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAg
Ki87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVE
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1
Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAw
NTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVB
NTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFB
Q0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsK
IAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFE
QjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRB
IC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5
RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1M
RGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2ICsxNDAzMSw4IEBACiAJCUY0Nzg3
NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMx
MDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdB
NUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0g
c3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFB
Qjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3Jt
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3Jt
Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDE5LDggKzE0MDQ1LDE2IEBACiAJ
CUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMw
NDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJF
NiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1
RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0LDEyIEBACiAJCUY1NUIzREFBMTI1
MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5
MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1
OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0Ew
MkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwODAsOCArMTQxMjAsMTYg
QEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBC
MEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcw
MDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJC
MTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRh
TGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0
MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlz
dEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2OTcsNiArMTc3NDUsMTAgQEAK
IAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAq
LywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3Bw
ICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5o
ICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0Iw
QzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5
RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywK
IAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3
NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQx
NTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1
MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUEx
QUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5
OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEw
MDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZF
NTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2ICsxNzgwNywxMCBAQAogCQkJCUM2
RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywK
IAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2
NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc2MSw2ICsxNzgyMSwx
MCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBS
ZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyog
UmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMx
MDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJ
CQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0
NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkz
MzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8s
CkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAv
KiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4
MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEg
LyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJ
CUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUw
MDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICov
LAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBV
bmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21t
YW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFu
ZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQz
MENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFG
MTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlv
bkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0OTMsNiArMjQ1NjYsNyBAQAogCQkJ
CTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENT
U0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0ND
MjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1
QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8q
IERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4
MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsyNDg5MCw3IEBACiAJCQkJQTE5RDkz
NEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRN
TElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBG
NDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiArMjUxMjAsNyBAQAogCQkJCUZERjdF
OUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlv
TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAv
KiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA1NCw2ICsyNTEzMCw3IEBACiAJ
CQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21w
bGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVu
bG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTczLDYgKzI1MjUwLDcgQEAKIAkJCQlG
REExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBE
NkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0
NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdD
MUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1
MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVw
bG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNF
NTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRp
b24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4NzQsNyBAQAogCQkJCUIyQzNEQTND
MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBI
ZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0Uw
MDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0
QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3
MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAx
Q0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1
MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5
NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFj
dGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FB
NDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0
IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4
MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUx
NEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1
RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJp
bmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAsNiArMjcwOTMsNyBAQAogCQkJCTZF
NEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJH
TENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyog
V2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3NTIsNiArMjc4MzYsNyBA
QAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENT
U0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUx
NjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFB
NUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdG
MDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBO
RkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsyODA1MSw3IEBACiAJCQkJODVFQ0JF
RjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxP
TGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0
aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRD
NSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MTEz
LDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9u
czNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgw
MDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3
Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1
RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMxMSw3IEBACiAJCQkJNEZCMzkwQUQx
NUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYw
MDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3IEBACiAJCQkJQjJBMDE1QUEwQUY2
Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RG
NzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3Rvcnku
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUxMiw3IEBACiAJCQkJNTEwMTkyRDEx
OEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3Vt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBp
biBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBAQAogCQkJCUU1MUE4MURGMTcyOThE
NzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1
ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRp
bWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyog
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0
NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BT
dGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5MTQsNiArMjkwMDYsNyBAQAogCQkJ
CTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4
MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAw
N0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2
OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMsNyBAQAogCQkJCTA3Mzc5NEZEMTlG
NTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0Qx
NENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyog
U1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZF
NTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0
NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkw
MDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3
RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2
M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3
MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3
RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFB
Qjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVG
b3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYg
LyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uNzA4MzZk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9k
b2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAm
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzQyLDYgKzc0MywyMiBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAg
ICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0
ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGlj
aCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZp
Y2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0
IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNz
d29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RlIDog
bm90aWZpY2F0aW9ucykgeworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZv
cm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKHN0ZDo6
Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6OmdldDwxPihub3RlKSwgc3RkOjpnZXQ8Mj4obm90ZSks
IFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlm
aWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9z
dFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NywyMjcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3Rp
ZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2Vy
dmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkK
K3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBwcmludGYoIkVk
aXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBw
cmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGlu
dGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5r
bm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICBwcmludGYo
IkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2VydCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBw
cmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBwcmludGYoIlR5cGluZ0luc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6
CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHByaW50ZigiUGFzdGUiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVu
a25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAg
ICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgcHJpbnRm
KCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBwcmludGYoIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAg
ICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoKKyAg
ICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAg
ICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAg
ICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIHByaW50
ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgcHJpbnRmKCItU3luYyIpOworICAg
IHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQoreworICAgIG1f
dGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewog
ICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAg
ICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsKKworCiAgICAgc3RvcENhY2hpbmdD
b21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+
aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVj
dGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhP
YmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50
KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9u
KTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudCgpOworfQorCisjaWYgUExB
VEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4dChjb25zdCBBY2Nl
c3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5pc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBvYmoucGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVsZFZhbHVlKCkuc3Vi
c3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQo
KSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0
VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0gdGV4
dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAg
ICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5p
dGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCks
IHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsK
KyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6ZWRU
ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0
Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwor
ICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9y
RWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJU
KGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9
PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAg
ICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7Cisg
ICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7
CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1f
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAg
ICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRm
b3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVs
ZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVk
SW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQogICAgIC8vIERlbGVnYXRlIG9uIHRoZSBy
aWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRl
KG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0
Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7
CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VG
b3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXBy
ZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1l
LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEzMTIsMTcgQEAgYm9v
bCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
QWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAg
IGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVjdCgp
KSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpmaXJzdENoaWxkID0gcm9vdE9i
amVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZC0+aXNXZWJB
cmVhKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGQ7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2Fj
aGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4OSw5NiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5
KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3Vt
ZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0gICAg
ICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAgIGVudW0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0RWRpdFR5cGUgeworICAg
ICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRl
LCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAv
LyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJ
bnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5z
ZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8vIERlbGV0ZSB2
aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQor
ICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZh
bHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzCiAgICAgfTsKIAotICAgIHZv
aWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIC8v
IEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5nIHRoZSB3
aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rpb24gYnkg
c29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hvbGUgZG9j
dW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5vdGlmaWNhdGlvbi4K
KyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbihBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVVua25vd24pCisgICAgICAgICAgICA6IGRpcmVjdGlvbihkaXJlY3Rpb24p
CisgICAgICAgICAgICAsIGdyYW51bGFyaXR5KGdyYW51bGFyaXR5KQorICAgICAgICB7IH0KKyAg
ICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIEFY
VGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFu
Z2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rp
b24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAg
ICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQor
ICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0
VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3luYyhmYWxz
ZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlwZSh0eXBl
KQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgICAg
ICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZuZGVmIE5E
RUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYp
OworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8vIFNlbGVj
dGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAK
ICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAg
LTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBw
bGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2Rl
LCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lk
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsK
KyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
OworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7CisgICAgICAgIEFYVGV4dEluc2VydGVk
LAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07CisgICAgaW5saW5lIEFYVGV4dENoYW5n
ZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNl
cnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENo
YW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1l
TG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
TG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMzQxLDggQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0
TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50Owog
ICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7
CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7
CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90
aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8UmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwgU3RyaW5nPj4gbV9wYXNzd29yZE5vdGlmaWNhdGlv
bnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7
CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2
ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChO
b2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJp
bGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwog
ICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzQyOSwxNiBAQCBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVj
b21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
bihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShD
T0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVj
dCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi5h
YzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1Miw0NyBAQCBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBp
bnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAg
IGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisgICAg
CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0
aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
CisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBu
dWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7
CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAg
ICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAg
ICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKK30KKwogYm9vbCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2Rl
KiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLjdkYmQ1OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0
aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNz
d29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXgg
MzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgp
ID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li42ZWZh
YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTggQEAgUGxhaW5U
ZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBj
b25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5n
ZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENv
bnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENh
Y2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5k
ZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAg
ICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0
YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUq
IG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBv
c2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQ
b3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBW
aXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEs
IHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVs
bCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUg
dG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAg
aWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAg
ICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0
LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2Uu
ZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVl
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYWI3OTM0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmlu
Z107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZl
UmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYK
IAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5
bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5n
ZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBA
IkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFu
Z2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9u
J3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIw
MCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lk
IEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQor
ICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJl
dHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3lu
YykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBA
WUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3du
KSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7Cisg
ICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtl
clJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBv
c2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtl
clJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53
cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5m
byh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24s
IHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERS
VCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRD
aGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxh
Y2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3Ry
aW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAg
ICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9u
YXJ5KiBjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNp
dHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUp
OworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOwor
ICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0
ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9Cisg
ICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAg
ICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2li
bGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0
dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9v
dFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25h
cnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0
ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBw
ZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRd
ID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7Cisg
ICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5T
QWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1
c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3Rp
ZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKwor
ICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5
ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5
XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAq
Y2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAg
W2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdl
ID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGlu
c2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdl
XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5n
ZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+
d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIo
KTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdl
dCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7Cisg
ICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVu
IG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0
ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsK
IH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50
IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4
IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
aApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRN
YXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24p
c3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBv
c2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29y
ZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0j
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNs
dWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNT
RVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigp
KTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0
aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFs
dWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsK
ICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlm
IChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkg
eworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5v
ZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihu
b2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAK
IHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZv
aWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENo
aWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdl
dCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5l
QnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0K
QEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5
KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5h
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9w
YXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNs
dWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5j
bHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1
ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlz
UmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVD
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVm
Q2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRO
b2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4g
cmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hp
bGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29wZS5nZXQoKSks
IHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgp
KSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRU
ZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0
eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlv
bkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50
KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0
ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5v
ZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4g
bm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNF
bXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRU
ZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxl
Y3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBA
IFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBm
YWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkK
KyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmludGVudCgp
OworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxl
ZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRp
dENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9p
ZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAg
ICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21h
cnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9v
bCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwg
Ym9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5k
PiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0
VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAg
ICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9k
ZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAg
IHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAg
ICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29u
c3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQ
YXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRB
cmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBS
ZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsK
ICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFz
c1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0x
MzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdz
VG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxF
bGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVt
b3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5l
KFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRU
ZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVz
ZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6
IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywg
Ym9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1l
bnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRpdENvbW1h
bmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQor
eworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisK
KyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBm
YWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0g
ZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRp
emVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVN
YXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50
aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9u
b2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01
NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVj
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8g
bm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBt
X3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAg
ICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4
ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAog
ICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9O
KTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlv
bihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwg
bV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1
bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZv
aWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAg
ICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWdu
ZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBv
dmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25lZCBtX2Nv
dW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZv
aWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0
aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJl
c3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBU
eXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAv
LyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJu
IEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5v
cm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdh
cyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEg
QEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9p
ZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBs
aW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+
IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5S
YW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVm
UHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmco
bGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShh
bHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1h
bmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVy
KGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5n
dGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkp
OwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAg
LTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0
aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1h
bmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRpdENvbW1h
bmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVibGljIElu
c2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBs
aWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGll
cikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1
cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApp
bmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVk
aXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGRO
b2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAg
ICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAg
ICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9k
ZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2Ex
OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJW
aXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBF
ZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEw
MCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSos
IEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgp
IG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1w
bGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxp
bmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUg
QEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBF
ZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQor
dm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVs
ZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0
aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxl
dGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAg
ICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1h
bmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRl
KSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9y
OjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRF
ZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERv
bid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBX
ZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1h
bmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50
KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlv
bi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290
RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgp
OwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRp
dG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0
ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNl
bGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAg
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVk
aXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0
LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAg
IG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5n
QWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rp
b25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJh
bWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpj
aGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYg
dGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxl
Y3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2Vs
ZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRv
cjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0
aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURP
TVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7
CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
b3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5n
ZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3
aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4g
aW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51
bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVs
ZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERl
bGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4
LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25m
aXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3Np
dGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9u
LCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNw
ZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4
IGE4ZjFiNDEuLmUwOGZjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RF
ZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxl
Y3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQg
dXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVp
dmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAot
ICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24p
OworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgp
LCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGly
ZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyAr
MjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZl
cmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09
IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRT
ZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3Jv
bGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkK
KyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBl
bHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xs
SWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2Vs
ZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBu
ZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMg
b3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAg
aWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCku
ZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFt
ZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3
U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2Zy
YW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFu
dWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25J
bnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBv
c3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2Vs
ZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJh
bWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24g
aXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlz
IGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNl
bGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlv
bnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFs
aWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rp
b25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdy
YW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBl
bmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2
b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkK
QEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlv
blVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJh
bWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0
aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRl
KQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFs
aWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZShpbnRlbnQpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0
ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRp
b24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFu
dWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJv
dW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNl
bGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVy
ID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlw
ZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7Cisg
ICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVj
dGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7
CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlv
bi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50
ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAg
IGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNh
c2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dp
dGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAg
IGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6Cisg
ICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNl
bnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3Jh
cGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5
ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7
CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6Cisg
ICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0
aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAg
ICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24g
PSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhP
YmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1v
ZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQog
ewpAQCAtMTA3NCw2ICsxMTU1LDExIEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0
ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAg
IGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0g
b3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
aWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewor
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0
aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJp
dHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBh
biB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVj
dGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIu
CiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1
c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9v
dC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24p
KQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNl
bGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9z
ZVR5cGluZykKQEAgLTI0MjAsNyArMjUwOCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxl
Y3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVj
dGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFu
dWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZh
dWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJh
bWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFt
ZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJh
bWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLmI3NGZiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxl
Y3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgog
I2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2Vy
VHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAg
ICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxw
dHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRW
YWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0
aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBD
dXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3Jh
bnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlv
bnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxp
Z25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5
ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2Vs
ZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNs
ZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQ
b3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlv
bigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgog
ICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0
aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRp
b24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAg
ICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxl
Y3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dl
cmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkludGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uYWVj
NDc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgpAQCAtNTAsNiArNTEsMTEg
QEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBBU1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkp
OwogfQogCitTdHJpbmcmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgp
Cit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgp
LnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgpOwpAQCAtNjUsOSArNzEsOSBAQCB2b2lk
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9k
ZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUu
Z2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsK
KyAgICAKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAg
ICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBs
eUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9v
ZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04MiwxMCArODgsMTAgQEAgdm9p
ZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9u
b2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAg
ICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4
dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbiht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3Rl
eHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBw
bHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1f
b2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVu
Z3RoKCksIElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtOTcsNCArMTAzLDE0IEBAIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uZTMzZjU3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAj
ZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM5LDkgKzQwLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKICAgICB9CiAK
LXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3RlZDoKICAgICBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJy
aWRlOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTUxLDcgKzU0LDEwIEBAIHByaXZhdGU6CiAjaWZu
ZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAg
ICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYs
OSArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQu
aCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01
Nyw4ICs1OSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAog
ICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQu
Z2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5v
ZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9z
aXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9u
KGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlw
ZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9u
KSk7CisgICAgfQogfQogCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHko
KQpAQCAtNjcsOCArNzEsMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZv
cmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBv
c2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlv
bihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lF
ZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0
VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0
aW9uKSk7CisgICAgfQogCiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJ
T04pOwogfQpAQCAtODEsNCArODcsMTQgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjhkOWM2MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2Rl
ZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MzgsMTYgKzM5LDIwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKICAgICB9CiAKLXByaXZhdGU6
Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2Rl
PiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHko
KSBvdmVycmlkZTsKICAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5v
ZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5h
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGls
ZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUu
LmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgK
QEAgLTU5LDEwICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwogICAg
IH0KIAotcHJpdmF0ZToKLQotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Citw
cm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
IHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgSW5z
ZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0
SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKKworcHJpdmF0ZToKIAogICAgIHZvaWQgZGVs
ZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjYxYWNhYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGls
ZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBh
c3RlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFkMDU1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQs
IFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2YXRlOgorICAg
IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0
cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDdhN2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJp
bmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
bm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVw
bGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVBhc3RlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNmEzNTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0
OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRl
eHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmUwMTdiODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwgY291bnQpCit7Cit9CisKK3ZvaWQgUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMGZk
YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6
CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOGJjNzhjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0w
LDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVs
ZXRlZFRleHQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkK
KyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgor
ICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
LCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4
dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9k
ZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSwgdGV4dCwgcG9zaXRpb24pOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6aW50ZW50KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVwbGFjZUFwcGx5RWRpdFR5cGUoKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yOTBjMWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCk7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAg
IFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBmYjM4
ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVRl
eHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNDQsMTQgKzQ1LDIwIEBACiAj
aW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5j
bHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNt
YXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRt
bGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTE0ODIsNiArMTQ4OSwzMCBAQCB2
b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1cGRhdGVOb2Rlc0luc2VydGVkKE5vZGUgKm5v
ZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50ID0gbGFzdFBvc2l0aW9uSW5PckFmdGVy
Tm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsKIH0KKyAgICAKK1JlZjxFZGl0Q29tbWFuZD4g
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0
aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5k
KGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJp
bmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVs
ZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
aW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIH0KK30KIAogLy8g
RHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdlJ3JlIGp1c3QgcGFzdGluZyBhIHRleHQgbm9k
ZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2VydCB0aGUgdGV4dCBub2RlCiAvLyBkaXJlY3Rs
eSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xkcyB0aGUgc2VsZWN0aW9uLiAgVGhpcyBpcyBt
dWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXplZCBjb2RlIGluCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uZTI2
YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIHBlcmZvcm1U
cml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVudEZyYWdtZW50Jik7CiAKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2Rl
PiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICBQb3NpdGlvbiBtX3N0YXJ0T2ZJbnNl
cnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9lbmRPZkluc2VydGVkQ29udGVudDsKICAgICBS
ZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlvblN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRl
ICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgog
I2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAg
LTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoY29uc3QgU3Ry
aW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIAogdm9pZCBUeXBpbmdDb21tYW5k
OjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBz
ZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21t
YW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJ
bnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNl
cnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5v
bmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVz
cGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOwogCiAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U0
MjIxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
VHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYmQxNDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVm
aW5lIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uN2IyNDYwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVUeXBpbmc7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44MTc0NjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQg
OiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+
IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAg
ICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5z
ZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0K
KworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDFiMTY2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVk
ZSAiVGV4dC5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCisg
ICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCByZWJhbGFuY2VUeXBlKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRl
eHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQp
OworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTNiNWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCA6
IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLCBSZWJhbGFuY2VUeXBl
IHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydFRleHRDb21t
YW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJhbGFuY2VUeXBlKTsKKworICAgIHZpcnR1YWwgUmVm
PEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0
Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zMGRkNTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBs
YWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZjMmUw
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDog
cHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9h
dGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCmluZGV4IDdjMjEzNjUuLmU2OTVhNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4
LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0KQogfQogCiAKLXZvaWQgRnJhbWVTZWxl
Y3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4u
MDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxl
Y3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlD
b252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50
KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVj
dGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNo
ZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCkt
PnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0
T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVu
dCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFl
NmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVl
KQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0g
ICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5l
clRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCpp
bm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFs
dWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2Rlcygp
KSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAg
IGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAg
ICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNo
ZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9Cisj
ZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19F
WENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5l
bmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJS
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0
SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9u
KHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9Cisj
ZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYuLjA3ZjM4
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQsNyArMzE4NCwx
NCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1l
LCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246
OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gaW50ZW50ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91cyk7CisjZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKFVzZXJUcmlnZ2VyZWQpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIGludGVudAorI2VuZGlmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5
Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250314</attachid>
            <date>2015-04-07 16:45:07 -0700</date>
            <delta_ts>2015-04-07 17:32:41 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>201584</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDI1MmMwZDA3ZTAzNDFkMmI4Y2JkYjkyN2ZjYzU1OGJiN2ExM2YzYTgKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uZGE3NGVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRo
ZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUt
Y2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKKzIwMTUtMDQtMDcgIERvdWcgUnVzc2Vs
bCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5n
ZSBub3RpZmljYXRpb25zCisKKyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbDoK
KwogMjAxNS0wMi0yNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBVcGRhdGUgdHJhY2sgc2l6ZXMgYWZ0ZXIgZGlz
dHJpYnV0aW5nIGV4dHJhIHNwYWNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2NDZk
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZv
ci1hcmlhLXRleHRib3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQogICAg
ICAgICAvLyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkluc2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRlZE5v
dGlmaWNhdGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRp
b25DYWxsYmFjayk7CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmlj
YXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxi
YWNrKTsKICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOThkZmQ4OS4uYjU2MzdjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTE0NzQsMTAgKzE0NzQsMTQgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisg
ICAgZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcv
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAog
ICAgIGVkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCiAg
ICAgZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xNDkwLDE3ICsxNDk0LDIyIEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBlZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwCiAgICAgZWRp
dGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcAorICAgIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCiAgICAg
ZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAK
ICAgICBlZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcAogICAgIGVkaXRpbmcvTW92ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAorICAgIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Jl
bW92ZUZvcm1hdENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAg
IGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5j
cHAKICAgICBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcv
U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwCkBAIC0xNTE2LDYgKzE1MjUsMTAgQEAgc2V0KFdl
YkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAog
ICAgIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAogICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAg
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9VbmxpbmtDb21tYW5kLmNwcAog
ICAgIGVkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVNlbGVj
dGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZjEzYzg4Li41N2VjYTAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjA5IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUu
Y29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQy
NzE5KQorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNv
bnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1
ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBh
Y2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0
RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVs
aWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBB
bHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dv
cmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhl
IGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxl
Y3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24g
dG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVz
cG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBw
b3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgYXJlIHN0aWxsIGlu
IGRldmVsb3BtZW50LiBTdWJtaXR0aW5nIHBhdGNoIGVhcmx5IGZvciBmZWVkYmFjay4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZp
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNhbml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uOjpBWFRleHRTZWxl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29u
dGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVs
ZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVj
dGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRl
eHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGlu
ZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAq
IGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Np
dGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJv
bU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAg
ICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRU
eXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9DdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGlu
ZXMpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRD
b21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6aW50ZW50KToKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRlbGV0
ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFw
cGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29w
eSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8p
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJ
ZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFy
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAgICAqIGVkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZh
dWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCk6CisgICAgICAgICog
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGlu
Z0luc2VydFRleHRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6
CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVk
aXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9hdGsvRnJh
bWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9h
cmRTZWxlY3Rpb24pOgorCiAyMDE1LTA0LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIHZpZGVvIHBsYXlpbmcgdG8gZXh0ZXJuYWwgZGV2
aWNlIHNob3VsZCBub3QgYmUgaW50ZXJydXB0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC02Mzc5LDEyICs2Mzc5LDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3Jv
bGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0
b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Ny
b2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1
RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAw
NDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFC
NzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1
NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9
OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3Jt
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9
OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMw
MEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAx
NTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxp
ZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYg
LyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICov
OyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1M
b2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJ
RjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FE
IC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMx
MDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAz
M0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07
CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRU
eXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJ
RjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAz
RUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYg
QEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAw
M0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYy
NjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5j
cHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEy
NTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3
MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5
MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQw
QkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3
MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlG
NTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFB
Qjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJB
NzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJC
MDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNE
RTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2Fs
ZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYx
NUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIz
RjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAg
LyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIz
RjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8q
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZB
NDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFB
Q0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9
OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0
NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsK
KwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFB
Q0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVB
MTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQw
QjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQw
MEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRp
b25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1
RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUy
OTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRB
IC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlz
dEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERh
dGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAq
LzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0
MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBA
IC0xNDAwNyw2ICsxNDAzMSw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3Jv
bGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25h
cFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5
bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0
eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1
NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJv
bGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIg
LyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0MDE5LDggKzE0MDQ1LDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAv
KiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFu
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBD
ODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3Jt
TG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJB
ODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFB
QzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBC
dXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcw
LDYgKzE0MTA0LDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBX
ZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
ZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEy
NTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJE
NjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0Ey
MjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFC
NzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1
NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Q3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZp
ZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNl
dHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwpAQCAtMTQwODAsOCArMTQxMjAsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdG
ODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQx
MjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAg
LyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlG
QTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBC
MEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQx
RDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1M
RGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxE
YXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkw
RkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTc2OTcsNiArMTc3NDUsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1
ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAz
MDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEw
MDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEw
MDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQz
RDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICov
LAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1
ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0
OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYg
KzE3NzU3LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFs
dGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlv
bkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRp
b25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0Mw
MDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJ
RjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNw
cCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlv
bi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAg
Ki8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBA
IC0xNzc1MSw2ICsxNzgwNywxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBN
b2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1
ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEw
MDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcw
ODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
ICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQg
LyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5
REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAog
CQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQu
aCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFu
ZC5jcHAgKi8sCkBAIC0xNzc2MSw2ICsxNzgyMSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEw
MDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJ
CTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJ
CQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJ
CUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERB
ODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAog
CQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICov
LAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywK
IAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJ
CUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAv
KiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUND
RUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJ
RjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJ
CTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3
MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5
RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIs
NyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRp
b25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENE
RCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBB
cHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAw
MURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJG
MERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICov
LApAQCAtMjQ0OTMsNiArMjQ1NjYsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAv
KiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0Ix
NDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFt
ZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NT
S2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2
MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NDgxNiw2ICsyNDg5MCw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBB
MTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyog
SFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1
NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5
NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjUwNDUsNiArMjUxMjAsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1
ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEw
MDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAq
LywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1
ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1
RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNTA1NCw2ICsyNTEzMCw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMz
IC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAw
OUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5
MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIz
NDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4
NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRF
ODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTI1MTczLDYgKzI1MjUwLDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyog
SlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFF
IC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFC
QUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNC
MDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2Vz
dHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlC
QzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJG
MDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNY
TUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlG
NUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJB
M0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3
OTUsNiArMjY4NzQsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29k
ZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBU
ZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMw
MDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJG
NDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNl
ckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAv
KiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAw
MzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5
MjgsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBp
biBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRp
bGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0
NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNr
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGls
ZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQz
RUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1
dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQx
M0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0Iw
QzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZy
YW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8q
IFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVG
dWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAw
RDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5
NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJv
YXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQg
LyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4
QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApA
QCAtMjcwMTAsNiArMjcwOTMsNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3
MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAx
RDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAv
KiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0Rjgy
NTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjc3NTIsNiArMjc4MzYsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3
MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3Vw
aW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEg
LyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBA
CiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmlj
ZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMw
MkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
Nzk2NSw2ICsyODA1MSw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhU
TUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2
QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTRE
MTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAq
LywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQg
LyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZD
MEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rp
b24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MTEzLDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVC
MTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJl
TE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERF
REExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZF
QmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8q
IEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIy
Myw2ICsyODMxMSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRl
ZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAv
KiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0
NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8q
IEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1
QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2
ICsyODMzMiw3IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlw
ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdy
aWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYx
MkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVB
NTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAv
KiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5
QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQx
NTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQy
Miw2ICsyODUxMiw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5
RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1
MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyog
SW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAw
RjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4ODAsNiAr
Mjg5NzEsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1Bl
cmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUx
NUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJp
b2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4
IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5
RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjg5MTQsNiArMjkwMDYsNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAv
KiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURC
RDE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNz
aW9uRGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNC
NzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNS
VENTdGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3
RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAs
NiArMjk3ODMsNyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmll
cnNNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAv
KiBSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIx
N0QxNENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAv
KiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0
RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJ
CQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZh
bHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBT
U0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JN
YWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0
YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIw
NDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3
IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291
cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBp
biBTb3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0g
aW4gU291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5
NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uNzA4MzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
MjksNiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZh
Y2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1f
bm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0
aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkK
IHsKIH0KIApAQCAtNzQyLDYgKzc0MywyMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBh
cmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
bV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQs
IHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1
ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJl
aGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0
aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5v
dGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOwor
CisgICAgZm9yIChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykgeworICAgICAgICAv
LyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICAgICAgcG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6Omdl
dDwxPihub3RlKSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICB9
CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RU
YXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2Nywy
MjcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0
ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFY
T2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4
dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkK
KyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBl
KSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmlu
dGYoIlVua25vd24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0OgorICAgICAgICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50
ZigiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgewor
ICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50Zigi
VW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEZWxldGU6CisgICAgICAgICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmlu
dGYoIkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6Cisg
ICAgICAgICAgICBwcmludGYoIlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgICAgIHByaW50ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoK
KyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYo
IlVua25vd246OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAg
ICAgICAgICBwcmludGYoIlByZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYo
Ik5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGln
dW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2gg
KGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93
biIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJh
Y3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlTZW50ZW5jZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlEb2N1bWVudDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5QWxsOgorICAgICAgICAgICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykK
KyAgICAgICAgcHJpbnRmKCItU3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVu
dDsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0
dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlv
bkludGVudDsKKworCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsK
IAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAg
IGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5p
c0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0
ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3Rp
ZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRD
aGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50
KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNl
bGVjdGlvbkludGVudCgpOworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBz
YW5pdGl6ZVBhc3N3b3JkVGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmlu
ZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2Jq
LmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7
CisgICAgICAgIHRleHQgPSBvYmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmll
bGQoKS0+cGFzc3dvcmRGaWVsZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5v
ZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsK
KyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENh
Y2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0gdGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChz
YW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2Vf
dHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAg
ICAgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRP
bmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBv
YmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0
byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAg
IC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRl
ZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYK
K30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBk
ZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBp
bnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYg
KCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRp
dFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBp
bnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0
QXR0cmlidXRlcygpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXpl
ZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3RyaW5nIHNhbml0aXplZEluc2VydGVk
VGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRP
ckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3
b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAg
ICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBs
ZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0
ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9z
dFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAg
Ly8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9zdFRleHRSZXBsYWNlbWVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVk
VGV4dCwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7Cisj
ZWxzZQogICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAg
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRp
dFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVk
RWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwg
cG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNl
cnRlZFRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5n
RXZlbnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZl
bnQpCkBAIC0xMDg0LDYgKzEzMTIsMTcgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBu
b2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmpl
Y3RDYWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpy
b290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChBY2Nlc3NpYmls
aXR5T2JqZWN0ICpmaXJzdENoaWxkID0gcm9vdE9iamVjdC0+Zmlyc3RDaGlsZCgpKSB7CisgICAg
ICAgICAgICBpZiAoZmlyc3RDaGlsZC0+aXNXZWJBcmVhKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZpcnN0Q2hpbGQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9i
amVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjYzNTA2MDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xODksMTIgKzE4OSw5NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZp
Y2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQs
IFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RU
YXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAK
LSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAg
ICBBWFRleHREZWxldGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlRWRpdCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwK
KyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKwor
ICAgIGVudW0gQVhUZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24s
CisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisg
ICAgICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAg
ICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBB
WFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAg
QVhUZXh0RWRpdFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRU
eXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4
dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24o
Tm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25E
aXNjb250aWd1b3VzCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsK
KyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUNoYXJhY3RlciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFyYWdyYXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2Us
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRz
IHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBh
Y3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRp
bCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEg
YWxsIGdyYW51bGFyaXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4
dFNlbGVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworCisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0g
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAg
ICAgICAgICA6IGRpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgICAgICAgICAsIGdyYW51bGFyaXR5
KGdyYW51bGFyaXR5KQorICAgICAgICB7IH0KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7Cisg
ICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247Cisg
ICAgICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJv
b2wgc3luYzsKKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVj
dGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisg
ICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlv
bikKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6
IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNo
YW5nZSkKKyAgICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wg
c3luYykKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24o
QVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgewor
ICAgICAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7Cisg
ICAgICAgIH0KKyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChj
b25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRl
eHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsK
ICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxOCw3ICszMDIsMzUgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1l
bnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAK
LSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENo
YW5nZSB7CisgICAgICAgIEFYVGV4dEluc2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAor
ICAgIH07CisgICAgaW5saW5lIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhU
ZXh0RWRpdFR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7Cisg
ICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25v
d246CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAg
ICAgfQorICAgIH0KKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRl
eHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChF
bGVtZW50Kik7CkBAIC0yMjksNiArMzQxLDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2Rl
SW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0K
IAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAg
IAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFj
Y2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3Qq
LCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMzU4LDExIEBAIHByaXZh
dGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6
cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3Rp
ZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsK
KworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9y
PHN0ZDo6dHVwbGU8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWFRleHRFZGl0VHlwZSwg
U3RyaW5nPj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVu
ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAg
IHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMzcwLDggQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFw
VUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nl
c3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRT
ZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAt
MzA4LDggKzQyOSwxNiBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxi
YXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFu
ZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVj
dCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hv
cihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0
RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vs
c2UKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0
aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZp
Y2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi5hYzM4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApA
QCAtNTUyLDYgKzU1Miw0NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3
b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVs
ZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5v
ZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2Rl
LT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dv
cmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQg
PSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+
KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhP
YmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUo
ZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
KSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRl
KCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBl
bGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRF
bGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5p
c1Bhc3N3b3JkRmllbGQoKTsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJ
bnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCmluZGV4IDNlNzU3MmYuLjdkYmQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JD
b250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlk
ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uYjU2OTU3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAg
LTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2Uo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWlu
ZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmll
bGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
VGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJl
YSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
QEAgLTE0ODgsMTQgKzE0ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFu
Z2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIp
LnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0
aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7
Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9u
SXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNU
UkVBTSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwg
UG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9
IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9z
aXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxl
Y3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1f
cmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBV
UkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5
NjQsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2li
bGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQu
aXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisK
ICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBp
ZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChy
YW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVu
ZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkp
CisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAg
ICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJs
ZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+
ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAg
bV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRl
eCAxMTllMGIwMC4uYWI3OTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVk
Tm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNo
ZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRU
ZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0KaW5kZXggYjMwMGU3Ny4uYjMwZTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBA
QAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBA
IkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNo
YW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRp
dFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVz
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VW
YWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFs
dWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5n
dGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0
Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJp
YnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJp
YnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBs
ZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5v
dGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlv
bjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmos
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgp
OworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rp
b25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENh
cGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAh
PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAg
ICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAg
ICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQu
c2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAg
IGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFu
Z2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6
c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5k
KCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFy
a2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAg
ICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmls
aXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNl
bGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8g
cmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9u
cyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlv
bjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwor
c3RhdGljIE5TRGljdGlvbmFyeSogdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQog
eworICAgIE5TU3RyaW5nKiB0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVn
ZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0
dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UgPSBbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNz
aWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRl
Z2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9u
TGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVM
ZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRl
eDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAg
IGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAo
cG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2Jq
LT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAg
ICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJd
ID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOwor
fQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2Jq
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHVzZXJJbmZvID0gW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVu
dENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisg
ICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQg
PSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5v
dGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8v
IFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAg
W3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZh
bHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAg
ICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1
cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdl
ID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVs
ZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07
CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGlj
dGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAg
ICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07
CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRh
cmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0
Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFu
Z2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisg
ICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4K
KyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmls
aXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpm
cmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50
ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRp
b25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjoo
V2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZv
clZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxl
UG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFk
ZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVy
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRt
bGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFw
cGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5v
ZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0
eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAg
ICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3Ry
aW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5l
YnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBp
ZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAg
ICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAs
IG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1l
bnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlv
biA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDog
Y3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9z
aXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRv
QXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQog
CiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJl
bnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAg
IC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAg
IHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xp
bmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUt
PnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBw
ZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykK
IH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBl
bmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRl
Li40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
CkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5k
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8
Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4s
IFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8
Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisK
ICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1f
bm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgog
I2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2Vy
LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNs
dWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBA
IGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSog
bm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorewor
ICAgIHJldHVybiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4g
aW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQog
ewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpj
cmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVD
b21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFm
dGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hp
bGQpCkBAIC01MjIsMjMgKzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1
dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAg
ICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJ
bmRleChzdGFydEluZGV4LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0
YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7Cisg
ICAgcmV0dXJuIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IHRleHQpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05v
ZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4g
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlm
IChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAg
ICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
Y291bnQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5v
ZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9
CisKK1JlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQor
CitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7
CisgICAgcmV0dXJuIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9k
ZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2Vt
ZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBk
ZWxldGVDb21tYW5kID0gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7
CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVu
dFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5n
JiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
QmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQor
eworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNb
bV9jb21tYW5kcy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXgg
YzJiNDg5ZC4uNDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBj
bGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRp
Y2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJl
Y3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJs
aW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEw
MywxNSArMTA1LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQo
UGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFy
dERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29s
IHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBi
b29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUp
OworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29u
c3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBh
c3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQ
dHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFu
UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2Rl
PiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRy
PE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERv
Tm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9v
bCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5z
ZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJ
bnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
OwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxl
bWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9p
ZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBh
c3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAg
IHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3Np
dGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZp
cnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAg
dmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsK
ICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxh
Y2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mZGY5YmYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNv
dW50KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
KyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3By
b3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0
ZTcwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
c21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBi
b29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6
IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXpl
TWFya3VwKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRB
Y3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUg
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1
bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxl
dGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5k
ZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGlu
Zy5oIgogCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFT
U0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmlu
ZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVy
biBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgp
CiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0
cmluZ0RhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5
IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1l
bnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hh
bmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRl
ZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3Np
dGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zm
c2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29m
ZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBW
aXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRl
ZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgKaW5kZXggMjQ5MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVk
aXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVk
VGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBA
IHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29t
bWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25l
ZCBtX29mZnNldDsKICAgICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0Fj
dGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQg
aXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAv
LyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMg
dGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBz
aG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJu
IEVkaXRBY3Rpb25EZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJl
c2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBl
eGFtcGxlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkNvbW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21t
YW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUg
Ikluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRU
ZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAg
ICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBj
b2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgs
IGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21t
YW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVu
dCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGlj
dGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBS
ZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0
LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGll
cjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBw
dWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mNDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1
cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1
cHBsaWVyKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRf
aAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNl
cnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFy
a2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NS
ZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
KGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBh
c3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8
RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBA
QCB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3Rh
cnROb2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAj
ZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlVW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRp
dENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwor
dm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICgh
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOwor
fQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNk
ZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5
LDYgKzYwLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07
CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAg
IEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYK
IAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlw
ZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVk
aXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXgg
NzEwYWEzOS4uYzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRp
b25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2lu
Y2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRl
cm5hdGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhE
aXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhT
bWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlv
bldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24pCiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUo
ZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0
QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBs
eUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNt
YXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsx
MDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRl
RWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUg
d2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJl
IGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBv
cHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0
YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVD
b250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVt
ZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAg
dXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9p
ZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikK
IAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9
PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5T
bWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVk
aXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3ND
b3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
ci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9
CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0
U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFu
ZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlv
bi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBA
IC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21t
YW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJk
YXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBj
b250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAg
ICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09
IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5v
dENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8v
IFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdp
dGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3Ig
ZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0
IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2
YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9u
KFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29s
IGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlv
bldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFy
VGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92
ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAg
ZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBv
c2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21w
b3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2Vs
ZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2Vs
ZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRp
dG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBw
ZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLmUwOGZjYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAg
RWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxl
bWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxl
UG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25P
blNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3Mu
ZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBt
X3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9z
LmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCks
IGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQ
b3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dl
cmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hh
bmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJl
U2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwor
ICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsK
KyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAg
ICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVu
dCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0K
IAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXRE
aXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9s
bCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBA
IGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFu
Y2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25E
b2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAo
UmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5m
cmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAm
JiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAg
ICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAg
bmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5
KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92
ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5
CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2Vs
ZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAg
ICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYg
dGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBA
QCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJh
bmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxp
Z24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlv
bk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZy
YW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRp
bmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNs
ZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVh
bFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAg
IGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAs
NyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAg
ICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogfQogCiB2b2lk
IEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEw
MTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1v
dmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNC
b3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51
bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFy
eSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBh
bHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9v
bCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0
aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAg
ICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAg
ICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQu
dHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxh
cml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFu
dWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2Ug
U2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5k
YXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6Cisg
ICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBi
b29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNh
c2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAg
IGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5
OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBM
aW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3Vt
ZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoK
KyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAg
ICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50
LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAg
Y2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJl
dmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2Vu
ZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2Vs
ZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBF
VXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsxMTU1LDExIEBAIGJv
b2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0g
QWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAg
ICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRl
bnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21l
IG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmln
YXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZl
IGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBv
c2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBi
ZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgp
CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpz
ZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50
KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAg
ICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0K
IH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2Us
IEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjAsNyArMjUwOCw3
IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWlu
aW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5l
eHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rp
b24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0
eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7
CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFy
dCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5k
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUu
LmI3NGZiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVj
dGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0
eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAg
LTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlw
aW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlv
biB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGlu
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24m
LCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3Vs
ZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxh
cml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRT
ZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0
eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBC
QVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7Cisg
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQg
dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rp
b25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRT
ZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpA
QCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlv
blBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4
dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0
U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0K
ICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5z
aWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBp
bmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0
aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkK
K2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkKIHsKIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uYWVjNDc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxh
Y2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSAiVGV4dC5oIgpAQCAtNTAsNiArNTEsMTEgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kK
ICAgICBBU1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwogfQogCitTdHJpbmcmIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30K
Kwogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29s
IHBhc3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5h
YmxlZCgpOwpAQCAtNjUsOSArNzEsOSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmRvQXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90
ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJs
ZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9S
TShJT1MpCkBAIC04MiwxMCArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJl
Zm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2li
bGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5k
ZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwog
fQpAQCAtOTcsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
aW5kZXggMzEwYmJiMy4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21t
YW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIHRleHQpKTsKICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNl
cnRlZFRleHQoKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQp
OwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTUxLDcgKzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9p
ZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0g
ICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9k
ZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBk
MTZiNWQ2Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw4ICs1OSwxMCBAQCB2b2lkIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwog
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2lu
c2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Piht
X2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hp
bGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxk
LmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9p
bnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFs
dWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzEsMTAgQEAgdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRl
eHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24o
bV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9p
bnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4o
bV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENo
aWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGls
ZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2Rl
VmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9pbnNl
cnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODEsNCArODcsMTQgQEAg
dm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oCmluZGV4IGQ0Yjc2MmQuLjhkOWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMTYgKzM5LDIwIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRU
b0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRy
PE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNpZm5kZWYg
TkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisK
ICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZD
aGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRUZXh0Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTU5LDEwICs1OSwxMSBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50
LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAotcHJpdmF0ZToKLQotICAgIEluc2Vy
dFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4dENv
bW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBl
KTsKKworcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWNhYmIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVm
UHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZv
cmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDU1OTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApA
QCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0lu
c2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNl
cnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
NDdhN2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVk
VGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNmEzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQor
Citwcml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTdiODEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNl
dCwgY291bnQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMGZkYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAg
LTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7
CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IGNvdW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJp
dmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
Tm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJjNzhj
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwg
dGV4dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3ZvaWQgUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3du
OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6Cisg
ICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAg
ICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRp
dFR5cGUoKSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW50ZW50KCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVwbGFj
ZUFwcGx5RWRpdFR5cGUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTBjMWM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwg
ZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZTsKKworcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSos
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVk
ZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRp
b24uaCIKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxl
bWVudC5oIgpAQCAtNDQsMTQgKzQ1LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5o
IgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisj
aW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxp
bmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Lmgi
CisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5
TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0
eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0
b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1
ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAi
VmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJr
dXAuaCIKQEAgLTE0ODIsNiArMTQ4OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
Ojp1cGRhdGVOb2Rlc0luc2VydGVkKE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRD
b250ZW50ID0gbGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgp
KTsKIH0KKyAgICAKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9l
ZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4g
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hp
bGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRB
Y3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRD
b21tYW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3
aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAg
ICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFj
dGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwg
ZGVsZXRlZFRleHQpOworICAgIH0KK30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJl
IHdlJ3JlIGp1c3QgcGFzdGluZyBhIHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGlu
c2VydCB0aGUgdGV4dCBub2RlCiAvLyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBo
b2xkcyB0aGUgc2VsZWN0aW9uLiAgVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFs
aXplZCBjb2RlIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBA
IHByaXZhdGU6CiAKICAgICBib29sIHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNl
bWVudEZyYWdtZW50Jik7CiAKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVm
PEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
CisKICAgICBQb3NpdGlvbiBtX3N0YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24g
bV9lbmRPZkluc2VydGVkQ29udGVudDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2Vy
dGlvblN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXgg
OTMyOWNkZi4uOGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQu
Y3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1
ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRl
ICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgog
I2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGlu
Z0NvbW1hbmQ6Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCkKIAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xp
bmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAg
UmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPElu
c2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9z
aXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmVi
YWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6
UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
Y29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U0MjIxMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCitUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjAwYmQxNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyNDYwNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTc0NjEzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9o
CisjZGVmaW5lIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8
Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBT
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTY2NQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlR5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBS
ZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1
bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKQoreworfQorCitS
ZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5
cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNl
cnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBp
bnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjc0OTNiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisj
aW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCA9IGZhbHNlLCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VM
ZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFR5cGluZ0luc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJ
bnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJh
bGFuY2VUeXBlKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50
b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGRkNTMx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRl
eHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZjMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBs
YWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCmlu
ZGV4IDdjMjEzNjUuLmU2OTVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
YXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0
ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgbWF5
YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJw
T2JqZWN0KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCkKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVT
ZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4uMDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBA
QCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91
bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJh
bWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24u
c3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewog
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVj
dGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6
OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAg
ICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5z
dGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAog
I2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01
NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5l
clRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBB
U1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFs
dWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIFN0cmluZyBwcmV2aW91
c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIGJvb2wgdGV4dElz
Q2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQg
fHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRl
cmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50
KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RO
b3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9i
c2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5z
ZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmICh2
YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAgICAg
IGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExB
VEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsK
KyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxl
dGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2
YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklz
QmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3Jt
Q29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYuLjA3ZjM4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKQEAgLTMxODQsNyArMzE4NCwxNCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFs
S2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0
aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZp
c2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENP
Q09BKQorICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cyk7Cisj
ZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVT
ZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpCisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAsIGludGVudAorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFt
ZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250320</attachid>
            <date>2015-04-07 17:32:41 -0700</date>
            <delta_ts>2015-04-07 18:43:14 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>201717</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGNhYTI1YWY3ZjZjMGE0MDRkZmYxOWEyYzBlZWJmYmZjY2EyNDRlNjUKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uZmRkZDNlMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRi
b3guaHRtbDoKKworMjAxNS0wNC0wNyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNv
bT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMKKworICAg
ICAgICBGaXggZmFpbGluZyB0ZXN0CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorCiAyMDE1LTAyLTI1ICBTZXJnaW8g
VmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBM
YXlvdXRdIFVwZGF0ZSB0cmFjayBzaXplcyBhZnRlciBkaXN0cmlidXRpbmcgZXh0cmEgc3BhY2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAppbmRleCBhMWU4NDNlLi4xMjY0NmRmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1m
b3ItYXJpYS10ZXh0Ym94Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCkBA
IC00Nyw3ICs0Nyw4IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIC8vIFRyaWdnZXIgdmFsdWUg
Y2hhbmdlLgogICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNl
LCAiaGVsbG8gIik7CiAKLSAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gYXhUZXh0Ym94
LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAg
dmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0
SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwogICAgICAgICBzaG91bGRC
ZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA5OGRmZDg5Li5iNTYzN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ3NCwx
MCArMTQ3NCwxNCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9CcmVha0Jsb2Nr
cXVvdGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCiAg
ICAgZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRpb25B
bHRlcm5hdGl2ZS5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9FZGl0Q29tbWFuZC5j
cHAKICAgICBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKICAgICBlZGl0aW5nL0VkaXRvci5jcHAK
QEAgLTE0OTAsMTcgKzE0OTQsMjIgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcv
SW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0luc2VydExpc3RDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAogICAgIGVkaXRpbmcvTWVyZ2VJZGVu
dGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0
TGV2ZWwuY3BwCiAgICAgZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlQ1NT
UHJvcGVydHlDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0
aW9uLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFu
ZC5jcHAKQEAgLTE1MTYsNiArMTUyNSwxMCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRp
dGluZy9UZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9UZXh0SXRlcmF0
b3IuY3BwCiAgICAgZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwCisgICAgZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKICAgICBlZGl0aW5nL1VubGlua0NvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9WaXNpYmxlUG9z
aXRpb24uY3BwCiAgICAgZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGZmMTNjODguLjU3ZWNhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMDkgQEAKKzIwMTUtMDQt
MDcgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJp
Y2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisKKyAgICAgICAgTmV3IEVk
aXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vzc2liaWxp
dHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24gY2hhbmdl
IG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0
byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNw
b25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFu
aXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2Fs
ZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgor
CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQg
b2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5n
ZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0cyBhcmUgc3RpbGwgaW4gZGV2ZWxvcG1lbnQuIFN1Ym1pdHRp
bmcgcGF0Y2ggZWFybHkgZm9yIGZlZWRiYWNrLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpBWE9iamVjdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6c2FuaXRpemVQYXNzd29yZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb246OkFYVGV4dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5n
ZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBh
c3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxl
UG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNo
ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGlj
dGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxh
Y2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2Rl
QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRU
ZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5n
QWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBl
ZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9u
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05v
ZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVhdGVX
aXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGllZEVkaXRpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNlbGVjdEFsbCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjppbnNlcnRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRv
QXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5h
cHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAgICAgICAqIGVk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBw
bHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNy
ZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBs
YWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBs
YWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6aW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmg6CisgICAgICAg
ICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0Nv
bW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6
OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1R5
cGluZ0luc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbik6CisKIDIwMTUt
MDQtMDcgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gdmlkZW8gcGxheWluZyB0byBleHRlcm5hbCBkZXZpY2Ugc2hvdWxkIG5vdCBiZSBpbnRl
cnJ1cHRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDU3ZjRjMWEuLjc4NDExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNzksMTIgKzYzNzksMjIgQEAK
IAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMx
OTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlG
NDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhB
MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2RDgw
MDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0Mw
MDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsK
IAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMw
MEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMw
MEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9s
bGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmgg
Ki87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1
RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1
NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1
NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhE
QTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3
OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVC
M0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYy
NjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5
cGUuY3BwICovOyB9OwpAQCAtNjQzNCwxMiArNjQ0NCwyNiBAQAogCQlGNTVCM0RERTEyNTFGMTJE
MDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBl
LmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFC
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAx
MjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmggKi87IH07CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8q
IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsK
KwkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyog
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyog
TG9jYWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTcz
REUxMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9j
YWxlTWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmggKi87IH07CisJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAg
LyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNz
YWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJ
RjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8q
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1QTUy
OTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFB
Q0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9
OworCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
ICovOyB9OwogCQlGNUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMw
NDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJ
CUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NF
MDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNB
OTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8q
IERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTE0MDA3LDYgKzE0MDMxLDggQEAK
IAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0
eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7
IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUw
NjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2Fn
ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMTksOCArMTQwNDUs
MTYgQEAKIAkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1
RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1
RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1M
b2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FE
IC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1
dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRleHRJ
bnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFG
MTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNzAsNiArMTQxMDQsMTIgQEAKIAkJRjU1
QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVUkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NEYw
MDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0
QzAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlG
NTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA4MCw4ICsx
NDEyMCwxNiBAQAogCQlGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFDQ0Iz
QzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NCM0Mw
MDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1
MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjEx
IC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVG
MUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFDQ0VB
NzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyog
SFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRN
TERhdGFMaXN0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0
RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5Nyw2ICsxNzc0
NSwxMCBAQAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29t
bWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29t
bWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtD
b21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4
MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNE
NjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAogCQkJCTkzMzA5RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc3MDUsNiArMTc3NTcsMTAgQEAKIAkJCQlDRUNB
REZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlD
RUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
Q0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlG
NTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgKi8sCisJCQkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0
NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFC
NzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkz
MzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQw
OTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2
NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCAqLywKQEAgLTE3NzUxLDYgKzE3ODA3LDEwIEBA
CiAJCQkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZl
bC5oICovLAogCQkJCTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rp
b25Db21tYW5kLmggKi8sCisJCQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2
OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgxQUNB
MjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8q
IFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAw
NTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhFMENG
RDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzYxLDYg
KzE3ODIxLDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0
RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkwMEYz
NEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUy
OERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0NEU5
ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5
Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8s
CiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcCAqLywKQEAgLTE3Nzk2LDYgKzE3ODYwLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAw
MEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5
MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0OTEw
MDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1OUZB
NDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki8sCisJCQkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1
MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVC
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNF
RjNFIC8qIFVuZG9TdGVwLmggKi8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVu
bGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxp
bmtDb21tYW5kLmggKi8sCkBAIC0yMzY5MCw2ICsyMzc2Miw3IEBACiAJCQkJNkM1NjhDQjExOURB
RkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBF
RjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25D
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ5Myw2ICsyNDU2Niw3
IEBACiAJCQkJMzEwNjAzNzkxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9N
V2ViS2l0Q1NTRmlsdGVyVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
N0QwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBC
RjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVz
UnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI0ODE2LDYgKzI0ODkwLDcgQEAKIAkJ
CQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1M
SW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2
MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1
QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3QkM4NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzMzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFu
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1M
S2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA0NSw2ICsyNTEyMCw3IEBACiAJ
CQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4
M0EgLyogSlNBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFCNzU2
RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8q
IEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAw
M0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDU0LDYgKzI1MTMw
LDcgQEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNr
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpT
QXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQxQUND
QjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMTI0RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpT
QmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNzMsNiArMjUyNTAsNyBA
QAogCQkJCUZEQTE1RUFDMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MThGNTAwMjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MThGNTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQwRTlD
NDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBE
QTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkRBN0MxRjE4ODMyMkZDMDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjU2MTQsNiArMjU2OTIsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4
RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2
QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBS
ZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3
QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0
aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjc5NSw2ICsyNjg3NCw3IEBACiAJCQkJ
QjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJBRkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNE
QTQwMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJDM0RBNDIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRG
OC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjg0OCw2ICsyNjkyOCw3IEBACiAJCQkJMTg1QkNGMjkw
RjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FB
M0E2OUExOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5k
bGVySU9TLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0
QjVDMjIwMDFDQkQyNCAvKiBUaWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
Rjg5QTQyMTUxOEZERUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBQTNBNjlDMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjk3MiwxMiArMjcwNTMsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQg
LyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUE3QUE0MzEzMkYwRUNDMDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1NkM1QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVD
MDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RjE5OUE4MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDREM2OUREQTE2MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFj
ZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhE
RiAvKiBXZWJDb3JlRnVsbFNjcmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGll
bnREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5
OUJCMDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNv
cmVOU1N0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzAxMCw2ICsyNzA5Myw3IEBA
CiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENv
bnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcw
IC8qIFdlYkdMQ29udGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3
MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDFEM0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVi
dWdSZW5kZXJlckluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4
MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc1Miw2ICsy
NzgzNiw3IEBACiAJCQkJNkY5OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdG
NTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
QkY4OTA0NTE2OUU5RjFGMDA1MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRD
OTEgLyogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5Mzkz
RTVGRjE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBODBFNkNGRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI3ODI5LDYgKzI3OTE0LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2
MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUZCMUE1QTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlF
MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTU5MzA5QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgz
NDlEIC8qIE5GQS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3OTY1LDYgKzI4MDUxLDcgQEAKIAkJ
CQk4NUVDQkVGNjBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291
cmNlcyAqLywKIAkJCQk4NURGODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVs
ZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyog
RE9NSFRNTE9MaXN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg1RjMyQUVGMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVt
ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERP
TUhUTUxPcHRpb25FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FF
NTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApA
QCAtMjgxMTMsNiArMjgyMDAsNyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBF
eHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAx
OTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzcyODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ry
b3BpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyog
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNzVFOEI4QTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBNzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRU
cmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MjIzLDYgKzI4MzExLDcgQEAKIAkJCQk0
RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDcyMEIwQTAxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkI2MjUyRTE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFn
ZU1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MjQzLDYgKzI4MzMyLDcgQEAKIAkJCQlCMkEw
MTVBQTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEg
LyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTFBOUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE3OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92
aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyog
SGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4NDIyLDYgKzI4NTEyLDcgQEAKIAkJCQk1
MTAxOTJEMTE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIElt
YWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUY1NUIzREMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdl
TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODg4MCw2ICsyODk3MSw3IEBACiAJCQkJRTUxQTgx
REYxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOEE5QTU4NzAxMUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZv
cm1hbmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYz
NkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZERUE2MjQ2MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5M0I3MEQ2QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVu
Y3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAv
KiBKU1BvcFN0YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODkxNCw2ICsyOTAwNiw3
IEBACiAJCQkJMDc5NjlEQkIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBK
U1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
RDA3QjE0MTgzNDE1ODgwMEFCREQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3
RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3OTY5REMxMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVz
cG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY5MCw2ICsyOTc4Myw3IEBACiAJCQkJMDcz
Nzk0RkQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDczNzk0REQxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9u
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRD
UGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAw
NjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDczQkUzNTAxN0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyog
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhF
MDkwQzE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjk4NjcsNiArMjk5NjEsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4
ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYw
ODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTMwMzcxLDYgKzMwNDY2LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2
NTY2MDBEQTYzQTYgLyogV0tHcmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMy
MTg3RjY1QzcwMERBNjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0
ODMyQzUxODdGNjY4MzAwREE2M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1
MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBX
T0ZGRmlsZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBC
MEYxQkEgLyogV29ya2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1Rjkw
MDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVj
Li43MDgzNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBm
bGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIo
KnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAs
IG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpw
YXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQz
LDIyIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQog
ICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0K
IH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZp
cmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25z
IGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlv
bnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRo
ZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0
aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92
ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IG5vdGUgOiBub3RpZmljYXRpb25zKSB7CisgICAgICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdo
dCBwbGF0Zm9ybQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oc3RkOjpnZXQ8MD4obm90ZSkuZ2V0KCksIHN0ZDo6Z2V0PDE+KG5vdGUpLCBzdGQ6OmdldDwy
Pihub3RlKSwgVmlzaWJsZVBvc2l0aW9uKCkpOworICAgIH0KKyNlbmRpZgorfQogICAgIAogdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0
VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY3LDIyNyBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAg
cG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFy
Z2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBOREVCVUcKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAm
aW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHBy
aW50ZigiRWRpdDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6Cisg
ICAgICAgIHByaW50ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3
aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoK
KyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVVbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAg
IHByaW50ZigiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAg
ICAgICAgIHByaW50ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlw
aW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZUN1dDoKKyAgICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQ
YXN0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVu
dC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmc6CisgICAgICAgICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAg
ICBwcmludGYoIkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlv
dXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzOgorICAgICAgICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSkgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25v
d246CisgICAgICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFj
dGVyOgorICAgICAgICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29y
ZDoKKyAgICAgICAgICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAg
ICAgICAgICAgIHByaW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAg
ICAgICAgICAgIHByaW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAg
ICAgICAgIHByaW50ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5j
Iik7CisgICAgcHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7
CisgICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24pCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisKICAgICBzdG9w
Q2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBp
ZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZp
ZWxkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJs
ZU9iamVjdCgpOworICAgIH0KKworICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9y
bQorICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVu
dCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJl
cigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFi
bGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShz
ZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisK
KyNpZiBQTEFURk9STShDT0NPQSkKK3N0YXRpYyBib29sIHNhbml0aXplUGFzc3dvcmRUZXh0KGNv
bnN0IEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iaiwgU3RyaW5nICZ0ZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmIChvYmouaXNQYXNzd29yZEZpZWxkKCkgfHwg
b2JqLmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKKyAgICAgICAgdGV4dCA9IG9iai5w
YXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpLT5wYXNzd29yZEZpZWxkVmFs
dWUoKS5zdWJzdHJpbmcocG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGlu
Z09mZnNldCgpLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
ICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQor
eworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFY
VGV4dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0
cmlidXRlcygpOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZFRl
eHQgPSB0ZXh0OworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5v
ZGUpOworICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKHNhbml0aXplUGFzc3dvcmRUZXh0KCpv
YmosIHNhbml0aXplZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5v
dGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVP
YmplY3QoKSwgdHlwZSwgc2FuaXRpemVkVGV4dCkpOworICAgICAgICAgICAgaWYgKCFtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9i
amVjdCgpOworICAgIH0KKworICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQor
ICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHR5cGUsIHNh
bml0aXplZFRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCisgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJp
Z2h0IHBsYXRmb3JtCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUo
bm9kZSk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRD
aGFuZ2VGb3JFZGl0VHlwZSh0eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNh
dGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRp
dFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0
VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVy
bjsKKyAgICBBU1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGVsZXRlKTsKKyAg
ICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUluc2VydCB8fCBpbnNlcnRp
b25UeXBlID09IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0
RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVBhc3Rl
KTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRpemVkRGVsZXRlZFRleHQgPSBkZWxldGVk
VGV4dDsKKyAgICBTdHJpbmcgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0ID0gaW5zZXJ0ZWRUZXh0Owor
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlm
IChvYmopIHsKKyAgICAgICAgaWYgKHNhbml0aXplUGFzc3dvcmRUZXh0KCpvYmosIHNhbml0aXpl
ZEluc2VydGVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJsZU9iamVj
dCgpLCBpbnNlcnRpb25UeXBlLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQpKTsKKyAgICAgICAgICAg
IGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAu
MDI1KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmln
aHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCBkZWxldGlvblR5cGUsIHNhbml0aXplZERlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBz
YW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCiAgICAgLy8gRGVsZWdhdGUg
b24gdGhlIHJpZ2h0IHBsYXRmb3JtCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0
T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihv
YmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBw
b3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0
ZWRUZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKIH0K
IAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFt
ZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMxMiwx
NyBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgp
Cit7CisgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QgKnJvb3RPYmplY3QgPSB0aGlzLT5yb290
T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QgKmZpcnN0Q2hpbGQg
PSByb290T2JqZWN0LT5maXJzdENoaWxkKCkpIHsKKyAgICAgICAgICAgIGlmIChmaXJzdENoaWxk
LT5pc1dlYkFyZWEoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3RDaGlsZDsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVu
YWJsZXI6OkFYQXR0cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAg
IDogbV9jYWNoZShjYWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKaW5kZXggYmZhOTI3Ny4uYmQyYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5
LDk5IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZp
Y2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNo
cm9ub3VzbHkpOwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQs
IFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdl
IHsKLSAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAg
ZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVVbmtub3duLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlw
ZSB7CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5
cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBp
bmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9u
LCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8g
RGVsZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlh
IFBhc3RlCisgICAgfTsKKworICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZv
aWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5k
IHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25V
bmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQs
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9Owog
Ci0gICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25v
d24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3Rp
bmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVj
dGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3
aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZp
Y2F0aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRT
ZWxlY3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
ID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisg
ICAgeworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAg
ICBzZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3Jh
bnVsYXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9
CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRT
dGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0
U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsK
KyAgICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigp
LCBib29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAg
ICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAg
ICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBl
IGNoYW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQor
ICAgICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQor
ICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0
ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisg
ICAgICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwg
c3luYyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVH
CisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7Cisj
ZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9u
IGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAg
IGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4
LDcgKzMwNSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRm
b3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5v
ZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAg
IHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Cisj
ZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisg
ICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAg
c3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAg
ICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2Fk
aW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2Fk
aW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwog
ICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJr
ZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAg
SGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAg
ICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAg
LTI0NCw2ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RU
aW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lcjsKKyAgICBWZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9i
amVjdD4sIEFYVGV4dEVkaXRUeXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1Rv
UG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwog
ICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVn
aW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUq
KTsKQEAgLTI1MSw2ICszNzMsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAg
CiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDMyLDE2IEBAIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1
dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
OjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFu
Z2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9Citpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09B
KQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlu
bGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0Kiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLmFjMzhm
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDQ3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0
RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRG
aWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAo
IW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYg
KGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29u
c3RfY2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAg
ICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBp
ZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMt
Pm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAg
ICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51bGxw
dHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAg
ICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAgIGlu
cHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0K
KyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAg
IHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5v
ZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uN2RiZDU5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
TmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVU
ZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3Jk
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBh
c3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2
ZjJhLi5iNTY5NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxk
T3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0g
V2ViQXJlYVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjZlZmFhYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwxOCBAQCBQbGFpblRleHRS
YW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0
CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNv
bnN0IFBsYWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJv
bCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUo
KSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRl
eHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAg
ICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQg
KyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9k
ZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0
YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0
aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9y
KTsKKyAgICBQb3NpdGlvbiBwb3MyID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5n
ZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2li
bGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9z
MiwgRE9XTlNUUkVBTSk7CisgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24odmlzaWJsZVNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJh
bmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCB0cnVlKSk7CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwo
KSBjb25zdApAQCAtMTk2MCwxMyArMTk2NCwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwog
ewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRo
ZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0
aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAo
cmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0
aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAg
ICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVz
ZXJUcmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlv
biBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQp
OwotICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9z
L0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9B
WE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi5hYjc5MzQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAg
LTk1LDcgKzk1LDE2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBl
cigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsK
IH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKQoreworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li5iMzBlNGZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0KQEAgLTQ0LDYgKzQ0LDUwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdp
b25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24K
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlU
ZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhU
ZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIK
KyNlbmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0
aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMjAwLDEz
MSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCit7CisgICAgaWYgKCFvYmopCisgICAg
ICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJu
OworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5zeW5jKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7
CisgICAgaWYgKGludGVudC50eXBlICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsK
KyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0g
PSBAKGludGVudC50eXBlKTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5r
bm93bjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
OgorICAgICAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25H
cmFudWxhcml0eV0gPSBAKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25E
aXNjb250aWd1b3VzOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAg
ICAgaWYgKGlkIHRleHRNYXJrZXJSYW5nZSA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFu
Z2VGcm9tVmlzaWJsZVBvc2l0aW9uczpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRp
b246c2VsZWN0aW9uLnZpc2libGVFbmQoKV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFu
Z2U7CisgICAgfQorICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50
XSA9IG9iai0+d3JhcHBlcigpOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBw
ZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRh
cmdldCwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRv
IGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5n
ZWROb3RpZmljYXRpb25dOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5KiB0ZXh0UmVwbGFjZW1l
bnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7CisgICAgTlNTdHJpbmcqIHRleHQgPSAoTlNTdHJpbmcg
KilzdHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlm
ICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkq
IGNoYW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0
XTsKKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7Cisg
ICAgc3RhdGljIGNvbnN0IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAg
aWYgKGxlbmd0aCA+IHRydW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQg
PSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBp
ZiAobGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZV0gPSB0ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBp
ZiAoaWQgdGV4dE1hcmtlciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBv
c2l0aW9uOnBvc2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4g
W2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2Vi
QXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4
dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSog
dXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6
M107CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0g
PSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAq
Y2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQs
IHBvc2l0aW9uKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZh
bHVlc10gPSBAW2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigp
KQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3
cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBO
U0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nl
c3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJ
bmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNh
dGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmlj
YXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVz
ZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRd
OworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0g
QChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFu
Z2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBp
ZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hh
bmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0
ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOwor
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsK
KyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFw
cGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50
XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOwor
ICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBO
U0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBb
dXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90
aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwogfQog
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9h
ZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhj
NWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBA
IC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtl
clJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFy
dFBvc2l0aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRp
b247CistIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpW
aXNpYmxlUG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggMWRlYjRkYi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUg
IlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC00NiwxNSArNDgsMjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQo
bV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwog
fQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2Rl
KiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2
b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9
IG5vZGUtPm5vZGVWYWx1ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBjb25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAg
IC8vIERvbid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAgaWYgKG5v
ZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obm9kZSwgdGV4dENoYW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7Cisg
ICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3du
Y2FzdDxUZXh0Pihub2RlKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwg
MCk7CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUs
IHR5cGUsIHRleHQsIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9p
ZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02NCwxOCArNzQsMTYgQEAgdm9pZCBB
cHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQo
bV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9y
aW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVk
KTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiB7CiAgICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0
dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0
VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAt
ODgsNCArOTYsMTQgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQo
SGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIEFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oCmluZGV4IGQ2NGIwNGUuLjQ5YzllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5v
ZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxDb250YWluZXJOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBv
dmVycmlkZTsKQEAgLTQ3LDYgKzQ3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVu
dDsKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uNjcyNjAzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkFwcGx5U3R5bGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5o
IgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVk
ZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUg
IlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRl
ICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUu
aCIKQEAgLTMyMCw5ICszMjMsMTQgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1v
dmFibGVCbG9jayhjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVm
PEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGls
ZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpCit7CisgICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVC
ZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZD
aGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTUyMiwyMyArNTMwLDQ2IEBAIHZvaWQgQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0CiAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0
aW9uKHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwgdmlz
aWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkpKSk7
CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJ
bnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkp
Ci0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsK
K30KKworUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCit7CisgICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0
KQorICAgICAgICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgY291bnQpOworICAgIHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsK
KyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgY291bnQpKTsKK30KKworUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7
CisgICAgcmV0dXJuIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9k
ZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRl
eHQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQ
YXNzUmVmUHRyPFRleHQ+IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQs
IGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2Rl
KHBycE5vZGUpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSByZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShkZWxldGVDb21tYW5kKTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5
KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQo
KSkpOwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVk
VGV4dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xNTIzLDQgKzE1NTQsMTEgQEAgUGFz
c1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNl
KTsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OmludGVudCgpCit7CisgICAgaWYgKG1fY29tbWFuZHMuc2l6ZSgpKQorICAg
ICAgICByZXR1cm4gbV9jb21tYW5kc1ttX2NvbW1hbmRzLnNpemUoKS0xXS0+aW50ZW50KCk7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi40NWQzOGFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICszMyw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDsK
IGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgU3R5bGVkRWxl
bWVudDsKQEAgLTg3LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRS
ZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29t
bWFuZChEb2N1bWVudCYpOwpAQCAtMTAzLDE1ICsxMDUsMTggQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcmVtb3ZlU3R5bGVkRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIGRl
bGV0ZVNlbGVjdGlvbihib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKICAgICB2
b2lkIGRlbGV0ZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERl
bGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJl
cGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29s
IHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2ln
bmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0
KGNvbnN0IFN0cmluZyYsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJv
b2wgaXNSZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0
ZXIoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAgICAgdm9p
ZCBpbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2
b2lkIGluc2VydE5vZGVBdFRhYlNwYW5Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQ
b3NpdGlvbiYpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlID0gRG9Ob3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CiAgICAgdm9pZCBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdy
YXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEg
PSBmYWxzZSk7CiAgICAgdm9pZCBpbnNlcnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxF
ZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05vZGUoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAg
IHZvaWQgbWVyZ2VJZGVudGljYWxFbGVtZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVm
UHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2
ICsxMzUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05l
d1BhcmVudChOb2RlKiwgTm9kZSogcGFzdExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1l
bnQ+IHBycE5ld1BhcmVudCk7CiAgICAgdm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVSZW1vdmFs
UHJlc2VydmluZ0NoaWxkcmVuKFBvc2l0aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFz
c1JlZlB0cjxOb2RlPik7CisgICAgdmlydHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZD4gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGUoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3Ry
aW5nJiByZXBsYWNlbWVudFRleHQpOwogICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJ
bk5vZGUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZp
bmdNYXJrZXJzKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkZjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iZjJmYTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVi
bGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xYjRlNzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgor
CisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkVk
aXRpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29s
IHNhbml0aXplTWFya3VwKQorICAgIDogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwg
c21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4g
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7Cisg
ICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KTsKK30KKworRWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpl
ZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xZDA1YzMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKworI2lu
Y2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1h
cmt1cCA9IHRydWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1
cCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERv
Y3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBi
b29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVN
YXJrdXApOworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1Li44NTcxNjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3LDExIEBAIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUt
Pmxlbmd0aCgpKTsKIH0KIAorU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxl
dGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU2LDEw
ICs2MywxMCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAg
IG1fdGV4dCA9IG1fbm9kZS0+c3Vic3RyaW5nRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gTmVlZCB0byBub3Rp
ZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4
dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBt
X25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzgw
LDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAg
bV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwog
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3Rl
eHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBw
bHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1f
b2Zmc2V0KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtODQsNCArOTEsMTQgQEAgdm9pZCBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li43YTMxYzE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
ICNkZWZpbmUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMzksOCArNDAsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKICAgICB9
CiAKKyAgICBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7
CisKIHByaXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJy
aWRlOwpAQCAtNDgsNyArNTMsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmly
dHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAj
ZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4
dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fY291bnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9pZCBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRoYXQg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2Vz
IHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGlu
Z0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRo
ZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRp
dEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFs
bHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHBy
ZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTI3LDExICsyNywxMSBAQAog
I2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kLmgiCi0jaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJU
ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERp
Y3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVT
dGFydCwgc2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0
ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdl
KGxpbmVTdGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8
SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5l
U3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVy
bmF0aXZlc0luTGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9j
dW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCks
IERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mODhjNDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZjI5ODM2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsK
KworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCIKKworI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25N
YXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChk
b2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4g
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkK
K3sKKyAgICByZXR1cm4gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zYzljYjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0
VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+
IG1hcmtlclN1cHBsaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7
CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+KTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4
IDhmNTY1MzIuLjkxZWE5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENv
bW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3Np
dGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCkBAIC0xMjQsNSArMTI1LDI5IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVB
bmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAg
IG5vZGVzLmFkZChub2RlKTsKIH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVVbmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJl
dHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0
eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLjVjYTE5Yzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgRWRpdENvbW1hbmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2li
bGVTZWxlY3Rpb24uaCIKIApAQCAtNTksNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoKTsgfTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVkaXRD
b21tYW5kKERvY3VtZW50Jik7CiAgICAgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpAQCAtOTcsNiArMTAwLDEy
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFz
aFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3Zl
cnJpZGUgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBw
bHlFZGl0VHlwZSgpKTsgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVk
aXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAppbmRleCA3MTBhYTM5Li5jMTUzYzhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQu
aCIKICNpbmNsdWRlICJDb21wb3NpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRlTGlua0Nv
bW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVk
ZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgog
I2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwxNSBAQCBi
b29sIEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0
aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRv
cjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lk
IEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24o
KS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlm
IChlZGl0aW5nQWN0aW9uID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsK
KyAgICBlbHNlCisgICAgICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNs
ZWFyVGV4dCgpCkBAIC0xMDAxLDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRp
bmcoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3Qg
Y2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRv
IHRob3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgp
ID8gRnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5pbnRlbnQoKSk7
CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNvbXBvc2l0aW9uLT5z
dGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY29tcG9zaXRpb24tPmVuZGluZ1Jvb3RFZGl0
YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBA
IC0xMjY2LDcgKzEyNzAsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JB
Y3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoKTsKICAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFj
dGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBA
QCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9h
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRl
cm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFm
dGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUg
bmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlv
bi4KICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rp
b24uZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpj
aGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2Vs
ZWN0aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRD
aGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQg
YXJlIG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9z
aXRpb24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsK
ICAgICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxl
Y3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9m
cmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAg
ICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRp
b25zLCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRo
ZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhp
biB0aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0
aGUgZm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKaW5kZXggNzkyYmM0Ni4uZDZjNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBA
IC0xNzQsNyArMTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJp
dHksIGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
KGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25E
ZWxldGUpOwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyAr
NDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1D
b21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9u
KGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNl
bGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24s
IEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNl
bGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24s
IEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENv
cHlBY3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lm
aWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYThm
MWI0MS4uZTRkNTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAKQEAgLTEzOCw4ICsxMzgsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRh
YmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlv
bjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2Vy
VHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewotICAgIHNldFNlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxl
bnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAg
ICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7Cisg
ICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBv
cy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rp
b25hbCgpKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1
bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9u
Ojptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24gJmV4dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTI1NCw3ICsyNTMs
MTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3
U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElm
TmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJldCgpKQorICAg
ICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmpl
Y3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisg
ICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7
CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
V2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxl
Y3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9u
cywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldp
dGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERv
Y3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1l
bnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5l
d1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0
aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5k
b2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0
eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQo
KSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxl
IHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9u
IGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVt
ZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8g
bG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0
IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlv
bi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25X
aXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1
cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3Zv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBU
ZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRo
b3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFy
aXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNl
dFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmco
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7Cisg
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVw
ZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2
MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0
ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1
cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAg
ICAgICByZXR1cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVu
dCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShpbnRlbnQpOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3Jz
Rm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJh
bWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkp
CiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0
eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5
OwotfSAgICAKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlv
bkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwg
VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZy
YW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAg
IGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigp
ID09IFJUTCkKKyAgICAgICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0g
ZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAg
Y2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFu
dWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFj
dGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdy
YW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5
OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2Ug
UGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9j
dW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChn
cmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBX
b3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2Ug
TGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNl
Qm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3Vu
ZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAg
Y2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAg
IGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0g
ZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYg
KGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlw
ID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShF
QWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAt
MTA3NCw2ICsxMTU1LDExIEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlv
biBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICgh
d2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2lu
YWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1f
ZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50
ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsK
KyAgICB9CisKICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9z
Rm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3
aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAg
Ly8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQg
aXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQo
KSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAg
ICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpIHsKKyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwpKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVu
dCwgaW50ZW50KTsKKyAgICB9CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVk
UmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcp
CkBAIC0yNDIwLDcgKzI1MDgsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3
b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlz
aWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsK
ICAgICBuZXdTZWxlY3Rpb24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkp
OwotICAgIGZyYW1lU2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRT
ZXRTZWxlY3Rpb25PcHRpb25zKCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVT
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CisgICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgZGVmYXVsdFNldFNl
bGVjdGlvbkludGVudCgpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0
aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rp
b24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0
aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uaAppbmRleCAwZTRlMjhlLi5iNzRmYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gK
ICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJl
ZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAg
IAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApA
QCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlv
blRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0Rp
cmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRT
ZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxp
Z25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5
ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Vs
ZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3Jv
bGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJh
Y3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFu
Z2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpA
QCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25U
eXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAog
ICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwg
VGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlv
dXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9z
aXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxl
Y3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2Fj
aGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBA
IC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0
eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09D
T0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25JbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLmFlYzQ3NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDExIEBAIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAor
U3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQoreworICAg
IHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5n
cygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAgdm9pZCBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBtX25vZGUtPmluc2Vy
dERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0KLSAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBB
WE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgCisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlw
ZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkp
OwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBAIHZvaWQgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+aGFz
RWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVl
ZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkp
KTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lkIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykK
IH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5
ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRl
OgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNp
ZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVC
VUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBv
dmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAg
IFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgU3RyaW5n
IG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI2LDkgKzI2LDEx
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsOCArNTks
MTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJl
bnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBv
c2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2Fz
dDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9z
aXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9p
bnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAg
IH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTY3
LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVh
bGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBw
b3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNh
c3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bv
c2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwg
bV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOwor
ICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0K
QEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0Owor
fQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKICNkZWZpbmUgSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2ICsz
OSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVj
dGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRU
b0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJp
ZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29t
bWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAg
UmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwx
MCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRU
ZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXBy
aXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYg
dGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVk
OgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQ
YXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIEluc2VydFRleHRD
b21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJh
Y3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisg
ICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1NTky
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1
ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4s
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQ
YXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZhMzUyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xh
c3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxl
dGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzBmZGJkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDc1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0
KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAg
IHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6Cisg
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0
aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRp
b24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRl
eHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDU2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6Cisg
ICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpOworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3Zl
cnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcg
bV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBj
NDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0
ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUg
IkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5v
ZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAj
aW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxh
Y2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAg
ICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9k
ZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkK
K3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGlu
ZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUo
aW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAg
ICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFj
dGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0
KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVk
VGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBz
aW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBh
IHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0
aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0
ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgK
QEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJl
cGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRp
dENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250
ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVk
aXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0
ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRl
ICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyAr
Mzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4
dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0
VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5z
ZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IElu
c2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRU
ZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0
LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5z
ZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDog
SW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlw
aW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGlj
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRv
SW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9y
ZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwg
UGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBl
KCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVk
ZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5z
ZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxh
bmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKwor
UmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
eworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMg
SW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFu
Y2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1
bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQor
Citwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29t
bWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5
cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0Owor
CitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRl
eHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRr
L0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1l
U2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1YTcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3OCw3
IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLjA3ZTJhNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
CkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNj
cmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAog
ICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAg
ICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5k
KCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3RO
b3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJl
cigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFi
bGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2Vs
ZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41
YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wg
dGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsK
KyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0
KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAg
IGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4
dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAg
ICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFs
dWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAg
ICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgo
J1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdl
ZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNh
Y2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAg
ICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li4wN2YzODhhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMxODQsMTQgQEAgc3Rh
dGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0
aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkRpc2NvbnRpZ3VvdXMpOworI2VuZGlmCisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNp
YmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhV
c2VyVHJpZ2dlcmVkKQorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0Ep
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBpbnRlbnQKKyNlbmRpZgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2Vs
ZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250322</attachid>
            <date>2015-04-07 18:43:14 -0700</date>
            <delta_ts>2015-04-07 19:47:11 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>201425</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDEzNzZiZWVlZTIyOGIxZWY2ZDUyMTdkYWVkNjEyZTY5ZTZmMmM1YWMKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk4ZGZkODkuLmI1NjM3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDc0LDEwICsxNDc0
LDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5
MCwxNyArMTQ5NCwyMiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9JbnNlcnRM
aW5lQnJlYWtDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCiAg
ICAgZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVs
ZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5j
cHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUxNiw2ICsxNTI1LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1Rl
eHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAK
ICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5j
cHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxM2M4
OC4uNTdlY2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwOSBAQAorMjAxNS0wNC0wNyAgRG91
ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRj
aCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRp
dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dv
cmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlv
blJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxh
Y2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQ
bGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAg
ICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6
dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Np
dGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24p
OgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcv
RGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5k
OjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJr
ZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Lmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Up
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2Vy
dGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpk
b0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRU
eXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAg
IChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJ
bm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwogMjAxNS0wNC0wNyAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSB2
aWRlbyBwbGF5aW5nIHRvIGV4dGVybmFsIGRldmljZSBzaG91bGQgbm90IGJlIGludGVycnVwdGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNTdmNGMxYS4uNzg0MTFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjM3OSwxMiArNjM3OSwyMiBAQAogCQlGNDc4
NzU1NTE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDc4NzU1MzE5OTgzQUZG
MDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi87IH07CiAJCUY0N0E1RTNF
MTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEw
MCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDdBNUUzRjE5NUI4RTQ4MDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2lu
dHMuY3BwICovOyB9OworCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjUwNjNDMUQxQUI3NTZEODAwOUFCNTU2
IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2
IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OwogCQlGNTA2
NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAq
LzsgfTsKIAkJRjUxM0EzRUExNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsgfTsK
IAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1
OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8q
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDVGRTFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkMxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU0M0Q2MDEx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkYxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDYw
MjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q2MDAxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLzsgfTsKIAkJRjU0NEY3ODgx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQ
bGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQ
bGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi87IH07
CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQUEx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBODFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsK
IAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDc5MTI1MUYx
MkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREFFMTI1
MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJh
c2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBC
dXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAg
Ki87IH07CkBAIC02NDM0LDEyICs2NDQ0LDI2IEBACiAJCUY1NUIzRERFMTI1MUYxMkQwMDNFRjI2
OSAvKiBVUkxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLzsg
fTsKIAkJRjU1QjNEREYxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUIxMjUxRjEy
RDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RFMDEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5
cGUuaCAqLzsgfTsKKwkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8q
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTc0
REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3
NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKKwkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmggKi87IH07CiAJCUY1OTczREUwMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVN
YWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTcz
RERFMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMuaCAqLzsgfTsKIAkJRjU5NzNERTExNUNG
QjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMu
bW0gKi87IH07CiAJCUY1OUM5NUZGMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAgKi87IH07CiAJCUY1OUM5NjAwMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAq
LzsgfTsKKwkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmggKi87IH07CiAJCUY1QTE1NDI3MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxp
ZGF0aW9uTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
ICovOyB9OwogCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI2
MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovOyB9OworCQlGNUE1Mjk1
RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
NTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjVBNTI5NjExQUND
RUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVGMUFDQ0VBNzAw
MDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NjAx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07
CiAJCUY1QzA0MURBMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ3MEZG
Q0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQx
REIwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0
QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CiAJCUY1QzA0MUUzMEZGQ0E5NkQwMDgz
OUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFERTBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRN
TERhdGFMaXN0RWxlbWVudC5oICovOyB9OwpAQCAtMTQwMDcsNiArMTQwMzEsOCBAQAogCQlGNDc4
NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0ExOTVCOEM4QTAwNDgz
MTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBwYXRoID0gc3R5bGUvU3R5
bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3
QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgcGF0aCA9
IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUIx
QUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9y
bUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNjE1
N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAxOSw4ICsxNDA0NSwxNiBAQAog
CQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qz
MDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZC
RTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQzFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2
MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlVGV4dElucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNF
RjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRvbklucHV0VHlwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA3MCw2ICsxNDEwNCwxMiBAQAogCQlGNTVCM0RBQTEy
NTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFVSTElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vla0lucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg0RjAwMkRFMzc1
OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEN1cnNvck1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NTRDMDJERTM3
NTkwMUVBNDEyMiAvKiBXZWJDb3JlRnJhbWVWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVGcmFtZVZpZXcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NjNB
MDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE0MDgwLDggKzE0MTIwLDE2
IEBACiAJCUY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGVNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkExQUNDQjNDMDAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydFRleHRDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QTE1NDI1MTI3OTUzNEQwMEQw
QjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1
MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUYxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NjAxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0
YUxpc3RFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxEYXRhTGlzdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMw
NDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ5MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxp
c3RFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3Njk3LDYgKzE3NzQ1LDEwIEBA
CiAJCQkJOTMzMDlEOEUwOTlFNjQ5MTAwNTZFNTgxIC8qIENvbXBvc2l0ZUVkaXRDb21tYW5kLmgg
Ki8sCiAJCQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNw
cCAqLywKIAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQu
aCAqLywKKwkJCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q2MDAxQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMw
OUQ4RjA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEOTAwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLywKIAkJCQk5MzMwOUQ5MTA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzcwNSw2ICsxNzc1NywxMCBAQAogCQkJCUNFQ0FERkMzMTUz
Nzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCUNFQ0FERkM0
MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmNwcCAqLywKIAkJCQlDRUNBREZD
NTE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1MDYzQzFB
MUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLywKKwkJCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU4NzJBNzMxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTMw
OTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRBY3Rpb24uaCAqLywKIAkJCQk5MzMwOUQ5NDA5OUU2NDkx
MDA1NkU1ODEgLyogRWRpdENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDk1MDk5RTY0OTEwMDU2
RTU4MSAvKiBFZGl0Q29tbWFuZC5oICovLApAQCAtMTc3NTEsNiArMTc4MDcsMTAgQEAKIAkJCQlD
NkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8s
CiAJCQkJOTMzMDlEQUMwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOURBRDA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1h
bmQuaCAqLywKKwkJCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTc0REVEODFBQ0EyMjhEMDA1
OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJ
CQkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCMTA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURCMjA5OUU2NDkxMDA1NkU1ODEg
LyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggKi8sCiAJCQkJRDA2QzBEOEUwQ0ZEMTE0NjAw
NjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovLApAQCAtMTc3NjEsNiArMTc4MjEs
MTAgQEAKIAkJCQk5MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyog
UmVuZGVyZWRQb3NpdGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8q
IFJlbmRlcmVkUG9zaXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAor
CQkJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVE
QTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBG
NDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5
MzMwOURCQTA5OUU2NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICov
LApAQCAtMTc3OTYsNiArMTc4NjAsMTQgQEAKIAkJCQk5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODgg
LyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJCQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1
ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgx
IC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkIxQUND
QjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJ
CQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkYxQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUIxQUNDRThF
MDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyog
VW5kb1N0ZXAuaCAqLywKIAkJCQlEMDg2RkU5NzA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29t
bWFuZC5jcHAgKi8sCiAJCQkJRDA4NkZFOTYwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1h
bmQuaCAqLywKQEAgLTIzNjkwLDYgKzIzNzYyLDcgQEAKIAkJCQk2QzU2OENCMTE5REFGRUEwMDA0
MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEZB
RjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QTRGNjU3MjFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzMwOURENzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBOEY2QkJEMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRjBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRp
b25DYWNoZUdyb3VwLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDkzLDYgKzI0NTY2LDcgQEAKIAkJ
CQkzMTA2MDM3OTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTMxMDYwMzdCMTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRD
U1NGaWx0ZXJWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RDBFNkND
QzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdGMEU2Q0NDMjgwMEJGNjA4OCAv
KiBET01DU1NLZXlmcmFtZVJ1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
ODAwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDgyMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ4MTYsNiArMjQ4OTAsNyBAQAogCQkJCUExOUQ5
MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhU
TUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgw
RjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTdCQzg0OUIxMjM3MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzMDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDQ1LDYgKzI1MTIwLDcgQEAKIAkJCQlGREY3
RTlDNDEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGREExNUVBMDEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUE2MTJCMDNFRTEwMDNBNTgzQSAvKiBK
U0F1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjUwNjNDMUMxQUI3NTZENTAwOUFC
NTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEQTE1RUE4MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvRGVzdGluYXRpb25Ob2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBRTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRp
b0xpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVCMDEyQjAzRUUxMDAzQTU4M0Eg
LyogSlNBdWRpb05vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNTQsNiArMjUxMzAsNyBAQAog
CQkJCUJFOEVGMDQzMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJFOEVGMDQ1MTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3NkZCOUZGOTE5QTczRTNBMDA0MjA1NjIgLyogSlNBdXRvY29t
cGxldGVFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFyUHJvcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RkE0NDU0RTg5OEYyRkMxNjhCQzM4QzEgLyogSlNCZWZvcmVV
bmxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE3Myw2ICsyNTI1MCw3IEBACiAJCQkJ
RkRBMTVFQUMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxOEY1MDAyMTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxOEY1MDA0MTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWRCdXR0b24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NDBFOUM0NzAzMDAw
RDZGNzUgLyogSlNHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjYwRTlD
NDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREE3
QzFGMTg4MzIyRkMwMEM5NTRCNSAvKiBKU0dlc3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNTYxNCw2ICsyNTY5Miw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpT
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERC
NTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RV
cGxvYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFD
RTUzRjcwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0
aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI2Nzk1LDYgKzI2ODc0LDcgQEAKIAkJCQlCMkMzREEz
QzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkMzREEzRTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjTGF0aW4xLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkFGRkM5QTBEMDBBNURGMDAzMDA3NEQgLyogVGV4dENvZGVjTWFjLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNTc0REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDAwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VzZXJEZWZpbmVkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE0MjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4g
SGVhZGVycyAqLywKQEAgLTI2ODQ4LDYgKzI2OTI4LDcgQEAKIAkJCQkxODVCQ0YyOTBGMzI3OUNF
MDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QTE5
NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFG
NzJCRjBCMTg3RkQ0NUMwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1Mu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2QTQxOTRCNUMyMjAw
MUNCRDI0IC8qIFRpbGVDb3ZlcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGODlBNDIx
NTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FB
M0E2OUMxOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVHcmlkLmggaW4gSGVhZGVycyAqLywKQEAgLTI2
OTcyLDEyICsyNzA1MywxNCBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJB
Y3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QTdB
QTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkxNzkxNUMwMDAzNDE4
NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QTgw
ODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVy
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlERDYxNjMyMDI2QzAwN0MzOERGIC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTI3REVF
MTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1M0Q5MTExMTQzMTBDQzAwMEQ4MTdFIC8qIFdlYkNvcmVKU0NsaWVudERhdGEu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0
NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1MDA3QjQyQTkgLyogV2ViQ29yZU5TU3Ry
aW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MDEwLDYgKzI3MDkzLDcgQEAKIAkJCQk2
RTRFOTFBRjEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwMUQzQ0Y4MzE0QkQwQTMwMDBGRTk5NzAgLyogV2Vi
R0xDb250ZXh0R3JvdXAuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NUQwQkQ4MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwMUQzQ0Y4NTE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250ZXh0T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMEVFMERGNjE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjgxNDRGODI1NTAwRjgwQjBEIC8q
IFdlYkdMRGVidWdTaGFkZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzUyLDYgKzI3ODM2LDcg
QEAKIAkJCQk2Rjk5NUEzOTFBNzA4MzM3MDBBNzM1RjQgLyogSlNXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEM0UyNTIzMTgwNDZCQ0QwMEUyN0Y1NiAvKiBD
U1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCRjg5MDQ1
MTY5RTlGMUYwMDUyRDg2RSAvKiBDU1NHcm91cGluZ1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjVBNTI5NjExQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjNFNzZDMERBRTg4QTkwMDlGREM5MSAvKiBD
U1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzOTNFNUZGMTUx
QTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4MEU2Q0ZFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbWFnZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjc4MjksNiArMjc5MTQsNyBAQAogCQkJCTMxRkIxQTU4MTIwQTVEMDYwMERDMDJB
MCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIx
QTVBMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxRkIxQTVDMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE0MDM3OUUxMjRCRUE3
RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTkzMDlBMTExMUY0QUU1ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjkzOTcyNjFBNEE1RkJEMDBFODM0OUQgLyog
TkZBLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5NjUsNiArMjgwNTEsNyBAQAogCQkJCTg1RUNC
RUY2MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTW9kRWxlbWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTg1REY4MTJDMEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0RDE2MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1M
T0xpc3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODVGMzJBRUYwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NTQwNzU2QzBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9w
dGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGMkY5QzBBQTNDQUU1MDBBRDY0
QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODEx
Myw2ICsyODIwMCw3IEBACiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzQzMDRCMDE5MUFDOTA4
MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
NzI4Njk0RTE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3NUU4QjhBMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3NUU4QjhDMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgyMjMsNiArMjgzMTEsNyBAQAogCQkJCTRGQjM5MEFE
MTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTc0NkFGMjMxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyNjE0RjREREU2
MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGQjYyNTJFMThERTFCMTUwMEEwN0MwNSAvKiBHZW9tZXRyeVV0aWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMkFGRkM4MzBEMDBBNUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlTWFjLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjgyNDMsNiArMjgzMzIsNyBAQAogCQkJCUIyQTAxNUFBMEFG
NkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
Rjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyogSGlkZGVuSW5wdXRUeXBl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUE5RDlGMzE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MTc5Q0UzNjE5NUNBQzdFMDAxOUMxOTggLyogSElER2FtZXBhZFByb3ZpZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTREMTUzMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg0MjIsNiArMjg1MTIsNyBAQAogCQkJCTUxMDE5MkQx
MThCNkI5QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjU1QjNEQzExMjUxRjEyRDAwM0VGMjY5IC8qIEltYWdlSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA4OTU4MjU1MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjc1MzU3QjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VNYWMubW0g
aW4gU291cmNlcyAqLywKQEAgLTI4ODgwLDYgKzI4OTcxLDcgQEAKIAkJCQlFNTFBODFERjE3Mjk4
RDc3MDBCRkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTlB
NTg3MDExRTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY0M0M4NUYxODlFMTVBNjAwMDE5QUUyIC8qIEpTUGVyZm9ybWFuY2VU
aW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q2MDExQUNCMEM4MzAwNjM2RDVEIC8q
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRFQTYy
NDYxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzQjcwRDZCMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4OUYwMUQxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9w
U3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4OTE0LDYgKzI5MDA2LDcgQEAKIAkJ
CQkwNzk2OURCQjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkQxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdEMDdCMTQx
ODM0MTU4ODAwQUJERDNDIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJGMTdEMTQxNTEw
MDdGRjg0MiAvKiBKU1JUQ1N0YXRzQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5
NjlEQzExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXBvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc5NjlEQzMxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXNwb25zZS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI5NjkwLDYgKzI5NzgzLDcgQEAKIAkJCQkwNzM3OTRGRDE5
RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzM3OTRERDE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBCMTdEMTRDRUUwMDQyMEFBMSAvKiBSVENQZWVyQ29u
bmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEYxMTlFRTM3QkIwMEU1QTA0NSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBDMTdE
MTRDRUUwMDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTg2Nyw2ICsyOTk2MSw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2
RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5
MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMzAzNzEsNiArMzA0NjYsNyBAQAogCQkJCUExNDgzMkMwMTg3RjY1NjYwMERB
NjNBNiAvKiBXS0dyYXBoaWNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzIxODdGNjVD
NzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDNTE4
N0Y2NjgzMDBEQTYzQTYgLyogV0tWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjUwNjNDMUQx
QUI3NTZEODAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5OTE5OTYxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxl
Rm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNDM0NjQ1MEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM4MjA4OTYxNDdEMzVGOTAwMTBCQzA2
IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLjcwODM2
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI5LDYgKzEyOSw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBB
WE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywg
JkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTc0Miw2ICs3NDMsMjIgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAg
ICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQor
eworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXIuc3RvcCgpOworCisgICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEg
dGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hp
Y2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlm
aWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlz
dCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFz
c3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbm90ZSA6
IG5vdGlmaWNhdGlvbnMpIHsKKyAgICAgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRm
b3JtCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihzdGQ6
OmdldDwwPihub3RlKS5nZXQoKSwgc3RkOjpnZXQ8MT4obm90ZSksIHN0ZDo6Z2V0PDI+KG5vdGUp
LCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgfQorI2VuZGlmCit9CiAgICAgCiB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhOb3Rp
ZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBv
c3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjcsMjI3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90
aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNl
cnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9iamVj
dENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQp
Cit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRmKCJF
ZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
cHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChp
bnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAg
ICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVu
a25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJpbnRm
KCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAg
cHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJbnNl
cnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0
OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3RlIik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVj
dGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25V
bmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAg
ICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHByaW50
ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikg
eworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAg
ICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6Cisg
ICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAgICAg
ICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAg
cHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBwcmlu
dGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsKKyAg
ICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0
U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBt
X3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQorICAg
ICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKwogICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmot
PmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0
KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgaW50ZW50LCBzZWxl
Y3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFY
T2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVu
dCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlv
bik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoKTsKK30KKworI2lmIFBM
QVRGT1JNKENPQ09BKQorc3RhdGljIGJvb2wgc2FuaXRpemVQYXNzd29yZFRleHQoY29uc3QgQWNj
ZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBTdHJpbmcgJnRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmouaXND
b250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICB0ZXh0ID0gb2JqLnBhc3N3b3Jk
RmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCktPnBhc3N3b3JkRmllbGRWYWx1ZSgpLnN1
YnN0cmluZyhwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0
KCksIHRleHQubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRp
dFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRpemVkVGV4dCA9IHRl
eHQ7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Cisg
ICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2Fu
aXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJsZU9iamVjdCgp
LCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7
CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVk
VGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxh
dGZvcm0KKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBk
ZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGlu
c2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VS
VChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0Owor
ICAgIFN0cmluZyBzYW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikg
eworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25z
VG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCksIGlu
c2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYgKCFt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2
YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0
Zm9ybQorICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRl
bGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIHNhbml0aXpl
ZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKICAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0
ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQp
OworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdl
Rm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgogfQogCiB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFt
ZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzEyLDE3IEBAIGJv
b2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAg
ICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3Qo
KSkgeworICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqZmlyc3RDaGlsZCA9IHJvb3RP
YmplY3QtPmZpcnN0Q2hpbGQoKSkgeworICAgICAgICAgICAgaWYgKGZpcnN0Q2hpbGQtPmlzV2Vi
QXJlYSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmaXJzdENoaWxkOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6
QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2Nh
Y2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAppbmRleCBiZmE5Mjc3Li5iZDJjNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksOTkgQEAg
cHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNs
eSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1
bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5
cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d24sCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorICAgIH07CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAg
ICAgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgICAgICBBWFRleHRFZGl0VHlwZURlbGV0
ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUluc2VydCwg
Ly8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8g
SW5zZXJ0IHZpYSB0eXBpbmcKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24sIC8vIElu
c2VydCB2aWEgZGljdGF0aW9uCisgICAgICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUg
dmlhIEN1dAorICAgICAgICBBWFRleHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUK
KyAgICB9OworCisgICAgLy8gU2ltcGxlIHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2
YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICBlbnVtIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cwogICAgIH07CiAKLSAgICB2
b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAv
LyBBbGwgZ3JhbnVsYXJpdHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUg
d2hvbGUgZG9jdW1lbnQgYXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5
IHNvbWUgb3RoZXIgZ3JhbnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRv
Y3VtZW50IHdpbGwgbm90IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24u
CisgICAgfTsKKworICAgIHN0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgICAgICBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSBncmFudWxhcml0eTsKKyAgICB9OworCisgICAgc3RhdGljIEFYVGV4dFNlbGVjdGlv
biBUZXh0U2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBn
cmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICB7Cisg
ICAgICAgIGF1dG8gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCk7CisgICAgICAgIHNlbGVj
dGlvbi5kaXJlY3Rpb24gPSBkaXJlY3Rpb247CisgICAgICAgIHNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IGdyYW51bGFyaXR5OworICAgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0KKworICAg
IHN0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSB0eXBlOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxlY3Rp
b24gc2VsZWN0aW9uOworICAgICAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgICAg
ICB9OworICAgICAgICBib29sIHN5bmM7CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtu
b3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJvb2wg
c3luYyA9IGZhbHNlKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNl
bGVjdGlvbihzZWxlY3Rpb24pCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeyB9
CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdl
KQorICAgICAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAg
ICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAgICAg
IHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSB0eXBlLCBib29sIHN5bmMpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAg
ICAgICwgc2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5jKHN5
bmMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQpOworICAgICAgICB9CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2
b2lkIHNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgor
CisgICAgdm9pZCBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hhbmdl
CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBB
WExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMzA1
LDM1IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3
Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisg
ICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAg
QVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENoYW5n
ZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHREZWxldGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlVHlwaW5nOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
SW5zZXJ0ZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVu
dCk7CiAgICAgdm9pZCB0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9p
ZCBsYWJlbENoYW5nZWQoRWxlbWVudCopOwpAQCAtMjI5LDYgKzM0NCw4IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVz
LmNvbnRhaW5zKG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9v
dFdlYkFyZWEoKTsKKyAgICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFw
PEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hN
YXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYg
KzM2MSwxMSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwog
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlm
aWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCk7CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRp
bWVyOworICAgIFZlY3RvcjxzdGQ6OnR1cGxlPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhUZXh0RWRpdFR5cGUsIFN0cmluZz4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0Owor
ICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAgdm9p
ZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVh
dGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpAQCAt
MjUxLDYgKzM3Myw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAgICAKICAgICBB
WElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVD
YWNoZUVuYWJsZXIKQEAgLTMwOCw4ICs0MzIsMTYgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdu
b3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSB7IH0KKyNlbHNlCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFu
Z2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRpZgogaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1l
bnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQs
IFBvc3RUeXBlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZDhkMjZkZS4uYWMzOGYwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsNDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50
LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkg
Y29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElucHV0RWxlbWVudCogaW5w
dXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoaW5wdXRF
bGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0
PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4odGhpcyk7CisgICAgfQorICAgIAorICAgIGlmIChF
bGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxI
VE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENh
Y2hlICpjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY2Fj
aGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgp
OworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChh
cmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbnVsbHB0cjsKKyAg
ICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBp
ZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgaW5wdXRFbGVt
ZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCk7CisgICAgfQorICAgIGlm
ICghaW5wdXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJu
IGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRo
aXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJmLi43ZGJkNTlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5oCkBAIC04OCw2ICs4OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJ
bWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250
cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCog
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLmI1
Njk1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVh
Um9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5Ni4uNmVmYWFhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE4IEBAIFBsYWluVGV4dFJhbmdlIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxh
aW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsK
KyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAg
ICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRy
b2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAgIHRleHRD
b250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCArIHJhbmdl
Lmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBOb2RlKiBub2RlID0gbV9y
ZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBv
c2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAotICAgICAgICBQb3NpdGlvbihub2Rl
LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBQb3NpdGlvbiBwb3MxID0gUG9zaXRpb24obm9k
ZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAg
IFBvc2l0aW9uIHBvczIgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0
aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgVmlzaWJsZVNlbGVj
dGlvbiB2aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MxLCBwb3MyLCBET1dO
U1RSRUFNKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bih2aXNpYmxlU2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVu
Z3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUs
IHRydWUpKTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgpIGNvbnN0
CkBAIC0xOTYwLDEzICsxOTY0LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7CiAgICAg
aWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3Vt
ZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9z
aXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChyYW5nZS5z
dGFydCA9PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
YXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBtX3Jl
bmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5nZS5zdGFydCwgVXNlclRyaWdn
ZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7Ci0gICAg
ICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0
Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBiMDAuLmFiNzkzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtOTUsNyAr
OTUsMTYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJpbmddOwogfQogCi12
b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
Cit7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIzMDBlNzcuLmIzMGU0ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpA
QCAtNDQsNiArNDQsNTAgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0
ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2Vu
ZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0
VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVz
IEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBA
IkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVuZ3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0
TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1l
bnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFu
Z2VFbGVtZW50IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlm
CisKIC8vIFRoZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4
Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE1Niw4ICsyMDAsMTMxIEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsKIH0KIAotdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2Jq
ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAg
ICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBp
ZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50
ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAg
ICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAo
aWQgdGV4dE1hcmtlclJhbmdlID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxl
Y3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5nZTsKKyAg
ICB9CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gb2Jq
LT53cmFwcGVyKCk7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOwor
ICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7
CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3
aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlm
aWNhdGlvbl07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkqIHRleHRSZXBsYWNlbWVudENoYW5n
ZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBwb3NpdGlvbikKIHsKKyAgICBOU1N0cmluZyogdGV4dCA9IChOU1N0cmluZyAqKXN0cmlu
ZzsKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxlbmd0aF07CisgICAgaWYgKCFsZW5n
dGgpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogY2hhbmdl
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAg
IGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGVdID0gQCh0eXBlKTsKKyAgICBzdGF0
aWMgY29uc3QgTlNVSW50ZWdlciB0cnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKyAgICBpZiAobGVu
Z3RoID4gdHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsKKyAgICAgICAgdGV4dCA9IFt0ZXh0
IHN1YnN0cmluZ1RvSW5kZXg6dHJ1bmNhdGlvbkxlbmd0aF07CisgICAgfQorICAgIGlmIChsZW5n
dGggPiAwKQorICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXSA9
IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAgIGlmIChpZCB0
ZXh0TWFya2VyID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246
cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJldHVybiBbY2hhbmdl
IGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRF
ZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCF0ZXh0Lmxlbmd0
aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2VySW5m
byA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTozXTsKKyAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2Ug
PSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRp
b24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9
IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAg
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7
CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNz
aWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxp
dHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVs
ZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBh
cmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpO
U0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9i
aikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8g
PSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmNoYW5nZXMgPSBb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdOworICAgIGlmIChOU0Rp
Y3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBk
ZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFk
ZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBs
YWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBpbnNlcnRpb25UeXBlLCBpbnNlcnRlZFRleHQs
IHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBjaGFuZ2VzOworICAgIFtj
aGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkK
KyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3Jh
cHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNB
Y2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5m
byByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRp
b25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07CiB9CiAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi45
MjIyOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYg
KzMzLDkgQEAKIAogQGludGVyZmFjZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VG
cm9tVmlzaWJsZVBvc2l0aW9uczooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRp
b24gZW5kUG9zaXRpb246KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbillbmRQb3NpdGlvbjsKKy0g
KGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQ
b3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcAppbmRleCAxZGViNGRiLi42NzFkMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2
LDE1ICs0OCwyMyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVu
dC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsKLSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+
bm9kZVZhbHVlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGNvbnN0IFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9u
J3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVl
ID09ICJcbiIpCisgICAgaWYgKHRleHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVj
dENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2Rl
LCB0ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAg
UG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRl
eHQ+KG5vZGUpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwg
dGV4dCwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVu
ZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDE4ICs3NCwxNiBAQCB2b2lkIEFwcGVuZE5v
ZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUu
Z2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5l
QnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAg
IHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlF
ZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsK
ICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBk
ZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25v
ZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRD
aGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkp
OwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC04OCw0ICs5
NiwxNCBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmgKaW5kZXggZDY0YjA0ZS4uNDljOWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFy
ZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
b0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRl
OwpAQCAtNDcsNiArNDcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0lu
Q29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAg
IFJlZlB0cjxOb2RlPiBtX25vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA4NDYxZWU3Li42NzI2MDMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQXBwbHlT
dHlsZUNvbW1hbmQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCisjaW5j
bHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTU4LDYgKzU5LDggQEAKICNpbmNsdWRlICJSZW5k
ZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVy
ZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAt
MzIwLDkgKzMyMywxNCBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJs
b2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitSZWY8RWRpdENv
bW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKK3sKKyAgICByZXR1cm4gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQ
YXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBT
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShp
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVm
UHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtNTIyLDIzICs1MzAsNDYgQEAgdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNl
cnRlZFRleHQKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24odmlz
aWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCwgc2NvcGUuZ2V0KCkpLCB2aXNpYmxlUG9z
aXRpb25Gb3JJbmRleChzdGFydEluZGV4ICsgbGVuZ3RoLCBzY29wZS5nZXQoKSkpKTsKIH0KIAor
UmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0KQoreworICAgIHJldHVybiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworfQorCitS
ZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCkKK3sKKyAgICBpZiAoZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25DdXQpCisgICAg
ICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCk7CisgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworfQorCitSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICBy
ZXR1cm4gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CiB9
CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQ
dHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3Qg
U3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9k
ZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KGRlbGV0ZUNvbW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAg
ICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgcmVwbGFjZW1lbnRUZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgpKSk7CiB9
CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlU2VsZWN0ZWRUZXh0SW5O
b2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE1MjMsNCArMTU1NCwxMSBAQCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQog
CitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJl
dHVybiBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT5pbnRlbnQoKTsKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5oCmluZGV4IGMyYjQ4OWQuLjQ1ZDM4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOwogY2xhc3Mg
RWRpdGluZ1N0eWxlOwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpA
QCAtODcsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldGFpbkF1
dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3Vs
ZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVy
cmlkZTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERv
Y3VtZW50Jik7CkBAIC0xMDMsMTUgKzEwNSwxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1v
dmVTdHlsZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgZGVsZXRlU2Vs
ZWN0aW9uKGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwogICAgIHZvaWQgZGVs
ZXRlU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlID0g
ZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9
IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRp
emVNYXJrdXAgPSB0cnVlKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAgICAgdm9pZCBpbnB1dFRleHQoY29uc3Qg
U3RyaW5nJiwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSk7CiAgICAgYm9vbCBpc1Jl
bW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqKTsKICAgICB2b2lkIGluc2VydE5vZGVBZnRlcihQYXNz
UmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKTsKICAgICB2b2lkIGluc2Vy
dE5vZGVBdChQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUF0VGFiU3BhblBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9u
Jik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2b2lkIGluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxO
b2RlPiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgPSBEb05vdEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2
b2lkIGluc2VydFBhcmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNl
KTsKICAgICB2b2lkIGluc2VydExpbmVCcmVhaygpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21t
YW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgdm9pZCBt
ZXJnZUlkZW50aWNhbEVsZW1lbnRzKFBhc3NSZWZQdHI8RWxlbWVudD4sIFBhc3NSZWZQdHI8RWxl
bWVudD4pOwogICAgIHZvaWQgcmViYWxhbmNlV2hpdGVzcGFjZSgpOwpAQCAtMTMwLDYgKzEzNSw4
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIG1vdmVSZW1haW5pbmdTaWJsaW5nc1RvTmV3UGFyZW50
KE5vZGUqLCBOb2RlKiBwYXN0TGFzdE5vZGVUb01vdmUsIFBhc3NSZWZQdHI8RWxlbWVudD4gcHJw
TmV3UGFyZW50KTsKICAgICB2b2lkIHVwZGF0ZVBvc2l0aW9uRm9yTm9kZVJlbW92YWxQcmVzZXJ2
aW5nQ2hpbGRyZW4oUG9zaXRpb24mLCBOb2RlJik7CiAgICAgdm9pZCBwcnVuZShQYXNzUmVmUHRy
PE5vZGU+KTsKKyAgICB2aXJ0dWFsIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiByZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
dW5zaWduZWQpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJl
cGxhY2VtZW50VGV4dCk7CiAgICAgUG9zaXRpb24gcmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlUHJlc2VydmluZ01hcmtl
cnMoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZmRmOWJmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
bm9kZSwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmJmMmZhNzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjFiNGU3MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKKyNpbmNs
dWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGluZ1N0
eWxlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUs
IGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRp
emVNYXJrdXApCisgICAgOiBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERl
bGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1
cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291
bnQpOworfQorCitFZGl0QWN0aW9uIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFk
MDVjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZF9oCisjZGVmaW5lIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5jbHVkZSAi
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0g
dHJ1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRl
LCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQm
LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVw
bGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7
CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCmluZGV4IDJlYTk2ZDUuLjg1NzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjksNiAr
MjksOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtNDUsNiArNDcsMTEgQEAgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2kKICAgICBBU1NFUlQobV9vZmZzZXQgKyBtX2NvdW50IDw9IG1fbm9kZS0+bGVuZ3Ro
KCkpOwogfQogCitTdHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0
KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogewogICAgIEFTU0VSVChtX25vZGUpOwpAQCAtNTYsMTAgKzYzLDEw
IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgbV90ZXh0
ID0gbV9ub2RlLT5zdWJzdHJpbmdEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+
ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2
b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUt
Pmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQp
KSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC04NCw0ICs5MSwxNCBAQCB2b2lkIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLjdhMzFjMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmlu
ZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
OSw4ICs0MCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwogICAgIH0KIAorICAg
IFN0cmluZyYgZGVsZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKwogcHJp
dmF0ZToKLSAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBA
IC00OCw3ICs1MywxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgot
ICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25v
ZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9jb3VudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4
IDJiYmM2ZWQuLjQ5ZjAwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERl
bGV0ZSBrZXksCi0gICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFu
ZCB0aGF0IHN1cHBsaWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8g
bWVudSBjb3JyZWN0bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9u
Q3V0OworICAgIHJldHVybiBFZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxl
dGlvbiBkb2Vzbid0IHByZXNlcnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBi
ZWZvcmUgaXQuICBGb3IgZXhhbXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkNvbW1hbmQuY3BwCmluZGV4IGMxNzNkZjQuLjE5ZjlmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVk
ZSAiRGljdGF0aW9uQ29tbWFuZC5oIgogCiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1h
bmQuaCIKLSNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlRleHQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgRGljdGF0aW9u
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBz
aXplX3QgbGluCiB7CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBhbHRlcm5hdGl2
ZXNJbkxpbmU7CiAgICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2UobGluZVN0
YXJ0LCBsaW5lTGVuZ3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJlZlB0cjxJbnNlcnRU
ZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2Vy
U3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwg
bGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVz
SW5MaW5lKSk7CisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgp
LCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0
aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKICAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmY4OGM0MDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKwor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mMjk4MzZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjQxNWY3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgor
CisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1
cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50
LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAg
IHJldHVybiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCB0ZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNjOWNiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAor
CisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29t
bWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2Vy
U3VwcGxpZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUz
Mi4uOTFlYTkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5o
IgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRD
b21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAg
LTEyNCw1ICsxMjUsMjkgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2Nl
bmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KICAgICAgICAgbm9kZXMu
YWRkKG5vZGUpOwogfQogI2VuZGlmCisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZVVua25vd247Cit9CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
bikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRl
eHQsIHBvc2l0aW9uKTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uNWNhMTljOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBF
ZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVj
dGlvbi5oIgogCkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBk
b0FwcGx5KCkgPSAwOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRWRpdENvbW1hbmQo
RG9jdW1lbnQmKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CkBAIC05Nyw2ICsxMDAsMTIgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5v
ZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZSB7
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChhcHBseUVkaXRU
eXBlKCkpOyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1h
bmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCmluZGV4IDcxMGFhMzkuLmMxNTNjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5o
IgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEYXRh
VHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVk
ZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKQEAgLTM3NCwxMiArMzc1LDE1IEBAIGJvb2wgRWRp
dG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRl
eHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9y
OjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9u
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgaWYgKGVkaXRp
bmdBY3Rpb24gPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGVs
c2UKKyAgICAgICAgYXBwbHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0
KCkKQEAgLTEwMDEsNyArMTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNz
UmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0
aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2Ug
dGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNl
bGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFt
ZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmludGVudCgpKTsKICAgICBk
aXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5n
Um9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxl
bWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjYs
NyArMTI3MCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNw
ZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwog
ICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRo
U21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0
KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTI4NTAsNyArMjg1NCw3IEBAIHZvaWQg
RWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZl
VGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21t
YW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJh
bWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2Vs
ZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAg
IGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQo
KS5pc09ycGhhbigpKQpAQCAtMjg2Miw3ICsyODY2LDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNl
bGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24s
CiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8g
bG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9
IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlm
IChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigp
LnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBt
X2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGlu
dGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVj
dGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBE
T00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xs
b3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApp
bmRleCA3OTJiYzQ2Li5kNmM1ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3
ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVs
ZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9v
bCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBz
bWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7
CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsKQEAgLTQ2OCw3ICs0NjgsNyBA
QCBwcml2YXRlOgogICAgIGVudW0gU2V0Q29tcG9zaXRpb25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0
aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9OwogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiwgU2V0Q29tcG9zaXRpb25Nb2RlKTsKIAotICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVT
ZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMpOworICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVT
ZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7
CiAKICAgICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFjdGlv
biB9OwogICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBhOGYxYjQxLi5l
NGQ1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAt
MTM4LDggKzEzOCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVt
ZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3Zl
VG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2Vy
ZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2li
bGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBw
b3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGFsaWduKTsKKyAgICBzZXRT
ZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBF
cXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkp
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNl
bGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVU
byhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0
ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMjU0LDcgKzI1MywxNiBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rp
b24gfHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1
cm47CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IGdyYW51bGFyaXR5KTsKKyAgICAKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKKyAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAg
ICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hl
OjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
aW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBv
c3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0y
NzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQq
IG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7
CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0
aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFt
ZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50
KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAg
ICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGln
biwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBk
dXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFzIGJl
ZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJblBh
cmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25nZXIg
dmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8gYmUg
ZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpAQCAt
MzIwLDcgKzMyOCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
biwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQog
ICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0
aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2
OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAg
ICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQpCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJl
dHVybjsKQEAgLTM4MCw3ICszODgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oKQogICAgICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZl
YWxFeHRlbnQpOwogICAgIH0KIAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVu
dCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxl
Y3Rpb24oKQpAQCAtMTAxOCw3ICsxMDI2LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVj
dGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBz
dGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAg
ICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBh
cmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAg
IAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50
KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxl
Y3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlz
UmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRM
KQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisg
ICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENo
YXJhY3RlckdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJp
dHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3Jh
cGhCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJv
dW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFy
aXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFu
dWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3Jh
bnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3Vt
ZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFy
eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5Ogor
ICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERp
cmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJv
dW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0
aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRh
cnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBp
bnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0
aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc0LDYg
KzExNTUsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVy
LCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5n
ZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0
UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAm
JiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4
dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0K
KwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0
aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xl
YXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3Rl
OiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVz
ZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzA3LDggKzE3OTMsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2li
bGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAK
LSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBG
aXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0
aW9uKSkgeworICAgICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRl
bnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShS
YW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0
MjAsNyArMjUwOCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxl
Y3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2Vs
ZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5l
d1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAg
ZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlv
bi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZhdWx0U2V0U2VsZWN0aW9u
SW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3Jh
bnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxl
Y3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2Vs
ZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmlu
ZGV4IDBlNGUyOGUuLmI3NGZiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmlu
ZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJl
dmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9CisgICAgCisgICAg
c3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZh
dWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQ
T1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQs
NyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29u
c3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9u
LCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlv
bk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFy
YWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3Jh
bnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5n
ZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIs
NyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBT
VEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkp
OwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9v
bCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3Jh
bnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQg
bGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5
cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRp
cmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
PSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
SW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNl
bGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3
ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFz
c1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkK
LWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVu
dCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uYWVjNDc1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZy
YW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgpAQCAtNTAsNiArNTEsMTEgQEAgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2kKICAgICBBU1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwogfQogCitTdHJpbmcm
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJu
IG1fdGV4dDsKK30KKwogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
IHsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFz
c3dvcmRFY2hvRW5hYmxlZCgpOwpAQCAtNjUsOSArNzEsOSBAQCB2b2lkIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YSht
X29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
IGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1f
dGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAK
ICNpZiBQTEFURk9STShJT1MpCkBAIC04MiwxMCArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJs
ZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5v
dGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0g
ICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBt
X3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAg
ICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9F
WENFUFRJT04pOwogfQpAQCAtOTcsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2Vu
ZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNpZm5kZWYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKICAgICB9CiAKLXByaXZhdGU6CisgICAg
U3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRG
T1JNKElPUykKQEAgLTUxLDcgKzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcAppbmRleCBkMTZiNWQ2Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTEgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgog
Ci0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw4ICs1OSwxMCBAQCB2
b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9F
WENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24g
PSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+
KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbiht
X2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENo
aWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQog
CiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzEs
MTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9u
ID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0
PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
bV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2Vy
dENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQog
CiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODEs
NCArODcsMTQgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjhkOWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNpZm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
RWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMTYgKzM5LDIwIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAg
ICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0
LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAg
ICAKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhh
c2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkg
b3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8
Tm9kZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTU5LDEwICs1OSwx
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21t
YW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAotcHJpdmF0ZToK
LQotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAg
SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQ
dHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBS
ZWJhbGFuY2VUeXBlKTsKKworcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWNh
YmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENo
aWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IElu
c2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDU1OTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9o
CisjZGVmaW5lIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9k
ZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
KGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5jNDdhN2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
KQorICAgIDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0LCBkZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNmEzNTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0
ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBy
ZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmUwMTdiODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IHRleHQsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KHRleHQsIG9mZnNldCwgY291bnQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMGZkYmQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
X2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDog
cHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2ln
bmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOGJjNzhjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9
CisKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJu
OworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6
CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5z
ZXJ0OgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2Rl
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVw
bGFjZUFwcGx5RWRpdFR5cGUoKSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAg
ICB9Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
aW50ZW50KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQocmVwbGFjZUFwcGx5RWRpdFR5cGUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y
OTBjMWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZTsK
KworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0
ZWRUZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMGM0N2NhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50
LmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNDQsMTQgKzQ1LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRp
dGxlRWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRl
clN0eWxlLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2lu
Y2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRl
ICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgog
I2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNp
bmNsdWRlICJtYXJrdXAuaCIKQEAgLTE0ODIsNiArMTQ4OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjp1cGRhdGVOb2Rlc0luc2VydGVkKE5vZGUgKm5vZGUpCiAKICAgICBtX2Vu
ZE9mSW5zZXJ0ZWRDb250ZW50ID0gbGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShub2RlLT5sYXN0
RGVzY2VuZGFudCgpKTsKIH0KKyAgICAKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0
Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAg
IHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAg
ICAgICByZXR1cm4gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAg
ICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29t
cG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIH0KK30K
KworUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
KQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlw
aW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAg
IGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBk
ZWxldGVkVGV4dCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGlu
c2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIH0KK30KIAogLy8gRHVyaW5nIHNpbXBsZSBw
YXN0ZXMsIHdoZXJlIHdlJ3JlIGp1c3QgcGFzdGluZyBhIHRleHQgbm9kZSBpbnRvIGEgcnVuIG9m
IHRleHQsIHdlIGluc2VydCB0aGUgdGV4dCBub2RlCiAvLyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0
IG5vZGUgdGhhdCBob2xkcyB0aGUgc2VsZWN0aW9uLiAgVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFu
IHRoZSBnZW5lcmFsaXplZCBjb2RlIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMTEx
LDYgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIHBlcmZvcm1Ucml2aWFsUmVwbGFjZShj
b25zdCBSZXBsYWNlbWVudEZyYWdtZW50Jik7CiAKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGU7CisKICAgICBQb3NpdGlvbiBtX3N0YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAg
ICAgUG9zaXRpb24gbV9lbmRPZkluc2VydGVkQ29udGVudDsKICAgICBSZWZQdHI8RWRpdGluZ1N0
eWxlPiBtX2luc2VydGlvblN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKaW5kZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0NvbW1hbmQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2li
bGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQsNyBA
QCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29s
IHNlbGVjdEluc2VydGVkVGV4dCkKIAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQpCiB7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCisg
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAgICAg
ICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0
Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRU
ZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U0MjIxMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjAwYmQxNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Iy
NDYwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGlu
c2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAg
ICA6IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTc0
NjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQs
IFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVm
UHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MDFiMTY2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorI2lu
Y2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCitUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5z
ZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCisgICAgOiBJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBl
KQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNl
cnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCitSZWY8RWRp
dENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAg
cmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9k
ZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTNiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRU
ZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUg
PSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0
ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
LCBib29sLCBSZWJhbGFuY2VUeXBlKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBp
bnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zMGRkNTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkK
KyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZjMmUwZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1
LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNz
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVs
ZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVT
ZWxlY3Rpb25BdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwCmluZGV4IDdjMjEzNjUuLmU2OTVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3Rh
dGljIHZvaWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eU9iamVjdD4gcHJwT2JqZWN0KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCkKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4uMDdlMmE0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3
LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2NyZWVuUmVj
dChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCiAgICAgCi12
b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAo
bV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05v
dE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNh
dGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFY
T2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVu
dCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiht
X3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24p
OwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIuLjViZmI2NDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1
cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9vbCB0ZXh0SXND
aGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIFN0
cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAg
IGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRl
eHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisjaWYgSEFWRShB
Q0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0ZXh0SXNDaGFu
Z2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgICAgICAgICAg
Y2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5n
ZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAg
aW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAg
ICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkK
ICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJl
bmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9u
OjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAK
ICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYuLjA3ZjM4OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQsNyArMzE4NCwxNCBAQCBzdGF0aWMgdm9p
ZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJl
Y3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0
U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYm
IFBMQVRGT1JNKENPQ09BKQorICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91cyk7CisjZW5kaWYKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3Np
dGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmln
Z2VyZWQpCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAsIGludGVudAorI2VuZGlmCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25N
b3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250325</attachid>
            <date>2015-04-07 19:47:11 -0700</date>
            <delta_ts>2015-04-07 20:53:29 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>201427</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDM5ODYyM2EyM2NkNDUzZTFkMzQ0MjViOGE1YWNhOGI5MTg1OGU5MjkKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk4ZGZkODkuLmI1NjM3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDc0LDEwICsxNDc0
LDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5
MCwxNyArMTQ5NCwyMiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9JbnNlcnRM
aW5lQnJlYWtDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCiAg
ICAgZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVs
ZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5j
cHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUxNiw2ICsxNTI1LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1Rl
eHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAK
ICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5j
cHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxM2M4
OC4uNTdlY2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwOSBAQAorMjAxNS0wNC0wNyAgRG91
ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRj
aCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpz
YW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRp
dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dv
cmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlv
blJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0VGV4dFJlcGxh
Y2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQ
bGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAg
ICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6
dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6
CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Np
dGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24p
OgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcv
RGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5k
OjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJr
ZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Lmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Up
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2Vy
dGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpk
b0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRU
eXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAg
IChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJ
bm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwogMjAxNS0wNC0wNyAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSB2
aWRlbyBwbGF5aW5nIHRvIGV4dGVybmFsIGRldmljZSBzaG91bGQgbm90IGJlIGludGVycnVwdGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNTdmNGMxYS4uNzg0MTFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjM3OSwxMiArNjM3OSwyMiBAQAogCQlGNDc4
NzU1NTE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDc4NzU1MzE5OTgzQUZG
MDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi87IH07CiAJCUY0N0E1RTNF
MTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEw
MCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDdBNUUzRjE5NUI4RTQ4MDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2lu
dHMuY3BwICovOyB9OworCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjUwNjNDMUQxQUI3NTZEODAwOUFCNTU2
IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2
IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OwogCQlGNTA2
NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAq
LzsgfTsKIAkJRjUxM0EzRUExNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsgfTsK
IAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1
OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8q
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDVGRTFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkMxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU0M0Q2MDEx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkYxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDYw
MjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q2MDAxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLzsgfTsKIAkJRjU0NEY3ODgx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQ
bGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQ
bGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi87IH07
CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQUEx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBODFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsK
IAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDc5MTI1MUYx
MkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREFFMTI1
MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJh
c2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBC
dXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAg
Ki87IH07CkBAIC02NDM0LDEyICs2NDQ0LDI2IEBACiAJCUY1NUIzRERFMTI1MUYxMkQwMDNFRjI2
OSAvKiBVUkxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLzsg
fTsKIAkJRjU1QjNEREYxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUIxMjUxRjEy
RDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RFMDEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5
cGUuaCAqLzsgfTsKKwkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8q
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTc0
REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3
NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKKwkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmggKi87IH07CiAJCUY1OTczREUwMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVN
YWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTcz
RERFMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMuaCAqLzsgfTsKIAkJRjU5NzNERTExNUNG
QjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMu
bW0gKi87IH07CiAJCUY1OUM5NUZGMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAgKi87IH07CiAJCUY1OUM5NjAwMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAq
LzsgfTsKKwkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmggKi87IH07CiAJCUY1QTE1NDI3MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxp
ZGF0aW9uTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
ICovOyB9OwogCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI2
MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovOyB9OworCQlGNUE1Mjk1
RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
NTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjVBNTI5NjExQUND
RUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVGMUFDQ0VBNzAw
MDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NjAx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07
CiAJCUY1QzA0MURBMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ3MEZG
Q0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQx
REIwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0
QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CiAJCUY1QzA0MUUzMEZGQ0E5NkQwMDgz
OUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFERTBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRN
TERhdGFMaXN0RWxlbWVudC5oICovOyB9OwpAQCAtMTQwMDcsNiArMTQwMzEsOCBAQAogCQlGNDc4
NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0ExOTVCOEM4QTAwNDgz
MTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBwYXRoID0gc3R5bGUvU3R5
bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3
QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgcGF0aCA9
IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUIx
QUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9y
bUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNjE1
N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAxOSw4ICsxNDA0NSwxNiBAQAog
CQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qz
MDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZC
RTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQzFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2
MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlVGV4dElucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNF
RjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRvbklucHV0VHlwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA3MCw2ICsxNDEwNCwxMiBAQAogCQlGNTVCM0RBQTEy
NTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFVSTElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vla0lucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg0RjAwMkRFMzc1
OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEN1cnNvck1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NTRDMDJERTM3
NTkwMUVBNDEyMiAvKiBXZWJDb3JlRnJhbWVWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVGcmFtZVZpZXcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NjNB
MDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE0MDgwLDggKzE0MTIwLDE2
IEBACiAJCUY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGVNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkExQUNDQjNDMDAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydFRleHRDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QTE1NDI1MTI3OTUzNEQwMEQw
QjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1
MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUYxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NjAxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0
YUxpc3RFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxEYXRhTGlzdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMw
NDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ5MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxp
c3RFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3Njk3LDYgKzE3NzQ1LDEwIEBA
CiAJCQkJOTMzMDlEOEUwOTlFNjQ5MTAwNTZFNTgxIC8qIENvbXBvc2l0ZUVkaXRDb21tYW5kLmgg
Ki8sCiAJCQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNw
cCAqLywKIAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQu
aCAqLywKKwkJCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q2MDAxQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMw
OUQ4RjA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEOTAwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLywKIAkJCQk5MzMwOUQ5MTA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzcwNSw2ICsxNzc1NywxMCBAQAogCQkJCUNFQ0FERkMzMTUz
Nzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCUNFQ0FERkM0
MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmNwcCAqLywKIAkJCQlDRUNBREZD
NTE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1MDYzQzFB
MUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLywKKwkJCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU4NzJBNzMxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTMw
OTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRBY3Rpb24uaCAqLywKIAkJCQk5MzMwOUQ5NDA5OUU2NDkx
MDA1NkU1ODEgLyogRWRpdENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDk1MDk5RTY0OTEwMDU2
RTU4MSAvKiBFZGl0Q29tbWFuZC5oICovLApAQCAtMTc3NTEsNiArMTc4MDcsMTAgQEAKIAkJCQlD
NkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8s
CiAJCQkJOTMzMDlEQUMwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOURBRDA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1h
bmQuaCAqLywKKwkJCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTc0REVEODFBQ0EyMjhEMDA1
OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJ
CQkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCMTA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURCMjA5OUU2NDkxMDA1NkU1ODEg
LyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggKi8sCiAJCQkJRDA2QzBEOEUwQ0ZEMTE0NjAw
NjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovLApAQCAtMTc3NjEsNiArMTc4MjEs
MTAgQEAKIAkJCQk5MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyog
UmVuZGVyZWRQb3NpdGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8q
IFJlbmRlcmVkUG9zaXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAor
CQkJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVE
QTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBG
NDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5
MzMwOURCQTA5OUU2NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICov
LApAQCAtMTc3OTYsNiArMTc4NjAsMTQgQEAKIAkJCQk5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODgg
LyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJCQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1
ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgx
IC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkIxQUND
QjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJ
CQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkYxQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUIxQUNDRThF
MDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyog
VW5kb1N0ZXAuaCAqLywKIAkJCQlEMDg2RkU5NzA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29t
bWFuZC5jcHAgKi8sCiAJCQkJRDA4NkZFOTYwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1h
bmQuaCAqLywKQEAgLTIzNjkwLDYgKzIzNzYyLDcgQEAKIAkJCQk2QzU2OENCMTE5REFGRUEwMDA0
MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEZB
RjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QTRGNjU3MjFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzMwOURENzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBOEY2QkJEMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRjBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRp
b25DYWNoZUdyb3VwLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDkzLDYgKzI0NTY2LDcgQEAKIAkJ
CQkzMTA2MDM3OTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTMxMDYwMzdCMTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRD
U1NGaWx0ZXJWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RDBFNkND
QzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdGMEU2Q0NDMjgwMEJGNjA4OCAv
KiBET01DU1NLZXlmcmFtZVJ1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
ODAwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDgyMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ4MTYsNiArMjQ4OTAsNyBAQAogCQkJCUExOUQ5
MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhU
TUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgw
RjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTdCQzg0OUIxMjM3MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzMDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDQ1LDYgKzI1MTIwLDcgQEAKIAkJCQlGREY3
RTlDNDEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGREExNUVBMDEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUE2MTJCMDNFRTEwMDNBNTgzQSAvKiBK
U0F1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjUwNjNDMUMxQUI3NTZENTAwOUFC
NTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEQTE1RUE4MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvRGVzdGluYXRpb25Ob2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBRTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRp
b0xpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVCMDEyQjAzRUUxMDAzQTU4M0Eg
LyogSlNBdWRpb05vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNTQsNiArMjUxMzAsNyBAQAog
CQkJCUJFOEVGMDQzMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJFOEVGMDQ1MTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3NkZCOUZGOTE5QTczRTNBMDA0MjA1NjIgLyogSlNBdXRvY29t
cGxldGVFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFyUHJvcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RkE0NDU0RTg5OEYyRkMxNjhCQzM4QzEgLyogSlNCZWZvcmVV
bmxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE3Myw2ICsyNTI1MCw3IEBACiAJCQkJ
RkRBMTVFQUMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxOEY1MDAyMTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxOEY1MDA0MTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWRCdXR0b24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NDBFOUM0NzAzMDAw
RDZGNzUgLyogSlNHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjYwRTlD
NDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREE3
QzFGMTg4MzIyRkMwMEM5NTRCNSAvKiBKU0dlc3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNTYxNCw2ICsyNTY5Miw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpT
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERC
NTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RV
cGxvYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFD
RTUzRjcwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0
aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI2Nzk1LDYgKzI2ODc0LDcgQEAKIAkJCQlCMkMzREEz
QzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkMzREEzRTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjTGF0aW4xLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkFGRkM5QTBEMDBBNURGMDAzMDA3NEQgLyogVGV4dENvZGVjTWFjLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNTc0REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDAwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VzZXJEZWZpbmVkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE0MjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4g
SGVhZGVycyAqLywKQEAgLTI2ODQ4LDYgKzI2OTI4LDcgQEAKIAkJCQkxODVCQ0YyOTBGMzI3OUNF
MDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QTE5
NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFG
NzJCRjBCMTg3RkQ0NUMwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1Mu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2QTQxOTRCNUMyMjAw
MUNCRDI0IC8qIFRpbGVDb3ZlcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGODlBNDIx
NTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FB
M0E2OUMxOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVHcmlkLmggaW4gSGVhZGVycyAqLywKQEAgLTI2
OTcyLDEyICsyNzA1MywxNCBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJB
Y3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QTdB
QTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkxNzkxNUMwMDAzNDE4
NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QTgw
ODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVy
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlERDYxNjMyMDI2QzAwN0MzOERGIC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTI3REVF
MTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1M0Q5MTExMTQzMTBDQzAwMEQ4MTdFIC8qIFdlYkNvcmVKU0NsaWVudERhdGEu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0
NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1MDA3QjQyQTkgLyogV2ViQ29yZU5TU3Ry
aW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MDEwLDYgKzI3MDkzLDcgQEAKIAkJCQk2
RTRFOTFBRjEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwMUQzQ0Y4MzE0QkQwQTMwMDBGRTk5NzAgLyogV2Vi
R0xDb250ZXh0R3JvdXAuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NUQwQkQ4MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwMUQzQ0Y4NTE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250ZXh0T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMEVFMERGNjE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjgxNDRGODI1NTAwRjgwQjBEIC8q
IFdlYkdMRGVidWdTaGFkZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzUyLDYgKzI3ODM2LDcg
QEAKIAkJCQk2Rjk5NUEzOTFBNzA4MzM3MDBBNzM1RjQgLyogSlNXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEM0UyNTIzMTgwNDZCQ0QwMEUyN0Y1NiAvKiBD
U1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCRjg5MDQ1
MTY5RTlGMUYwMDUyRDg2RSAvKiBDU1NHcm91cGluZ1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjVBNTI5NjExQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjNFNzZDMERBRTg4QTkwMDlGREM5MSAvKiBD
U1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzOTNFNUZGMTUx
QTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4MEU2Q0ZFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbWFnZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjc4MjksNiArMjc5MTQsNyBAQAogCQkJCTMxRkIxQTU4MTIwQTVEMDYwMERDMDJB
MCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIx
QTVBMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxRkIxQTVDMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE0MDM3OUUxMjRCRUE3
RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTkzMDlBMTExMUY0QUU1ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjkzOTcyNjFBNEE1RkJEMDBFODM0OUQgLyog
TkZBLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5NjUsNiArMjgwNTEsNyBAQAogCQkJCTg1RUNC
RUY2MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTW9kRWxlbWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTg1REY4MTJDMEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0RDE2MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1M
T0xpc3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODVGMzJBRUYwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NTQwNzU2QzBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9w
dGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGMkY5QzBBQTNDQUU1MDBBRDY0
QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODEx
Myw2ICsyODIwMCw3IEBACiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzQzMDRCMDE5MUFDOTA4
MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
NzI4Njk0RTE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3NUU4QjhBMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3NUU4QjhDMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgyMjMsNiArMjgzMTEsNyBAQAogCQkJCTRGQjM5MEFE
MTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTc0NkFGMjMxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyNjE0RjREREU2
MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGQjYyNTJFMThERTFCMTUwMEEwN0MwNSAvKiBHZW9tZXRyeVV0aWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMkFGRkM4MzBEMDBBNUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlTWFjLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjgyNDMsNiArMjgzMzIsNyBAQAogCQkJCUIyQTAxNUFBMEFG
NkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
Rjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyogSGlkZGVuSW5wdXRUeXBl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUE5RDlGMzE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MTc5Q0UzNjE5NUNBQzdFMDAxOUMxOTggLyogSElER2FtZXBhZFByb3ZpZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTREMTUzMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg0MjIsNiArMjg1MTIsNyBAQAogCQkJCTUxMDE5MkQx
MThCNkI5QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjU1QjNEQzExMjUxRjEyRDAwM0VGMjY5IC8qIEltYWdlSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA4OTU4MjU1MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjc1MzU3QjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VNYWMubW0g
aW4gU291cmNlcyAqLywKQEAgLTI4ODgwLDYgKzI4OTcxLDcgQEAKIAkJCQlFNTFBODFERjE3Mjk4
RDc3MDBCRkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTlB
NTg3MDExRTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY0M0M4NUYxODlFMTVBNjAwMDE5QUUyIC8qIEpTUGVyZm9ybWFuY2VU
aW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q2MDExQUNCMEM4MzAwNjM2RDVEIC8q
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRFQTYy
NDYxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzQjcwRDZCMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4OUYwMUQxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9w
U3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4OTE0LDYgKzI5MDA2LDcgQEAKIAkJ
CQkwNzk2OURCQjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkQxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdEMDdCMTQx
ODM0MTU4ODAwQUJERDNDIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJGMTdEMTQxNTEw
MDdGRjg0MiAvKiBKU1JUQ1N0YXRzQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5
NjlEQzExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXBvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc5NjlEQzMxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXNwb25zZS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI5NjkwLDYgKzI5NzgzLDcgQEAKIAkJCQkwNzM3OTRGRDE5
RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzM3OTRERDE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBCMTdEMTRDRUUwMDQyMEFBMSAvKiBSVENQZWVyQ29u
bmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEYxMTlFRTM3QkIwMEU1QTA0NSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBDMTdE
MTRDRUUwMDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTg2Nyw2ICsyOTk2MSw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2
RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5
MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMzAzNzEsNiArMzA0NjYsNyBAQAogCQkJCUExNDgzMkMwMTg3RjY1NjYwMERB
NjNBNiAvKiBXS0dyYXBoaWNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzIxODdGNjVD
NzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDNTE4
N0Y2NjgzMDBEQTYzQTYgLyogV0tWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjUwNjNDMUQx
QUI3NTZEODAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5OTE5OTYxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxl
Rm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNDM0NjQ1MEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM4MjA4OTYxNDdEMzVGOTAwMTBCQzA2
IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLjcwODM2
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI5LDYgKzEyOSw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBB
WE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywg
JkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTc0Miw2ICs3NDMsMjIgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAg
ICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQor
eworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXIuc3RvcCgpOworCisgICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEg
dGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hp
Y2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlm
aWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlz
dCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFz
c3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbm90ZSA6
IG5vdGlmaWNhdGlvbnMpIHsKKyAgICAgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRm
b3JtCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihzdGQ6
OmdldDwwPihub3RlKS5nZXQoKSwgc3RkOjpnZXQ8MT4obm90ZSksIHN0ZDo6Z2V0PDI+KG5vdGUp
LCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgfQorI2VuZGlmCit9CiAgICAgCiB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhOb3Rp
ZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBv
c3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjcsMjI3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90
aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNl
cnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9iamVj
dENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQp
Cit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRmKCJF
ZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
cHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChp
bnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAg
ICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVu
a25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJpbnRm
KCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAg
cHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJbnNl
cnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0
OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3RlIik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVj
dGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25V
bmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAg
ICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHByaW50
ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikg
eworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAg
ICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6Cisg
ICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAgICAg
ICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAg
cHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBwcmlu
dGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsKKyAg
ICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0
U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBt
X3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQorICAg
ICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKwogICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmot
PmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0
KCk7CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgaW50ZW50LCBzZWxl
Y3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFY
T2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVu
dCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlv
bik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoKTsKK30KKworI2lmIFBM
QVRGT1JNKENPQ09BKQorc3RhdGljIGJvb2wgc2FuaXRpemVQYXNzd29yZFRleHQoY29uc3QgQWNj
ZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBTdHJpbmcgJnRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmouaXND
b250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICB0ZXh0ID0gb2JqLnBhc3N3b3Jk
RmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCktPnBhc3N3b3JkRmllbGRWYWx1ZSgpLnN1
YnN0cmluZyhwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0
KCksIHRleHQubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRp
dFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRpemVkVGV4dCA9IHRl
eHQ7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Cisg
ICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2Fu
aXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJsZU9iamVjdCgp
LCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7
CisgICAgfQorCisgICAgLy8gRGVsZWdhdGUgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgcG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVk
VGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxh
dGZvcm0KKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBk
ZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGlu
c2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VS
VChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0Owor
ICAgIFN0cmluZyBzYW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikg
eworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25z
VG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCksIGlu
c2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYgKCFt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2
YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0
Zm9ybQorICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRl
bGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIHNhbml0aXpl
ZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKICAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0
ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQp
OworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdl
Rm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgogfQogCiB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFt
ZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzEyLDE3IEBAIGJv
b2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAg
ICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3Qo
KSkgeworICAgICAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqZmlyc3RDaGlsZCA9IHJvb3RP
YmplY3QtPmZpcnN0Q2hpbGQoKSkgeworICAgICAgICAgICAgaWYgKGZpcnN0Q2hpbGQtPmlzV2Vi
QXJlYSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmaXJzdENoaWxkOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6
QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2Nh
Y2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAppbmRleCBiZmE5Mjc3Li5iZDJjNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksOTkgQEAg
cHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNs
eSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1
bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5
cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d24sCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorICAgIH07CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAg
ICAgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgICAgICBBWFRleHRFZGl0VHlwZURlbGV0
ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUluc2VydCwg
Ly8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8g
SW5zZXJ0IHZpYSB0eXBpbmcKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24sIC8vIElu
c2VydCB2aWEgZGljdGF0aW9uCisgICAgICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUg
dmlhIEN1dAorICAgICAgICBBWFRleHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUK
KyAgICB9OworCisgICAgLy8gU2ltcGxlIHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2
YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICBlbnVtIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cwogICAgIH07CiAKLSAgICB2
b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAv
LyBBbGwgZ3JhbnVsYXJpdHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUg
d2hvbGUgZG9jdW1lbnQgYXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5
IHNvbWUgb3RoZXIgZ3JhbnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRv
Y3VtZW50IHdpbGwgbm90IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24u
CisgICAgfTsKKworICAgIHN0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgICAgICBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSBncmFudWxhcml0eTsKKyAgICB9OworCisgICAgc3RhdGljIEFYVGV4dFNlbGVjdGlv
biBUZXh0U2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBn
cmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICB7Cisg
ICAgICAgIGF1dG8gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCk7CisgICAgICAgIHNlbGVj
dGlvbi5kaXJlY3Rpb24gPSBkaXJlY3Rpb247CisgICAgICAgIHNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IGdyYW51bGFyaXR5OworICAgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0KKworICAg
IHN0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSB0eXBlOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxlY3Rp
b24gc2VsZWN0aW9uOworICAgICAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgICAg
ICB9OworICAgICAgICBib29sIHN5bmM7CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtu
b3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJvb2wg
c3luYyA9IGZhbHNlKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNl
bGVjdGlvbihzZWxlY3Rpb24pCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeyB9
CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdl
KQorICAgICAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAg
ICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAgICAg
IHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSB0eXBlLCBib29sIHN5bmMpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAg
ICAgICwgc2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5jKHN5
bmMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQpOworICAgICAgICB9CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2
b2lkIHNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgor
CisgICAgdm9pZCBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hhbmdl
CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBB
WExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMzA1
LDM1IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3
Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisg
ICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAg
QVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENoYW5n
ZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHREZWxldGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlVHlwaW5nOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
SW5zZXJ0ZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVu
dCk7CiAgICAgdm9pZCB0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9p
ZCBsYWJlbENoYW5nZWQoRWxlbWVudCopOwpAQCAtMjI5LDYgKzM0NCw4IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVz
LmNvbnRhaW5zKG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9v
dFdlYkFyZWEoKTsKKyAgICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFw
PEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hN
YXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYg
KzM2MSwxMSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwog
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlm
aWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCk7CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRp
bWVyOworICAgIFZlY3RvcjxzdGQ6OnR1cGxlPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhUZXh0RWRpdFR5cGUsIFN0cmluZz4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0Owor
ICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAgdm9p
ZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVh
dGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpAQCAt
MjUxLDYgKzM3Myw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAgICAKICAgICBB
WElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVD
YWNoZUVuYWJsZXIKQEAgLTMwOCw4ICs0MzIsMTYgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdu
b3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSB7IH0KKyNlbHNlCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFu
Z2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRpZgogaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1l
bnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQs
IFBvc3RUeXBlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZDhkMjZkZS4uYWMzOGYwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsNDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50
LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkg
Y29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElucHV0RWxlbWVudCogaW5w
dXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoaW5wdXRF
bGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0
PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4odGhpcyk7CisgICAgfQorICAgIAorICAgIGlmIChF
bGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxI
VE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENh
Y2hlICpjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY2Fj
aGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgp
OworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChh
cmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbnVsbHB0cjsKKyAg
ICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBp
ZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgaW5wdXRFbGVt
ZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCk7CisgICAgfQorICAgIGlm
ICghaW5wdXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJu
IGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRo
aXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJmLi43ZGJkNTlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5oCkBAIC04OCw2ICs4OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJ
bWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250
cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCog
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLmI1
Njk1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVh
Um9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5Ni4uNmVmYWFhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE4IEBAIFBsYWluVGV4dFJhbmdlIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxh
aW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsK
KyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAg
ICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRy
b2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAgIHRleHRD
b250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCArIHJhbmdl
Lmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBOb2RlKiBub2RlID0gbV9y
ZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBv
c2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAotICAgICAgICBQb3NpdGlvbihub2Rl
LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBQb3NpdGlvbiBwb3MxID0gUG9zaXRpb24obm9k
ZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAg
IFBvc2l0aW9uIHBvczIgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0
aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgVmlzaWJsZVNlbGVj
dGlvbiB2aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MxLCBwb3MyLCBET1dO
U1RSRUFNKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bih2aXNpYmxlU2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVu
Z3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUs
IHRydWUpKTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgpIGNvbnN0
CkBAIC0xOTYwLDEzICsxOTY0LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7CiAgICAg
aWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3Vt
ZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9z
aXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChyYW5nZS5z
dGFydCA9PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
YXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBtX3Jl
bmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5nZS5zdGFydCwgVXNlclRyaWdn
ZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7Ci0gICAg
ICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0
Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBiMDAuLmFiNzkzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtOTUsNyAr
OTUsMTYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJpbmddOwogfQogCi12
b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
Cit7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIzMDBlNzcuLmIzMGU0ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpA
QCAtNDQsNiArNDQsNTAgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0
ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2Vu
ZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0
VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVz
IEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBA
IkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVuZ3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0
TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1l
bnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFu
Z2VFbGVtZW50IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlm
CisKIC8vIFRoZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4
Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE1Niw4ICsyMDAsMTMxIEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsKIH0KIAotdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2Jq
ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAg
ICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBh
bGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBp
ZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50
ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAg
ICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAo
aWQgdGV4dE1hcmtlclJhbmdlID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxl
Y3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5nZTsKKyAg
ICB9CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gb2Jq
LT53cmFwcGVyKCk7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOwor
ICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7
CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3
aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlm
aWNhdGlvbl07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkqIHRleHRSZXBsYWNlbWVudENoYW5n
ZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBwb3NpdGlvbikKIHsKKyAgICBOU1N0cmluZyogdGV4dCA9IChOU1N0cmluZyAqKXN0cmlu
ZzsKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxlbmd0aF07CisgICAgaWYgKCFsZW5n
dGgpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogY2hhbmdl
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAg
IGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGVdID0gQCh0eXBlKTsKKyAgICBzdGF0
aWMgY29uc3QgTlNVSW50ZWdlciB0cnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKyAgICBpZiAobGVu
Z3RoID4gdHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsKKyAgICAgICAgdGV4dCA9IFt0ZXh0
IHN1YnN0cmluZ1RvSW5kZXg6dHJ1bmNhdGlvbkxlbmd0aF07CisgICAgfQorICAgIGlmIChsZW5n
dGggPiAwKQorICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXSA9
IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAgIGlmIChpZCB0
ZXh0TWFya2VyID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246
cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJldHVybiBbY2hhbmdl
IGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRF
ZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCF0ZXh0Lmxlbmd0
aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiB1c2VySW5m
byA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTozXTsKKyAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2Ug
PSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRp
b24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9
IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAg
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7
CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNz
aWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxp
dHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVs
ZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBh
cmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpO
U0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9i
aikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8g
PSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmNoYW5nZXMgPSBb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdOworICAgIGlmIChOU0Rp
Y3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBk
ZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFk
ZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBs
YWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBpbnNlcnRpb25UeXBlLCBpbnNlcnRlZFRleHQs
IHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBjaGFuZ2VzOworICAgIFtj
aGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkK
KyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3Jh
cHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNB
Y2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5m
byByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRp
b25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07CiB9CiAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi45
MjIyOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYg
KzMzLDkgQEAKIAogQGludGVyZmFjZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VG
cm9tVmlzaWJsZVBvc2l0aW9uczooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRp
b24gZW5kUG9zaXRpb246KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbillbmRQb3NpdGlvbjsKKy0g
KGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQ
b3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcAppbmRleCAxZGViNGRiLi42NzFkMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2
LDE1ICs0OCwyMyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVu
dC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsKLSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+
bm9kZVZhbHVlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGNvbnN0IFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9u
J3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVl
ID09ICJcbiIpCisgICAgaWYgKHRleHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVj
dENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2Rl
LCB0ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAg
UG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRl
eHQ+KG5vZGUpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwg
dGV4dCwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVu
ZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDE4ICs3NCwxNiBAQCB2b2lkIEFwcGVuZE5v
ZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUu
Z2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5l
QnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAg
IHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlF
ZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsK
ICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBk
ZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25v
ZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRD
aGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkp
OwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC04OCw0ICs5
NiwxNCBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmgKaW5kZXggZDY0YjA0ZS4uNDljOWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFy
ZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
b0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRl
OwpAQCAtNDcsNiArNDcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0lu
Q29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAg
IFJlZlB0cjxOb2RlPiBtX25vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA4NDYxZWU3Li42NzI2MDMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQXBwbHlT
dHlsZUNvbW1hbmQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCisjaW5j
bHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTU4LDYgKzU5LDggQEAKICNpbmNsdWRlICJSZW5k
ZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVy
ZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAt
MzIwLDkgKzMyMywxNCBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJs
b2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitSZWY8RWRpdENv
bW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKK3sKKyAgICByZXR1cm4gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQ
YXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBT
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShp
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVm
UHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtNTIyLDIzICs1MzAsNDYgQEAgdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNl
cnRlZFRleHQKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24odmlz
aWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCwgc2NvcGUuZ2V0KCkpLCB2aXNpYmxlUG9z
aXRpb25Gb3JJbmRleChzdGFydEluZGV4ICsgbGVuZ3RoLCBzY29wZS5nZXQoKSkpKTsKIH0KIAor
UmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0KQoreworICAgIHJldHVybiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworfQorCitS
ZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCkKK3sKKyAgICBpZiAoZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25DdXQpCisgICAg
ICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCk7CisgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworfQorCitSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICBy
ZXR1cm4gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CiB9
CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQ
dHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3Qg
U3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9k
ZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KGRlbGV0ZUNvbW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAg
ICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgcmVwbGFjZW1lbnRUZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgpKSk7CiB9
CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlU2VsZWN0ZWRUZXh0SW5O
b2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE1MjMsNCArMTU1NCwxMSBAQCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQog
CitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJl
dHVybiBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT5pbnRlbnQoKTsKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5oCmluZGV4IGMyYjQ4OWQuLjQ1ZDM4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOwogY2xhc3Mg
RWRpdGluZ1N0eWxlOwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpA
QCAtODcsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldGFpbkF1
dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3Vs
ZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVy
cmlkZTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERv
Y3VtZW50Jik7CkBAIC0xMDMsMTUgKzEwNSwxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1v
dmVTdHlsZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgZGVsZXRlU2Vs
ZWN0aW9uKGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwogICAgIHZvaWQgZGVs
ZXRlU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlID0g
ZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9
IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRp
emVNYXJrdXAgPSB0cnVlKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAgICAgdm9pZCBpbnB1dFRleHQoY29uc3Qg
U3RyaW5nJiwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSk7CiAgICAgYm9vbCBpc1Jl
bW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqKTsKICAgICB2b2lkIGluc2VydE5vZGVBZnRlcihQYXNz
UmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKTsKICAgICB2b2lkIGluc2Vy
dE5vZGVBdChQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUF0VGFiU3BhblBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9u
Jik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2b2lkIGluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxO
b2RlPiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgPSBEb05vdEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2
b2lkIGluc2VydFBhcmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNl
KTsKICAgICB2b2lkIGluc2VydExpbmVCcmVhaygpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21t
YW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgdm9pZCBt
ZXJnZUlkZW50aWNhbEVsZW1lbnRzKFBhc3NSZWZQdHI8RWxlbWVudD4sIFBhc3NSZWZQdHI8RWxl
bWVudD4pOwogICAgIHZvaWQgcmViYWxhbmNlV2hpdGVzcGFjZSgpOwpAQCAtMTMwLDYgKzEzNSw4
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIG1vdmVSZW1haW5pbmdTaWJsaW5nc1RvTmV3UGFyZW50
KE5vZGUqLCBOb2RlKiBwYXN0TGFzdE5vZGVUb01vdmUsIFBhc3NSZWZQdHI8RWxlbWVudD4gcHJw
TmV3UGFyZW50KTsKICAgICB2b2lkIHVwZGF0ZVBvc2l0aW9uRm9yTm9kZVJlbW92YWxQcmVzZXJ2
aW5nQ2hpbGRyZW4oUG9zaXRpb24mLCBOb2RlJik7CiAgICAgdm9pZCBwcnVuZShQYXNzUmVmUHRy
PE5vZGU+KTsKKyAgICB2aXJ0dWFsIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiByZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
dW5zaWduZWQpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJl
cGxhY2VtZW50VGV4dCk7CiAgICAgUG9zaXRpb24gcmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlUHJlc2VydmluZ01hcmtl
cnMoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZmRmOWJmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
bm9kZSwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmJmMmZhNzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjFiNGU3MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKKyNpbmNs
dWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGluZ1N0
eWxlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUs
IGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRp
emVNYXJrdXApCisgICAgOiBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERl
bGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1
cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291
bnQpOworfQorCitFZGl0QWN0aW9uIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFk
MDVjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZF9oCisjZGVmaW5lIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5jbHVkZSAi
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0g
dHJ1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRl
LCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQm
LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVw
bGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7
CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCmluZGV4IDJlYTk2ZDUuLjg1NzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjksNiAr
MjksOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtNDUsNiArNDcsMTEgQEAgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2kKICAgICBBU1NFUlQobV9vZmZzZXQgKyBtX2NvdW50IDw9IG1fbm9kZS0+bGVuZ3Ro
KCkpOwogfQogCitTdHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0
KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogewogICAgIEFTU0VSVChtX25vZGUpOwpAQCAtNTYsMTAgKzYzLDEw
IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgbV90ZXh0
ID0gbV9ub2RlLT5zdWJzdHJpbmdEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+
ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2
b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUt
Pmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQp
KSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC04NCw0ICs5MSwxNCBAQCB2b2lkIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLjdhMzFjMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmlu
ZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
OSw4ICs0MCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwogICAgIH0KIAorICAg
IFN0cmluZyYgZGVsZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKwogcHJp
dmF0ZToKLSAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBA
IC00OCw3ICs1MywxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgot
ICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25v
ZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9jb3VudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4
IDJiYmM2ZWQuLjQ5ZjAwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERl
bGV0ZSBrZXksCi0gICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFu
ZCB0aGF0IHN1cHBsaWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8g
bWVudSBjb3JyZWN0bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9u
Q3V0OworICAgIHJldHVybiBFZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxl
dGlvbiBkb2Vzbid0IHByZXNlcnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBi
ZWZvcmUgaXQuICBGb3IgZXhhbXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkNvbW1hbmQuY3BwCmluZGV4IGMxNzNkZjQuLjE5ZjlmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVk
ZSAiRGljdGF0aW9uQ29tbWFuZC5oIgogCiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q29udHJv
bGxlci5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1h
bmQuaCIKLSNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlRleHQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgRGljdGF0aW9u
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBz
aXplX3QgbGluCiB7CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBhbHRlcm5hdGl2
ZXNJbkxpbmU7CiAgICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2UobGluZVN0
YXJ0LCBsaW5lTGVuZ3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJlZlB0cjxJbnNlcnRU
ZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2Vy
U3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwg
bGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVz
SW5MaW5lKSk7CisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgp
LCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0
aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKICAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmY4OGM0MDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKwor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mMjk4MzZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjQxNWY3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgor
CisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1
cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50
LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAg
IHJldHVybiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCB0ZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNjOWNiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAor
CisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29t
bWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2Vy
U3VwcGxpZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUz
Mi4uOTFlYTkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5o
IgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRD
b21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAg
LTEyNCw1ICsxMjUsMjkgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2Nl
bmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KICAgICAgICAgbm9kZXMu
YWRkKG5vZGUpOwogfQogI2VuZGlmCisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZVVua25vd247Cit9CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
bikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRl
eHQsIHBvc2l0aW9uKTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uNWNhMTljOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBF
ZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVj
dGlvbi5oIgogCkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBk
b0FwcGx5KCkgPSAwOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRWRpdENvbW1hbmQo
RG9jdW1lbnQmKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CkBAIC05Nyw2ICsxMDAsMTIgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5v
ZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZSB7
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChhcHBseUVkaXRU
eXBlKCkpOyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1h
bmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCmluZGV4IDcxMGFhMzkuLmMxNTNjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5o
IgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEYXRh
VHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVk
ZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKQEAgLTM3NCwxMiArMzc1LDE1IEBAIGJvb2wgRWRp
dG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRl
eHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9y
OjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9u
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgaWYgKGVkaXRp
bmdBY3Rpb24gPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGVs
c2UKKyAgICAgICAgYXBwbHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0
KCkKQEAgLTEwMDEsNyArMTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNz
UmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0
aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2Ug
dGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNl
bGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFt
ZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmludGVudCgpKTsKICAgICBk
aXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5n
Um9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxl
bWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjYs
NyArMTI3MCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNw
ZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwog
ICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRo
U21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0
KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTI4NTAsNyArMjg1NCw3IEBAIHZvaWQg
RWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZl
VGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21t
YW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJh
bWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2Vs
ZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAg
IGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQo
KS5pc09ycGhhbigpKQpAQCAtMjg2Miw3ICsyODY2LDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNl
bGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24s
CiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8g
bG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9
IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlm
IChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigp
LnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBt
X2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGlu
dGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVj
dGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBE
T00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xs
b3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApp
bmRleCA3OTJiYzQ2Li5kNmM1ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3
ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVs
ZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9v
bCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBz
bWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7
CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsKQEAgLTQ2OCw3ICs0NjgsNyBA
QCBwcml2YXRlOgogICAgIGVudW0gU2V0Q29tcG9zaXRpb25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0
aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9OwogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiwgU2V0Q29tcG9zaXRpb25Nb2RlKTsKIAotICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVT
ZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMpOworICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVT
ZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7
CiAKICAgICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFjdGlv
biB9OwogICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBhOGYxYjQxLi5l
NGQ1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAt
MTM4LDggKzEzOCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVt
ZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3Zl
VG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2Vy
ZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2li
bGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBw
b3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGFsaWduKTsKKyAgICBzZXRT
ZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBF
cXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkp
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNl
bGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVU
byhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0
ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMjU0LDcgKzI1MywxNiBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rp
b24gfHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1
cm47CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IGdyYW51bGFyaXR5KTsKKyAgICAKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKKyAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAg
ICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hl
OjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
aW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBv
c3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0y
NzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQq
IG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7
CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0
aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFt
ZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50
KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAg
ICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGln
biwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBk
dXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFzIGJl
ZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJblBh
cmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25nZXIg
dmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8gYmUg
ZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpAQCAt
MzIwLDcgKzMyOCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
biwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQog
ICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0
aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2
OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAg
ICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQpCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJl
dHVybjsKQEAgLTM4MCw3ICszODgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oKQogICAgICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZl
YWxFeHRlbnQpOwogICAgIH0KIAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVu
dCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxl
Y3Rpb24oKQpAQCAtMTAxOCw3ICsxMDI2LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVj
dGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBz
dGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAg
ICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBh
cmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAg
IAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50
KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxl
Y3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlz
UmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRM
KQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisg
ICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENo
YXJhY3RlckdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJp
dHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3Jh
cGhCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJv
dW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFy
aXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFu
dWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3Jh
bnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3Vt
ZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFy
eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5Ogor
ICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERp
cmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJv
dW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0
aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRh
cnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBp
bnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0
aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc0LDYg
KzExNTUsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVy
LCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5n
ZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0
UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAm
JiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4
dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0K
KwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0
aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xl
YXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3Rl
OiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVz
ZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzA3LDggKzE3OTMsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2li
bGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAK
LSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBG
aXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0
aW9uKSkgeworICAgICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRl
bnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShS
YW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0
MjAsNyArMjUwOCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxl
Y3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2Vs
ZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5l
d1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAg
ZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlv
bi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZhdWx0U2V0U2VsZWN0aW9u
SW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3Jh
bnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxl
Y3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2Vs
ZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmlu
ZGV4IDBlNGUyOGUuLjNjMzE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmlu
ZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJl
dmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9CisgICAgCisgICAg
c3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZh
dWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQ
T1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQs
NyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29u
c3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9u
LCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlv
bk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFy
YWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3Jh
bnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5n
ZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIs
NyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBT
VEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkp
OwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9v
bCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3Jh
bnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQg
bGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5
cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRp
cmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
PSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
SW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNl
bGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3
ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFz
c1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkK
LWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdlLi5hZWM0NzU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAi
RnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBAIC01MCw2ICs1MSwxMSBAQCBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVCghbV90ZXh0LmlzRW1wdHkoKSk7CiB9CiAKK1N0cmlu
ZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKK3sKKyAgICByZXR1
cm4gbV90ZXh0OworfQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5w
YXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5ICs3MSw5IEBAIHZvaWQgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgfQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRh
KG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwotCi0gICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAg
ICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIAorICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwg
bV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0K
IAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEwICs4OCwxMCBAQCB2b2lkIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmhhc0VkaXRh
YmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8g
bm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCks
IG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAK
ICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CiB9CkBAIC05Nyw0ICsxMDMsMTQgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAj
ZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaAppbmRleCAzMTBiYmIzLi5lMzNmNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5j
bHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOSArNDAs
MTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAgIH0KIAotcHJpdmF0ZToKKyAg
ICBTdHJpbmcmIGluc2VydGVkVGV4dCgpOworcHJvdGVjdGVkOgogICAgIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExB
VEZPUk0oSU9TKQpAQCAtNTEsNyArNTQsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAg
ICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJp
ZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQ
dHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIFN0cmluZyBtX3Rl
eHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCmluZGV4IGQxNmI1ZDYuLjhkNWVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0yNiw5ICsyNiwxMSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
CiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU3LDggKzU5LDEwIEBA
IHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5p
bnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JF
X0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5z
ZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlv
biA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4
dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9u
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0
Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9
CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs3
MSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBk
ZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50
KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRE
ZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRp
b24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRl
eHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlv
bihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5z
ZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9
CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC04
MSw0ICs4NywxNCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpnZXROb2Rlc0luQ29t
bWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVu
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlRGVsZXRlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uOGQ5YzYwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCwxNiArMzksMjAg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
ICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0Fw
cGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwog
ICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQo
SGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2RlPiBtX2luc2VydENoaWxkOwogICAgIFJlZlB0
cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uYmZhMTgxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNTksMTAgKzU5
LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENv
bW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CiAgICAgfQogCi1wcml2YXRl
OgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKK3Byb3RlY3RlZDoKICAg
ICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1Jl
ZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICBJbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQs
IFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0ZXIo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFh
Y2FiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0
Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDog
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNTU5MgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
X2gKKyNkZWZpbmUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmM0N2E3ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRl
eHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU2YTM1MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRl
eHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTAxN2I4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQodGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKwordm9pZCBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMwZmRiZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQg
OiBwdWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5z
aWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi44YmM3OGMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw3NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
bm9kZSwgb2Zmc2V0LCB0ZXh0KQorICAgICwgbV9kZWxldGVkVGV4dChkZWxldGVkVGV4dCkKK3sK
K30KKwordm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBv
c2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1
cm47CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVVua25vd246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1
dDoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNh
c2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRp
b24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQ6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5v
ZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCBy
ZXBsYWNlQXBwbHlFZGl0VHlwZSgpLCB0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjppbnRlbnQoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudChyZXBsYWNlQXBwbHlFZGl0VHlwZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI5MGMxYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+
IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRl
OworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworCisgICAgU3RyaW5nIG1fZGVs
ZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGZiMzg4MGMuLjMwYzQ3Y2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQ1NT
U3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIK
ICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC00NCwxNCArNDUsMjAgQEAKICNpbmNsdWRlICJIVE1M
VGl0bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlUmVu
ZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisj
aW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUg
IlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5j
bHVkZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVkZSAiU21hcnRSZXBsYWNlLmgi
CiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1
ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgog
I2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTQ4Miw2ICsxNDg5LDMwIEBAIHZvaWQgUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OnVwZGF0ZU5vZGVzSW5zZXJ0ZWQoTm9kZSAqbm9kZSkKIAogICAgIG1f
ZW5kT2ZJbnNlcnRlZENvbnRlbnQgPSBsYXN0UG9zaXRpb25Jbk9yQWZ0ZXJOb2RlKG5vZGUtPmxh
c3REZXNjZW5kYW50KCkpOwogfQorICAgIAorUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNl
cnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cisg
ICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6Cisg
ICAgICAgIHJldHVybiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2Vy
dENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwor
ICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQs
IHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgfQor
fQorCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRl
eHQpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25U
eXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cisg
ICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQs
IGRlbGV0ZWRUZXh0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwg
aW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgfQorfQogCiAvLyBEdXJpbmcgc2ltcGxl
IHBhc3Rlcywgd2hlcmUgd2UncmUganVzdCBwYXN0aW5nIGEgdGV4dCBub2RlIGludG8gYSBydW4g
b2YgdGV4dCwgd2UgaW5zZXJ0IHRoZSB0ZXh0IG5vZGUKIC8vIGRpcmVjdGx5IGludG8gdGhlIHRl
eHQgbm9kZSB0aGF0IGhvbGRzIHRoZSBzZWxlY3Rpb24uICBUaGlzIGlzIG11Y2ggZmFzdGVyIHRo
YW4gdGhlIGdlbmVyYWxpemVkIGNvZGUgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi5lMjZhOTZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0x
MTEsNiArMTExLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGVyZm9ybVRyaXZpYWxSZXBsYWNl
KGNvbnN0IFJlcGxhY2VtZW50RnJhZ21lbnQmKTsKIAorICAgIHZpcnR1YWwgUmVmPEVkaXRDb21t
YW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRy
PE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKKwogICAgIFBvc2l0aW9uIG1fc3RhcnRPZkluc2VydGVkQ29udGVudDsK
ICAgICBQb3NpdGlvbiBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFJlZlB0cjxFZGl0aW5n
U3R5bGU+IG1faW5zZXJ0aW9uU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21t
YW5kLmNwcAppbmRleCA5MzI5Y2RmLi44YzBmYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJNYXRoTUxFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlz
aWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtMzczLDcgKzM3NCw3
IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRS
dW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCkKIHsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwK
KyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKICAg
ICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRl
eHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2Vy
dFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CiAKICAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTQyMjEzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDBiZDE0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
YjI0NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4g
aW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQor
ICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgx
NzQ2MTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2Vy
dCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wMWIxNjY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisj
aW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK1R5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSkKKyAgICA6IEluc2VydFRl
eHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5
cGUpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK1JlZjxF
ZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAg
ICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ5M2I1ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2Vy
dFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydFRleHRD
b21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlw
ZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQs
IHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wsIFJlYmFsYW5jZVR5cGUpOworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjMwZGQ1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
KQorICAgIDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0LCBkZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmMyZTBmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xh
c3MgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJp
bmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBk
ZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFt
ZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVj
dGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uZTY5NWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBz
dGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4wN2UyYTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAt
NDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5S
ZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAK
LXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlm
IChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlz
Tm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50
LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZp
Y2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwg
QVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFy
ZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlv
bik7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uNWJmYjY0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJ
c0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAg
U3RyaW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7Cisg
ICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAo
dGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0No
YW5nZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAg
ICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hh
bmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAg
ICBpbm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAK
ICAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicp
KQogICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYg
cmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9zaXRp
b246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0K
IAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDYwNTFjNi4uMDdmMzg4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE4NCw3ICszMTg0LDE0IEBAIHN0YXRpYyB2
b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRp
cmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5z
ZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkg
JiYgUExBVEZPUk0oQ09DT0EpCisgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNj
b250aWd1b3VzKTsKKyNlbmRpZgorICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBv
c2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRy
aWdnZXJlZCkKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICwgaW50ZW50CisjZW5kaWYKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICApOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlv
bk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250329</attachid>
            <date>2015-04-07 20:53:29 -0700</date>
            <delta_ts>2015-04-07 21:47:37 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>206939</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDc3ZjU1NDY3OTQyMzdjYjZlNTU0NjdjNGUwZGMxYWE4MTllMDRiM2MKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk4ZGZkODkuLjRjYzhiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDc0LDEwICsxNDc0
LDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5
NiwxMSArMTUwMCwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNw
cAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9z
aXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21t
YW5kLmNwcApAQCAtMTUxNiw2ICsxNTI0LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBl
ZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQ
b3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmYxM2M4OC4uNTdlY2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwOSBAQAorMjAxNS0w
NC0wNyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
cmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcg
RWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNo
YW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNv
YWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9h
ZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRl
Y2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBp
biB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hh
bmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0
dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2li
bGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwogMjAx
NS0wNC0wNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSB2aWRlbyBwbGF5aW5nIHRvIGV4dGVybmFsIGRldmljZSBzaG91bGQgbm90IGJlIGlu
dGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMwYTY2Ni4uM2Y3NDJhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVy
cwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM0NTAsNiArMzQ1NiwxMiBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAt
MzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJl
bmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzU3Niw2ICszNjAw
LDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDU2OSw2ICsxMDYwNSwxMiBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5oIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpA
QCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYgKzEwNzA3LDEyIEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRl
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNzI1LDYgKzEw
Nzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1h
bmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUzMyw0IEBACiAgICAgICA8RmlsdGVyPnBsYXRm
b3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3ZjRjMWEuLjc4
NDExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTYzNzksMTIgKzYzNzksMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRB
Mjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9s
bFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAg
LyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUz
QTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJ
RjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0
RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VB
MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUy
NkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0
NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xp
ZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAv
KiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVE
IC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAv
KiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3Bw
ICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVD
RkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERBNTFBQzEw
MzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlG
NTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFEMTI1MUYx
MkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYyNjkgLyog
QmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5o
ICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdC
MTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAtNjQzNCwx
MiArNjQ0NCwyNiBAQAogCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RB
QTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzRERGMTI1
MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJ
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07CisJCUY1
NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ1
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
Ki87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0NzAwNTk4
MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIyOEQwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJ
CUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3
MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9
OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcy
QTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9
OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4
MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3RjgwNCAvKiBM
b2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9OwogCQlGNTlD
OTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZEMTI1NUIy
M0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTlD
OTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEyNTVCMjNG
MDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1OUZBNDZD
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZBMUFD
Q0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICov
OyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0
MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAg
LyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjEx
IC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07
CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1
MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAv
KiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFEQTBGRkNB
N0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyog
SFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0
QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0
RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERh
dGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQu
aCAqLzsgfTsKQEAgLTE0MDA3LDYgKzE0MDMxLDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRB
Mjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9s
bFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5
bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4
MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9s
bFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUExQUI3
NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8q
IEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1D
b250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5MTVGRjQ4
NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQwMTksOCArMTQwNDUsMTYgQEAKIAkJRjUyM0QzMDMwMkRFNDQ3
NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVD
QSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0
M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTgg
LyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0
Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3
OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1
dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAw
M0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTQwNzAsNiArMTQxMDQsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8q
IFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxJbnB1
dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUxRjEyRDAw
M0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDgxQUNB
MjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzMxQUI3
NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJz
b3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIgLyogV2Vi
Q29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIg
LyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA4MCw4ICsxNDEyMCwxNiBAQAogCQlGNTk3M0RERjE1
Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIy
M0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZGMUFD
Q0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmFsaWRh
dGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNjEy
Nzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5
RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5Nyw2ICsxNzc0NSwxMCBAQAogCQkJCTkzMzA5RDhFMDk5
RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3
MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1
NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1
RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICov
LAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZF
NTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDkwMDk5
RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMz
MDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApA
QCAtMTc3MDUsNiArMTc3NTcsMTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyog
RGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjgg
LyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4
IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYg
LyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjUwNjND
MUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAv
KiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRD
b21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1h
bmQuaCAqLywKQEAgLTE3NzUxLDYgKzE3ODA3LDEwIEBACiAJCQkJQzZENzRBRDMwOUFBMjgyRTAw
MEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5REFDMDk5
RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlE
QUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJCQkJRjU1
RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5MUFDQTIy
OEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8s
CiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFu
ZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3Bl
cnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVG
b3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzYxLDYgKzE3ODIxLDEwIEBACiAJCQkJOTMzMDlE
QjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
LmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24u
Y3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9u
LmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAor
CQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8q
IFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAw
NTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzk2LDYgKzE3
ODYwLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJl
aGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1h
bmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5k
LmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlG
NUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NUMx
QUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi8sCiAJ
CQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICovLAogCQkJ
CUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBAIC0yMzY5
MCw2ICsyMzc2Miw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFn
ZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4
IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5
OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAw
NTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJC
RDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNDQ5Myw2ICsyNDU2Niw3IEBACiAJCQkJMzEwNjAzNzkxNDMyODFD
RDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4IC8qIERP
TUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUNDRThFMDAw
NTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVS
dWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4
OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MjBF
NkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI0ODE2LDYgKzI0ODkwLDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZD
MjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIzNzBBNEIw
MDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REU2
MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNTA0NSw2ICsyNTEyMCw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUx
RUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVF
QTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBODEy
QjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI1MDU0LDYgKzI1MTMwLDcgQEAKIAkJCQlCRThFRjA0MzE3MUM4
RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0
NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAwMEMy
NjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQ2MzQ4
MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjUxNzMsNiArMjUyNTAsNyBAQAogCQkJCUZEQTE1RUFDMTJCMDNFRTEw
MDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwMjE5NENB
QzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwNDE5
NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9j
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBK
U0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZDMDBDOTU0
QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2MTQsNiArMjU2OTIs
NyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyog
SlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZE
NDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIy
OTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEw
NzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjc5NSw2ICsyNjg3NCw3IEBACiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2
IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDOUEw
RDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU3
NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYyNiAvKiBU
ZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIwRDAwNkMx
RDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQzQ0I4
MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
Njg0OCw2ICsyNjkyOCw3IEBACiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVh
ZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRFNzAwMUNCRDI0IC8q
IFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYwQjE4N0ZENDVDMDAw
OUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQyNCAvKiBUaWxlQ292
ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZERUEwMEU1NDdCNSAv
KiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlDMTk0QTY0RTcwMDFD
QkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk3MiwxMiArMjcwNTMsMTQg
QEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FM
YXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUNDMDBEM0Ez
QzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NkM1QjlCMTg5
RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1
NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5
ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFFOUFCQyAv
KiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OUREQTE2MzcxRkQ0
MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlbldh
cm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3Nzkg
LyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTNEOTEx
MTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFCQyAvKiBX
ZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNDAzNzlCMTI0QkVB
N0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNzAxMCw2ICsyNzA5Myw3IEBACiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAw
QTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dEdyb3VwLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODUxNEJEMEEz
MDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBF
RTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVy
cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc1Miw2ICsyNzgzNiw3IEBACiAJCQkJNkY5OTVBMzkx
QTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJl
YXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1MkQ4NkUg
LyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTYxMUFDQ0VB
NzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYyMDAwNjZGMDYgLyog
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGRTBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3ODI5LDYg
KzI3OTE0LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9u
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2MDBEQzAy
QTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QzEy
MEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5MzA5QTExMTFG
NEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI3OTY1LDYgKzI4MDUxLDcgQEAKIAkJCQk4NUVDQkVGNjBBQTc2MjY5MDA1NDRG
MEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODEyQzBB
QTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywK
IAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUVGMEFBNjNC
ODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRp
b25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjgxMTMsNiArMjgyMDAsNyBAQAog
CQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNo
YWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4ODgyNTAw
RjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4ODBFMURFMkQ2MDA3
RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBFMURFMkQ2
MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4
QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTI4MjIzLDYgKzI4MzExLDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYg
LyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMEIwQTAxNEQzMzIz
NTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3
NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2MjUyRTE4REUxQjE1
MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJB
RkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI4MjQzLDYgKzI4MzMyLDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNFMEUgLyog
R3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAw
NkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1
QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RjMxOTVCOTUw
MzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3OUNFMzYx
OTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTI4NDIyLDYgKzI4NTEyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3QTEg
LyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYxMkQw
MDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1ODI1
NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yODg4MCw2ICsyODk3MSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYxIC8qIEpT
UGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAxMUU4NEMzNjAwOEFD
RkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
NDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUyMTAyRkMwMDQ3OURG
MCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2QjA5RUIw
QzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yODkxNCw2ICsyOTAwNiw3IEBACiAJCQkJMDc5NjlEQkIxN0QxNDE1
MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNh
bGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1ODgwMEFCREQzQyAv
KiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
NTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENT
dGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMxMTdEMTQxNTEwMDdG
Rjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMz
MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTY5MCw2ICsyOTc4Myw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0RTAwRTVBMDQ1IC8q
IFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0REQxOUVFMkM1
MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAxN0QxODFB
NjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VFMDA0MjBBQTEgLyog
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4NjcsNiArMjk5
NjEsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0
YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIw
NjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAw
MDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUy
OERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtl
eUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBE
QjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYx
MTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwMzcx
LDYgKzMwNDY2LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYgLyogV0tHcmFwaGlj
cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAvKiBXS1V0
aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4MzAwREE2M0E2IC8q
IFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xl
QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi43MDgzNmQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2Vk
VXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhP
YmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50
KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpu
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Q
b3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIyIEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFu
Z2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hl
OjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAg
IC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVk
aWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVu
ZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBj
bGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0Lgor
ICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9u
c1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGUgOiBub3RpZmljYXRpb25zKSB7
CisgICAgICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQorICAgICAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oc3RkOjpnZXQ8MD4obm90ZSkuZ2V0
KCksIHN0ZDo6Z2V0PDE+KG5vdGUpLCBzdGQ6OmdldDwyPihub3RlKSwgVmlzaWJsZVBvc2l0aW9u
KCkpOworICAgIH0KKyNlbmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNh
dGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1
MCwxNiArODY3LDIyNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFu
Z2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJl
ciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9
CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSog
bm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0KQorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVu
dChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAo
aW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246Cisg
ICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6Iik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAg
ICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50ZigiRXh0ZW5kOjoi
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQu
Y2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAg
ICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVsZXRlIik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAg
ICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50ZigiRGljdGF0aW9u
SW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIHBy
aW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAg
ICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBwcmludGYo
IkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYoIkVuZDo6Iik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAg
ICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgcHJpbnRm
KCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAg
IHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgeworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAgICAgICAgICAgICAgcHJp
bnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIHBy
aW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBwcmlu
dGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAgICAgIHByaW50ZigiTGlu
ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIHByaW50ZigiU2VudGVu
Y2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFnZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHByaW50ZigiRG9jdW1lbnQi
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJBbGwiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKGlu
dGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAgcHJpbnRmKCJcbiIpOwor
fQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudChB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0U2VsZWN0aW9uSW50
ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFub2RlKQog
ICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoaW50ZW50LnR5
cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90
ZXh0U2VsZWN0aW9uSW50ZW50OworCisKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0
cmlidXRlcygpOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUo
bm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQo
KSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAg
IC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisg
ICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNl
bGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9Q
QVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAg
ICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKK3N0
YXRpYyBib29sIHNhbml0aXplUGFzc3dvcmRUZXh0KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3Qm
IG9iaiwgU3RyaW5nICZ0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmIChvYmouaXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLmlzQ29udGFpbmVkQnlQYXNzd29y
ZEZpZWxkKCkpIHsKKyAgICAgICAgdGV4dCA9IG9iai5wYXNzd29yZEZpZWxkT3JDb250YWluaW5n
UGFzc3dvcmRGaWVsZCgpLT5wYXNzd29yZEZpZWxkVmFsdWUoKS5zdWJzdHJpbmcocG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0Lmxlbmd0aCgp
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNl
bmRpZgorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAg
ICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisK
KyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZFRleHQgPSB0ZXh0OworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAg
ICAgICAgaWYgKHNhbml0aXplUGFzc3dvcmRUZXh0KCpvYmosIHNhbml0aXplZFRleHQsIHBvc2l0
aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5k
KHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgdHlwZSwgc2FuaXRpemVk
VGV4dCkpOworICAgICAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVy
LmlzQWN0aXZlKCkpCisgICAgICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIC8v
IERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHR5cGUsIHNhbml0aXplZFRleHQsIHBvc2l0aW9uKTsK
KyNlbHNlCisgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgbm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZSh0eXBlKSwg
cG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0
KTsKKyNlbmRpZgorfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25z
dCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25z
dCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
K3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoZGVsZXRpb25U
eXBlID09IEFYVGV4dEVkaXRUeXBlRGVsZXRlKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9
PSBBWFRleHRFZGl0VHlwZUluc2VydCB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBl
VHlwaW5nIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5z
ZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVBhc3RlKTsKKworICAgIHN0b3BDYWNoaW5nQ29t
cHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJp
bmcgc2FuaXRpemVkRGVsZXRlZFRleHQgPSBkZWxldGVkVGV4dDsKKyAgICBTdHJpbmcgc2FuaXRp
emVkSW5zZXJ0ZWRUZXh0ID0gaW5zZXJ0ZWRUZXh0OworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKHNh
bml0aXplUGFzc3dvcmRUZXh0KCpvYmosIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9zaXRpb24p
KSB7CisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3Rk
OjptYWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpLCBpbnNlcnRpb25UeXBlLCBzYW5p
dGl6ZWRJbnNlcnRlZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAg
ICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBkZWxldGlvblR5cGUsIHNhbml0
aXplZERlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBv
c2l0aW9uKTsKKyNlbHNlCiAgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCiAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwg
dGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRD
aGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgp
LmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRUZXh0KTsKKyAgICBub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGluc2Vy
dGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zm
c2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpm
cmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50
IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMxMiwxNyBAQCBib29sIGlzTm9kZUFyaWFWaXNp
YmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7CisgICAgaWYgKEFjY2Vzc2liaWxp
dHlPYmplY3QgKnJvb3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0KCkpIHsKKyAgICAgICAgaWYg
KEFjY2Vzc2liaWxpdHlPYmplY3QgKmZpcnN0Q2hpbGQgPSByb290T2JqZWN0LT5maXJzdENoaWxk
KCkpIHsKKyAgICAgICAgICAgIGlmIChmaXJzdENoaWxkLT5pc1dlYkFyZWEoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmlyc3RDaGlsZDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRlQ2FjaGVF
bmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggYmZhOTI3
Ny4uYmQyYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDk5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFy
Z2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogICAgIHZvaWQgcG9z
dE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNh
dGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJv
bm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAgQVhUZXh0SW5zZXJ0
ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAorICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQK
KyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CisgICAgICAgIEFYVGV4dEVkaXRU
eXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4
dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdlbmVyaWMgdGV4dCBp
bnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcsIC8vIEluc2VydCB2aWEgdHlwaW5n
CisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlv
bgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICAgICAg
QVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBhc3RlCisgICAgfTsKKworICAgIC8v
IFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRleHQgdmFsdWUgY2hhbmdlCisgICAg
dm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gewor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAgICAgICBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgICAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5
IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFz
IGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51
bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCBy
ZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorICAgIH07CisKKyAgICBz
dHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxlY3Rpb24gVGV4dFNlbGVjdGlvbihB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgeworICAgICAgICBhdXRvIHNlbGVj
dGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBzZWxlY3Rpb24uZGlyZWN0aW9uID0g
ZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBncmFudWxhcml0eTsK
KyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAg
ICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAg
ICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAgICAgfTsKKyAgICAgICAgYm9v
bCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0
aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29sIHN5bmMgPSBmYWxzZSkKKyAg
ICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9u
KQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgICAgIDog
dHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAgICAgICAgLCBjaGFuZ2UoY2hh
bmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAgICB7IH0KKworICAgICAgICBB
WFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBz
eW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihB
WFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7Cisg
ICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAg
ICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNv
bnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4
dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5nZQorICAgIHZvaWQgcG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQs
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewog
ICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzMwNSwzNSBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVu
dENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAot
ICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hh
bmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisg
ICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRl
eHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxl
dGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93
bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAg
ICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
Jik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4
dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVs
ZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJ
blVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQog
CiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAg
CiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNj
ZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCos
IEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2ICszNjEsMTEgQEAgcHJpdmF0
ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpw
YWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlm
aWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOwor
CisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8
c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYVGV4dEVkaXRUeXBlLCBT
dHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5l
ZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAg
dm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICszNzMsOCBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBV
SUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vz
c2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNl
bGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyCkBAIC0z
MDgsOCArNDMyLDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJh
clVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0
KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9y
KGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxz
ZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRp
b24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJn
ZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmlj
YXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLmFjMzhmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBA
IC01NTIsNiArNTUyLDQ3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFzc3dv
cmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxk
KCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpw
YXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9k
ZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUt
PnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNQYXNzd29y
ZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9
IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4o
KmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSAqY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShl
bGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgp
IGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUo
KSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVs
ZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVs
ZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhU
TUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlz
UGFzc3dvcmRGaWVsZCgpOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lu
cHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmgKaW5kZXggM2U3NTcyZi4uN2RiZDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNv
bnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRl
cigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJhLi5iNTY5NTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAt
NDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmll
bGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVs
ZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVU
ZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
U2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNXZWJBcmVh
KCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjZlZmFhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApA
QCAtMTQ4OCwxNCArMTQ4OCwxOCBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJiByYW5n
ZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7CisgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5z
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJlciku
dGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rp
b25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsK
LSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25J
c09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyBy
YW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dOU1RS
RUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBQb3NpdGlvbiBwb3MyID0g
UG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3Np
dGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVj
dGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9zMiwgRE9XTlNUUkVBTSk7CisgICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24odmlzaWJsZVNlbGVjdGlv
biwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiB9CiAKIFVS
TCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwxMyArMTk2
NCwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJs
ZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5p
c051bGwoKSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwog
ICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlm
IGl0J3MgemVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJh
bmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5k
KSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkK
KyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5z
ZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAgIH0KICAg
ICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNpYmxl
U2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRlcmVyLT5m
cmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBt
X3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4
IDExOWUwYjAwLi5hYjc5MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDcgKzk1LDE2IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hl
Ojpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgQVhTZWxlY3RlZFRl
eHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQppbmRleCBiMzAwZTc3Li5iMzBlNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUwIEBA
CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAi
QVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRF
ZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0
VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZh
bHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1
ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0
aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRD
aGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCiAvLyBUaGUgc2ltcGxl
IENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMjAwLDEzMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90
aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9u
Om1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlv
bmFyeSogdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6NV07CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7CisgICAgaWYgKGludGVudC50eXBlICE9
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKGludGVudC50eXBlKTsKKyAgICAg
ICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNl
bGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKTsKKyAgICAg
ICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
OgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eV0gPSBAKGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAg
aWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXJSYW5n
ZSA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczpz
ZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRpb246c2VsZWN0aW9uLnZpc2libGVFbmQo
KV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFuZ2U7CisgICAgfQorICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IG9iai0+d3JhcHBlcigpOworICAg
IGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxp
dHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyBy
ZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25z
IGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9u
Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb25dOworfQorCitz
dGF0aWMgTlNEaWN0aW9uYXJ5KiB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7
CisgICAgTlNTdHJpbmcqIHRleHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAgTlNVSW50ZWdl
ciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICghbGVuZ3RoKQorICAgICAgICByZXR1
cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGNoYW5nZSA9IFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2VbTlNBY2Nlc3Np
YmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAgc3RhdGljIGNvbnN0IE5TVUludGVn
ZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYgKGxlbmd0aCA+IHRydW5jYXRpb25M
ZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxl
bmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4
OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkKKyAgICAgICAg
Y2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV0gPSB0ZXh0OworICAgIGlmIChw
b3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlciA9IFtvYmot
PndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOnBvc2l0aW9uXSkKKyAgICAg
ICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcl0g
PSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAg
IGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmop
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogdXNlckluZm8gPSBbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107CisgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50
Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBAW2NoYW5nZV07CisKKyAg
ICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9
IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZp
Y2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90
aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8g
VXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBb
dGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFs
dWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
LCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQs
IEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQorICAg
ICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVy
bjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0
aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2Ug
PSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgZGVsZXRpb25UeXBlLCBkZWxl
dGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsK
KyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0
aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAg
ICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsK
KworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFy
Z2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3RO
b3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5n
ZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAg
ICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgor
ICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxp
dHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZy
YW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
YXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRl
cmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlv
bnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihX
ZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFya2VyRm9y
VmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQ
b3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMWRl
YjRkYi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwxNSArNDgsMjMgQEAgQXBw
ZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5
bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHR5cGUpCiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBTdHJp
bmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVi
cmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlm
ICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwgMCwg
bm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9u
ID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkgOiBj
cmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQb3Np
dGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCkBAIC02NCwxOCArNzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBs
eSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAK
IHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3BhcmVu
dC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGlu
ZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+
cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODgsNCArOTYsMTQgQEAgdm9pZCBBcHBl
bmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQog
fQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVuZE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVu
ZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IGQ2NGIwNGUu
LjQ5YzllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgK
QEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBBcHBlbmRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxO
b2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiwg
UGFzc1JlZlB0cjxOb2RlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ3LDYgKzQ3LDkg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwog
ICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9kZT4gbV9u
b2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAKaW5kZXggODQ2MWVlNy4uNjcyNjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21tYW5kLmgiCiAj
aW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIu
aCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1
ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFj
ZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTMyMCw5ICszMjMsMTQgQEAg
Ym9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKiBu
b2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNl
cnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cisg
ICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9CisKIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7
Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNy
ZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQWZ0
ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGls
ZCkKQEAgLTUyMiwyMyArNTMwLDQ2IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0
VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0CiAgICAgICAg
IHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbkZvcklu
ZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwgdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3Rh
cnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkpKSk7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4g
Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAg
ICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
dGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9k
ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0VGV4dEludG9O
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgaWYg
KGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICByZXR1cm4gQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworICAg
IHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBj
b3VudCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9k
ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQp
CiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKK30K
KworUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpy
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisK
K1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sK
KyAgICByZXR1cm4gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOwogfQogCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+IHBycE5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1l
bnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGRl
bGV0ZUNvbW1hbmQgPSByZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVDb21tYW5kKTsK
ICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShy
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50
VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSkpOwogfQogCiBQb3NpdGlvbiBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcm
IHRleHQpCkBAIC0xNTIzLDQgKzE1NTQsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVC
bG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJuIGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KIAorQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmludGVudCgpCit7
CisgICAgaWYgKG1fY29tbWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5kc1tt
X2NvbW1hbmRzLnNpemUoKS0xXS0+aW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBj
MmI0ODlkLi40NWQzOGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNs
YXNzIEhUTUxFbGVtZW50OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTg3LDYgKzg4LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGlj
YXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29ycmVj
dGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0Qmxp
bmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpAQCAtMTAz
LDE1ICsxMDUsMTggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVkRWxlbWVudChQ
YXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihib29sIHNtYXJ0
RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wg
cmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJv
b2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBh
bmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJvb2wgaXNSZW1vdmFibGVCbG9jayhjb25z
dCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiwgUGFz
c1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAgICAgdm9pZCBpbnNlcnROb2RlQXQoUGFzc1JlZlB0
cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydE5vZGVBdFRhYlNwYW5Q
b3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID0gRG9O
b3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRQYXJhZ3Jh
cGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29s
IHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSk7CiAgICAgdm9pZCBpbnNl
cnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIHZvaWQgbWVyZ2VJZGVudGljYWxFbGVt
ZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lk
IHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2ICsxMzUsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05ld1BhcmVudChOb2RlKiwgTm9kZSogcGFz
dExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IHBycE5ld1BhcmVudCk7CiAgICAg
dm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVSZW1vdmFsUHJlc2VydmluZ0NoaWxkcmVuKFBvc2l0
aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgdmly
dHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gcmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAgICB2
aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpOwog
ICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmZkZjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
Y291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291
bnQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZUN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjJmYTc3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJv
dGVjdGVkOgorICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjRl
NzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgorI2luY2x1ZGUg
IlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBz
bWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJv
b2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQorICAgIDog
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVN
YXJrdXApCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKworRWRpdEFj
dGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1YzMzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorI2RlZmluZSBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kIDogcHVibGljIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJE
ZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3Vt
ZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJrdXApOworCisgICAgdmlydHVhbCBS
ZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRl
eCAyZWE5NmQ1Li44NTcxNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZy
YW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCiAKQEAgLTQ1LDYgKzQ3LDExIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNT
RVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKIH0KIAorU3RyaW5n
JiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJu
IG1fdGV4dDsKK30KKwogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
IHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU2LDEwICs2MywxMCBAQCB2b2lkIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+c3Vic3Ry
aW5nRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuOwotICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkg
ZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVk
LCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9u
b2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0
aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZz
ZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzgwLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zm
c2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZp
c2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZuZGVm
IE5ERUJVRwpAQCAtODQsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaAppbmRleCAyNDkxZjA1Li43YTMxYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lm
bmRlZiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRp
dENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCArNDAsMTIgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKICAgICB9CiAKKyAgICBTdHJpbmcmIGRlbGV0ZWRU
ZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKIHByaXZhdGU6Ci0gICAgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyArNTMsMTAgQEAg
cHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRU
eXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVk
IG1fb2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40OWYwMGQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpk
b0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0
aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBp
cyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8v
IGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0
aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNo
b3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICByZXR1cm4g
RWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVz
ZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4
YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRl
eCBjMTczZGY0Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAKQEAgLTI3LDExICsyNywxMSBAQAogI2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1h
bmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgiCi0jaW5jbHVkZSAi
SW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRl
eHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgogewogICAg
IFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNv
bGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxlbmd0aCwg
YWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1h
bmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50
KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0
YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOworICAgIFJl
ZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQu
c3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVy
OjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODhjNDAwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVEaWN0YXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5ODM2YQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1
YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3Vw
cGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3Vw
cGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzljYjQxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9o
CisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2Vy
dFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJr
ZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1Jl
ZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQo
ZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgfQorCitwcml2YXRlOgorICAg
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgUGFz
c1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICB2aXJ0dWFsIFJlZjxF
ZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjkxZWE5MDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0xMjQsNSArMTI1LDI5IEBA
IHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFy
dE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAgIG5vZGVzLmFkZChub2RlKTsKIH0KICNl
bmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCit2
b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShO
b2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47Cisg
ICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9
CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLjVjYTE5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1hbmRfaAogI2Rl
ZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNTks
NiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
KCkgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsgfTsK
KwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAgICAg
RWRpdENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYpOwpAQCAtOTcsNiArMTAwLDEyIEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IGFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgog
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBl
KCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRp
dFR5cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBwbHlFZGl0VHlwZSgpKTsgfQorCiBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3
MTBhYTM5Li5jMTUzYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3NpdGlv
bkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5j
bHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVy
bmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwxNSBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERp
cmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNt
YXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChlZGl0aW5nQWN0aW9uID09IEVkaXRB
Y3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBlbHNlCisgICAgICAgIGFwcGx5
Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21h
cnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCkBAIC0xMDAxLDcgKzEw
MDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21wb3NpdGVF
ZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3
aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNld2hlcmUg
aWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246OkRpY3Rh
dGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1Nl
bGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1Nl
bGVjdGlvbiwgb3B0aW9ucywgY21kLT5pbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNv
bnRlbnRDaGFuZ2VkRXZlbnRzKGNvbXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1l
bnQoKSwgY29tcG9zaXRpb24tPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1
cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjY2LDcgKzEyNzAsNyBAQCB2b2lk
IEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQog
CiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAoYWN0aW9uID09
IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNt
YXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxl
dGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRp
dG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0Nv
cnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0K
IAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0
aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRT
ZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5l
ZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2VsZWN0aW9u
LnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4oKSkKQEAg
LTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1h
bmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNlZSA8cmRh
cjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNv
bnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxpZAogICAg
IGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rpb24gPT0g
bV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9uRGlkTm90
Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAgICAgLy8g
U29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0
aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8vIEZvciBl
eGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUgY2FyZXQg
aXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzkyYmM0Ni4uZDZj
NWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhEaXJlY3Rpb24o
U2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJpbmcsIGJvb2wg
aXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQgY2xlYXJU
ZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3Zl
VW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBl
bnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9z
aXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBv
c2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxl
Y3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxl
Y3Rpb25PcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBFZGl0
b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lkIHBl
cmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYThmMWI0MS4uZTRkNTNmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsxMzgsNyBAQCBF
bGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVt
ZW50KCkgY29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQ
b3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsIGFsaWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5k
ZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1f
c2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0U2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3Mu
YWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwg
YWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJUcmlnZ2Vy
ZWQgdXNlclRyaWdnZXJlZCkKQEAgLTI1NCw3ICsyNTMsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVT
ZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7Cisg
ICAgCisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50Owor
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAg
IGlmIChuZXdTZWxlY3Rpb24uaXNDYXJldCgpKQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwg
aW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAog
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJv
b2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1
bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVm
UHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFt
ZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBu
ZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAg
ICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3
U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9w
dGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsK
ICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBz
ZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAg
ICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0
ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAg
ICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhp
cyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBi
b29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24s
IFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNl
bGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1l
VmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdM
YXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFy
U2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlm
ICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyAr
Mzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkK
ICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9
CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogfQogCiB2b2lkIEZy
YW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAgLTEwMTgs
NyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmlu
Z0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3Vu
ZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFy
aXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8
fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
bGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRl
ciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBm
bGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9u
TW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAg
ICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAg
ICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlw
ZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsK
KyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0
eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2Vu
dGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5
OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
b2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29s
IGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2Ug
Q2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5Ogor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5l
Qm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50
Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAg
ICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2Fz
ZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlm
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNl
clRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsxMTU1LDExIEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0
ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQo
YWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9m
IHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRp
b24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0
IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0
aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpA
QCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxl
Y3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsK
KyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAg
YXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0
Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlBbGwpKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAgICB9CiB9CiAK
IGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZm
aW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yNDIwLDcgKzI1MDgsNyBAQCBW
aXNpYmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0Nh
cmV0U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rp
b24gPSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24uZXhwYW5k
VXNpbmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0aW9uLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7
CisgICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBBbGlnbkN1
cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAg
ICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7
CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi4zYzMx
OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25f
aAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5o
IgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEs
NiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8
IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBG
aXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFt
ZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29u
c3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRG
b2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7
IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0
aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29y
T25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xs
SWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJv
b2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwg
RVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZv
aWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0
ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0
aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5
OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2lu
dEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0
U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVj
dGlvbkludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5k
aWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRl
eHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5l
IHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0
eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxp
bmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uYWVjNDc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vo
b2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiVGV4dC5oIgpAQCAtNTAsNiArNTEsMTEgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAg
ICBBU1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwogfQogCitTdHJpbmcmIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwog
dm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBh
c3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxl
ZCgpOwpAQCAtNjUsOSArNzEsOSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
QXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0
LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dElu
c2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBv
c2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJ
T1MpCkBAIC04MiwxMCArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpk
b1VuYXBwbHkoKQogewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9y
ZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQ
b3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxl
dGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwogfQpA
QCAtOTcsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0Tm9k
ZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2Vy
dDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5k
ZXggMzEwYmJiMy4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5k
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIHRleHQpKTsKICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNlcnRl
ZFRleHQoKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwog
Citwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTUx
LDcgKzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsK
ICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZi
NWQ2Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNl
bGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw4ICs1OSwxMCBAQCB2b2lkIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5z
ZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5z
ZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2luc2Vy
dENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2lu
c2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQu
Z2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdl
dCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNl
cnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUo
KSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzEsMTAgQEAgdm9pZCBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9p
bnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9pbnNl
cnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9p
bnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxk
LmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5n
ZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5z
ZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFs
dWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9pbnNlcnRD
aGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODEsNCArODcsMTQgQEAgdm9p
ZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2Rl
Kj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
CmluZGV4IGQ0Yjc2MmQuLjhkOWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9o
CiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMTYgKzM5LDIwIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0lu
c2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5v
ZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNpZm5kZWYgTkRF
QlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikg
b3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAg
ICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGls
ZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTU5LDEwICs1OSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0
ZXh0LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAotcHJpdmF0ZToKLQotICAgIEluc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4dENvbW1h
bmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlv
bk1hcmtlclN1cHBsaWVyPik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25z
dCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsK
KworcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWNhYmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRy
PE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVD
b21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDU1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNz
UmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2Vy
dEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQs
IGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
UGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDdh
N2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4
dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjhlNmEzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTdiODEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAK
K1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwg
Y291bnQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMGZkYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAs
MCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisK
K2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNv
dW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9k
ZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJjNzhjMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3ZvaWQgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVj
dENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgor
ICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAg
ICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBj
YWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5
cGUoKSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW50ZW50KCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVwbGFjZUFw
cGx5RWRpdFR5cGUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTBjMWM0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVs
ZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAi
QnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24u
aCIKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgpAQCAtNDQsMTQgKzQ1LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgog
I2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5j
bHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUu
aCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisj
aW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFy
a3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxl
UHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUg
IlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlz
aWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAu
aCIKQEAgLTE0ODIsNiArMTQ4OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1
cGRhdGVOb2Rlc0luc2VydGVkKE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250
ZW50ID0gbGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsK
IH0KKyAgICAKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0
QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rp
b25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNy
ZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21t
YW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRj
aCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICBy
ZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlv
blBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVs
ZXRlZFRleHQpOworICAgIH0KK30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdl
J3JlIGp1c3QgcGFzdGluZyBhIHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2Vy
dCB0aGUgdGV4dCBub2RlCiAvLyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xk
cyB0aGUgc2VsZWN0aW9uLiAgVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXpl
ZCBjb2RlIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmgKaW5kZXggZDg3YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVu
dEZyYWdtZW50Jik7CiAKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVk
aXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisK
ICAgICBQb3NpdGlvbiBtX3N0YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9l
bmRPZkluc2VydGVkQ29udGVudDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlv
blN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMy
OWNkZi4uOGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3Bw
CkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUg
IlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2lu
Y2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0Nv
bW1hbmQ6Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCkKIAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVm
UHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2Vy
dFRleHRDb21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRp
b25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxh
bmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmVi
YWxhbmNlQWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29t
bWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U0MjIxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjAwYmQxNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQg
OiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyNDYwNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNz
UmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTc0NjEzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisj
ZGVmaW5lIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9k
ZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTY2NQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJh
bGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVu
dCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKQoreworfQorCitSZWY8
RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGlu
Z0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRl
ZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjc0OTNiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5j
bHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCA9IGZhbHNlLCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFk
aW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFR5cGluZ0luc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNl
cnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJhbGFu
Y2VUeXBlKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGRkNTMxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQp
Cit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOTZjMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNl
QXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCmluZGV4
IDdjMjEzNjUuLmU2OTVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRr
L0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9G
cmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgbWF5YmVF
bWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2Jq
ZWN0KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCkKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Zy
YW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxl
Y3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4uMDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBz
dGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRz
KQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0
aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3Rh
cnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVj
dENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlv
bi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFY
U2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAg
ICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFy
dCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lm
ICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgs
MTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRl
eHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NF
UlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUg
IT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1Zh
bHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hh
bmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwg
IWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAm
JiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVy
KCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3Rp
ZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2Vy
dmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJ
bm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1
ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlu
bmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZP
Uk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAg
ICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUs
IHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1
ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVm
b3JlQW5jaG9yKSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29u
dHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDQ2MDUxYzYuLjA3ZjM4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTMxODQsNyArMzE4NCwxNCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5
Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2li
bGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVz
ZXJUcmlnZ2VyZWQpKTsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09B
KQorICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cyk7CisjZW5k
aWYKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxl
Y3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpCisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAsIGludGVudAorI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK
IH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYg
ZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250332</attachid>
            <date>2015-04-07 21:47:37 -0700</date>
            <delta_ts>2015-04-08 12:19:40 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>229952</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGNlN2E5MGM1OWExNDJjYWFlZDJlYmMzOGYyZjNmYWVhYWIyYzE1ZDUKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk4ZGZkODkuLjRjYzhiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDc0LDEwICsxNDc0
LDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5
NiwxMSArMTUwMCwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNw
cAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9z
aXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21t
YW5kLmNwcApAQCAtMTUxNiw2ICsxNTI0LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBl
ZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQ
b3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmYxM2M4OC4uNTdlY2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwOSBAQAorMjAxNS0w
NC0wNyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
cmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcg
RWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNo
YW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNv
YWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9h
ZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRl
Y2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBp
biB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hh
bmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0
dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2li
bGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwogMjAx
NS0wNC0wNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSB2aWRlbyBwbGF5aW5nIHRvIGV4dGVybmFsIGRldmljZSBzaG91bGQgbm90IGJlIGlu
dGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCBkZWNkZDUzLi5jZTFkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0MzkzLDYgKzE0MzkzLDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTQ0NDksNiArMTQ0NzcsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NzMwLDYgKzE0Nzg2LDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
QEAgLTE1MDI0LDYgKzE1MTM2LDYyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5LDEwICsyMTIzNywxNCBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENvbXBvc2l0ZUVkaXRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtD
b21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFu
ZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBAIC0yMTA5OSwxMCArMjEyNzEsMTQg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIiAv
PgpAQCAtMjExMjEsNiArMjEyOTcsMTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFZpc2libGVQb3NpdGlvbi5oIiAvPgpAQCAtMjE3ODMsNCArMjE5NjMsNCBAQAog
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIg
Lz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMwYTY2Ni4uM2Y3NDJhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM0NTAsNiArMzQ1
NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21t
YW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtMzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzU3Niw2
ICszNjAwLDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDU2OSw2ICsxMDYwNSwxMiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpAQCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYgKzEwNzA3LDEyIEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNzI1
LDYgKzEwNzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGlu
Z0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUzMyw0IEBACiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1By
b2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3ZjRj
MWEuLjc4NDExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTYzNzksMTIgKzYzNzksMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8q
IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0
ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsg
fTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJE
QzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1
MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0
MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0
MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVt
cHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYz
NkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRG
Nzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9
OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFE
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYy
NjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0
VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRU
eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAt
NjQzNCwxMiArNjQ0NCwyNiBAQAogCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIz
RERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAv
KiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8q
IFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07
CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0
NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIy
OEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87
IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5o
ICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3Rjgw
NCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9Owog
CQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZE
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9Owog
CQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEy
NTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1
OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZB
NDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
MTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJ
RjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAw
NTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIx
MSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUx
MkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFE
QTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERh
dGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9N
SFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLzsgfTsKQEAgLTE0MDA3LDYgKzE0MDMxLDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjND
MUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5
MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMTksOCArMTQwNDUsMTYgQEAKIAkJRjUyM0QzMDMw
MkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYw
MTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5
Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNs
aWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURB
MDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUx
RjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTQwNzAsNiArMTQxMDQsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
UkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUx
RjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERF
RDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJB
NzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAv
KiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIg
LyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFF
QTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA4MCw4ICsxNDEyMCwxNiBAQAogCQlGNTk3
M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZF
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAv
KiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5Nyw2ICsxNzc0NSwxMCBAQAogCQkJCTkzMzA5
RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQw
QjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
RDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJ
RjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5
MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLApAQCAtMTc3MDUsNiArMTc3NTcsMTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcw
NjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBF
MzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAw
RTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5
QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJ
RjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2
RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRp
dENvbW1hbmQuaCAqLywKQEAgLTE3NzUxLDYgKzE3ODA3LDEwIEBACiAJCQkJQzZENzRBRDMwOUFB
MjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5
REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJ
CQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5
MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBS
ZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzYxLDYgKzE3ODIxLDEwIEBACiAJCQkJ
OTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBv
c2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3
QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVE
QTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlF
NjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzk2
LDYgKzE3ODYwLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGlu
Z0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdD
b21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVB
NTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmgg
Ki8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICov
LAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBA
IC0yMzY5MCw2ICsyMzc2Miw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1h
c2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAw
RkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1
NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlF
NjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ5Myw2ICsyNDU2Niw3IEBACiAJCQkJMzEwNjAzNzkx
NDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFs
dWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4
IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5
ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgw
MEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKQEAgLTI0ODE2LDYgKzI0ODkwLDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFF
MDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIz
NzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTA0NSw2ICsyNTEyMCw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFE
QjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEx
NUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9O
b2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDU0LDYgKzI1MTMwLDcgQEAKIAkJCQlCRThFRjA0
MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
RThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JF
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0
RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
OTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUxNzMsNiArMjUyNTAsNyBAQAogCQkJCUZEQTE1RUFDMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAw
MjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThG
NTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpT
R2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3
NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZD
MDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2MTQsNiAr
MjU2OTIsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNE
ODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5
NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYy
Qzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjc5NSw2ICsyNjg3NCw3IEBACiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJB
RkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYy
NiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIw
RDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjg0OCw2ICsyNjkyOCw3IEBACiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVBMjYyIC8q
IFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRFNzAwMUNC
RDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYwQjE4N0ZE
NDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQyNCAvKiBU
aWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZERUEwMEU1
NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlDMTk0QTY0
RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk3MiwxMiArMjcw
NTMsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJs
aW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUND
MDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NkM1
QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29y
ZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFF
OUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OUREQTE2
MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNj
cmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMwOTg0MDBF
ODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFC
QyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNDAzNzlC
MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzAxMCw2ICsyNzA5Myw3IEBACiAJCQkJNkU0RTkxQUYxMEY3
RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dEdy
b3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODUx
NEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVn
U2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc1Miw2ICsyNzgzNiw3IEBACiAJCQkJNkY5
OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBs
YXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1
MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTYx
MUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYyMDAwNjZG
MDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGRTBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3
ODI5LDYgKzI3OTE0LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNl
TW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2
MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZC
MUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFGNDBFNCAv
KiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5MzA5
QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI3OTY1LDYgKzI4MDUxLDcgQEAKIAkJCQk4NUVDQkVGNjBBQTc2MjY5
MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURG
ODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVu
dC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUVG
MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjgxMTMsNiArMjgyMDAs
NyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xD
b21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8q
IEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4
ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4ODBFMURF
MkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4MjIzLDYgKzI4MzExLDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3
QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMEIwQTAx
NEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2MjUyRTE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI4MjQzLDYgKzI4MzMyLDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNF
MEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RjMx
OTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4NDIyLDYgKzI4NTEyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3
RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1
MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
ODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC0yODg4MCw2ICsyODk3MSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYx
IC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAxMUU4NEMz
NjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUyMTAyRkMw
MDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2
QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODkxNCw2ICsyOTAwNiw3IEBACiAJCQkJMDc5NjlEQkIx
N0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1ODgwMEFC
REQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMxMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTY5MCw2ICsyOTc4Myw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0REQx
OUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAx
N0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VFMDA0MjBB
QTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4Njcs
NiArMjk5NjEsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2Fj
dGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEz
MDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMx
NzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8q
IFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYw
RUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVB
RkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwMzcxLDYgKzMwNDY2LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYgLyogV0tH
cmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAv
KiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4MzAwREE2
M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2RDgwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJD
b25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi43MDgzNmQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVu
aGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIyIEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRy
ZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsK
KworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRv
IGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFk
IHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlz
dCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0
YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGUgOiBub3RpZmljYXRp
b25zKSB7CisgICAgICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQorICAgICAg
ICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oc3RkOjpnZXQ8MD4obm90
ZSkuZ2V0KCksIHN0ZDo6Z2V0PDE+KG5vdGUpLCBzdGQ6OmdldDwyPihub3RlKSwgVmlzaWJsZVBv
c2l0aW9uKCkpOworICAgIH0KKyNlbmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5v
dGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsK
QEAgLTg1MCwxNiArODY3LDIyNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihy
ZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVu
dCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24o
Tm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hv
d0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3
aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6Iik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50ZigiRXh0
ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUp
IHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChp
bnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAg
ICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVsZXRlIik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoK
KyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50ZigiRGlj
dGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAg
ICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0
aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAg
ICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBw
cmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYoIkVuZDo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAg
ICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAg
cHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJl
dmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAg
ICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgeworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAg
ICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAg
ICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAgICAgIHByaW50
ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIHByaW50Zigi
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgcHJpbnRm
KCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAgIHByaW50Zigi
UGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHByaW50ZigiRG9j
dW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJBbGwiKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAg
aWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAgcHJpbnRmKCJc
biIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbklu
dGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0U2VsZWN0
aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFu
b2RlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoaW50
ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50
ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2Jq
ZWN0QXR0cmlidXRlcygpOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JD
cmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3Jk
RmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0K
KworICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0U3Rh
dGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0aW9uKTsKKyNl
bHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hl
OjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVO
VVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlm
CisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKKyNpZiBQTEFURk9STShDT0NP
QSkKK3N0YXRpYyBib29sIHNhbml0aXplUGFzc3dvcmRUZXh0KGNvbnN0IEFjY2Vzc2liaWxpdHlP
YmplY3QmIG9iaiwgU3RyaW5nICZ0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQoreworICAgIGlmIChvYmouaXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKCkpIHsKKyAgICAgICAgdGV4dCA9IG9iai5wYXNzd29yZEZpZWxkT3JDb250
YWluaW5nUGFzc3dvcmRGaWVsZCgpLT5wYXNzd29yZEZpZWxkVmFsdWUoKS5zdWJzdHJpbmcocG9z
aXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0Lmxl
bmd0aCgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsK
K30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkK
KyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93
bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNhbml0aXplZFRleHQgPSB0ZXh0OworICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmop
IHsKKyAgICAgICAgaWYgKHNhbml0aXplUGFzc3dvcmRUZXh0KCpvYmosIHNhbml0aXplZFRleHQs
IHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Qu
YXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgdHlwZSwgc2Fu
aXRpemVkVGV4dCkpOworICAgICAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9z
dFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKwor
ICAgIC8vIERlbGVnYXRlIHRvIHRoZSByaWdodCBwbGF0Zm9ybQorICAgIHBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHR5cGUsIHNhbml0aXplZFRleHQsIHBvc2l0
aW9uKTsKKyNlbHNlCisgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCisgICAg
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgbm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZSh0
eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgp
LCB0ZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoZGVs
ZXRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGVsZXRlKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9u
VHlwZSA9PSBBWFRleHRFZGl0VHlwZUluc2VydCB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVk
aXRUeXBlVHlwaW5nIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24g
fHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVBhc3RlKTsKKworICAgIHN0b3BDYWNo
aW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBTdHJpbmcgc2FuaXRpemVkRGVsZXRlZFRleHQgPSBkZWxldGVkVGV4dDsKKyAgICBTdHJpbmcg
c2FuaXRpemVkSW5zZXJ0ZWRUZXh0ID0gaW5zZXJ0ZWRUZXh0OworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAgICAg
aWYgKHNhbml0aXplUGFzc3dvcmRUZXh0KCpvYmosIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9z
aXRpb24pKSB7CisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBl
bmQoc3RkOjptYWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpLCBpbnNlcnRpb25UeXBl
LCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dv
cmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICAvLyBEZWxlZ2F0ZSB0byB0aGUgcmlnaHQgcGxhdGZvcm0KKyAgICBw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBkZWxldGlvblR5cGUs
IHNhbml0aXplZERlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBzYW5pdGl6ZWRJbnNlcnRlZFRl
eHQsIHBvc2l0aW9uKTsKKyNlbHNlCiAgICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRm
b3JtCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0g
ICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9m
ZnNldCwgdGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmos
IHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZh
bGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRUZXh0KTsKKyAgICBub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBl
KGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKIH0KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSogZnJhbWUsIEFYTG9hZGlu
Z0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMxMiwxNyBAQCBib29sIGlzTm9kZUFy
aWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBY2Nlc3NpYmls
aXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7CisgICAgaWYgKEFjY2Vz
c2liaWxpdHlPYmplY3QgKnJvb3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0KCkpIHsKKyAgICAg
ICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QgKmZpcnN0Q2hpbGQgPSByb290T2JqZWN0LT5maXJz
dENoaWxkKCkpIHsKKyAgICAgICAgICAgIGlmIChmaXJzdENoaWxkLT5pc1dlYkFyZWEoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmlyc3RDaGlsZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRl
Q2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXgg
YmZhOTI3Ny4uYmQyYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwg
MjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDk5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogICAgIHZv
aWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5v
dGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFz
eW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAgQVhUZXh0
SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51bSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAorICAgICAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CisgICAgICAgIEFYVGV4
dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVy
aWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdlbmVyaWMg
dGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcsIC8vIEluc2VydCB2aWEg
dHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRp
Y3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAg
ICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBhc3RlCisgICAgfTsKKwor
ICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRleHQgdmFsdWUgY2hhbmdl
CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMs
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0gICAgdm9pZCBub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgewor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1
bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51
bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3Vt
ZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVy
IGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxs
IG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorICAgIH07CisK
KyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxlY3Rpb24gVGV4dFNlbGVj
dGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkg
PSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgeworICAgICAgICBhdXRv
IHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBzZWxlY3Rpb24uZGlyZWN0
aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBncmFudWxh
cml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisKKyAgICBzdHJ1Y3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlw
ZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlv
bjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAgICAgfTsKKyAgICAg
ICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0
U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29sIHN5bmMgPSBmYWxz
ZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oc2Vs
ZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsgfQorCisgICAgICAg
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAg
ICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAgICAgICAgLCBjaGFu
Z2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAgICB7IH0KKworICAg
ICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwg
Ym9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVj
dGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAg
ICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
KTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50
ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQg
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5nZQorICAgIHZvaWQg
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZl
bnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzMwNSwzNSBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJ
RWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2Rl
KTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9p
ZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhU
ZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0
ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlw
ZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7Cisg
ICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRl
ZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOwor
ICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZv
aWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFu
Z2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBp
c05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhu
KTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7
CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9i
amVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2ICszNjEsMTEgQEAg
cHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8
c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBt
X25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBW
ZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYVGV4dEVkaXRU
eXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVu
dU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7
CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICszNzMs
OCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1h
Z2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAgICAgQVhJRCBnZXRBWElE
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1f
dGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVy
CkBAIC0zMDgsOCArNDMyLDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNj
cm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
OjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50Kikg
eyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVy
T2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRv
QW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25z
dCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9
CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3Rp
ZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBv
c3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLmFjMzhmMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
Y3BwCkBAIC01NTIsNiArNTUyLDQ3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
UGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29y
ZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7Cisg
ICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9
IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNQ
YXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAoRWxlbWVudCogZWxl
bWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxl
bWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSAqY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNy
ZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBudWxscHRyOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAo
IW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRy
aWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAg
IEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1l
bnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJ
bnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25j
YXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxl
bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1l
bnQtPmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uN2RiZDU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgs
NiArODgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmll
bGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBp
c1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJhLi5iNTY5NTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJ
bWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VC
dXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3
b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dv
cmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNO
YXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNX
ZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjZlZmFhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwxOCBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdl
JiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7CisgICAgICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNh
Y2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5k
ZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRT
ZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5v
ZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihW
aXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9z
aXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3Rh
cnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBE
T1dOU1RSRUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0
YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBQb3NpdGlvbiBw
b3MyID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9u
OjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJs
ZVNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9zMiwgRE9XTlNUUkVBTSk7Cisg
ICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24odmlzaWJsZVNl
bGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiB9
CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwx
MyArMTk2NCwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVk
VmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5z
dGFydC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2Ug
aXQuIGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAg
aWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFu
Z2UuZW5kKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2Fj
aGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAg
IH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBW
aXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRl
cmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAg
ICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CmluZGV4IDExOWUwYjAwLi5hYjc5MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDcgKzk1LDE2IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgQVhTZWxl
Y3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li5iMzBlNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0
LDUwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0
aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0
eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRl
eHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENo
YW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFu
Z2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJB
WFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdl
QXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdl
QXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCiAvLyBUaGUg
c2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMjAwLDEzMSBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmos
IEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZp
Y2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJB
cmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSogdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7CisgICAgaWYgKGludGVudC50
eXBlICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAgICAgdXNlckluZm9b
TlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKGludGVudC50eXBlKTsK
KyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKTsK
KyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eV0gPSBAKGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJr
ZXJSYW5nZSA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0
aW9uczpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRpb246c2VsZWN0aW9uLnZpc2li
bGVFbmQoKV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRl
eHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFuZ2U7CisgICAgfQorICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IG9iai0+d3JhcHBlcigp
OworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vz
c2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmls
aXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2Vy
SW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmlj
YXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZp
Y2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb25dOwor
fQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5KiB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24pCiB7CisgICAgTlNTdHJpbmcqIHRleHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAgTlNV
SW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICghbGVuZ3RoKQorICAgICAg
ICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIGNoYW5nZSA9IFtbTlNNdXRh
YmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2VbTlNB
Y2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAgc3RhdGljIGNvbnN0IE5T
VUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYgKGxlbmd0aCA+IHRydW5j
YXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdU
b0luZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkKKyAg
ICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV0gPSB0ZXh0OworICAg
IGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlciA9
IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOnBvc2l0aW9uXSkK
KyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1h
cmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFz
ZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQor
eworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYg
KCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogdXNlckluZm8gPSBbW05TTXV0
YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107CisgICAgdXNlckluZm9b
TlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxh
Y2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBvc2l0aW9uKSkKKyAgICAg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBAW2NoYW5nZV07
CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRh
cmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0
Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFu
Z2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisg
ICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4K
KyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmls
aXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0
ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2Jq
KQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAg
IHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFi
bGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpj
aGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgZGVsZXRpb25UeXBl
LCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hh
bmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFu
Z2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikp
CisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxl
YXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAg
aWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0
eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1
ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07
CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9z
dGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vz
c2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwogfQogCiB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAK
IEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQ
b3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0
aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFy
a2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZp
c2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5k
ZXggMWRlYjRkYi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vo
b2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwxNSArNDgsMjMg
QEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFp
bmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRh
YmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgp
OworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25z
dCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNpZGVy
IGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQor
ICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENoYW5n
ZSwgMCwgbm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5k
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBv
c2l0aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwg
MCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hl
LT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCkBAIC02NCwxOCArNzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6
ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05P
UkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25v
ZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhUZXh0
Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7
CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFt
X3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAor
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAg
ICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBB
WE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9y
aW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1f
bm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODgsNCArOTYsMTQgQEAgdm9p
ZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5v
ZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVuZE5v
ZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IEFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IGQ2
NGIwNGUuLjQ5YzllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBB
cHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJO
b2RlPiwgUGFzc1JlZlB0cjxOb2RlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ3LDYg
KzQ3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKKwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9k
ZT4gbV9ub2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uNjcyNjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRN
YXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgor
I2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAi
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTMyMCw5ICszMjMs
MTQgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhjb25zdCBO
b2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2Rl
PiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
Cit7CisgICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9CisK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxO
b2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRO
b2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCkKQEAgLTUyMiwyMyArNTMwLDQ2IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0CiAg
ICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQb3NpdGlv
bkZvckluZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwgdmlzaWJsZVBvc2l0aW9uRm9ySW5k
ZXgoc3RhcnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkpKSk7CiB9CiAKK1JlZjxFZGl0Q29t
bWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkK
K3sKKyAgICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgdGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJ
bnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0VGV4
dEludG9Ob2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKK30KKworUmVmPEVkaXRDb21t
YW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7Cisg
ICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICByZXR1cm4g
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQp
OworICAgIHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRG
cm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
Y291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQp
KTsKK30KKworUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7
Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOwogfQogCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+IHBy
cE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGRlbGV0ZUNvbW1hbmQgPSByZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVDb21t
YW5kKTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHJlcGxh
Y2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSkpOwogfQogCiBQb3NpdGlv
biBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBT
dHJpbmcmIHRleHQpCkBAIC0xNTIzLDQgKzE1NTQsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBj
cmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0
dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KIAorQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmludGVu
dCgpCit7CisgICAgaWYgKG1fY29tbWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21t
YW5kc1ttX2NvbW1hbmRzLnNpemUoKS0xXS0+aW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApp
bmRleCBjMmI0ODlkLi40NWQzOGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHls
ZTsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTg3LDYgKzg4
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlv
bkluZGljYXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRv
Y29ycmVjdGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENh
cmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CiAKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpA
QCAtMTAzLDE1ICsxMDUsMTggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVkRWxl
bWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihib29s
IHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUs
IGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRy
dWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29s
IG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9v
bCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0g
dHJ1ZSk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0KGNvbnN0IFN0cmluZyYsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJvb2wgaXNSZW1vdmFibGVCbG9j
ayhjb25zdCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2Rl
PiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAgICAgdm9pZCBpbnNlcnROb2RlQXQoUGFz
c1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydE5vZGVBdFRh
YlNwYW5Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOworICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSk7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
ID0gRG9Ob3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNl
LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSk7CiAgICAgdm9p
ZCBpbnNlcnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0
VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIHZvaWQgbWVyZ2VJZGVudGlj
YWxFbGVtZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAg
ICB2b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2ICsxMzUsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05ld1BhcmVudChOb2RlKiwgTm9k
ZSogcGFzdExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IHBycE5ld1BhcmVudCk7
CiAgICAgdm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVSZW1vdmFsUHJlc2VydmluZ0NoaWxkcmVu
KFBvc2l0aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFzc1JlZlB0cjxOb2RlPik7Cisg
ICAgdmlydHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gcmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsK
KyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRl
eHQpOwogICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmZkZjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgY291bnQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjJmYTc3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUg
IkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0K
KworcHJvdGVjdGVkOgorICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xYjRlNzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Ym9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxh
Y2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQor
ICAgIDogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2Fu
aXRpemVNYXJrdXApCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKwor
RWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1YzMzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorI2Rl
ZmluZSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kIDogcHVibGljIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JT
cGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
KGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFy
dERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJrdXApOworCisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cAppbmRleCAyZWE5NmQ1Li44NTcxNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxl
ZGl0aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3LDExIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAg
ICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKIH0KIAor
U3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAg
cmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU2LDEwICs2MywxMCBAQCB2b2lkIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+
c3Vic3RyaW5nRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0
dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRE
ZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9u
KFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEo
bV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzgwLDggQEAgdm9pZCBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRh
KG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAg
ICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3Rl
eHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAj
aWZuZGVmIE5ERUJVRwpAQCAtODQsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5k
aWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li43YTMxYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCArNDAsMTIg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKICAgICB9CiAKKyAgICBTdHJpbmcmIGRl
bGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKIHByaXZhdGU6Ci0gICAg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyArNTMs
MTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBs
eUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVu
c2lnbmVkIG1fb2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40
OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0
aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAot
ICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBw
bGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVj
dGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICBy
ZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24n
dCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAg
Rm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNw
cAppbmRleCBjMTczZGY0Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uQ29tbWFuZC5jcHAKQEAgLTI3LDExICsyNywxMSBAQAogI2luY2x1ZGUgIkRpY3RhdGlv
bkNvbW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgiCi0jaW5j
bHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omlu
c2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgog
ewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwog
ICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxl
bmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRv
Y3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgp
LCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwor
ICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9J
bnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1
cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODhjNDAwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEaWN0YXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5ODM2YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFy
a2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFy
a2VyU3VwcGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4
dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzlj
YjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUg
Ikluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdp
dGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
UGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjkxZWE5MDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0xMjQsNSArMTI1
LDI5IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2Rl
KiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAgIG5vZGVzLmFkZChub2RlKTsK
IH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1w
bGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOwor
fQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAg
aWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1
cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlv
bik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLjVjYTE5YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1hbmRf
aAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApA
QCAtNTksNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0g
MDsKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KCkgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
KTsgfTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7
CiAgICAgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpAQCAtOTcsNiArMTAwLDEyIEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIGFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNl
bmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVk
aXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFw
cGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBwbHlFZGl0VHlwZSgpKTsgfQor
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApp
bmRleCA3MTBhYTM5Li5jMTUzYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJDb21w
b3NpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNsdWRl
ICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgi
CiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRpY3RhdGlv
bkFsdGVybmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwxNSBAQCBib29sIEVkaXRvcjo6ZGVsZXRl
V2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJp
dHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChlZGl0aW5nQWN0aW9uID09
IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBlbHNlCisgICAgICAg
IGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgc21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCkBAIC0xMDAx
LDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21w
b3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBz
dHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNl
d2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246
OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5k
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5k
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5pbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0
YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNvbXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJs
ZUVsZW1lbnQoKSwgY29tcG9zaXRpb24tPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAK
ICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjY2LDcgKzEyNzAsNyBA
QCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0
aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAoYWN0
aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
KGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZv
aWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6ZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVk
KTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBv
cnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2Vs
ZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4o
KSkKQEAgLTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNl
ZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxp
ZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rp
b24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9u
RGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAg
ICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFs
bHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8v
IEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUg
Y2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzkyYmM0
Ni4uZDZjNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcgQEAg
cHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhEaXJl
Y3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJpbmcs
IGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQg
Y2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToK
ICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2Vs
Q29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNl
dENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51
bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2
b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggYThmMWI0MS4uZTRkNTNmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsxMzgs
NyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1l
bnRFbGVtZW50KCkgY29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JB
bGlnbk9uU2Nyb2xsIGFsaWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
KHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5
KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0U2VsZWN0aW9uKFZp
c2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgp
LCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRl
bnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJU
cmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTI1NCw3ICsyNTMsMTYgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91
bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8
IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0
eSk7CisgICAgCisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7Cisg
ICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJldCgpKQorICAgICAgICAgICAgaW50ZW50ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVj
dGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RF
dmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsK
IH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBw
ZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhv
dXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNj
cm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVh
cmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rp
b25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBp
ZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50
LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFt
ZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAg
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAg
ICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFy
aXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBh
Ym92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVk
IGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5
U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNl
CiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4g
SWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgs
NyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwg
YWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVj
dGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJh
bmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYg
KGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFs
U2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBk
YXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXct
PmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewog
ICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0z
ODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsK
ICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7Cisg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogfQogCiB2
b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCkKQEAg
LTEwMTgsNyArMTAyNiw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlm
eU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wg
aXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdy
YW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3Vu
ZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlv
biBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAg
Ym9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRl
cmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsK
KyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAg
ICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRl
bnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFu
dWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29y
ZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJv
dW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6
CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAg
IGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6Cisg
ICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5Ogor
ICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFy
aXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2Fz
ZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERv
Y3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdo
dDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAg
ICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6Cisg
ICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQor
I2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwg
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3NCw2ICsxMTU1LDExIEBA
IGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIg
PT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
KyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25J
bnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBT
b21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05h
dmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBz
YXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJU
IHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3Vs
ZCBiZQpAQCAtMTcwNyw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFs
bCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
OjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNo
b3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2
ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAg
ICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFY
T2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlBbGwpKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAgICB9
CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdl
LCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yNDIwLDcgKzI1MDgs
NyBAQCBWaXNpYmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFp
bmluZ0NhcmV0U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24gPSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24u
ZXhwYW5kVXNpbmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0
aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJp
dHkoKSk7CisgICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBB
bGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkp
OwogCiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3Rh
cnQoKSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVu
ZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhl
Li4zYzMxOTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxl
Y3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdT
dHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBA
IC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5
cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rp
b24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxp
bmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVj
dGlvbkludGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNp
dCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9u
JiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91
bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0g
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVs
YXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9u
U2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5p
dHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxs
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwg
QkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOwor
ICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lk
IHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0
aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0
U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsK
QEAgLTI5OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rp
b25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoKTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRl
eHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNl
dFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9
CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0lu
c2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAg
aW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRp
dGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
CitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uYWVjNDc1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
UGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0
aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgpAQCAtNTAsNiArNTEsMTEgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2kKICAgICBBU1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwogfQogCitTdHJpbmcmIEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsK
K30KKwogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBi
b29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hv
RW5hYmxlZCgpOwpAQCAtNjUsOSArNzEsOSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwg
bV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFU
Rk9STShJT1MpCkBAIC04MiwxMCArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkp
CiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZp
c2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2Rl
LT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04p
OwogfQpAQCAtOTcsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKaW5kZXggMzEwYmJiMy4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5k
ZWYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRD
b21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQpKTsKICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBp
bnNlcnRlZFRleHQoKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykK
QEAgLTUxLDcgKzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwg
dm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlm
Ci0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1f
bm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRl
eCBkMTZiNWQ2Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGlu
Zy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw4ICs1OSwxMCBAQCB2b2lkIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3Jl
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04p
OwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBt
X2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0
PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0
Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENo
aWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2Rl
VmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzEsMTAgQEAgdm9p
ZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwg
bV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4
dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2Vy
dENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRD
aGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5u
b2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9p
bnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODEsNCArODcsMTQg
QEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNl
dDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjhkOWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5k
ZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1h
bmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMTYgKzM5LDIwIEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hp
bGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNpZm5k
ZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9y
ZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTU5LDEwICs1OSwxMSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3Vt
ZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAotcHJpdmF0ZToKLQotICAgIElu
c2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVj
dEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4
dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dElu
c2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VU
eXBlKTsKKworcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWNhYmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNz
UmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDU1OTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5l
IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRU
b0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9J
bnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jNDdhN2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxl
dGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNmEzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAg
fQorCitwcml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTdiODEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9m
ZnNldCwgY291bnQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikK
K3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMGZkYmQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZp
bmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRl
eHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJj
NzhjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3ZvaWQg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sK
KyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3
aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtu
b3duOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6
CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAg
ICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5
RWRpdFR5cGUoKSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW50ZW50KCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVw
bGFjZUFwcGx5RWRpdFR5cGUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTBjMWM0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZTsKKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9k
ZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5j
bHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFy
YXRpb24uaCIKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgpAQCAtNDQsMTQgKzQ1LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVu
dC5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgi
CisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJ
bmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNs
dWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBs
aWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUg
IlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRl
cmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2lu
Y2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJt
YXJrdXAuaCIKQEAgLTE0ODIsNiArMTQ4OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjp1cGRhdGVOb2Rlc0luc2VydGVkKE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0
ZWRDb250ZW50ID0gbGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFu
dCgpKTsKIH0KKyAgICAKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBh
c3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAo
bV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1
cm4gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVk
aXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVk
aXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAg
IHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAg
ICAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRp
dEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4
dCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpy
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4
dCwgZGVsZXRlZFRleHQpOworICAgIH0KK30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdo
ZXJlIHdlJ3JlIGp1c3QgcGFzdGluZyBhIHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdl
IGluc2VydCB0aGUgdGV4dCBub2RlCiAvLyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhh
dCBob2xkcyB0aGUgc2VsZWN0aW9uLiAgVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5l
cmFsaXplZCBjb2RlIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5
IEBAIHByaXZhdGU6CiAKICAgICBib29sIHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBs
YWNlbWVudEZyYWdtZW50Jik7CiAKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisKICAgICBQb3NpdGlvbiBtX3N0YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRp
b24gbV9lbmRPZkluc2VydGVkQ29udGVudDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2lu
c2VydGlvblN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5k
ZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNs
dWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5
cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dCkKIAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5l
d2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0g
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRy
PEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29t
cG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6
UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFu
ZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U0MjIxMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgCitUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjAwYmQxNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyNDYwNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxk
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTc0NjEzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUg
Ikluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQ
dHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTY2NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChk
b2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50
b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+
IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBp
bnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjc0OTNiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAor
CisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZD4gY3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dCA9IGZhbHNlLCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFu
Y2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxl
Y3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBib29sLCBS
ZWJhbGFuY2VUeXBlKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0
SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGRk
NTMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRl
ZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZjMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVk
VGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQp
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBy
ZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25B
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3Bw
CmluZGV4IDdjMjEzNjUuLmU2OTVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQg
bWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4g
cHJwT2JqZWN0KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCkKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4uMDdlMmE0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0Nywx
MyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3Qg
Ym91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQg
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rp
b24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkg
ewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3Nl
bGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2Fj
aGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAg
ICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlv
bi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0K
IAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBA
IC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJ
bm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0g
dmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIFN0cmluZyBwcmV2
aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIGJvb2wgdGV4
dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0NoYW5n
ZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJl
bmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgICAgICAgICAgY2FjaGUtPnBv
c3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdl
dE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJUZXh0
LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlm
ICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAg
ICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
UExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkp
IHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVE
ZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0
LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlv
bklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRG
b3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYuLmQ3ZDQwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKQEAgLTMxODQsNyArMzE4NCw3IEBAIHN0YXRpYyB2b2lkIHNldEluaXRp
YWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJl
Y3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24o
dmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoVXNlclRyaWdnZXJlZCkpOworICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBv
c2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRy
aWdnZXJlZCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKTsKIH0KIAogc3RhdGljIHZv
aWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJk
RXZlbnQqIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250368</attachid>
            <date>2015-04-08 12:19:40 -0700</date>
            <delta_ts>2015-04-08 12:29:37 -0700</delta_ts>
            <desc>Full patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>230931</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDE4NmY3ZTEzMjY4OTY0NTZmZWVmY2ZhMDI1ODI4ZWNhZjM4ODY5NTUKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk4ZGZkODkuLjRjYzhiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDc0LDEwICsxNDc0
LDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5
NiwxMSArMTUwMCwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNw
cAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9z
aXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21t
YW5kLmNwcApAQCAtMTUxNiw2ICsxNTI0LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBl
ZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQ
b3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmYxM2M4OC4uNTdlY2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwOSBAQAorMjAxNS0w
NC0wNyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
cmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcg
RWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNo
YW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNv
YWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9h
ZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRl
Y2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBp
biB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hh
bmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0
dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2li
bGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwogMjAx
NS0wNC0wNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSB2aWRlbyBwbGF5aW5nIHRvIGV4dGVybmFsIGRldmljZSBzaG91bGQgbm90IGJlIGlu
dGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCBkZWNkZDUzLi5jZTFkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0MzkzLDYgKzE0MzkzLDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTQ0NDksNiArMTQ0NzcsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NzMwLDYgKzE0Nzg2LDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
QEAgLTE1MDI0LDYgKzE1MTM2LDYyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5LDEwICsyMTIzNywxNCBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENvbXBvc2l0ZUVkaXRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtD
b21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFu
ZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBAIC0yMTA5OSwxMCArMjEyNzEsMTQg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIiAv
PgpAQCAtMjExMjEsNiArMjEyOTcsMTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFZpc2libGVQb3NpdGlvbi5oIiAvPgpAQCAtMjE3ODMsNCArMjE5NjMsNCBAQAog
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIg
Lz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMwYTY2Ni4uM2Y3NDJhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM0NTAsNiArMzQ1
NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21t
YW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtMzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzU3Niw2
ICszNjAwLDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDU2OSw2ICsxMDYwNSwxMiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpAQCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYgKzEwNzA3LDEyIEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNzI1
LDYgKzEwNzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGlu
Z0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUzMyw0IEBACiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1By
b2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3ZjRj
MWEuLjc4NDExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTYzNzksMTIgKzYzNzksMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8q
IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0
ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsg
fTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJE
QzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1
MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0
MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0
MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVt
cHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYz
NkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRG
Nzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9
OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFE
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYy
NjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0
VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRU
eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAt
NjQzNCwxMiArNjQ0NCwyNiBAQAogCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIz
RERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAv
KiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8q
IFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07
CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0
NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIy
OEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87
IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5o
ICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3Rjgw
NCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9Owog
CQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZE
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9Owog
CQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEy
NTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1
OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZB
NDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
MTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJ
RjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAw
NTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIx
MSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUx
MkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFE
QTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERh
dGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9N
SFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLzsgfTsKQEAgLTE0MDA3LDYgKzE0MDMxLDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjND
MUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5
MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMTksOCArMTQwNDUsMTYgQEAKIAkJRjUyM0QzMDMw
MkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYw
MTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5
Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNs
aWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURB
MDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUx
RjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTQwNzAsNiArMTQxMDQsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
UkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUx
RjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERF
RDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJB
NzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAv
KiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIg
LyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFF
QTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA4MCw4ICsxNDEyMCwxNiBAQAogCQlGNTk3
M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZF
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAv
KiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5Nyw2ICsxNzc0NSwxMCBAQAogCQkJCTkzMzA5
RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQw
QjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
RDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJ
RjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5
MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLApAQCAtMTc3MDUsNiArMTc3NTcsMTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcw
NjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBF
MzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAw
RTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5
QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJ
RjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2
RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRp
dENvbW1hbmQuaCAqLywKQEAgLTE3NzUxLDYgKzE3ODA3LDEwIEBACiAJCQkJQzZENzRBRDMwOUFB
MjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5
REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJ
CQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5
MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBS
ZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzYxLDYgKzE3ODIxLDEwIEBACiAJCQkJ
OTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBv
c2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3
QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVE
QTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlF
NjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzk2
LDYgKzE3ODYwLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGlu
Z0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdD
b21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVB
NTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmgg
Ki8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICov
LAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBA
IC0yMzY5MCw2ICsyMzc2Miw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1h
c2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAw
RkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1
NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlF
NjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ5Myw2ICsyNDU2Niw3IEBACiAJCQkJMzEwNjAzNzkx
NDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFs
dWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4
IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5
ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgw
MEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKQEAgLTI0ODE2LDYgKzI0ODkwLDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFF
MDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIz
NzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTA0NSw2ICsyNTEyMCw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFE
QjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEx
NUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9O
b2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDU0LDYgKzI1MTMwLDcgQEAKIAkJCQlCRThFRjA0
MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
RThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JF
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0
RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
OTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUxNzMsNiArMjUyNTAsNyBAQAogCQkJCUZEQTE1RUFDMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAw
MjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThG
NTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpT
R2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3
NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZD
MDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2MTQsNiAr
MjU2OTIsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNE
ODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5
NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYy
Qzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjc5NSw2ICsyNjg3NCw3IEBACiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJB
RkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYy
NiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIw
RDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjg0OCw2ICsyNjkyOCw3IEBACiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVBMjYyIC8q
IFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRFNzAwMUNC
RDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYwQjE4N0ZE
NDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQyNCAvKiBU
aWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZERUEwMEU1
NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlDMTk0QTY0
RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk3MiwxMiArMjcw
NTMsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJs
aW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUND
MDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NkM1
QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29y
ZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFF
OUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OUREQTE2
MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNj
cmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMwOTg0MDBF
ODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFC
QyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNDAzNzlC
MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzAxMCw2ICsyNzA5Myw3IEBACiAJCQkJNkU0RTkxQUYxMEY3
RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dEdy
b3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODUx
NEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVn
U2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc1Miw2ICsyNzgzNiw3IEBACiAJCQkJNkY5
OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBs
YXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1
MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTYx
MUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYyMDAwNjZG
MDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGRTBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3
ODI5LDYgKzI3OTE0LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNl
TW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2
MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZC
MUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFGNDBFNCAv
KiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5MzA5
QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI3OTY1LDYgKzI4MDUxLDcgQEAKIAkJCQk4NUVDQkVGNjBBQTc2MjY5
MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURG
ODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVu
dC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUVG
MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjgxMTMsNiArMjgyMDAs
NyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xD
b21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8q
IEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4
ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4ODBFMURF
MkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4MjIzLDYgKzI4MzExLDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3
QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMEIwQTAx
NEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2MjUyRTE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI4MjQzLDYgKzI4MzMyLDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNF
MEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RjMx
OTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4NDIyLDYgKzI4NTEyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3
RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1
MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
ODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC0yODg4MCw2ICsyODk3MSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYx
IC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAxMUU4NEMz
NjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUyMTAyRkMw
MDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2
QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODkxNCw2ICsyOTAwNiw3IEBACiAJCQkJMDc5NjlEQkIx
N0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1ODgwMEFC
REQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMxMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTY5MCw2ICsyOTc4Myw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0REQx
OUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAx
N0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VFMDA0MjBB
QTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4Njcs
NiArMjk5NjEsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2Fj
dGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEz
MDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMx
NzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8q
IFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYw
RUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVB
RkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwMzcxLDYgKzMwNDY2LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYgLyogV0tH
cmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAv
KiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4MzAwREE2
M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2RDgwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJD
b25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi4wNDg2NjY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVu
aGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIxIEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRy
ZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsK
KworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRv
IGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFk
IHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlz
dCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0
YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGUgOiBub3RpZmljYXRp
b25zKSB7CisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihz
dGQ6OmdldDwwPihub3RlKS5nZXQoKSwgc3RkOjpnZXQ8MT4obm90ZSksIHN0ZDo6Z2V0PDI+KG5v
dGUpLCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgfQorI2VuZGlmCit9CiAgICAgCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhO
b3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBl
IHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjYsMjIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0
Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRP
YnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9i
amVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRl
bnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRm
KCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAg
ICAgcHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNo
IChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAg
ICAgICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJp
bnRmKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAg
ICAgcHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJ
bnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
Q3V0OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3Rl
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25Vbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoK
KyAgICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHBy
aW50ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6
CisgICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoK
KyAgICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6
CisgICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAg
ICAgICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAg
ICAgICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlz
Y29udGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsK
KyAgICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAg
ICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikK
IHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQor
ICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKwogICAgIHN0b3BDYWNo
aW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0
ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmot
PmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0
KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iaiwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5v
ZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFy
Z2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5V
U0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRl
bnQoKTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGJvb2wgc2FuaXRpemVQYXNz
d29yZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBTdHJpbmcgJnRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bhc3N3b3Jk
RmllbGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICB0
ZXh0ID0gb2JqLnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCktPnBhc3N3
b3JkRmllbGRWYWx1ZSgpLnN1YnN0cmluZyhwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRF
ZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJU
KHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0
ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRp
emVkVGV4dCA9IHRleHQ7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNz
d29yZFRleHQoKm9iaiwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+
b2JzZXJ2YWJsZU9iamVjdCgpLCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBp
ZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAg
ICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAy
NSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5v
YnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pOworI2Vs
c2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5n
ZUZvckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRF
ZGl0aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlw
ZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBl
IGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFT
U0VSVChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5
cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0OworICAg
IFN0cmluZyBzYW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgaWYgKG9i
aikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5z
ZXJ0ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCks
IGluc2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYg
KCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAg
ICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2Jz
ZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIGlu
c2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAg
ICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVk
aXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSks
IHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5z
ZXJ0ZWRUZXh0KTsKKyNlbmRpZgogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGlu
Z0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2
ZW50KQpAQCAtMTA4NCw2ICsxMzA0LDE1IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSog
bm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2Jq
ZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAq
cm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAocm9vdE9iamVj
dC0+aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25j
YXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgp
OworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJs
ZXI6OkFYQXR0cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDog
bV9jYWNoZShjYWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmgKaW5kZXggYmZhOTI3Ny4uYmQyYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDk5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0
aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9u
b3VzbHkpOwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
RG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBv
c3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsK
LSAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51
bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7
CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVE
ZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNl
cnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcs
IC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAv
LyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVs
ZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBh
c3RlCisgICAgfTsKKworICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQg
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRl
eHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtu
b3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0g
ICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlB
bGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3Rpbmcg
dGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlv
biBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9s
ZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0
aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxl
Y3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0g
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAg
eworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBz
ZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisK
KyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAg
ICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
VW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBi
b29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAg
LCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAg
IHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNo
YW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAg
ICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAg
ICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAg
ICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3lu
YyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisg
ICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5k
aWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNo
YW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVu
dW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcg
KzMwNSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3Jt
SGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUq
IG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZv
aWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxz
ZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAg
ICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRD
aGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAg
ICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5n
RXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5n
RXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAg
IHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJO
b2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFz
aE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBI
YXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0
NCw2ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1l
cjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhO
b3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBv
c3RUaW1lcjsKKyAgICBWZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4sIEFYVGV4dEVkaXRUeXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9z
dDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAg
IHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9u
Q3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsK
QEAgLTI1MSw2ICszNzMsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAg
ICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDMyLDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJ
c0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpo
YW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2Us
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERv
Y3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjNkNDVkM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxl
bWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVs
ZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5v
ZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlu
cHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3Rf
Y2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBp
ZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAo
aXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0
SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKaW5kZXggM2U3NTcyZi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jl
c3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hG
aWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0y
NjQ2LDQgKzI2NDYsMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5
Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAg
Tm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9s
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+
KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjJlOTc3NmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05h
dGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJ
bWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRh
aW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0
dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRl
eCAyZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0
ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0
ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRT
ZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYg
KGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlv
bkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5n
dGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wg
PSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJv
bEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uu
c3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3Np
dGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
ciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBv
c2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0
aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUs
IHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldElu
QW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxl
U2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1l
KCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0
aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdl
KGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFu
Z2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNl
bGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVu
Z3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSBy
YW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBj
YWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92
ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAg
ICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5n
ZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rp
b24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4u
MGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNo
KEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwog
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsK
ICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsK
ICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNj
cm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYWI3
OTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZp
YwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5v
dGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAg
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMw
MGU3Ny4uNjA1MjNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNy
ZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkg
QCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5n
dGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtl
ciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0
ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBp
biB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2Jq
LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRp
b25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQorewor
ICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFv
YmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZv
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAg
IGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50
ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoK
KyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rp
b25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2gg
KGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9u
LmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFw
cGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2li
bGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1
dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSBy
b290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5n
ZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAg
ICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgor
ICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxp
dHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlv
bmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5n
ICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3Rl
eHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBO
U011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0
VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25M
ZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAg
ICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5n
dGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVu
Z3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3RO
dWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4
dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2Vb
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsK
KyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAg
ICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAg
IGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBw
ZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgp
LT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRv
IGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5
cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlw
ZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9v
dFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBO
U011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0
aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGlj
dGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGlu
c2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBh
ZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQg
d3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJB
cmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
LCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBE
UlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2Vk
Tm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3Qs
IEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNl
CiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpW
aXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlv
bjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAK
ICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0y
NiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2Rl
Q29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5k
OjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFy
ZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFr
cyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAg
IFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2Rl
LT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMg
Y29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4i
KQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5v
ZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQs
MTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9w
YXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5v
ZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxl
U3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVf
RVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0
OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6
dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFw
cGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9k
ZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0
NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNv
bW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFr
QmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgs
NiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRl
clRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAi
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRl
ICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBh
c3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENo
aWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0K
IAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8
Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMg
KzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4
LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5n
dGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBp
ZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAg
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9u
KCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1h
bmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBp
bnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAg
ICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkp
OworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0g
cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBs
YWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVu
dFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNv
bW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUy
Myw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRl
ckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlmIChtX2Nv
bW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXpl
KCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApA
QCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVu
dDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3Io
Ym9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFy
a3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9t
Tm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsK
ICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4
dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAg
IHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4g
cmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0
IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1Jl
ZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxk
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJv
b2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0
b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5z
ZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0
cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0
ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJl
bWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92
ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9z
aXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsK
ICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRp
dENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJl
cGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiBy
ZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFj
ZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDog
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBy
ZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVk
aXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1
YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
c21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwg
Ym9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFs
c2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxl
dGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5k
PiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3
MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2
ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCAr
IG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisK
IHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJU
KG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZz
ZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwog
ICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0
ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1f
dGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBw
bHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1f
b2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBl
Yyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0
LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5
MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90
ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZu
ZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAg
ICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYs
MTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVk
aXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7
Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdo
ZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBj
YXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rp
b24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBp
bmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxl
dGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGlu
ZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlm
OWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBA
IC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNs
dWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21t
YW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUs
NyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5l
d2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0
aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9u
QWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0lu
TGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0lu
c2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3Vw
cGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4
dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5l
U3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVy
bmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVu
ZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisj
ZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1Jl
ZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDog
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dElu
c2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVk
aXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0
PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1w
bGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0
Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAo
IWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRl
eCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1h
bmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24u
aCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERv
Y3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVz
Y2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2lu
Y2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAt
Mzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29s
IHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYg
KG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFw
cGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21h
cnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAg
ICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9
CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBF
ZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNt
ZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVj
dGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4K
ICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5p
c0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQg
OiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlv
bnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlv
bnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2
ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0
aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlO
b3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZv
cm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRl
U2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0g
ICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0
ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29w
eU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpA
QCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxB
c0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFz
b25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykK
K3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9u
cyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQp
CiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3Qg
dXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3Jw
aGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYs
NyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3
MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBm
b3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlv
bkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0
aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVj
dGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBv
cGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5n
IGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlv
dSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBe
KToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9u
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBM
QVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0
eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3Np
dGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAg
dm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwog
Ci0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7
CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5
KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLmU0ZDUzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVT
ZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAK
IHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywg
RVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikK
IHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQo
KSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0Rp
cmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJp
Z2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5k
ZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1f
c2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVz
ZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAog
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2Vy
ZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYg
KG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0
aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxl
Y3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVT
ZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxl
Y3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3
U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAg
ICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9j
dW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVj
dGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25z
LCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1l
LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAg
ICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwg
dGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAg
IC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0
aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8v
IHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2Us
IGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxl
U2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlm
ICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlv
bnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDks
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVW
aWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwog
fQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShG
cmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9p
ZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1Nl
bGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVh
bFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpCkBAIC0xMDE4LDcgKzEwMjYsODAgQEAg
VmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91
bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkg
PT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
CitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxl
Y3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRp
cmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOwor
ICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAg
ICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGly
ZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7
CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChn
cmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3Jh
bnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6
CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFu
dWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxh
cml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZh
bHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51
bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFu
dWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdy
YW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAg
IGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAg
ICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2gg
KGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rp
b25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0
aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFj
a3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24g
PSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1l
U2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNl
clRyaWdnZXJlZCkKIHsKQEAgLTEwNzQsNiArMTE1NSwxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24s
IFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYm
IHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rp
b24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3Bl
cmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNl
dHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSBy
ZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFy
Yml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MDcsOCArMTc5
MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRl
bnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIGF1dG8gaW50ZW50ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVjdENhY2hlOjpUZXh0U2Vs
ZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisgICAg
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5
LCBib29sIGNsb3NlVHlwaW5nKQpAQCAtMjQyMCw3ICsyNTA4LDcgQEAgVmlzaWJsZVNlbGVjdGlv
biBGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihj
b25zdCBWaXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxl
Y3Rpb24uc2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJp
dHkoV29yZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElm
TmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0
YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9u
IGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uM2MzMTk4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0
eWxlIHwgKHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50
KSA6IDApOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7
CisgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJh
bWUqID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBt
b3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwg
Ym9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxl
Y3Rpb247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2Vs
ZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgp
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0
R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5n
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0g
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRl
ZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3Jz
Rm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1
cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBA
IHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVj
dGlvbk5hdmlnYXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
Ci0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVu
dChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAg
IHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7
CiAjZWxzZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
IHsgfQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lk
IHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2wo
RVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAK
ICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkp
CiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4
IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJl
bmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAg
LTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3Rl
eHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpp
bnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFi
bGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkg
KzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9
CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQ
VElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZz
ZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9k
ZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlv
bihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAg
Kzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsK
ICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBt
X29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRp
b24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNl
dCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywx
NCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhh
c2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUz
M2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90
ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBw
cml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQg
bV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNp
bmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgp
LCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAg
ICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZh
bHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7
CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQo
KSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBj
cmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3Np
dGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAg
ICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVW
YWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
eworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0
KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDog
Y3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgp
LCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQ
b3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0K
ICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJk
Li44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9J
bnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAg
fQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1
YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2Vu
ZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+
IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApp
bmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3Vw
cGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFs
YW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGll
cj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAK
ICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGls
ZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorewor
fQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6
IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBj
aGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAg
ICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0
QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9k
ZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVk
ZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAg
IDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQor
Cit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0K
KworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDog
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2Rl
bGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2Rl
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAg
IGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBj
YXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQs
IG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBv
c2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4
dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7Cisg
ICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBw
bHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90
ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAi
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0
ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2Rl
TGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIK
ICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIK
ICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAi
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgog
I2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYg
KzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNl
cnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxhc3RQb3Np
dGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8
RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNo
aWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAg
ICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4
dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlv
bikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAg
ICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAg
ICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3Rp
bmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9k
ZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlv
bi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4
IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwog
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24g
bV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENv
bnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRU
ZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQg
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcg
JnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0
Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
dGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4
dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0
Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRU
cmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRl
c3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1Nl
bGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQor
ICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAt
MCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2Vy
dCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJh
bGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVj
dEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorewor
ICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxl
dGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkz
YjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9o
CisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRl
eHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwg
UmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5n
V2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJh
bGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21t
YW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNk
ZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1
YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25B
dGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0No
YW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12
b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYg
KCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmlu
ZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBh
Y2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxs
KCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXBy
ZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENo
YW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVk
Tm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAg
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1D
b250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZh
bHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4
dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAh
PSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhh
c0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENP
Q09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMs
IEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsK
ICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVl
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xu
JykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVu
ZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVl
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3Np
dGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsK
KyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNo
ZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0
NjA1MWM2Li5jNTI4OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0z
MTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24o
RnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsK
ICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJh
bWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsK
KyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAK
IHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1l
LCBLZXlib2FyZEV2ZW50KiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250369</attachid>
            <date>2015-04-08 12:20:18 -0700</date>
            <delta_ts>2015-04-14 12:25:23 -0700</delta_ts>
            <desc>Edit commands infrastructure</desc>
            <filename>0001-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>160681</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAyYTFkODBlNDA3NWVhZmNhZTU3ZjNmNGViMDNhMTcyMTNjZWRmMGU1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMTo0Nzo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKTmV3IEVkaXRpbmcgQ29tbWFuZHMKLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArKwogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMTMgKysrKysrKysrKysrKwog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiAgICAgfCAxODAg
KysrKysrKysrKysrKysrKysrKysrCiAuLi4vV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzICAgICAgICB8ICA3MiArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgIDk2ICsrKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAxOCArKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCAgICAgICAgIHwgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCAgICB8ICAzOCAr
KysrLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oICAgICAg
fCAgIDYgKwogLi4uL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgICAg
ICAgfCAgMzggKysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIHwgIDQ2ICsrKysrKwogLi4uL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCAgfCAgNDUgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCB8ICA0OCArKysrKysKIC4uLi9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgIHwgIDI2ICsrLQogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgMTAgKy0KIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgICAgICAgIHwgICA0ICstCiAuLi4v
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCB8ICA0MCArKysr
KwogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgfCAg
NDYgKysrKysrCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcCB8ICA0NSArKysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCAgIHwgIDQ3ICsrKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmggICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgIHwgIDI5ICsrKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIHwgICA5ICstCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCB8ICAyMiArKy0KIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgIHwgICA4ICstCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggICAgICAgICB8ICAgNyArLQog
Li4uL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAgICAgfCAgMzgg
KysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IHwgIDQ3ICsrKysrKwogLi4uL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICAgICAgfCAgMzggKysrKysKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggICAgICAgIHwgIDQ4ICsrKysrKwogLi4uL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwICAgfCAgMzggKysrKysKIC4uLi9lZGl0aW5nL1JlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggICAgIHwgIDQ5ICsrKysrKwogLi4uL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgfCAgNDAgKysrKysKIC4uLi9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgIHwgIDUyICsrKysr
KwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgfCAg
MzEgKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
ICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCAgICAg
ICAgICAgfCAgIDMgKy0KIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICAgIHwgIDQwICsrKysrCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggICAgICB8ICA0NSArKysrKysKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCAgICAgIHwgIDM4ICsrKysrCiAuLi4vZWRpdGluZy9UeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAgICAgICB8ICA0NyArKysrKysKIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIHwgIDUwICsrKysrKwogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICAgfCAgNDkgKysr
KysrCiAuLi4vVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICB8
ICAzOCArKysrKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
ICAgICAgfCAgNDggKysrKysrCiA0NiBmaWxlcyBjaGFuZ2VkLCAxNzIyIGluc2VydGlvbnMoKyks
IDM5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggOThkZmQ4OS4uNGNjOGJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE0NzQsMTAgKzE0NzQsMTQgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJl
YWtCbG9ja3F1b3RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGlj
dGF0aW9uQWx0ZXJuYXRpdmUuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAor
ICAgIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdENv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCiAgICAgZWRpdGluZy9FZGl0
b3IuY3BwCkBAIC0xNDk2LDExICsxNTAwLDE1IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBl
ZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcAogICAgIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCisgICAgZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorICAg
IGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZUZv
cm1hdENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRp
bmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQuY3BwCkBAIC0xNTE2LDYgKzE1MjQsMTAgQEAgc2V0KFdlYkNvcmVf
U09VUkNFUwogICAgIGVkaXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAogICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9VbmxpbmtDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBmZjEzYzg4Li41NWQ3NmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTE2IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAg
IE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nl
c3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9u
IGNoYW5nZSBub3RpZmljYXRpb25zLiBUaGlzIGNvbW1pdCBpcyBhbGwgaW5mcmFzdHJ1Y3R1cmUg
YW5kIGRvZXNuJ3QgY29udGFpbiBhbnkgYWNjZXNzaWJpbGl0eSBzcGVjaWZpYyBjaGFuZ2VzLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBh
cmUgc3RpbGwgaW4gZGV2ZWxvcG1lbnQuIFN1Ym1pdHRpbmcgcGF0Y2ggZWFybHkgZm9yIGZlZWRi
YWNrLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAg
ICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRG
cm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAg
ICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQp
OgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVs
ZXRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0
UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVy
Zm9ybUN1dE9yQ29weSk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRv
QXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgor
ICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcv
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToK
KyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5l
cyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAg
ICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQp
OgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJ
bnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ0luc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2Vy
dFRleHRDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisKIDIwMTUtMDQtMDcgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gdmlkZW8gcGxheWluZyB0
byBleHRlcm5hbCBkZXZpY2Ugc2hvdWxkIG5vdCBiZSBpbnRlcnJ1cHRlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZGVjZGQ1My4uODYx
MDk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCkBAIC0xNDM5Myw2ICsxNDM5MywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAi
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NDQ5LDYgKzE0NDc3LDM0
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVk
aXRDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC0xNDczMCw2ICsxNDc4NiwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAi
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAi
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ4MDAs
NiArMTQ4ODQsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNTAyNCw2ICsxNTEzNiw2MiBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmxp
bmtDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC0yMTA2OSwxMCArMjEyMzcsMTQgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkFsdGVybmF0aXZlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0
QWN0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRpbmdCZWhh
dmlvci5oIiAvPgpAQCAtMjEwOTksMTAgKzIxMjcxLDE0IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KQEAgLTIxMTIxLDYgKzIxMjk3LDEw
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJdGVyYXRvci5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUZXh0SXRlcmF0b3JCZWhhdmlv
ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5k
LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0
ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9zaXRp
b24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBiYzBhNjY2Li4yOGIwYThjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJz
CkBAIC0zNDM4LDYgKzM0MzgsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcQ3JlYXRlTGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzQ1MCw2ICszNDU2LDEyIEBA
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29t
bWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CkBAIC0zNTEzLDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0z
NTI4LDYgKzM1NDYsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVu
ZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNTc2LDYgKzM2MDAs
MTggQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5j
cHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwNTY5LDYgKzEwNjA1LDEyIEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
Ij4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBA
IC0xMDU4MSw2ICsxMDYyMywxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25Db21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRWRpdEFjdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NTksNiArMTA3MDcsMTIgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCI+CiAgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29t
bWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgpAQCAtMTA2NzEsNiArMTA3MjUsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA3MjUsNiArMTA3
ODUsMTggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFu
ZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW4uaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVW5kb1N0ZXAuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1N2Y0YzFhLi43ODQxMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc5LDEyICs2Mzc5LDIy
IEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3
NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsK
IAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVC
OEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEw
MCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Ny
b2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1
NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1
NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87
IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1
MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1
MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlv
bk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVu
dC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUz
MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFB
Q0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURB
MDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFB
Q0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9Owor
CQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVG
RjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07
CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYw
MDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovOyB9Owog
CQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9Owor
CQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJ
RjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAw
M0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5w
dXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MzQsMTIgKzY0NDQsMjYgQEAKIAkJRjU1QjNEREUxMjUx
RjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0
VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVC
M0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIz
REUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyog
V2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2
OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1
OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhE
MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87
IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyog
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3
IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0
IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlG
NTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8q
IExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUw
RTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBC
MEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9u
TWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0
aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07
CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEg
LyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIx
MSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlG
NUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5
NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAq
LzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9
OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMw
RkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0
QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xNDAwNyw2ICsxNDAzMSw4
IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBB
bmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5
NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGgg
PSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50
cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFD
MjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3Nh
Z2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDE5LDggKzE0
MDQ1LDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUz
NDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9j
YWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBF
RjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VU
ZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0Ex
MjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDcwLDYgKzE0MTA0LDEyIEBACiAJ
CUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyog
V2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5w
dXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIw
MDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjgg
LyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3
ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4
Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwODAs
OCArMTQxMjAsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8q
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFB
Q0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUND
QjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNz
YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVD
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1
Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFB
Q0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRB
IC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8q
IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRh
TGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2OTcsNiAr
MTc3NDUsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRp
dENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlu
a0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVM
aW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZE
NUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlG
NTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICov
LAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NzA1LDYgKzE3NzU3LDEwIEBACiAJCQkJ
Q0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJ
CQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAog
CQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJ
CQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3
MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJ
CQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5
RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUw
OTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzc1MSw2ICsxNzgwNywx
MCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0
TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2Vs
ZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5
MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4
MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4
MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0
OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4
RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc2
MSw2ICsxNzgyMSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkw
MEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5
MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJ
RjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBG
NDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJ
CUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
ICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgKi8sCkBAIC0xNzc5Niw2ICsxNzg2MCwxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3
OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5
RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2
NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAw
NjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFB
Q0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1
Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0Yw
MEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAv
KiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyog
VW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2OTAsNiArMjM3NjIsNyBAQAogCQkJCTZDNTY4Q0Ix
MTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNF
MDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0
aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAv
KiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0OTMsNiArMjQ1
NjYsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0
ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8q
IERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
NkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0My
ODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZy
YW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgxNiw2ICsyNDg5MCw3IEBA
CiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyog
SFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBE
NzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVy
Y2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyog
SFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNDUsNiArMjUxMjAsNyBA
QAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAw
M0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFB
Qjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0
aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgz
QSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNF
RTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA1NCw2ICsy
NTEzMCw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9U
cmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAv
KiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZE
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVM
b2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAv
KiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTczLDYgKzI1MjUw
LDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1
dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0
MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1NjE0LDYgKzI1NjkyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBC
OTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxI
dHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpT
WFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3OTUsNiArMjY4NzQsNyBAQAog
CQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNN
YWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2Rl
Y1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4NDgsNiArMjY5MjgsNyBAQAogCQkJCTE4NUJD
RjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5
SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZB
NDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjY5NzIsMTIgKzI3MDUzLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0
MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3
OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVu
UGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3
QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpT
Q2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjEx
IC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBX
ZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjcwMTAsNiArMjcwOTMs
NyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2Vi
R0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZF
OTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgx
QUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJH
TERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1
MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3NTIs
NiArMjc4MzYsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVy
dGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAw
RTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAw
OUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yNzgyOSw2ICsyNzkxNCw3IEBACiAJCQkJMzFGQjFBNTgxMjBB
NUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlv
bkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAv
KiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQw
Mzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQw
MEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk2NSw2ICsyODA1MSw3IEBA
CiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmpl
Y3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJE
IC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFB
Q0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3Vw
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAv
KiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFB
M0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAq
LywKQEAgLTI4MTEzLDYgKzI4MjAwLDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQg
LyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMw
NEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0
IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9u
ZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIyMyw2ICsyODMxMSw3IEBACiAJ
CQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZB
RjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlw
aFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODI0Myw2ICsyODMzMiw3IEBACiAJCQkJ
QjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQwMDNFRjI2OSAvKiBIaWRk
ZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NUQxQUNDRThFMDAwNTEy
QjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFk
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3
IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyMiw2ICsyODUxMiw3IEBACiAJ
CQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1h
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1h
Z2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAv
KiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJ
bWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4ODAsNiArMjg5NzEsNyBAQAogCQkJCUU1
MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQ
ZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDYwMTFBQ0IwQzgz
MDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2RpY1dhdmUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3
MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg5MTQsNiArMjkw
MDYsNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3RDE0MTUxMDA3RkY4NDIg
LyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlE
QkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0
c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2OTAsNiArMjk3ODMsNyBAQAogCQkJ
CTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9w
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0QxNENFRTAwNDIwQUExIC8q
IFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDZDMUFDQ0Iz
QzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjExOUVFMzdCQjAwRTVBMDQ1
IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI5ODY3LDYgKzI5OTYxLDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1
MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1Mu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5
QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM3MSw2ICszMDQ2Niw3IEBACiAJCQkJQTE0ODMyQzAx
ODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4
MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJ
CUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEyMDBEREY0MDBFQTA0MUMg
LyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU0MzQ2NDUwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzgyMDg5NjE0N0Qz
NUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAxZGViNGRi
Li4yZGU2ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmNwcApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRl
ICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtNDYsMTUg
KzQ4LDE3IEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5o
YXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGlj
IHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRDaGFuZ2UgY2hhbmdlLCAgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQp
CiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOworICAgIGlmICgh
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1hbmQKLSAgICBp
ZiAobm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYgKHRleHQgPT0gIlxuIikKICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAgICAgICBjYWNoZS0+
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOwog
fQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDggKzY4LDcgQEAg
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5k
Q2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dElu
c2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
Z2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX25vZGUtPm5vZGVWYWx1ZSgp
LCAwKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTc0LDgg
Kzc3LDcgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0
dXJuOwogICAgICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxs
eSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRl
eHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZCwgbV9ub2RlLT5ub2RlVmFsdWUoKSwgMCk7CiAKICAgICBtX25vZGUtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi5lZGY2ODFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5
KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjMxZjUxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC01OCw2ICs1OCw4IEBACiAjaW5j
bHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1
ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNs
dWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVl
dWUuaCIKQEAgLTMyMCw5ICszMjIsMTQgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNS
ZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
UmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZD
aGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCit7CisgICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGls
ZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTUyMiwyMyArNTI5LDQ0IEBAIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0CiAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2Vs
ZWN0aW9uKHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwg
dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkp
KSk7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRl
eHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5
KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQp
KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCBjb3VudCkpOworfQorCitSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4g
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sK
KyAgICByZXR1cm4gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4
dCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBh
c3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwg
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUo
cHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IHJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHko
KSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgp
KSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlU2VsZWN0ZWRU
ZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi5mOGRmOWQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICszMyw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgU3R5
bGVkRWxlbWVudDsKQEAgLTEwMywxNSArMTA0LDE4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJl
bW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCBkZWxldGVT
ZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJE
ZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBk
ZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUg
PSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNl
ID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5p
dGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lkIGlucHV0VGV4dChjb25z
dCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlKTsKICAgICBib29sIGlz
UmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBh
c3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CiAgICAgdm9pZCBp
bnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRp
b24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRy
PE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAg
IHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFs
c2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENv
bW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKICAgICB2b2lk
IG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxF
bGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM0
LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJl
bnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBw
cnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNl
cnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lkIHBydW5lKFBhc3NSZWZQ
dHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2Rl
KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFy
a2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2ZkMjRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCww
ICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisg
ICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNGRmNTc5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjE2M2M5MjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKKyNpbmNsdWRlICJDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCisg
ICAgOiBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5p
dGl6ZU1hcmt1cCkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjljYmUxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZF9oCisjZGVmaW5lIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5j
bHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2Us
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFy
a3VwID0gdHJ1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3Vw
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9j
dW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJv
b2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1h
cmt1cCk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1Li41OTdmNDljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3LDIwIEBAIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUt
Pmxlbmd0aCgpKTsKIH0KIAorU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxl
dGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkKK3ZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNo
YW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCit7CisgICAgaWYgKG5v
ZGUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihu
b2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Cit9CisjZW5kaWYKKwogdm9pZCBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU3
LDkgKzczLDEwIEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm47CiAgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRo
ZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQs
IG1fdGV4dCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKKyNl
bmRpZgogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9
CkBAIC03Myw4ICs5MCw5IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVf
RVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBt
X29mZnNldCwgbV90ZXh0KTsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRJbnNlcnRlZCwgbV90ZXh0LCBtX29mZnNldCk7CisjZW5kaWYKIH0KIAogI2lmbmRlZiBOREVC
VUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgKaW5kZXggMjQ5MWYwNS4uNGU0N2NmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVk
aXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDE1IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVk
VGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShO
b2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25l
ZCk7CisjZW5kaWYKIHByaXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKIAogICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBs
eSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5j
cHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRp
b25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2lu
Y2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjpp
bnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4K
IHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsK
ICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVM
ZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5k
PiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihk
b2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3Ro
KSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsK
KyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRv
SW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJT
dXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVmNjFiMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mZTU0NTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAs
MCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCIKKworI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKwor
I2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJr
ZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1
bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sK
KyAgICByZXR1cm4gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zYzljYjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
X2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4
dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1h
cmtlclN1cHBsaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50
JiwgY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+
KTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzQ3
NzFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgog
I2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpA
QCAtMzgyLDYgKzM4MywxNCBAQCB2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0
RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCiAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCit2b2lkIEVk
aXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGJvb2wgc21hcnREZWxl
dGUpCit7CisgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKK30KKwogdm9pZCBFZGl0b3I6OmNsZWFyVGV4
dCgpCiB7CiAgICAgQ2xlYXJUZXh0Q29tbWFuZDo6Q3JlYXRlQW5kQXBwbHkoJm1fZnJhbWUpOwpA
QCAtMTI2Niw3ICsxMjc1LDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9y
QWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJv
YXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVs
ZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGNhblNtYXJ0Q29weU9yRGVsZXRlKCkp
OwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXgg
NzkyYmM0Ni4uOTM5ODI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC00NTIsNiArNDUy
LDcgQEAgcHJpdmF0ZToKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0OwogCisgICAg
dm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQoYm9vbCk7CiAgICAgYm9v
bCBjYW5EZWxldGVSYW5nZShSYW5nZSopIGNvbnN0OwogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNl
V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCYpOwogICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dFdp
dGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLjlmMDkwMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDIwIEBAIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0K
IAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQorewor
ICAgIHJldHVybiBtX3RleHQ7Cit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCit2b2lkIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0
cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQoreworICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUt
Pm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsK
K30KKyNlbmRpZgorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQog
ewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNz
d29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5ICs4MCwxMCBAQCB2b2lkIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YSht
X29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
IGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV90ZXh0LCBtX29mZnNl
dCk7CisjZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEwICs5OCwxMSBAQCB2
b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFt
X25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKyAg
ICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBi
ZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNo
ZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0
ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOworI2VuZGlmCiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEo
bV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4
IDMxMGJiYjMuLjVjYTJkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxNSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRU
ZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAor
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29u
c3QgU3RyaW5nJiwgdW5zaWduZWQpOworI2VuZGlmCisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3Zl
cnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li4wY2I4YWRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApAQCAtMjYsOSArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDYgKzQ5LDE1
IEBAIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQCiAgICAgQVNTRVJUKG1fcmVmQ2hpbGQtPnBhcmVu
dE5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCkt
PnJlbmRlcmVyKCkpOwogfQogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQordm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSog
bm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCit7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOworfQorI2Vu
ZGlmCisKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIENv
bnRhaW5lck5vZGUqIHBhcmVudCA9IG1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKTsKQEAgLTU3LDgg
KzY3LDkgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBw
YXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgp
LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2lu
c2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9pbnNlcnRD
aGlsZC0+bm9kZVZhbHVlKCksIDApOworI2VuZGlmCiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Niw5ICs3NywxMCBAQCB2b2lkIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghaXNFZGl0YWJsZU5vZGUoKm1faW5z
ZXJ0Q2hpbGQpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAg
ICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRl
eHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24o
bV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9p
bnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQs
IG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKKyNlbmRpZgogCiAgICAgbV9pbnNlcnRD
aGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjM3NWQwOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAog
I2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzgsOSArMzksMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3Jl
LCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJpdmF0
ZToKK3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5v
ZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSos
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOwor
I2VuZGlmCisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uYmZhMTgxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNTksMTAg
KzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4
dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CiAgICAgfQogCi1wcml2
YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKK3Byb3RlY3RlZDoK
ICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFz
c1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICBJbnNlcnRUZXh0Q29t
bWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0
ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YWMwYzNjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAg
IDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzNhZjdjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0
LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MDdiNDMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Y2Y0MWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5OGIwMTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQodGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZDhl
M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0Owor
CitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBj
b3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjg3YTYyZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQp
CisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKKyAg
ICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kOWZmNWJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7
CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOworCitwcml2YXRlOgorICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiQnJlYWtC
bG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNp
bmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpA
QCAtNDQsMTQgKzQ1LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgogI2luY2x1
ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAi
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVk
ZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVy
dGllcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNp
bmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVu
aXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAg
LTE0ODIsNiArMTQ4OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1cGRhdGVO
b2Rlc0luc2VydGVkKE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50ID0g
bGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsKIH0KKyAg
ICAKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9k
ZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9u
KSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0
ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21tYW5kPiBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5z
ZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRjaCAobV9l
ZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4g
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3Rl
OgorICAgICAgICByZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRl
eHQpOworICAgIH0KK30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdlJ3JlIGp1
c3QgcGFzdGluZyBhIHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2VydCB0aGUg
dGV4dCBub2RlCiAvLyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xkcyB0aGUg
c2VsZWN0aW9uLiAgVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXplZCBjb2Rl
IGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmgKaW5kZXggZDg3YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHByaXZhdGU6
CiAKICAgICBib29sIHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVudEZyYWdt
ZW50Jik7CiAKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21t
YW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICBQ
b3NpdGlvbiBtX3N0YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9lbmRPZklu
c2VydGVkQ29udGVudDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlvblN0eWxl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4u
OGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00
MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
ckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6
Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkK
IAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0
IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVmUHRyPElu
c2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1
bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2VydFRleHRD
b21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRpb25UeXBl
ID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVh
ZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNl
QWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwg
ZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2JmYjk3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDA3NDk4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAg
IH0KK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBhNGRj
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2Vy
dENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDQyMTkxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRU
b0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRv
SW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBl
KQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVk
VGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVy
biBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5l
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNl
VHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFj
ZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBl
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8
RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FjM2NhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjNmZjNhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAt
MCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorI2RlZmluZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAotLSAKMi4zLjAgKEFwcGxlIEdpdC01NCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250370</attachid>
            <date>2015-04-08 12:21:07 -0700</date>
            <delta_ts>2015-04-08 12:30:45 -0700</delta_ts>
            <desc>value Change Notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>68585</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA5MmQ2NDk0N2FjOWM1YWM4MDU3YjMxYjc4MDY1Y2JkOTIxMTAzNjE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMjAgKysrKysrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
ICAgICB8ICA4OSArKysrKysrKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oICAgICAgIHwgIDY3ICsrKysrKysrKystLQogLi4uL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwICAgICAgfCAgMjEgKysrKwogLi4uL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCAgICAgICAgfCAgIDEgKwogLi4uL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgfCAgMjAgKysrKwog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggfCAgIDIg
KwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAgICAgICAgfCAg
IDMgKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0g
IHwgICA2ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tICB8IDExMiArKysrKysrKysrKysrKysrKystCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLmggICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAzMCArKysrLS0KIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCAgICAgICAgIHwgICAzICsKIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgICAzICsKIC4uLi9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICAgIHwgICA2ICsrCiAuLi4v
V2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgNCArCiAu
Li4vV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICB8ICAgNSAr
CiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCB8ICAg
MSArCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICB8
ICAzMSArKystLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwICB8ICAgNSArLQogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgfCAgIDUgKwogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29t
bWFuZC5jcHAgICAgICAgICAgICAgfCAgMjUgKysrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuaCAgICAgICAgICAgICAgIHwgICA1ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcCAgICAgICAgICAgICAgICAgIHwgIDE3ICsrLQogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaCAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgIHwgIDMxICsrKy0tLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggfCAgIDkgKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIHwgIDM0
ICsrKy0tLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
ICAgfCAgIDkgKy0KIC4uLi9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
ICAgICAgIHwgICA1ICsKIC4uLi9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIHwgICAyICsKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAgICAgIHwgICA1ICsKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggICAgICAgIHwgICAyICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAgIHwgICA1ICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggICAgIHwgICA0ICstCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICB8ICAzMCArKysrKysKIC4uLi9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgIHwgICA1ICstCiAuLi4vZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICB8ICAgNSArCiAuLi4vZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICB8ICAgMyArCiAuLi4vZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAgICB8ICAgNSArCiAuLi4v
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAgICAgICB8ICAgMiArCiAu
Li4vVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICB8ICAgNSAr
CiAuLi4vVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAgICB8ICAg
MiArCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8
ICAxMiArKy0KIDQ2IGZpbGVzIGNoYW5nZWQsIDY3MCBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU1ZDc2YTYuLjdjOWEwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIs
NiArMiwxMjYgQEAKIAogICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMKIAorICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0
aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2
YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0
byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBk
ZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnNhbml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmll
bGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW06CisgICAgICAgIChXZWJDb3JlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFj
ZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6
CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjbGVhclRl
eHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppbnNlcnREaWN0YXRpb25Q
aHJhc2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGFzdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRl
eHRWYWx1ZSk6CisKKzIwMTUtMDQtMDcgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5j
b20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisKICAg
ICAgICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0
IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxl
Y3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY29tbWl0IGlzIGFsbCBpbmZyYXN0cnVj
dHVyZSBhbmQgZG9lc24ndCBjb250YWluIGFueSBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIGNoYW5n
ZXMuCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MjcxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uMzNkZjYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3Np
YmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0
aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtNzQyLDYgKzc0MywyMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcg
bm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhl
ciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisg
ICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJ
bnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlv
bnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykgeworICAgICAgICBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oc3RkOjpnZXQ8MD4obm90ZSkuZ2V0KCksIHN0
ZDo6Z2V0PDE+KG5vdGUpLCBzdGQ6OmdldDwyPihub3RlKSwgVmlzaWJsZVBvc2l0aW9uKCkpOwor
ICAgIH0KKyNlbmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiAr
ODY2LDcyIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNl
bGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBB
WFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4
dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgp
IHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBv
YmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVs
ZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVk
aXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
bikKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAh
PSBBWFRleHRFZGl0VHlwZVVua25vd24pOwogCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVj
dEF0dHJpYnV0ZXMoKTsKIAotICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQs
IHRleHQpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0g
dGV4dDsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgq
b2JqLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxl
T2JqZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1f
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVP
YmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5
cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJl
cGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9u
VHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9u
VHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJU
KGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2Vy
dGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0
aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9w
Q2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
U3RyaW5nIHNhbml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3RyaW5nIHNh
bml0aXplZEluc2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBpZiAob2JqKSB7CisgICAg
ICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQs
IHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Qu
YXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgaW5zZXJ0aW9u
VHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dv
cmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2Jq
ZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlw
ZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVs
ZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQp
OworI2VuZGlmCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3Rp
ZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0x
MDg0LDYgKzExNTYsMTUgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6
cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0
ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChyb290T2JqZWN0LT5pc0FjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8QWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXc+KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7CisgICAgfQor
ICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRy
aWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNh
Y2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApp
bmRleCBiZmE5Mjc3Li45MTg0MDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAy
MDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksMjUgQEAgcHVibGlj
OgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RU
YXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAg
ICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCos
IEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQ
b3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBB
WFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKKyAgICB9OworCisgICAgZW51bSBBWFRl
eHRFZGl0VHlwZSB7CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhU
ZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0
RWRpdFR5cGVJbnNlcnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRp
dFR5cGVUeXBpbmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlw
ZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJ
bnNlcnQgdmlhIFBhc3RlCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
KTsKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNo
YW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewog
ICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzIzMSwzNCBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVu
dENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAot
ICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxh
Y2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAg
ICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAg
ICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlw
ZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAg
ICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3Rh
dGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEluc2VydGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICB9CisgICAg
fQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5k
aWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQo
QWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsK
QEAgLTIyOSw2ICsyNjksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2Rl
KiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRl
OgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9j
dW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0
eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1f
cmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2ICsyODYsMTEgQEAgcHJpdmF0ZToKICAgICBU
aW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNU
b1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGlt
ZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8c3RkOjp0dXBs
ZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYVGV4dEVkaXRUeXBlLCBTdHJpbmc+PiBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7
CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5k
bGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTMwOCw4ICszNTUsMTQgQEAgaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0K
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShDT0NP
QSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlu
bGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQ
b3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9u
KE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAppbmRleCBkOGQyNmRlLi4zZDQ1ZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUy
LDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmll
bGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwog
fQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dv
cmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5v
ZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lu
cHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVs
ZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QqPih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2Rl
LT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVt
ZW50KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RD
YWNoZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVu
dCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2Rl
KiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLmQ1M2E5M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0
aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNz
d29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDVh
MjdlYTguLmE3YTk5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMjY0Niw0ICsyNjQ2LDI0IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29s
IG9uKQogfQogI2VuZGlmCiAKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFy
aWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAg
IGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlm
IChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1l
bnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYg
KCFpbnB1dEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4g
aW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAppbmRleCAzNTg2ZjJhLi4yZTk3NzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVh
Um9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgK
QEAgLTQzLDYgKzQzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3KCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVu
dFR5cGUsIEFYT2JqZWN0Q2FjaGUqKSBvdmVycmlkZTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCkBAIC03MSw3ICs3Myw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3Qo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVu
dE9iamVjdElmRXhpc3RzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eU9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmpl
Y3QoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNj
cm9sbGJhciopOwogICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9i
amVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhP
YmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2Jq
ZWN0Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBiMDAuLjRlMjZiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtOTUs
NyArOTUsMTEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJpbmddOwogfQog
Ci12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIz
MDBlNzcuLmVlZjc5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNDIgQEAKICNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25D
cmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdl
VHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5k
ZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2Vu
ZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2Vu
ZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVl
TGVuZ3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
U3RhcnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRN
YXJrZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisKIC8vIFRo
ZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMu
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE1Niw4ICsxOTIsODIgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
LCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlm
aWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVU
ZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0
ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcgKnRleHQg
PSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5n
dGhdOworICAgIGlmICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJs
ZURpY3Rpb25hcnkgKmNoYW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdp
dGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9
IEAodHlwZSk7CisgICAgc3RhdGljIGNvbnN0IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9
IDEwMDA7CisgICAgaWYgKGxlbmd0aCA+IHRydW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hh
bmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7Cisg
ICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOwor
ICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZV0gPSB0ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkg
eworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2Vy
Rm9yVmlzaWJsZVBvc2l0aW9uOnBvc2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0K
KyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIGlmICghb2JqKQorICAgICAgICBv
YmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6M107CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5T
RGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmos
IHR5cGUsIHRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlc10gPSBAW2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9i
ai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
RWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBw
ZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRh
cmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7
CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3
aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
XTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxl
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2Vy
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJl
YSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURp
Y3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0
aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5n
ZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJs
ZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFu
Z2VEaWN0aW9uYXJ5KG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQor
ICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5
ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9u
VHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVj
dDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNd
ID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVy
ID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+
d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlcklu
Zm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJ
bmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBr
bm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmlj
YXRpb25dOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2Fk
aW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
LmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAo
aWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQ
b3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRp
b24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25z
dCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlm
IC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmRlNmRiZi4uNjcxZDFiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEyICsy
NiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5k
LmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5o
IgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC00OCwxNyArNDgsMjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVu
ZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQK
ICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJl
bmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGlu
ZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCAg
Y29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCitzdGF0aWMgdm9pZCBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB0eXBlKQogeworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBjb25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwog
ICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCiAgICAgaWYg
KHRleHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
IGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwg
dGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlz
PFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRl
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24o
cG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQpAQCAtNjgsMTYgKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQog
CiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAKLSAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX25vZGUtPm5vZGVWYWx1ZSgpLCAw
KTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiB7CiAgICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0
dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGlu
ZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fbm9k
ZS0+bm9kZVZhbHVlKCksIDApOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1v
dmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC05MCw0ICs5NiwxNCBAQCB2b2lkIEFwcGVuZE5v
ZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAj
ZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9k
ZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZWRmNjgxYi4uNDlj
OWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAt
NDcsNiArNDcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFu
ZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworCiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0
cjxOb2RlPiBtX25vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcAppbmRleCAzMWY1MTc4Li5hZmVkMmI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQXBwbHlTdHlsZUNv
bW1hbmQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCisjaW5jbHVkZSAi
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKQEAgLTU0Miw2ICs1NDMsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZgogCiBSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCkKIHsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25D
dXQpCisgICAgICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCk7CiAgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXgg
YmNmZDI0YS4uZmRmOWJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNCArMzYsOSBAQCBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZQogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVDdXQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKaW5kZXggNGRmNTc5MS4uYmYyZmE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM5LDYgKzM5LDEwIEBA
IHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMTYzYzky
Mi4uMWI0ZTcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC00Miw0ICs0Miw5IEBAIFJlZjxFZGl0Q29tbWFuZD4g
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyCiAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIAorRWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1
dDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCA5Y2JlMTU3Li4xZDA1YzMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaApAQCAtNDEsNiArNDEsNyBAQCBwcml2YXRlOgogICAgIEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0
ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJv
b2wgc2FudGl6ZU1hcmt1cCk7CiAKICAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1OTdm
NDljLi44NTcxNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTUyLDE1ICs1Miw2IEBAIFN0cmluZyYgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQogICAgIHJldHVybiBtX3RleHQ7CiB9
CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi12b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQg
b2Zmc2V0KQotewotICAgIGlmIChub2RlICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCi0gICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOwotfQotI2Vu
ZGlmCi0KIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAg
QVNTRVJUKG1fbm9kZSk7CkBAIC03MiwxMSArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEo
bV9vZmZzZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRl
ZCwgbV90ZXh0LCBtX29mZnNldCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0
aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURh
dGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTkwLDkgKzgwLDggQEAgdm9pZCBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnRE
YXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0jaWYgSEFWRShBQ0NF
U1NJQklMSVRZKQotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOwot
I2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5h
cHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwg
bV9vZmZzZXQpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xMDIsNCArOTEsMTQgQEAgdm9p
ZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCA0ZTQ3Y2Y5Li43YTMxYzE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtNDUsOSArNDUsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwog
Ci0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBj
b25zdCBTdHJpbmcmLCB1bnNpZ25lZCk7Ci0jZW5kaWYKIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwpAQCAtNTYsNyArNTMsMTAgQEAgcHJpdmF0ZToKICNp
Zm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8
Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0Owog
ICAgIHVuc2lnbmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4
NiwxMCArODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIAog
RWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QK
IHsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQg
d2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0
IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0Fj
dGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5
cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRl
bGV0ZTsKIH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlw
aW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA3NWY2MWIwLi5mODhjNDAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTM3LDQgKzM3LDkgQEAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHQK
IHsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IGZlNTQ1MTAuLmYyOTgzNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCkBAIC0zOSw2ICszOSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuY3BwCmluZGV4IDhmNTY1MzIuLjkxZWE5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNs
dWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRWRpdG9yLmgiCkBAIC0xMjQsNSArMTI1LDI5IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1h
bmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+
JiBuCiAgICAgICAgIG5vZGVzLmFkZChub2RlKTsKIH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRD
b21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRU
eXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5k
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUp
CisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZj
MzcuLmY1Yjg2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1hbmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2lu
Y2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtOTcsNiArOTgsMTAgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYp
OwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBjNDc3MWJkLi4wYjBjMTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNzUsMjAgKzM3NSwxNSBAQCBib29s
IEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVk
aXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5p
c05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwotfQotCi12b2lk
IEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGJvb2wgc21hcnRE
ZWxldGUpCi17Ci0gICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9
PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAg
ICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTI3
NSw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9u
U3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7
CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldp
dGhTbWFydERlbGV0ZUZvckN1dChjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVs
ZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRB
Y3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggOTM5ODI2NC4uNjZkYjAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0x
NzQsNyArMTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHks
IGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJv
b2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxl
dGUpOwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NTIsNyArNDUy
LDYgQEAgcHJpdmF0ZToKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0OwogCi0gICAg
dm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQoYm9vbCk7CiAgICAgYm9v
bCBjYW5EZWxldGVSYW5nZShSYW5nZSopIGNvbnN0OwogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNl
V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCYpOwogICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dFdp
dGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDlmMDkwMjcuLmFlYzQ3NTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtNTYsMTUgKzU2LDYgQEAgU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjppbnNlcnRlZFRleHQoKQogICAgIHJldHVybiBtX3RleHQ7CiB9CiAKLSNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCi12b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQotewot
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUs
IGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lkIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9
IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC04MSw5ICs3Miw4
IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25v
ZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAg
Ci0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4
dCwgbV9vZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3Np
dGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTgs
MTEgKzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
IHsKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47
Ci0gICAgCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCiAgICAgLy8gTmVlZCB0byBub3RpZnkg
dGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERl
bGV0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJs
ZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRl
bGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9
CkBAIC0xMTQsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
aW5kZXggNWNhMmQ5Ni4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQ0LDEwICs0NCw2IEBAIHB1YmxpYzoK
IHByb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJp
bmcmLCB1bnNpZ25lZCk7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9B
cHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsK
QEAgLTU4LDcgKzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwg
dm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlm
Ci0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1f
bm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRl
eCAwY2I4YWRjLi44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRp
bmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDksMTUgKzUwLDYgQEAgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4g
aW5zZXJ0Q2hpbGQsIFAKICAgICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5oYXNF
ZGl0YWJsZVN0eWxlKCkgfHwgIW1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKSk7
CiB9CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi12b2lkIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVk
IG9mZnNldCkKLXsKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKLSAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQ29udGFpbmVyTm9kZSog
cGFyZW50ID0gbV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpOwpAQCAtNjcsOSArNTksMTAgQEAgdm9p
ZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2Vy
dEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRJbnNlcnRlZCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIDApOwotI2VuZGlmCisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9z
aXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9u
KGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlw
ZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9u
KSk7CisgICAgfQogfQogCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHko
KQpAQCAtNzcsMTAgKzcwLDExIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCiAgICAgaWYgKCFpc0VkaXRhYmxlTm9kZSgqbV9pbnNlcnRDaGlsZCkpCiAgICAgICAg
IHJldHVybjsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAgICAvLyBOZWVkIHRvIG5vdGlm
eSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dERlbGV0ZWQsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKLSNlbmRpZgor
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAg
IFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3Np
dGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdh
Y3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlF
ZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBv
c2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENF
UFRJT04pOwogfQpAQCAtOTMsNCArODcsMTQgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IDM3NWQwOTkuLjhkOWM2MDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgKQEAgLTQyLDEwICs0Miw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8
Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwg
Y29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkg
b3ZlcnJpZGU7CkBAIC01Myw3ICs0OSwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlk
ZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0
cjxOb2RlPiBtX2luc2VydENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAg
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBhYzBjM2NiLi42MWFjYWJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKQEAgLTM1LDQgKzM1LDkgQEAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2UK
IHsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZTczYWY3Yy4uMWQw
NTU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1Jl
ZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcAppbmRleCAzNDA3YjQzLi5jNDdhN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTM1LDQgKzM1LDkgQEAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXMKIHsK
IH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IGE0Y2Y0MWUuLjhlNmEzNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC00MSw2ICs0MSw4IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsK
KworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggODk4YjAxNy4uZTAxN2I4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUs
NCArMzYsOCBAQCBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZQogewogfQogCit2b2lkIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaAppbmRleCBkZmQ4ZTNlLi5kMzBmZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kX2gKICNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCi0jaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNiArNDEsOSBAQCBwdWJsaWM6CiAK
IHByb3RlY3RlZDoKICAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAppbmRleCA4N2E2MmY4Li5iYTQ1NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKQEAgLTM3LDQgKzM4LDMz
IEBAIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRlCiB7CiB9CiAKK3ZvaWQgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUq
IG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7
CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkgewor
ICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQ
YXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hl
LT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNoZS0+cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSwgdGV4
dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNl
QXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlSW5zZXJ0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
aW5kZXggZDlmZjViZS4uNTdlNTM0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDcgKzI2
LDYgQEAKICNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmlu
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAKLSNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCiAjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0MiwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogCisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpOworCiBwcml2
YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShO
b2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworCiAgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAzYmZiOTdkLi4zZTQyMjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTM3LDQgKzM3LDkgQEAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQK
IHsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCmluZGV4IGI0MDc0OTguLjAwYmQxNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0zNiw4ICszNiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkp
OwogICAgIH0KKwogcHJpdmF0ZToKICAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCAzMGE0
ZGNmLi43YjI0NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBAQCBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiBpbgogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgKaW5kZXggYzQ0MjE5MS4uODE3NDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtNDAsNiArNDAsOCBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
UGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDdhYzNjYTMuLjMwZGQ1
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSw5IEBA
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
VHlwaW5nOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKaW5kZXggMjNmZjNhMi4uOTZjMmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hh
bmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJp
bmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBi
b29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0
SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdl
ZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNh
Y2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2Vk
LCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlu
bmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAg
ICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAg
ICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5k
ZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6
UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAg
ICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKLS0gCjIuMy4wIChB
cHBsZSBHaXQtNTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250371</attachid>
            <date>2015-04-08 12:21:37 -0700</date>
            <delta_ts>2015-04-14 12:26:32 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>44864</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBiOTk2NjkxZmQ2YTMxN2YzY2JlNmExYzQ4YmQ0OWFmZjMzODAxOWJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTYgKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICAgIHwgMTQ4
ICsrKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggICAgICAgfCAgODEgKysrKysrKysrKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgIHwgIDE3ICsrLQogLi4uL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSAgfCAgIDUgKwogLi4uL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSAgfCAgNTcgKysrKysrKysKIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgICA3ICsK
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAgICAgIHwgICAx
ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCAgICAgICAgICAgICAgIHwg
ICA0ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCAgICAgICAgICAgICAgICAg
IHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oICAgICAgICAgICAgICAg
ICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
ICAgICAgICAgfCAxMTIgKysrKysrKysrKysrKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oICAgICAgICAgICAgfCAgMTcgKystCiAuLi4vZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICB8ICAgNSArCiAuLi4vZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICAgMSArCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gICAgfCAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAgIHwgICAyICstCiAx
OCBmaWxlcyBjaGFuZ2VkLCA0OTYgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDdjOWEwYmMuLjVkMDBlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiw2MiBAQAog
CiAgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucwogCisgICAgICAg
IFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50
cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9y
ZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRl
bnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFz
c3dvcmQgZmllbGRzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0cyBhcmUgc3RpbGwgaW4gZGV2ZWxvcG1lbnQuIFN1Ym1pdHRpbmcgcGF0Y2gg
ZWFybHkgZm9yIGZlZWRiYWNrLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNl
dFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgor
ICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBl
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVk
RWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpt
b3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5
TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNC
b3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlv
bkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAgICAqIGVk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAg
KiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJ
bml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxk
X3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90
aWZpY2F0aW9ucworCiAgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBu
b3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0
byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2Vk
IHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KIAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAzM2Rm
NjE5Li4wNDg2NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTg2Niw2ICs4NjYsMTU0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90
aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNl
cnZhYmxlUGFyZW50KTsKIH0KIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAg
IHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVu
a25vd246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6Iik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50Zigi
RXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5
cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNo
IChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgor
ICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVsZXRl
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2Vy
dDoKKyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50Zigi
RGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAg
ICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGly
ZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoK
KyAgICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAg
ICBwcmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYoIkVuZDo6
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoK
KyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAg
ICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAg
ICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgeworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAg
ICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAg
ICAgICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAgICAgIHBy
aW50ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIHByaW50
ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgcHJp
bnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAgIHByaW50
ZigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHByaW50Zigi
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJBbGwi
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAgcHJpbnRm
KCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlv
bkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0U2Vs
ZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCit7CisgICAgaWYg
KCFub2RlKQorICAgICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAo
aW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50
ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVk
T2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0
T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3
b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAg
IH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGlu
dGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5k
ZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2Vy
dmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJB
TShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9
CisKICNpZiBQTEFURk9STShDT0NPQSkKIHN0YXRpYyBib29sIHNhbml0aXplUGFzc3dvcmRUZXh0
KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iaiwgU3RyaW5nICZ0ZXh0LCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA5MTg0MDA0Li5iZDJjNGZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTkxLDcgKzE5MSw5IEBAIHB1
YmxpYzoKIAogICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKICAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKLSAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKICAgICB9OwogCiAgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CkBAIC0y
MDksNiArMjExLDc4IEBAIHB1YmxpYzoKICAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5n
ZQogICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIAorICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgs
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBz
ZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5n
IHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2Vz
IHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkg
bm90aWZpY2F0aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBB
WFRleHRTZWxlY3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGly
ZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25v
d24pCisgICAgeworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOwor
ICAgICAgICBzZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rp
b24uZ3JhbnVsYXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsK
KyAgICB9CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBB
WFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAg
QVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNo
YW5nZTsKKyAgICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVj
dGlvbigpLCBib29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAg
ICAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMp
CisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVk
aXRUeXBlIGNoYW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0KQorICAgICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZh
bHNlKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5
cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAg
ICAgICwgc3luYyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYg
TkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0
ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2Vs
ZWN0aW9uIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsK
KwogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLAog
ICAgICAgICBBWExvYWRpbmdSZWxvYWRlZCwKQEAgLTIzMiw2ICszMDYsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9s
ZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mKTsKICAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOwogI2Vsc2UKQEAgLTI5OCw2ICszNzMsOCBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFy
ZWFFbGVtZW50Kik7CiAgICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsK
IH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyCkBAIC0zNTUsOSArNDMyLDExIEBA
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxW
aWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIHsgfQogI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiAjZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5Ni4uNmVmYWFhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE4IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2Um
IHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2Fj
aGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRl
cmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNl
bGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9k
ZSgpOwotICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZp
c2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3Np
dGlvbklzT2Zmc2V0SW5BbmNob3IpLAotICAgICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFy
dCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERP
V05TVFJFQU0pKTsKKyAgICBQb3NpdGlvbiBwb3MxID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3Rh
cnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFBvc2l0aW9uIHBv
czIgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246
OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxl
U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MxLCBwb3MyLCBET1dOU1RSRUFNKTsKKyAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbih2aXNpYmxlU2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKIH0K
IAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgpIGNvbnN0CkBAIC0xOTYwLDEz
ICsxOTY0LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRW
aXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7CiAgICAgaWYgKHJhbmdlLnN0
YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRvIHVzZSBp
dC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24KLSAgICBp
ZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5n
ZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNo
ZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFt
ZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAg
fQogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZp
c2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVy
ZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAg
ICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0K
aW5kZXggNGUyNmI2Ny4uYWI3OTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw2ICs5NSwxMSBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9z
dGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRU
ZXh0Q2hhbmdlZCk7Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmlu
ZGV4IGVlZjc5ZmEuLjYwNTIzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDgsNiArNDgsMTAgQEAKICNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNL
ZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRl
U3luYyIKKyNlbmRpZgorCiAjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24KICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKICNlbmRpZgpAQCAtODAsNiArODQsMTAgQEAKICNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50
IgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFu
Z2VBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFu
Z2VBdHRyaWJ1dGUgQCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKIC8vIFRo
ZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMu
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE5Miw2ICsyMDAsNTUgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
LCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlm
aWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJl
YSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURp
Y3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0
aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlw
ZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7Cisg
ICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7Cisg
ICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1
c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor
ICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2Vy
UmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlv
bnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxl
RW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0
TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsK
KyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3Np
YmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0
eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlcklu
Zm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0
aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNh
dGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30K
Kwogc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQogewogICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCBhZmVkMmI5
Li42NzI2MDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcApAQCAtMTU1NCw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVy
biBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQo
KQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFu
ZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5k
ZXggZjhkZjlkOS4uNDVkMzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGJvb2wpOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBv
c2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmgKaW5kZXggZjViODZjMy4uNWNhMTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpID0gMDsKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KCkgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoKTsgfTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3Vt
ZW50Jik7CiAgICAgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpAQCAtMTAyLDYgKzEwNCw4IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0
VHlwZSgpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChhcHBseUVkaXRUeXBlKCkpOyB9CisKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDBi
MGMxMGIuLmMxNTNjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTEwMDUsNyAr
MTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPENvbXBvc2l0
ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0aGUgdHlwaW5nIHN0eWxl
IHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2UgdGhpbmdzIGVsc2V3aGVy
ZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMg
b3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFtZVNlbGVjdGlvbjo6RGlj
dGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3
U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3
U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmludGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxl
Q29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxl
bWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAg
IHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTI4NTQsNyArMjg1NCw3IEBAIHZv
aWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0
aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJD
b21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0
aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwg
RnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcg
c2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgog
ICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5l
bmQoKS5pc09ycGhhbigpKQpAQCAtMjg2Niw3ICsyODY2LDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUg
bm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlv
biA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAg
IGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlv
bigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1l
LnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAg
ICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMs
IGludGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNl
bGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRo
ZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBm
b2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAppbmRleCA2NmRiMDIwLi5kNmM1ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTQ2
OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU2V0Q29tcG9zaXRpb25Nb2RlIHsgQ29u
ZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9OwogICAgIHZvaWQgc2V0Q29tcG9z
aXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9zaXRpb25Nb2RlKTsKIAotICAgIHZvaWQgY2hh
bmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMpOworICAgIHZvaWQgY2hh
bmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSk7CiAKICAgICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1dEFjdGlv
biwgQ29weUFjdGlvbiB9OwogICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25T
cGVjaWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRl
eCBhOGYxYjQxLi5lNGQ1M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcApAQCAtMTM4LDggKzEzOCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290
RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogCiB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVk
IHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7Ci0gICAgc2V0U2Vs
ZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1
aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwK
LSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGFsaWdu
KTsKKyAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQo
KSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0Rp
cmVjdGlvbmFsKCkpLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwg
ZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxl
Y3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMjU0LDcg
KzI1MywxNiBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZm
ZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9
PSBuZXdTZWxlY3Rpb24gfHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAgICAKKyAgICBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkp
CisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBB
WE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50
ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJ
Zk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBv
cHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCkBAIC0yNzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBp
ZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5k
b2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1l
ID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdT
ZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJh
bWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2Vs
ZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51
bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3MgcG9z
c2libGUgdGhhdCBkdXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxl
Y3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RGcmFt
ZUVsZW1lbnRJblBhcmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBp
cyBubyBsb25nZXIgdmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUgaXMg
YWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIgc2Vs
ZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9u
cywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxp
Z24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlv
bldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3Jh
bnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
biwgU2V0U2VsZWN0aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVu
ZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
KTsKKyAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZv
aWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpA
QCAtMzYwLDcgKzM2OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9u
VXBkYXRlKCkKICAgICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rp
b246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUp
CiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3ICszODgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
Ojp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQogICAgICAgICByZXZlYWxTZWxlY3Rpb24oYWxp
Z25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KIAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKGludGVudCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZURhdGFEZXRl
Y3RvcnNGb3JTZWxlY3Rpb24oKQpAQCAtMTAxOCw3ICsxMDI2LDgwIEBAIFZpc2libGVQb3NpdGlv
biBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51
bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91
bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2Vs
ZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0
aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIg
PT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBl
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAg
ICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0
aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9Cisg
ICAgfSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsK
KyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRl
bmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBo
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0
Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBj
YXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAg
ICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vu
dGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFw
aEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkg
PSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsK
KyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAg
ICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rp
b24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAg
ICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9
IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9k
aWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7
CkBAIC0xMDc0LDYgKzExNTUsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRl
cmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAg
aWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBv
cmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBp
ZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7Cisg
ICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rp
b25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0
eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFu
IHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0
aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4K
ICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVz
ZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzA3LDggKzE3OTMsMTAgQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2Vs
ZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290
LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikp
Ci0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVj
dEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2Vs
ZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5
cGluZykKQEAgLTI0MjAsNyArMjUwOCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rp
b246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAg
ICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlv
bigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxh
cml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBm
cmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVT
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNl
bGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVT
ZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjNjMzE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rp
b25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2lu
Y2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJp
Z2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9
CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAg
IFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIp
OwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxp
ZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9u
SGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVs
YXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMg
PSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25P
blNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0g
Q2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0
ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFy
KCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3Np
dGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigp
OwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAg
IExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9u
KEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24s
IFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rp
b25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVk
KTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlw
aW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4
IGJhNDU1MzkuLjhiYzc4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC02Nyw0ICs2Nyw5
IEBAIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0CiAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OwogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW50ZW50KCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVwbGFjZUFw
cGx5RWRpdFR5cGUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAppbmRleCA1N2U1MzQwYS4uMjkwYzFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDMs
NiArNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOwogCiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNl
QXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNl
bGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uZTY5NWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0
aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5
T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4wN2UyYTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcs
MTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0
KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmICht
X3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90
TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0
aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhP
YmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50
KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1f
c2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7
CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCA0NjA1MWM2Li5jNTI4OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC0zMTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9h
cmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAg
ICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQ
b3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJU
cmlnZ2VyZWQpKTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwg
RnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2Vs
ZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQo
RnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkKLS0gCjIuMy4wIChBcHBsZSBHaXQt
NTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250372</attachid>
            <date>2015-04-08 12:29:37 -0700</date>
            <delta_ts>2015-04-08 12:51:27 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>230931</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDY1ZDZlNDU3NWE3Y2E3ZjA3ZTAxZGNkYzhjMWVkNDUzMTZmZGI5ZDEKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk4ZGZkODkuLjRjYzhiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDc0LDEwICsxNDc0
LDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5
NiwxMSArMTUwMCwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNw
cAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9z
aXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21t
YW5kLmNwcApAQCAtMTUxNiw2ICsxNTI0LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBl
ZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQ
b3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmYxM2M4OC4uNTdlY2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwOSBAQAorMjAxNS0w
NC0wNyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
cmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcg
RWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNo
YW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNv
YWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9h
ZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRl
Y2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBp
biB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hh
bmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0
dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2li
bGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwogMjAx
NS0wNC0wNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSB2aWRlbyBwbGF5aW5nIHRvIGV4dGVybmFsIGRldmljZSBzaG91bGQgbm90IGJlIGlu
dGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCBkZWNkZDUzLi5jZTFkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0MzkzLDYgKzE0MzkzLDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTQ0NDksNiArMTQ0NzcsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NzMwLDYgKzE0Nzg2LDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
QEAgLTE1MDI0LDYgKzE1MTM2LDYyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5LDEwICsyMTIzNywxNCBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENvbXBvc2l0ZUVkaXRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtD
b21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFu
ZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBAIC0yMTA5OSwxMCArMjEyNzEsMTQg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIiAv
PgpAQCAtMjExMjEsNiArMjEyOTcsMTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFZpc2libGVQb3NpdGlvbi5oIiAvPgpAQCAtMjE3ODMsNCArMjE5NjMsNCBAQAog
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIg
Lz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMwYTY2Ni4uM2Y3NDJhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM0NTAsNiArMzQ1
NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21t
YW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtMzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzU3Niw2
ICszNjAwLDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDU2OSw2ICsxMDYwNSwxMiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpAQCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYgKzEwNzA3LDEyIEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNzI1
LDYgKzEwNzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGlu
Z0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUzMyw0IEBACiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1By
b2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3ZjRj
MWEuLjc4NDExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTYzNzksMTIgKzYzNzksMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8q
IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0
ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsg
fTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJE
QzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1
MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0
MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0
MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVt
cHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYz
NkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRG
Nzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9
OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFE
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYy
NjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0
VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRU
eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAt
NjQzNCwxMiArNjQ0NCwyNiBAQAogCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIz
RERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAv
KiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8q
IFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07
CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0
NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIy
OEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87
IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5o
ICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3Rjgw
NCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9Owog
CQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZE
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9Owog
CQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEy
NTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1
OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZB
NDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
MTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJ
RjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAw
NTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIx
MSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUx
MkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFE
QTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERh
dGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9N
SFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLzsgfTsKQEAgLTE0MDA3LDYgKzE0MDMxLDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjND
MUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5
MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMTksOCArMTQwNDUsMTYgQEAKIAkJRjUyM0QzMDMw
MkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYw
MTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5
Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNs
aWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURB
MDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUx
RjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTQwNzAsNiArMTQxMDQsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
UkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUx
RjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERF
RDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJB
NzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAv
KiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIg
LyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFF
QTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA4MCw4ICsxNDEyMCwxNiBAQAogCQlGNTk3
M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZF
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAv
KiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5Nyw2ICsxNzc0NSwxMCBAQAogCQkJCTkzMzA5
RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQw
QjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
RDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJ
RjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5
MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLApAQCAtMTc3MDUsNiArMTc3NTcsMTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcw
NjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBF
MzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAw
RTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5
QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJ
RjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2
RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRp
dENvbW1hbmQuaCAqLywKQEAgLTE3NzUxLDYgKzE3ODA3LDEwIEBACiAJCQkJQzZENzRBRDMwOUFB
MjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5
REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJ
CQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5
MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBS
ZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzYxLDYgKzE3ODIxLDEwIEBACiAJCQkJ
OTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBv
c2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3
QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVE
QTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlF
NjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzk2
LDYgKzE3ODYwLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGlu
Z0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdD
b21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVB
NTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmgg
Ki8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICov
LAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBA
IC0yMzY5MCw2ICsyMzc2Miw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1h
c2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAw
RkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1
NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlF
NjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ5Myw2ICsyNDU2Niw3IEBACiAJCQkJMzEwNjAzNzkx
NDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFs
dWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4
IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5
ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgw
MEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKQEAgLTI0ODE2LDYgKzI0ODkwLDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFF
MDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIz
NzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTA0NSw2ICsyNTEyMCw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFE
QjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEx
NUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9O
b2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDU0LDYgKzI1MTMwLDcgQEAKIAkJCQlCRThFRjA0
MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
RThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JF
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0
RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
OTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUxNzMsNiArMjUyNTAsNyBAQAogCQkJCUZEQTE1RUFDMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAw
MjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThG
NTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpT
R2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3
NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZD
MDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2MTQsNiAr
MjU2OTIsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNE
ODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5
NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYy
Qzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjc5NSw2ICsyNjg3NCw3IEBACiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJB
RkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYy
NiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIw
RDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjg0OCw2ICsyNjkyOCw3IEBACiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVBMjYyIC8q
IFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRFNzAwMUNC
RDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYwQjE4N0ZE
NDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQyNCAvKiBU
aWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZERUEwMEU1
NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlDMTk0QTY0
RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk3MiwxMiArMjcw
NTMsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJs
aW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUND
MDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NkM1
QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29y
ZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFF
OUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OUREQTE2
MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNj
cmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMwOTg0MDBF
ODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFC
QyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNDAzNzlC
MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzAxMCw2ICsyNzA5Myw3IEBACiAJCQkJNkU0RTkxQUYxMEY3
RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dEdy
b3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODUx
NEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVn
U2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc1Miw2ICsyNzgzNiw3IEBACiAJCQkJNkY5
OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBs
YXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1
MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTYx
MUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYyMDAwNjZG
MDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGRTBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3
ODI5LDYgKzI3OTE0LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNl
TW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2
MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZC
MUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFGNDBFNCAv
KiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5MzA5
QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI3OTY1LDYgKzI4MDUxLDcgQEAKIAkJCQk4NUVDQkVGNjBBQTc2MjY5
MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURG
ODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVu
dC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUVG
MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjgxMTMsNiArMjgyMDAs
NyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xD
b21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8q
IEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4
ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4ODBFMURF
MkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4MjIzLDYgKzI4MzExLDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3
QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMEIwQTAx
NEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2MjUyRTE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI4MjQzLDYgKzI4MzMyLDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNF
MEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RjMx
OTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4NDIyLDYgKzI4NTEyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3
RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1
MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
ODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC0yODg4MCw2ICsyODk3MSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYx
IC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAxMUU4NEMz
NjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUyMTAyRkMw
MDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2
QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODkxNCw2ICsyOTAwNiw3IEBACiAJCQkJMDc5NjlEQkIx
N0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1ODgwMEFC
REQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMxMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTY5MCw2ICsyOTc4Myw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0REQx
OUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAx
N0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VFMDA0MjBB
QTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4Njcs
NiArMjk5NjEsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2Fj
dGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEz
MDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMx
NzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8q
IFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYw
RUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVB
RkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwMzcxLDYgKzMwNDY2LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYgLyogV0tH
cmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAv
KiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4MzAwREE2
M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2RDgwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJD
b25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi4wNDg2NjY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVu
aGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIxIEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRy
ZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsK
KworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRv
IGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFk
IHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlz
dCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0
YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGUgOiBub3RpZmljYXRp
b25zKSB7CisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihz
dGQ6OmdldDwwPihub3RlKS5nZXQoKSwgc3RkOjpnZXQ8MT4obm90ZSksIHN0ZDo6Z2V0PDI+KG5v
dGUpLCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgfQorI2VuZGlmCit9CiAgICAgCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhO
b3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBl
IHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjYsMjIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0
Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRP
YnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9i
amVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRl
bnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRm
KCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAg
ICAgcHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNo
IChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAg
ICAgICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJp
bnRmKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAg
ICAgcHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJ
bnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
Q3V0OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3Rl
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25Vbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoK
KyAgICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHBy
aW50ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6
CisgICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoK
KyAgICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6
CisgICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAg
ICAgICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAg
ICAgICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlz
Y29udGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsK
KyAgICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAg
ICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikK
IHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQor
ICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKwogICAgIHN0b3BDYWNo
aW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0
ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmot
PmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0
KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iaiwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5v
ZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFy
Z2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5V
U0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRl
bnQoKTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGJvb2wgc2FuaXRpemVQYXNz
d29yZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBTdHJpbmcgJnRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bhc3N3b3Jk
RmllbGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICB0
ZXh0ID0gb2JqLnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCktPnBhc3N3
b3JkRmllbGRWYWx1ZSgpLnN1YnN0cmluZyhwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRF
ZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJU
KHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0
ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRp
emVkVGV4dCA9IHRleHQ7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNz
d29yZFRleHQoKm9iaiwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+
b2JzZXJ2YWJsZU9iamVjdCgpLCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBp
ZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAg
ICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAy
NSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5v
YnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pOworI2Vs
c2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5n
ZUZvckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRF
ZGl0aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlw
ZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBl
IGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFT
U0VSVChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5
cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0OworICAg
IFN0cmluZyBzYW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgaWYgKG9i
aikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5z
ZXJ0ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCks
IGluc2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYg
KCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAg
ICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2Jz
ZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIGlu
c2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAg
ICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVk
aXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSks
IHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5z
ZXJ0ZWRUZXh0KTsKKyNlbmRpZgogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGlu
Z0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2
ZW50KQpAQCAtMTA4NCw2ICsxMzA0LDE1IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSog
bm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2Jq
ZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAq
cm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAocm9vdE9iamVj
dC0+aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25j
YXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgp
OworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJs
ZXI6OkFYQXR0cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDog
bV9jYWNoZShjYWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmgKaW5kZXggYmZhOTI3Ny4uYmQyYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDk5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0
aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9u
b3VzbHkpOwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
RG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBv
c3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsK
LSAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51
bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7
CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVE
ZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNl
cnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcs
IC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAv
LyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVs
ZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBh
c3RlCisgICAgfTsKKworICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQg
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRl
eHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtu
b3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0g
ICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlB
bGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3Rpbmcg
dGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlv
biBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9s
ZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0
aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxl
Y3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0g
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAg
eworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBz
ZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisK
KyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAg
ICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
VW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBi
b29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAg
LCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAg
IHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNo
YW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAg
ICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAg
ICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAg
ICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3lu
YyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisg
ICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5k
aWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNo
YW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVu
dW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcg
KzMwNSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3Jt
SGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUq
IG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZv
aWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxz
ZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAg
ICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRD
aGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAg
ICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5n
RXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5n
RXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAg
IHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJO
b2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFz
aE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBI
YXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0
NCw2ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1l
cjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhO
b3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBv
c3RUaW1lcjsKKyAgICBWZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4sIEFYVGV4dEVkaXRUeXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9z
dDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAg
IHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9u
Q3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsK
QEAgLTI1MSw2ICszNzMsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAg
ICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDMyLDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJ
c0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpo
YW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2Us
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERv
Y3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjNkNDVkM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxl
bWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVs
ZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5v
ZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlu
cHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3Rf
Y2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBp
ZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAo
aXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0
SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKaW5kZXggM2U3NTcyZi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jl
c3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hG
aWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0y
NjQ2LDQgKzI2NDYsMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5
Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAg
Tm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9s
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+
KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjJlOTc3NmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05h
dGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJ
bWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRh
aW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0
dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRl
eCAyZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0
ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0
ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRT
ZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYg
KGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlv
bkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5n
dGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wg
PSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJv
bEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uu
c3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3Np
dGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
ciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBv
c2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0
aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUs
IHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldElu
QW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxl
U2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1l
KCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0
aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdl
KGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFu
Z2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNl
bGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVu
Z3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSBy
YW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBj
YWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92
ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAg
ICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5n
ZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rp
b24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4u
MGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNo
KEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwog
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsK
ICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsK
ICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNj
cm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYWI3
OTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZp
YwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5v
dGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAg
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMw
MGU3Ny4uNjA1MjNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNy
ZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkg
QCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5n
dGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtl
ciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0
ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBp
biB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2Jq
LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRp
b25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQorewor
ICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFv
YmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZv
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAg
IGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50
ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoK
KyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rp
b25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2gg
KGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9u
LmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFw
cGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2li
bGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1
dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSBy
b290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5n
ZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAg
ICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgor
ICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxp
dHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlv
bmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5n
ICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3Rl
eHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBO
U011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0
VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25M
ZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAg
ICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5n
dGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVu
Z3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3RO
dWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4
dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2Vb
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsK
KyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAg
ICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAg
IGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBw
ZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgp
LT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRv
IGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5
cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlw
ZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9v
dFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBO
U011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0
aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGlj
dGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGlu
c2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBh
ZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQg
d3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJB
cmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
LCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBE
UlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2Vk
Tm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3Qs
IEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNl
CiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpW
aXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlv
bjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAK
ICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0y
NiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2Rl
Q29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5k
OjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFy
ZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFr
cyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAg
IFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2Rl
LT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMg
Y29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4i
KQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5v
ZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQs
MTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9w
YXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5v
ZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxl
U3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVf
RVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0
OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6
dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFw
cGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9k
ZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0
NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNv
bW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFr
QmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgs
NiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRl
clRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAi
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRl
ICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBh
c3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENo
aWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0K
IAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8
Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMg
KzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4
LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5n
dGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBp
ZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAg
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9u
KCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1h
bmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBp
bnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAg
ICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkp
OworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0g
cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBs
YWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVu
dFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNv
bW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUy
Myw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRl
ckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlmIChtX2Nv
bW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXpl
KCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApA
QCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVu
dDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3Io
Ym9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFy
a3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9t
Tm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsK
ICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4
dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAg
IHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4g
cmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0
IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1Jl
ZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxk
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJv
b2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0
b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5z
ZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0
cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0
ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJl
bWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92
ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9z
aXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsK
ICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRp
dENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJl
cGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiBy
ZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFj
ZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDog
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBy
ZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVk
aXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1
YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
c21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwg
Ym9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFs
c2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxl
dGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5k
PiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3
MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2
ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCAr
IG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisK
IHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJU
KG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZz
ZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwog
ICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0
ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1f
dGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBw
bHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1f
b2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBl
Yyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0
LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5
MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90
ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZu
ZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAg
ICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYs
MTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVk
aXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7
Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdo
ZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBj
YXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rp
b24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBp
bmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxl
dGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGlu
ZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlm
OWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBA
IC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNs
dWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21t
YW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUs
NyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5l
d2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0
aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9u
QWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0lu
TGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0lu
c2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3Vw
cGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4
dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5l
U3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVy
bmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVu
ZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisj
ZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1Jl
ZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDog
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dElu
c2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVk
aXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0
PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1w
bGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0
Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAo
IWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRl
eCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1h
bmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24u
aCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERv
Y3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVz
Y2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2lu
Y2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAt
Mzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29s
IHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYg
KG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFw
cGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21h
cnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAg
ICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9
CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBF
ZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNt
ZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVj
dGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4K
ICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5p
c0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQg
OiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlv
bnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlv
bnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2
ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0
aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlO
b3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZv
cm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRl
U2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0g
ICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0
ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29w
eU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpA
QCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxB
c0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFz
b25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykK
K3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9u
cyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQp
CiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3Qg
dXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3Jw
aGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYs
NyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3
MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBm
b3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlv
bkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0
aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVj
dGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBv
cGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5n
IGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlv
dSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBe
KToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9u
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBM
QVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0
eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3Np
dGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAg
dm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwog
Ci0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7
CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5
KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLmU0ZDUzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVT
ZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAK
IHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywg
RVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikK
IHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQo
KSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0Rp
cmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJp
Z2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5k
ZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1f
c2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVz
ZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAog
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2Vy
ZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYg
KG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0
aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxl
Y3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVT
ZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxl
Y3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3
U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAg
ICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9j
dW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVj
dGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25z
LCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1l
LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAg
ICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwg
dGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAg
IC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0
aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8v
IHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2Us
IGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxl
U2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlm
ICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlv
bnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDks
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVW
aWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwog
fQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShG
cmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9p
ZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1Nl
bGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVh
bFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpCkBAIC0xMDE4LDcgKzEwMjYsODAgQEAg
VmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91
bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkg
PT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
CitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxl
Y3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRp
cmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOwor
ICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAg
ICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGly
ZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7
CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChn
cmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3Jh
bnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6
CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFu
dWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxh
cml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZh
bHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51
bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFu
dWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdy
YW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAg
IGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAg
ICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2gg
KGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rp
b25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0
aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFj
a3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24g
PSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1l
U2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNl
clRyaWdnZXJlZCkKIHsKQEAgLTEwNzQsNiArMTE1NSwxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24s
IFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYm
IHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rp
b24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3Bl
cmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNl
dHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSBy
ZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFy
Yml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MDcsOCArMTc5
MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRl
bnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIGF1dG8gaW50ZW50ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVjdENhY2hlOjpUZXh0U2Vs
ZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisgICAg
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5
LCBib29sIGNsb3NlVHlwaW5nKQpAQCAtMjQyMCw3ICsyNTA4LDcgQEAgVmlzaWJsZVNlbGVjdGlv
biBGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihj
b25zdCBWaXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxl
Y3Rpb24uc2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJp
dHkoV29yZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElm
TmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0
YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9u
IGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uM2MzMTk4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0
eWxlIHwgKHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50
KSA6IDApOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7
CisgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJh
bWUqID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBt
b3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwg
Ym9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxl
Y3Rpb247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2Vs
ZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgp
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0
R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5n
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0g
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRl
ZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3Jz
Rm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1
cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBA
IHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVj
dGlvbk5hdmlnYXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
Ci0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVu
dChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAg
IHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7
CiAjZWxzZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
IHsgfQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lk
IHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2wo
RVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAK
ICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkp
CiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4
IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJl
bmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAg
LTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3Rl
eHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpp
bnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFi
bGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkg
KzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9
CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQ
VElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZz
ZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9k
ZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlv
bihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAg
Kzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsK
ICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBt
X29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRp
b24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNl
dCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywx
NCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhh
c2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUz
M2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90
ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBw
cml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQg
bV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNp
bmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgp
LCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAg
ICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZh
bHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7
CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQo
KSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBj
cmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3Np
dGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAg
ICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVW
YWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
eworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0
KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDog
Y3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgp
LCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQ
b3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0K
ICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJk
Li44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9J
bnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAg
fQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1
YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2Vu
ZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+
IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApp
bmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3Vw
cGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFs
YW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGll
cj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAK
ICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGls
ZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorewor
fQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6
IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBj
aGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAg
ICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0
QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9k
ZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVk
ZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAg
IDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQor
Cit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0K
KworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDog
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2Rl
bGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2Rl
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAg
IGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBj
YXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQs
IG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBv
c2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4
dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7Cisg
ICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBw
bHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90
ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAi
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0
ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2Rl
TGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIK
ICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIK
ICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAi
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgog
I2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYg
KzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNl
cnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxhc3RQb3Np
dGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8
RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNo
aWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAg
ICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4
dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlv
bikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAg
ICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAg
ICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3Rp
bmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9k
ZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlv
bi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4
IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwog
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24g
bV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENv
bnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRU
ZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQg
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcg
JnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0
Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
dGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4
dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0
Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRU
cmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRl
c3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1Nl
bGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQor
ICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAt
MCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2Vy
dCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJh
bGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVj
dEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorewor
ICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxl
dGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkz
YjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9o
CisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRl
eHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwg
UmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5n
V2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJh
bGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21t
YW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNk
ZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1
YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25B
dGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0No
YW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12
b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYg
KCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmlu
ZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBh
Y2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxs
KCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXBy
ZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENo
YW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVk
Tm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAg
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1D
b250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZh
bHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4
dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAh
PSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhh
c0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENP
Q09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMs
IEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsK
ICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVl
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xu
JykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVu
ZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVl
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3Np
dGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsK
KyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNo
ZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0
NjA1MWM2Li5jNTI4OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0z
MTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24o
RnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsK
ICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJh
bWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsK
KyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAK
IHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1l
LCBLZXlib2FyZEV2ZW50KiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250373</attachid>
            <date>2015-04-08 12:30:45 -0700</date>
            <delta_ts>2015-04-14 12:26:10 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>68576</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAwZDg1ZTJkNjY1YjczNTIxMjA4MGE4ODQ2ZmMwMDIzZmVjNTU0YjM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMjAgKysrKysrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
ICAgICB8ICA4OCArKysrKysrKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oICAgICAgIHwgIDY3ICsrKysrKysrKystLQogLi4uL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwICAgICAgfCAgMjEgKysrKwogLi4uL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCAgICAgICAgfCAgIDEgKwogLi4uL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgfCAgMjAgKysrKwog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggfCAgIDIg
KwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAgICAgICAgfCAg
IDMgKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0g
IHwgICA2ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tICB8IDExMiArKysrKysrKysrKysrKysrKystCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLmggICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAzMCArKysrLS0KIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCAgICAgICAgIHwgICAzICsKIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgICAzICsKIC4uLi9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICAgIHwgICA2ICsrCiAuLi4v
V2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgNCArCiAu
Li4vV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICB8ICAgNSAr
CiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCB8ICAg
MSArCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICB8
ICAzMSArKystLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwICB8ICAgNSArLQogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgfCAgIDUgKwogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29t
bWFuZC5jcHAgICAgICAgICAgICAgfCAgMjUgKysrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuaCAgICAgICAgICAgICAgIHwgICA1ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcCAgICAgICAgICAgICAgICAgIHwgIDE3ICsrLQogU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaCAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgIHwgIDMxICsrKy0tLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggfCAgIDkgKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIHwgIDM0
ICsrKy0tLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
ICAgfCAgIDkgKy0KIC4uLi9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
ICAgICAgIHwgICA1ICsKIC4uLi9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIHwgICAyICsKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAgICAgIHwgICA1ICsKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggICAgICAgIHwgICAyICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAgIHwgICA1ICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggICAgIHwgICA0ICstCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICB8ICAzMCArKysrKysKIC4uLi9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgIHwgICA1ICstCiAuLi4vZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICB8ICAgNSArCiAuLi4vZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICB8ICAgMyArCiAuLi4vZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAgICB8ICAgNSArCiAuLi4v
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAgICAgICB8ICAgMiArCiAu
Li4vVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICB8ICAgNSAr
CiAuLi4vVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAgICB8ICAg
MiArCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCB8
ICAxMiArKy0KIDQ2IGZpbGVzIGNoYW5nZWQsIDY2OSBpbnNlcnRpb25zKCspLCAxMDIgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU1ZDc2YTYuLjdjOWEwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIs
NiArMiwxMjYgQEAKIAogICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMKIAorICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0
aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2
YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0
byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBk
ZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnNhbml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmll
bGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW06CisgICAgICAgIChXZWJDb3JlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFj
ZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6
CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjbGVhclRl
eHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppbnNlcnREaWN0YXRpb25Q
aHJhc2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGFzdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRl
eHRWYWx1ZSk6CisKKzIwMTUtMDQtMDcgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5j
b20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisKICAg
ICAgICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0
IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxl
Y3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY29tbWl0IGlzIGFsbCBpbmZyYXN0cnVj
dHVyZSBhbmQgZG9lc24ndCBjb250YWluIGFueSBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIGNoYW5n
ZXMuCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MjcxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uNzlhYmMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3Np
YmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0
aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtNzQyLDYgKzc0MywyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcg
bm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhl
ciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisg
ICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJ
bnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlv
bnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBub3RlIDogbm90aWZpY2F0aW9ucykKKyAgICAgICAgcG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKHN0ZDo6Z2V0PDA+KG5vdGUpLmdldCgpLCBzdGQ6
OmdldDwxPihub3RlKSwgc3RkOjpnZXQ8Mj4obm90ZSksIFZpc2libGVQb3NpdGlvbigpKTsKKyNl
bmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdl
dCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY1LDcyIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFu
Z2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWYg
UExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3JkVGV4dChjb25zdCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai5p
c0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQgPSBvYmoucGFzc3dv
cmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRGaWVsZFZhbHVlKCku
c3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAg
ICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRF
ZGl0VHlwZVVua25vd24pOwogCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0
ZXMoKTsKIAotICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRUZXh0ID0gdGV4dDsKKyAg
ICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5p
dGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCks
IHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsK
KyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2Jq
LCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSks
IHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4
dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29u
c3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29u
c3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24p
Cit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9u
VHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGlu
c2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0Nv
bXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgU3RyaW5nIHNh
bml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3RyaW5nIHNhbml0aXplZElu
c2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChz
YW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNlcnRlZFRleHQsIHBvc2l0aW9u
KSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKHN0
ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgaW5zZXJ0aW9uVHlwZSwgc2Fu
aXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAgICBtX3Bhc3N3b3JkTm90
aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7Cisg
ICAgfQorCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwg
ZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgc2FuaXRp
emVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBl
KSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBk
ZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmos
IHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2
YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlm
CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24o
RnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEx
NTUsMTUgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFy
ZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+
cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChyb290T2JqZWN0LT5pc0FjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXc+KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7CisgICAgfQorICAgIHJldHVy
biBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNo
ZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5
Mjc3Li45MTg0MDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEw
LCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksMjUgQEAgcHVibGljOgogICAgIHZv
aWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBw
b3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZp
Y2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNo
cm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNl
cnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgICAgIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlw
ZSB7CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5
cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBp
bmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9u
LCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8g
RGVsZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlh
IFBhc3RlCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICAv
LyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAg
IHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBB
WExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzIzMSwzNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZp
Y2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQo
Tm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQg
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhU
ZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUg
QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQor
ICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZv
aWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAg
IHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJp
bGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2
ICsyNjksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJl
dHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1f
ZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+
IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2Jq
ZWN0TWFwcGluZzsKQEAgLTI0NCw2ICsyODYsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25v
dGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAg
ICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8
QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYVGV4dEVkaXRUeXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRp
bWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9p
ZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRl
bVNlbGVjdGVkKE5vZGUqKTsKQEAgLTMwOCw4ICszNTUsMTQgQEAgaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0
ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsg
fQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkg
eyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBB
WE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApp
bmRleCBkOGQyNmRlLi4zZDQ1ZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1Miwy
NyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25z
dAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9y
Q29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlz
LT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVu
dCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlz
KTsKKyAgICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dI
b3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgewor
ICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0g
dGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLmQ1M2E5M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2
ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENv
bnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxk
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNz
d29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmE3
YTk5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcApAQCAtMjY0Niw0ICsyNjQ2LDI0IEBAIHZvaWQgQWNjZXNzaWJpbGl0
eU9iamVjdDo6c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQog
I2VuZGlmCiAKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYg
KCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0
cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVt
ZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1M
SW5wdXRFbGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3du
Y2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVs
ZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVt
ZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApp
bmRleCAzNTg2ZjJhLi4yZTk3NzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNz
d29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBp
c1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYg
KzQzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7
CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFY
T2JqZWN0Q2FjaGUqKSBvdmVycmlkZTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFy
ZWFPYmplY3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElm
RXhpc3RzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
d2ViQXJlYU9iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCog
Zmlyc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQog
ICAgIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciop
OwogICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNo
ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0KaW5kZXggMTE5ZTBiMDAuLjRlMjZiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtOTUsNyArOTUsMTEg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJpbmddOwogfQogCi12b2lkIEFY
T2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIzMDBlNzcuLmVl
Zjc5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2Jq
ZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhP
YmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNDIgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVkIgog
I2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Igor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisKKyNpZm5k
ZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVuZ3RoIgor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJr
ZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIgQCJB
WFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUg
Q29jb2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTE1Niw4ICsxOTIsODIgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlm
aWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpt
YWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFj
ZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcgKnRleHQgPSAoTlNTdHJp
bmcgKilzdHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAg
IGlmICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkgKmNoYW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eTo0XTsKKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7
CisgICAgc3RhdGljIGNvbnN0IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7Cisg
ICAgaWYgKGxlbmd0aCA+IHRydW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRl
eHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAg
ICBpZiAobGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZV0gPSB0ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAg
ICBpZiAoaWQgdGV4dE1hcmtlciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJs
ZVBvc2l0aW9uOnBvc2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1
cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290
V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
dGV4dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFy
eSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNp
dHk6M107CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtl
eV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFy
eSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRl
eHQsIHBvc2l0aW9uKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlc10gPSBAW2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBl
cigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0g
PSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAg
ICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNB
Y2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3Vz
ZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlm
aWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3Rp
ZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUs
IGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisg
ICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkg
KnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXld
ID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpj
aGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAg
ICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9u
YXJ5KG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBb
Y2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2Ug
PSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5z
ZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2Vd
OworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdl
czsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53
cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigp
OworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0
LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAg
ICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4g
bm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwog
fQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQg
bG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXgg
MzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5o
CkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1h
cmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilz
dGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9z
aXRpb247CistIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3Jl
OjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmRlNmRiZi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEyICsyNiwxMiBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00OCwxNyArNDgsMjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NF
UlQobV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkp
OwogfQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhO
b2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCAgY29uc3QgU3Ry
aW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSB0eXBlKQogeworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYg
KCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKKyAgICBjb25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERv
bid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCiAgICAgaWYgKHRleHQgPT0g
IlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5v
ZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5v
ZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjgs
MTYgKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9w
YXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAg
ICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX25vZGUtPm5vZGVWYWx1ZSgpLCAwKTsKKyAgICBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAg
ICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fbm9kZS0+bm9kZVZh
bHVlKCksIDApOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9k
ZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JF
X0VYQ0VQVElPTik7CiB9CkBAIC05MCw0ICs5NiwxNCBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5k
OjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2Vy
dDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZWRmNjgxYi4uNDljOWVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtNDcsNiArNDcs
OSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxOb2RlPiBt
X25vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcAppbmRleCAzMWY1MTc4Li5hZmVkMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQXBwbHlTdHlsZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKQEAgLTU0Miw2ICs1NDMsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZgogCiBS
ZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCkKIHsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25DdXQpCisgICAg
ICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCk7CiAgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggYmNmZDI0YS4u
ZmRmOWJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzUsNCArMzYsOSBAQCBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZQogewogfQog
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVDdXQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXgg
NGRmNTc5MS4uYmYyZmE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM5LDYgKzM5LDEwIEBAIHB1YmxpYzoK
IAogcHJvdGVjdGVkOgogICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMTYzYzkyMi4uMWI0ZTcw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCkBAIC00Miw0ICs0Miw5IEBAIFJlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyCiAg
ICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KTsKIH0KIAorRWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpl
ZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCA5Y2JlMTU3Li4xZDA1YzMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApA
QCAtNDEsNiArNDEsNyBAQCBwcml2YXRlOgogICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
RG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUs
IGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6
ZU1hcmt1cCk7CiAKICAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1OTdmNDljLi44NTcx
NjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTUyLDE1ICs1Miw2IEBAIFN0cmluZyYgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQogICAgIHJldHVybiBtX3RleHQ7CiB9CiAKLSNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpCi12b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQot
ewotICAgIGlmIChub2RlICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
Ci0gICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOwotfQotI2VuZGlmCi0KIHZv
aWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1f
bm9kZSk7CkBAIC03MiwxMSArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQs
IG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBh
Y3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV90ZXh0
LCBtX29mZnNldCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9u
b2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0
aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZz
ZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTkwLDkgKzgwLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zm
c2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOwotI2VuZGlmCisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQp
KSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xMDIsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9k
ZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCA0ZTQ3Y2Y5Li43YTMxYzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAt
NDUsOSArNDUsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJp
bmcmLCB1bnNpZ25lZCk7Ci0jZW5kaWYKIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9B
cHBseSgpIG92ZXJyaWRlOwpAQCAtNTYsNyArNTMsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRF
QlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikg
b3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAg
ICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIHVuc2ln
bmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2
LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlv
biBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAv
LyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUg
dXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhl
cmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBz
bwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAg
ICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0K
IAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxl
IHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcAppbmRleCA3NWY2MWIwLi5mODhjNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKQEAgLTM3LDQgKzM3LDkgQEAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHQKIHsKIH0KIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCmluZGV4IGZlNTQ1MTAuLmYyOTgzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCkBAIC0zOSw2ICszOSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmlu
ZGV4IDhmNTY1MzIuLjkxZWE5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
Y3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRp
dENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21w
b3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRp
dG9yLmgiCkBAIC0xMjQsNSArMTI1LDI5IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5v
ZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAg
ICAgIG5vZGVzLmFkZChub2RlKTsKIH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVVbmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAg
IHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2Rl
LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLmY1Yjg2
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZm5kZWYgRWRpdENvbW1hbmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZp
c2libGVTZWxlY3Rpb24uaCIKIApAQCAtOTcsNiArOTgsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlm
CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlF
ZGl0VHlwZSgpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBjNDc3MWJkLi4wYjBjMTBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNzUsMjAgKzM3NSwxNSBAQCBib29sIEVkaXRvcjo6
ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3Jh
bnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVs
ZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwotfQotCi12b2lkIEVkaXRvcjo6
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGJvb2wgc21hcnREZWxldGUpCi17
Ci0gICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9j
dW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0
aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNv
bW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0
RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTI3NSw3ICsxMjcw
LDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVy
IGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYg
KGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERl
bGV0ZUZvckN1dChjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQp
OwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXgg
OTM5ODI2NC4uNjZkYjAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0
LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdp
dGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2ls
bFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVs
ZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnRE
ZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAg
IHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NTIsNyArNDUyLDYgQEAgcHJp
dmF0ZToKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQoYm9vbCk7CiAgICAgYm9vbCBjYW5EZWxl
dGVSYW5nZShSYW5nZSopIGNvbnN0OwogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3Rl
Ym9hcmQoUGFzdGVib2FyZCYpOwogICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDlmMDkwMjcuLmFlYzQ3NTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cApAQCAtNTYsMTUgKzU2LDYgQEAgU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpp
bnNlcnRlZFRleHQoKQogICAgIHJldHVybiBtX3RleHQ7CiB9CiAKLSNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCi12b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBj
aGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQotewotICAgIGlmIChB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwg
b2Zmc2V0LCB0ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCku
c2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC04MSw5ICs3Miw4IEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2Vy
dERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4dCwgbV9vZmZz
ZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQo
KSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25v
ZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTgsMTEgKzg4LDEw
IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBp
ZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgCi0j
aWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZv
cmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1f
dGV4dCwgbV9vZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9u
KFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEo
bV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC0xMTQs
NCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggNWNh
MmQ5Ni4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQ0LDEwICs0NCw2IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCi0jaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCk7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTU4LDcg
KzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXRO
b2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVu
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAg
ICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCAwY2I4YWRj
Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDksMTUgKzUwLDYgQEAgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hp
bGQsIFAKICAgICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5oYXNFZGl0YWJsZVN0
eWxlKCkgfHwgIW1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKSk7CiB9CiAKLSNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi12b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkK
LXsKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihu
b2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0g
bV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpOwpAQCAtNjcsOSArNTksMTAgQEAgdm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZSht
X2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRl
ZCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIDApOwotI2VuZGlmCisgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9z
aXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0
PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3Np
dGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2lu
c2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAg
fQogfQogCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNzcs
MTAgKzcwLDExIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAg
ICAgaWYgKCFpc0VkaXRhYmxlTm9kZSgqbV9pbnNlcnRDaGlsZCkpCiAgICAgICAgIHJldHVybjsK
IAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJl
Zm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERl
bGV0ZWQsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKLSNlbmRpZgorICAgIGlmIChB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9u
IHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3du
Y2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5n
UG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgp
LCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7
CisgICAgfQogCiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwog
fQpAQCAtOTMsNCArODcsMTQgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9k
ZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IDM3NWQwOTkuLjhkOWM2MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTQy
LDEwICs0Miw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hp
bGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwog
Ci0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3Ry
aW5nJiwgdW5zaWduZWQpOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRv
QXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7
CkBAIC01Myw3ICs0OSwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRp
ZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBs
eUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2RlPiBt
X2luc2VydENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBhYzBjM2NiLi42MWFjYWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKQEAgLTM1LDQgKzM1LDkgQEAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2UKIHsKIH0KIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlUGFzdGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZTczYWY3Yy4uMWQwNTU5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2Rl
PiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAppbmRleCAzNDA3YjQzLi5jNDdhN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTM1LDQgKzM1LDkgQEAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXMKIHsKIH0KIAorQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IGE0Y2Y0MWUuLjhlNmEzNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC00MSw2ICs0MSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKaW5kZXggODk4YjAxNy4uZTAxN2I4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNCArMzYsOCBA
QCBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZQogewogfQogCit2b2lkIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaAppbmRleCBkZmQ4ZTNlLi5kMzBmZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw3
ICsyNiw2IEBACiAjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNk
ZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCi0jaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNiArNDEsOSBAQCBwdWJsaWM6CiAKIHByb3RlY3Rl
ZDoKICAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRl
eCA4N2E2MmY4Li5iYTQ1NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKQEAgLTM3LDQgKzM4LDMzIEBAIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRlCiB7CiB9CiAKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYg
KCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGlj
dGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgbV9k
ZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURl
bGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSwgdGV4dCwgcG9zaXRp
b24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggZDlm
ZjViZS4uNTdlNTM0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNp
Zm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00Myw3ICs0MiwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpOworCiBwcml2YXRlOgorICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIG92ZXJyaWRlOworCiAgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcAppbmRleCAzYmZiOTdkLi4zZTQyMjEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKQEAgLTM3LDQgKzM3LDkgQEAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQKIHsKIH0KIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlVHlwaW5nOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCmluZGV4IGI0MDc0OTguLjAwYmQxNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0zNiw4ICsz
NiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAgIH0K
KwogcHJpdmF0ZToKICAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCAzMGE0ZGNmLi43YjI0
NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBAQCBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBpbgogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXgg
YzQ0MjE5MS4uODE3NDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtNDAsNiArNDAsOCBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0
cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBs
eUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDdhYzNjYTMuLjMwZGQ1MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICszNSw5IEBAIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
aW5kZXggMjNmZjNhMi4uOTZjMmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
NTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5u
ZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
QVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZh
bHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlv
dXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJ
c0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2Vk
IHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5k
ZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0
Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRP
YnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+
c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAo
dmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAg
ICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgp
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBM
QVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7
CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxh
Y2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVs
ZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwg
dmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25J
c0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9y
bUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKLS0gCjIuMy4wIChBcHBsZSBHaXQt
NTQpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250377</attachid>
            <date>2015-04-08 12:51:27 -0700</date>
            <delta_ts>2015-04-08 12:58:53 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>230931</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDY1ZDZlNDU3NWE3Y2E3ZjA3ZTAxZGNkYzhjMWVkNDUzMTZmZGI5ZDEKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk4ZGZkODkuLjRjYzhiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDc0LDEwICsxNDc0
LDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5
NiwxMSArMTUwMCwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNw
cAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9z
aXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21t
YW5kLmNwcApAQCAtMTUxNiw2ICsxNTI0LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBl
ZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQ
b3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmYxM2M4OC4uNTdlY2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwOSBAQAorMjAxNS0w
NC0wNyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
cmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcg
RWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNo
YW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNv
YWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9h
ZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRl
Y2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBp
biB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hh
bmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0
dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2li
bGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwogMjAx
NS0wNC0wNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSB2aWRlbyBwbGF5aW5nIHRvIGV4dGVybmFsIGRldmljZSBzaG91bGQgbm90IGJlIGlu
dGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCBkZWNkZDUzLi5jZTFkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0MzkzLDYgKzE0MzkzLDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTQ0NDksNiArMTQ0NzcsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NzMwLDYgKzE0Nzg2LDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
QEAgLTE1MDI0LDYgKzE1MTM2LDYyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5LDEwICsyMTIzNywxNCBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENvbXBvc2l0ZUVkaXRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtD
b21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFu
ZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBAIC0yMTA5OSwxMCArMjEyNzEsMTQg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIiAv
PgpAQCAtMjExMjEsNiArMjEyOTcsMTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFZpc2libGVQb3NpdGlvbi5oIiAvPgpAQCAtMjE3ODMsNCArMjE5NjMsNCBAQAog
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIg
Lz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMwYTY2Ni4uM2Y3NDJhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM0NTAsNiArMzQ1
NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21t
YW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtMzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzU3Niw2
ICszNjAwLDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDU2OSw2ICsxMDYwNSwxMiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpAQCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYgKzEwNzA3LDEyIEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNzI1
LDYgKzEwNzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGlu
Z0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUzMyw0IEBACiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1By
b2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3ZjRj
MWEuLjc4NDExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTYzNzksMTIgKzYzNzksMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8q
IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0
ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsg
fTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJE
QzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1
MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0
MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0
MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVt
cHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYz
NkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRG
Nzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9
OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFE
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYy
NjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0
VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRU
eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAt
NjQzNCwxMiArNjQ0NCwyNiBAQAogCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIz
RERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAv
KiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8q
IFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07
CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0
NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIy
OEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87
IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5o
ICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3Rjgw
NCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9Owog
CQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZE
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9Owog
CQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEy
NTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1
OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZB
NDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
MTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJ
RjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAw
NTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIx
MSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUx
MkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFE
QTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERh
dGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9N
SFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLzsgfTsKQEAgLTE0MDA3LDYgKzE0MDMxLDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjND
MUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5
MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMTksOCArMTQwNDUsMTYgQEAKIAkJRjUyM0QzMDMw
MkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYw
MTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5
Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNs
aWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURB
MDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUx
RjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTQwNzAsNiArMTQxMDQsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
UkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUx
RjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERF
RDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJB
NzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAv
KiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIg
LyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFF
QTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA4MCw4ICsxNDEyMCwxNiBAQAogCQlGNTk3
M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZF
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAv
KiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5Nyw2ICsxNzc0NSwxMCBAQAogCQkJCTkzMzA5
RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQw
QjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
RDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJ
RjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5
MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLApAQCAtMTc3MDUsNiArMTc3NTcsMTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcw
NjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBF
MzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAw
RTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5
QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJ
RjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2
RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRp
dENvbW1hbmQuaCAqLywKQEAgLTE3NzUxLDYgKzE3ODA3LDEwIEBACiAJCQkJQzZENzRBRDMwOUFB
MjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5
REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJ
CQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5
MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBS
ZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzYxLDYgKzE3ODIxLDEwIEBACiAJCQkJ
OTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBv
c2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3
QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVE
QTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlF
NjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzk2
LDYgKzE3ODYwLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGlu
Z0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdD
b21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVB
NTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmgg
Ki8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICov
LAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBA
IC0yMzY5MCw2ICsyMzc2Miw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1h
c2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAw
RkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1
NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlF
NjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ5Myw2ICsyNDU2Niw3IEBACiAJCQkJMzEwNjAzNzkx
NDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFs
dWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4
IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5
ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgw
MEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKQEAgLTI0ODE2LDYgKzI0ODkwLDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFF
MDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIz
NzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTA0NSw2ICsyNTEyMCw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFE
QjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEx
NUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9O
b2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDU0LDYgKzI1MTMwLDcgQEAKIAkJCQlCRThFRjA0
MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
RThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JF
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0
RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
OTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUxNzMsNiArMjUyNTAsNyBAQAogCQkJCUZEQTE1RUFDMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAw
MjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThG
NTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpT
R2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3
NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZD
MDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2MTQsNiAr
MjU2OTIsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNE
ODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5
NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYy
Qzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjc5NSw2ICsyNjg3NCw3IEBACiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJB
RkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYy
NiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIw
RDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjg0OCw2ICsyNjkyOCw3IEBACiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVBMjYyIC8q
IFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRFNzAwMUNC
RDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYwQjE4N0ZE
NDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQyNCAvKiBU
aWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZERUEwMEU1
NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlDMTk0QTY0
RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk3MiwxMiArMjcw
NTMsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJs
aW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUND
MDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NkM1
QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29y
ZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFF
OUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OUREQTE2
MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNj
cmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMwOTg0MDBF
ODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFC
QyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNDAzNzlC
MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzAxMCw2ICsyNzA5Myw3IEBACiAJCQkJNkU0RTkxQUYxMEY3
RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dEdy
b3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODUx
NEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVn
U2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc1Miw2ICsyNzgzNiw3IEBACiAJCQkJNkY5
OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBs
YXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1
MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTYx
MUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYyMDAwNjZG
MDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGRTBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3
ODI5LDYgKzI3OTE0LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNl
TW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2
MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZC
MUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFGNDBFNCAv
KiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5MzA5
QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI3OTY1LDYgKzI4MDUxLDcgQEAKIAkJCQk4NUVDQkVGNjBBQTc2MjY5
MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURG
ODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVu
dC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUVG
MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjgxMTMsNiArMjgyMDAs
NyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xD
b21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8q
IEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4
ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4ODBFMURF
MkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4MjIzLDYgKzI4MzExLDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3
QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMEIwQTAx
NEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2MjUyRTE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI4MjQzLDYgKzI4MzMyLDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNF
MEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RjMx
OTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4NDIyLDYgKzI4NTEyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3
RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1
MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
ODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC0yODg4MCw2ICsyODk3MSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYx
IC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAxMUU4NEMz
NjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUyMTAyRkMw
MDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2
QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODkxNCw2ICsyOTAwNiw3IEBACiAJCQkJMDc5NjlEQkIx
N0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1ODgwMEFC
REQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMxMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTY5MCw2ICsyOTc4Myw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0REQx
OUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAx
N0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VFMDA0MjBB
QTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4Njcs
NiArMjk5NjEsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2Fj
dGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEz
MDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMx
NzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8q
IFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYw
RUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVB
RkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwMzcxLDYgKzMwNDY2LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYgLyogV0tH
cmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAv
KiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4MzAwREE2
M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2RDgwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJD
b25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi4wNDg2NjY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVu
aGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIxIEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRy
ZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsK
KworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRv
IGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFk
IHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlz
dCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0
YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGUgOiBub3RpZmljYXRp
b25zKSB7CisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihz
dGQ6OmdldDwwPihub3RlKS5nZXQoKSwgc3RkOjpnZXQ8MT4obm90ZSksIHN0ZDo6Z2V0PDI+KG5v
dGUpLCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgfQorI2VuZGlmCit9CiAgICAgCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhO
b3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBl
IHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjYsMjIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0
Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRP
YnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9i
amVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRl
bnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRm
KCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAg
ICAgcHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNo
IChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAg
ICAgICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJp
bnRmKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAg
ICAgcHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJ
bnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
Q3V0OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3Rl
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25Vbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoK
KyAgICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHBy
aW50ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6
CisgICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoK
KyAgICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6
CisgICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAg
ICAgICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAg
ICAgICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlz
Y29udGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsK
KyAgICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAg
ICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikK
IHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQor
ICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKwogICAgIHN0b3BDYWNo
aW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUg
cmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0
ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmot
PmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0
KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iaiwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5v
ZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFy
Z2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5V
U0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRl
bnQoKTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGJvb2wgc2FuaXRpemVQYXNz
d29yZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBTdHJpbmcgJnRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bhc3N3b3Jk
RmllbGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICB0
ZXh0ID0gb2JqLnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCktPnBhc3N3
b3JkRmllbGRWYWx1ZSgpLnN1YnN0cmluZyhwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRF
ZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJU
KHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0
ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRp
emVkVGV4dCA9IHRleHQ7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNz
d29yZFRleHQoKm9iaiwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+
b2JzZXJ2YWJsZU9iamVjdCgpLCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBp
ZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAg
ICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAy
NSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5v
YnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pOworI2Vs
c2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5n
ZUZvckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRF
ZGl0aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlw
ZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBl
IGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFT
U0VSVChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5
cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0OworICAg
IFN0cmluZyBzYW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgaWYgKG9i
aikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5z
ZXJ0ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCks
IGluc2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYg
KCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAg
ICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2Jz
ZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIGlu
c2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAg
ICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVk
aXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSks
IHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5z
ZXJ0ZWRUZXh0KTsKKyNlbmRpZgogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGlu
Z0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2
ZW50KQpAQCAtMTA4NCw2ICsxMzA0LDE1IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSog
bm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2Jq
ZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAq
cm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAocm9vdE9iamVj
dC0+aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25j
YXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgp
OworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJs
ZXI6OkFYQXR0cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDog
bV9jYWNoZShjYWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmgKaW5kZXggYmZhOTI3Ny4uYmQyYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDk5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0
aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9u
b3VzbHkpOwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
RG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBv
c3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsK
LSAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51
bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7
CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVE
ZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNl
cnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcs
IC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAv
LyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVs
ZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBh
c3RlCisgICAgfTsKKworICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQg
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRl
eHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtu
b3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0g
ICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlB
bGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3Rpbmcg
dGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlv
biBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9s
ZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0
aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxl
Y3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0g
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAg
eworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBz
ZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisK
KyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAg
ICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
VW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBi
b29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAg
LCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAg
IHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNo
YW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAg
ICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAg
ICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAg
ICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3lu
YyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisg
ICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5k
aWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNo
YW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVu
dW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcg
KzMwNSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3Jt
SGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUq
IG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZv
aWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxz
ZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAg
ICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRD
aGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAg
ICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5n
RXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5n
RXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAg
IHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJO
b2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFz
aE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBI
YXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0
NCw2ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1l
cjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhO
b3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBv
c3RUaW1lcjsKKyAgICBWZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4sIEFYVGV4dEVkaXRUeXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9z
dDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAg
IHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9u
Q3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsK
QEAgLTI1MSw2ICszNzMsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAg
ICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDMyLDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJ
c0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpo
YW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2Us
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERv
Y3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjNkNDVkM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxl
bWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVs
ZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5v
ZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlu
cHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3Rf
Y2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBp
ZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAo
aXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0
SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKaW5kZXggM2U3NTcyZi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jl
c3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hG
aWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0y
NjQ2LDQgKzI2NDYsMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5
Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAg
Tm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9s
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+
KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjJlOTc3NmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05h
dGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJ
bWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
UGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRh
aW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0
dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRl
eCAyZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0
ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0
ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRT
ZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYg
KGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlv
bkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5n
dGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wg
PSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJv
bEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uu
c3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3Np
dGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
ciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBv
c2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0
aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUs
IHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldElu
QW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxl
U2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1l
KCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0
aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdl
KGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFu
Z2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNl
bGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVu
Z3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSBy
YW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBj
YWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92
ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAg
ICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5n
ZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rp
b24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4u
MGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNo
KEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwog
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsK
ICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsK
ICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNj
cm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYWI3
OTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmpl
Y3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9i
amVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZp
YwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5v
dGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAg
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMw
MGU3Ny4uNjA1MjNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNy
ZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkg
QCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5n
dGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtl
ciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0
ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBp
biB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2Jq
LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRp
b25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQorewor
ICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFv
YmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZv
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAg
IGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50
ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoK
KyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rp
b25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2gg
KGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9u
LmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFw
cGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2li
bGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1
dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSBy
b290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5n
ZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAg
ICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgor
ICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxp
dHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlv
bmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5n
ICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3Rl
eHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBO
U011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0
VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25M
ZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAg
ICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5n
dGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVu
Z3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3RO
dWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4
dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2Vb
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsK
KyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAg
ICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAg
IGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBw
ZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgp
LT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRv
IGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5
cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlw
ZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9v
dFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBO
U011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0
aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGlj
dGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGlu
c2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBh
ZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQg
d3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJB
cmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
LCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBE
UlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2Vk
Tm90aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3Qs
IEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNl
CiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpW
aXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlv
bjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAK
ICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0y
NiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2Rl
Q29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5k
OjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFy
ZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFr
cyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAg
IFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2Rl
LT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMg
Y29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4i
KQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5v
ZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQs
MTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9w
YXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5v
ZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxl
U3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVf
RVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0
OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6
dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFw
cGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9k
ZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0
NjFlZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNv
bW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFr
QmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgs
NiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRl
clRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAi
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRl
ICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBh
c3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENo
aWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0K
IAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8
Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMg
KzUzMCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4
LCBzY29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5n
dGgsIHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBp
ZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAg
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9u
KCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1h
bmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBp
bnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAg
ICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkp
OworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0g
cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBs
YWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVu
dFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNv
bW1hbmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUy
Myw0ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRl
ckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlmIChtX2Nv
bW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXpl
KCktMV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApA
QCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVu
dDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3Io
Ym9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFy
a3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9t
Tm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsK
ICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4
dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAg
IHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4g
cmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0
IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1Jl
ZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxk
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJv
b2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0
b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5z
ZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0
cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0
ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJl
bWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92
ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9z
aXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsK
ICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRp
dENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJl
cGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiBy
ZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFj
ZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDog
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBy
ZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVk
aXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1
YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
c21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwg
Ym9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFs
c2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxl
dGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5k
PiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3
MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2
ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCAr
IG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisK
IHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJU
KG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZz
ZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwog
ICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0
ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1f
dGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBw
bHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1f
b2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBl
Yyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0
LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5
MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90
ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZu
ZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAg
ICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYs
MTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVk
aXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7
Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdo
ZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBj
YXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rp
b24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBp
bmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxl
dGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGlu
ZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlm
OWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBA
IC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNs
dWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21t
YW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUs
NyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5l
d2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0
aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9u
QWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0lu
TGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0lu
c2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3Vw
cGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4
dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5l
U3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVy
bmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVu
ZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisj
ZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1Jl
ZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDog
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dElu
c2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVk
aXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0
PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1w
bGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0
Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAo
IWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRl
eCAwM2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1h
bmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24u
aCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERv
Y3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KTsKQEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVz
Y2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2lu
Y2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAt
Mzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29s
IHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYg
KG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFw
cGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21h
cnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAg
ICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9
CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBF
ZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNt
ZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVj
dGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4K
ICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5p
c0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQg
OiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlv
bnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlv
bnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2
ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0
aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlO
b3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZv
cm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRl
U2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0g
ICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0
ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29w
eU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpA
QCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxB
c0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFz
b25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykK
K3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9u
cyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQp
CiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3Qg
dXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3Jw
aGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYs
NyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3
MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBm
b3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlv
bkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0
aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVj
dGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBv
cGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5n
IGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlv
dSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBe
KToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9u
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBM
QVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0
eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3Np
dGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAg
dm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwog
Ci0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7
CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5
KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCmluZGV4IGE4ZjFiNDEuLmU0ZDUzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVT
ZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAK
IHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywg
RVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikK
IHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQo
KSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0Rp
cmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJp
Z2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5k
ZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1f
c2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVz
ZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAog
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2Vy
ZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYg
KG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0
aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxl
Y3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVT
ZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxl
Y3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3
U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAg
ICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9j
dW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVj
dGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25z
LCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1l
LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAg
ICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwg
dGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAg
IC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0
aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8v
IHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2Us
IGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxl
U2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlm
ICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlv
bnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDks
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVW
aWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwog
fQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShG
cmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9p
ZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1Nl
bGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVh
bFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpCkBAIC0xMDE4LDcgKzEwMjYsODAgQEAg
VmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91
bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkg
PT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
CitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxl
Y3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRp
cmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOwor
ICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAg
ICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGly
ZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7
CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChn
cmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3Jh
bnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6
CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFu
dWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxh
cml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZh
bHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51
bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFu
dWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdy
YW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAg
IGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAg
ICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2gg
KGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rp
b25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0
aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFj
a3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24g
PSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1l
U2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNl
clRyaWdnZXJlZCkKIHsKQEAgLTEwNzQsNiArMTE1NSwxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24s
IFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYm
IHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rp
b24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3Bl
cmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNl
dHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSBy
ZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFy
Yml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MDcsOCArMTc5
MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRl
bnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIGF1dG8gaW50ZW50ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVjdENhY2hlOjpUZXh0U2Vs
ZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisgICAg
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5
LCBib29sIGNsb3NlVHlwaW5nKQpAQCAtMjQyMCw3ICsyNTA4LDcgQEAgVmlzaWJsZVNlbGVjdGlv
biBGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihj
b25zdCBWaXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxl
Y3Rpb24uc2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJp
dHkoV29yZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElm
TmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0
YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9u
IGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uM2MzMTk4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0
eWxlIHwgKHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50
KSA6IDApOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7
CisgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJh
bWUqID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBt
b3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwg
Ym9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxl
Y3Rpb247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2Vs
ZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgp
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0
R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5n
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0g
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRl
ZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3Jz
Rm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1
cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBA
IHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVj
dGlvbk5hdmlnYXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
Ci0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVu
dChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAg
IHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7
CiAjZWxzZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
IHsgfQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lk
IHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2wo
RVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAK
ICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkp
CiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4
IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJl
bmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAg
LTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3Rl
eHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpp
bnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFi
bGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkg
KzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9
CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQ
VElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZz
ZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9k
ZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlv
bihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAg
Kzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsK
ICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBt
X29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRp
b24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNl
dCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywx
NCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhh
c2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUz
M2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90
ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBw
cml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQg
bV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNp
bmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgp
LCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAg
ICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZh
bHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7
CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQo
KSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBj
cmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3Np
dGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAg
ICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVW
YWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
eworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0
KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDog
Y3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgp
LCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQ
b3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0K
ICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJk
Li44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9J
bnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAg
fQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1
YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2Vu
ZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+
IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApp
bmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3Vw
cGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFs
YW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGll
cj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAK
ICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGls
ZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorewor
fQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6
IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBj
aGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAg
ICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0
QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9k
ZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVk
ZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAg
IDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQor
Cit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0K
KworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDog
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2Rl
bGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2Rl
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAg
IGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBj
YXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQs
IG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBv
c2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4
dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7Cisg
ICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBw
bHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90
ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAi
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0
ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2Rl
TGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIK
ICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIK
ICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAi
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgog
I2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYg
KzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNl
cnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxhc3RQb3Np
dGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8
RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNo
aWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAg
ICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4
dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlv
bikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAg
ICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAg
ICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3Rp
bmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9k
ZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlv
bi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4
IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwog
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24g
bV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENv
bnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRU
ZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQg
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcg
JnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0
Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
dGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4
dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0
Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRU
cmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRl
c3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1Nl
bGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQor
ICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAt
MCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2Vy
dCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJh
bGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVj
dEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorewor
ICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxl
dGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkz
YjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9o
CisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRl
eHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwg
UmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5n
V2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJh
bGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21t
YW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNk
ZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1
YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25B
dGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0No
YW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12
b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYg
KCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmlu
ZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBh
Y2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxs
KCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXBy
ZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENo
YW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVk
Tm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAg
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1D
b250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZh
bHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4
dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAh
PSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhh
c0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENP
Q09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMs
IEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsK
ICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVl
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xu
JykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVu
ZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVl
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3Np
dGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsK
KyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNo
ZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0
NjA1MWM2Li5jNTI4OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0z
MTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24o
RnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsK
ICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJh
bWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsK
KyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAK
IHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1l
LCBLZXlib2FyZEV2ZW50KiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250378</attachid>
            <date>2015-04-08 12:58:53 -0700</date>
            <delta_ts>2015-04-09 13:10:13 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>230922</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDdhODhkNmIxZGNiODhjY2UxMWUxODUzMzRlZDE2OGFiYjQ2MTJjMzgKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVHVlIEFwciA3IDE0OjIw
OjMzIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODM4MTQ1MS4uNTE2MGMyYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDItMjUgIFNlcmdpbyBWaWxsYXIg
U2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0g
VXBkYXRlIHRyYWNrIHNpemVzIGFmdGVyIGRpc3RyaWJ1dGluZyBleHRyYSBzcGFjZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJv
eC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlh
LXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcg
KzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2Uu
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxs
byAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICB2YXIgd2Vi
QXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgw
KTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRp
b25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRl
ZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk4ZGZkODkuLjRjYzhiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDc0LDEwICsxNDc0
LDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0
aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5
NiwxMSArMTUwMCwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNw
cAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9z
aXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21t
YW5kLmNwcApAQCAtMTUxNiw2ICsxNTI0LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBl
ZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVy
YXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQ
b3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmYxM2M4OC4uNTdlY2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwOSBAQAorMjAxNS0w
NC0wNyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDog
cmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAgICBOZXcg
RWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJp
bGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNo
YW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNv
YWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9h
ZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRl
Y2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBp
biB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hh
bmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0
dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpzYW5pdGl6ZVBhc3N3b3JkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbjo6QVhUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6
cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2li
bGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdENvbW1hbmQ6OmludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9V
bmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKwogMjAx
NS0wNC0wNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSB2aWRlbyBwbGF5aW5nIHRvIGV4dGVybmFsIGRldmljZSBzaG91bGQgbm90IGJlIGlu
dGVycnVwdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagppbmRleCBkZWNkZDUzLi5jZTFkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0MzkzLDYgKzE0MzkzLDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTQ0NDksNiArMTQ0NzcsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NzMwLDYgKzE0Nzg2LDM0IEBACiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
QEAgLTE1MDI0LDYgKzE1MTM2LDYyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5LDEwICsyMTIzNywxNCBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENvbXBvc2l0ZUVkaXRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtD
b21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFu
ZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBAIC0yMTA5OSwxMCArMjEyNzEsMTQg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIiAv
PgpAQCAtMjExMjEsNiArMjEyOTcsMTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFZpc2libGVQb3NpdGlvbi5oIiAvPgpAQCAtMjE3ODMsNCArMjE5NjMsNCBAQAog
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBvcnQgUHJv
amVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFyZ2V0cyIg
Lz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMwYTY2Ni4uM2Y3NDJhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM0NTAsNiArMzQ1
NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21t
YW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgpAQCAtMzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzU3Niw2
ICszNjAwLDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDU2OSw2ICsxMDYwNSwxMiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpAQCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYgKzEwNzA3LDEyIEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNzI1
LDYgKzEwNzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGlu
Z0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUzMyw0IEBACiAgICAgICA8RmlsdGVy
PnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+Ci08L1By
b2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3ZjRj
MWEuLjc4NDExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTYzNzksMTIgKzYzNzksMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8q
IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0
ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsg
fTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJE
QzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1
MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0
MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0
MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVt
cHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYz
NkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRG
Nzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERB
NTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9
OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FE
IC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFE
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYy
NjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0
VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRU
eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAt
NjQzNCwxMiArNjQ0NCwyNiBAQAogCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIz
RERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAv
KiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8q
IFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07
CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0
NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIy
OEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87
IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5o
ICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3Rjgw
NCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9Owog
CQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZE
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9Owog
CQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEy
NTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1
OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZB
NDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
MTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJ
RjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAw
NTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIx
MSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUx
MkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFE
QTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERh
dGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9N
SFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLzsgfTsKQEAgLTE0MDA3LDYgKzE0MDMxLDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FG
RjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjND
MUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5
MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMTksOCArMTQwNDUsMTYgQEAKIAkJRjUyM0QzMDMw
MkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYw
MTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5
Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNs
aWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURB
MDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUx
RjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTQwNzAsNiArMTQxMDQsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
UkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUx
RjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERF
RDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJB
NzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAv
KiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIg
LyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFF
QTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA4MCw4ICsxNDEyMCwxNiBAQAogCQlGNTk3
M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZF
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAv
KiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5Nyw2ICsxNzc0NSwxMCBAQAogCQkJCTkzMzA5
RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQw
QjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
RDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJ
RjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5
MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLApAQCAtMTc3MDUsNiArMTc3NTcsMTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcw
NjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBF
MzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAw
RTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5
QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJ
RjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2
RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRp
dENvbW1hbmQuaCAqLywKQEAgLTE3NzUxLDYgKzE3ODA3LDEwIEBACiAJCQkJQzZENzRBRDMwOUFB
MjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5
REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJ
CQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5
MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBS
ZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzYxLDYgKzE3ODIxLDEwIEBACiAJCQkJ
OTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBv
c2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3
QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVE
QTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlF
NjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzk2
LDYgKzE3ODYwLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGlu
Z0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdD
b21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVB
NTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmgg
Ki8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICov
LAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBA
IC0yMzY5MCw2ICsyMzc2Miw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1h
c2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAw
RkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1
NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlF
NjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ5Myw2ICsyNDU2Niw3IEBACiAJCQkJMzEwNjAzNzkx
NDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFs
dWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4
IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5
ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgw
MEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKQEAgLTI0ODE2LDYgKzI0ODkwLDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFF
MDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIz
NzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTA0NSw2ICsyNTEyMCw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFE
QjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEx
NUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9O
b2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDU0LDYgKzI1MTMwLDcgQEAKIAkJCQlCRThFRjA0
MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
RThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JF
dmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0
RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
OTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUxNzMsNiArMjUyNTAsNyBAQAogCQkJCUZEQTE1RUFDMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAw
MjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThG
NTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpT
R2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3
NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZD
MDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2MTQsNiAr
MjU2OTIsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNE
ODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5
NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYy
Qzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjc5NSw2ICsyNjg3NCw3IEBACiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJB
RkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYy
NiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIw
RDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjg0OCw2ICsyNjkyOCw3IEBACiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVBMjYyIC8q
IFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRFNzAwMUNC
RDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYwQjE4N0ZE
NDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQyNCAvKiBU
aWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZERUEwMEU1
NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlDMTk0QTY0
RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk3MiwxMiArMjcw
NTMsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJs
aW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUND
MDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NkM1
QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29y
ZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFF
OUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OUREQTE2
MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNj
cmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMwOTg0MDBF
ODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFC
QyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNDAzNzlC
MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzAxMCw2ICsyNzA5Myw3IEBACiAJCQkJNkU0RTkxQUYxMEY3
RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dEdy
b3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODUx
NEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVn
U2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc1Miw2ICsyNzgzNiw3IEBACiAJCQkJNkY5
OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBs
YXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1
MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTYx
MUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5l
cmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYyMDAwNjZG
MDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGRTBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3
ODI5LDYgKzI3OTE0LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNl
TW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2
MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZC
MUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFGNDBFNCAv
KiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5MzA5
QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI3OTY1LDYgKzI4MDUxLDcgQEAKIAkJCQk4NUVDQkVGNjBBQTc2MjY5
MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURG
ODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVu
dC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUVG
MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjgxMTMsNiArMjgyMDAs
NyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xD
b21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8q
IEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4
ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4ODBFMURF
MkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBF
MURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4MjIzLDYgKzI4MzExLDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3
QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMEIwQTAx
NEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2MjUyRTE4
REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI4MjQzLDYgKzI4MzMyLDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNF
MEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RjMx
OTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4NDIyLDYgKzI4NTEyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3
RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1
MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
ODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC0yODg4MCw2ICsyODk3MSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYx
IC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAxMUU4NEMz
NjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUyMTAyRkMw
MDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2
QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODkxNCw2ICsyOTAwNiw3IEBACiAJCQkJMDc5NjlEQkIx
N0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1ODgwMEFC
REQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMxMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTY5MCw2ICsyOTc4Myw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0REQx
OUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAx
N0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VFMDA0MjBB
QTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4Njcs
NiArMjk5NjEsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2Fj
dGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEz
MDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMx
NzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8q
IFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYw
RUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVB
RkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTMwMzcxLDYgKzMwNDY2LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYgLyogV0tH
cmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAv
KiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4MzAwREE2
M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2RDgwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJD
b25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi41ZTEyNzNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVu
aGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRv
Y3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIwIEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRy
ZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsK
KworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRv
IGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFk
IHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlz
dCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0
YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGUgOiBub3RpZmljYXRp
b25zKQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oc3Rk
OjpnZXQ8MD4obm90ZSkuZ2V0KCksIHN0ZDo6Z2V0PDE+KG5vdGUpLCBzdGQ6OmdldDwyPihub3Rl
KSwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2VuZGlmCit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRp
b24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBl
KQogewpAQCAtODUwLDE2ICs4NjUsMjIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0
aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxl
UGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hl
OjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7Cisg
ICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
VW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRmKCJFZGl0Ojoi
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlOgorICAgICAgICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgcHJpbnRm
KCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQu
dHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0
Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246
CisgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJpbnRmKCJEZWxl
dGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5z
ZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgcHJpbnRm
KCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJbnNlcnQiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAg
ICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3RlIik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3du
OgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAg
ICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHByaW50ZigiRW5k
OjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6Iik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAg
ICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Ogor
ICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAg
ICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAg
ICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgorICAgICAgICAg
ICAgICAgIHByaW50ZigiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAg
cHJpbnRmKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgcHJp
bnRmKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgcHJp
bnRmKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgcHJpbnRm
KCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkFs
bCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91
czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsKKyAgICBwcmlu
dGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0
aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRT
ZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICBp
ZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlm
IChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQorICAgICAgICBp
bnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKwogICAgIHN0b3BDYWNoaW5nQ29tcHV0
ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxh
dGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsK
LSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwg
b2Zmc2V0LCB0ZXh0KTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dv
cmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAg
fQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgaW50
ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUtPnJlbmRl
cmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2
YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5VU0VEX1BBUkFN
KHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoKTsKK30K
KworI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGJvb2wgc2FuaXRpemVQYXNzd29yZFRleHQo
Y29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBTdHJpbmcgJnRleHQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bhc3N3b3JkRmllbGQoKSB8
fCBvYmouaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICB0ZXh0ID0gb2Jq
LnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCktPnBhc3N3b3JkRmllbGRW
YWx1ZSgpLnN1YnN0cmluZyhwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIHRleHQubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24p
Cit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0g
QVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RB
dHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0
ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRpemVkVGV4dCA9
IHRleHQ7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQo
Km9iaiwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+b2JzZXJ2YWJs
ZU9iamVjdCgpLCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1fcGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAgICBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxl
T2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRU
eXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zm
c2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlv
blR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlv
blR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VS
VChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNl
cnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhU
ZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3Rh
dGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3Rv
cENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0OworICAgIFN0cmluZyBz
YW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgaWYgKG9iaikgeworICAg
ICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0
LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0
LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCksIGluc2VydGlv
blR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYgKCFtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9i
amVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIGRlbGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIGluc2VydGlvblR5
cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4
dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGRl
bGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdP
ZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0
KTsKKyNlbmRpZgogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90
aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAt
MTA4NCw2ICsxMzAzLDE1IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6
OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqcm9vdE9iamVj
dCA9IHRoaXMtPnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAocm9vdE9iamVjdC0+aXNBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PEFjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgpOworICAgIH0K
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShj
YWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggYmZhOTI3Ny4uYmQyYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDk5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwog
ICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQq
LCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0g
UG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAg
QVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51bSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAor
ICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CisgICAgICAg
IEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8v
IEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdl
bmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcsIC8vIEluc2Vy
dCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQg
dmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBD
dXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBhc3RlCisgICAg
fTsKKworICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRleHQgdmFsdWUg
Y2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJl
dmlvdXMsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxs
IGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xl
IGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21l
IG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVu
dCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorICAg
IH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxlY3Rpb24gVGV4
dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgeworICAgICAg
ICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBzZWxlY3Rpb24u
ZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBn
cmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisKKyAgICBzdHJ1
Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2VsZWN0aW9uIHNl
bGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAgICAgfTsK
KyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwg
QVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29sIHN5bmMg
PSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rp
b24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsgfQorCisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAg
ICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAgICAgICAg
LCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAgICB7IH0K
KworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUg
dHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAs
IHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQor
ICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBz
aG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYKKworICAg
IHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5nZQorICAg
IHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0gQVhMb2Fk
aW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzMwNSwzNSBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9j
dXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3Vz
ZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQgcG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Cisg
ICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVu
dW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4
dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JF
ZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwog
ICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFi
ZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250
YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJB
cmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElE
LCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJl
bmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2ICszNjEs
MTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBW
ZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRp
b24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsK
KyAgICBWZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYVGV4
dEVkaXRUeXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2
b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFu
ZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChO
b2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2
ICszNzMsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1
c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAgICAgQVhJRCBn
ZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVF
bmFibGVyCkBAIC0zMDgsOCArNDMyLDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVt
ZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQo
UmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3Jv
bGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9Citp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50Kiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRp
b24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjNkNDVkM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQ
YXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0
Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxl
bWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVu
dC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAoRWxlbWVu
dCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElu
cHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSAq
Y2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5n
ZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBudWxs
cHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBj
b25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXgg
M2U3NTcyZi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZp
ZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0
b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2
NDYsMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01F
dmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9k
ZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0
KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAg
ICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQp
OworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjJlOTc3NmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBA
IC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRv
bigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFz
c3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVW
YWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDkyOTk2
Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTggQEAg
UGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFu
Z2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRl
eHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZl
VGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwog
ICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2Fz
dDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQo
KTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJh
bmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2Rl
LCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAg
ICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6
UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9uIHBv
czEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZz
ZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0
YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsK
KyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9u
KHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZp
c2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlz
TnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBh
bmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVu
IG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQp
CisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0
VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVl
KSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdl
LnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2li
bGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwg
cmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
LCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2li
aWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAg
LTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hp
bGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihB
Y2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYWI3OTM0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hl
SU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtv
YmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlv
blN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJl
cGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uNjA1
MjNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAj
ZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5Cisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVT
eW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRT
dGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24g
QCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRl
ZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRl
ZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4
dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFy
a2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZp
bGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2
LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVy
KCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQog
Ci12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICgh
b2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAg
ICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRl
bnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tl
eV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5n
ZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUp
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAg
ICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChp
bnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgp
KSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4
dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgp
IGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4
dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJl
YSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhV
c2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmlj
YXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2Vk
IGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJn
ZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4
dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nICp0ZXh0ID0g
KE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3Ro
XTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVE
aWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBA
KHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAx
MDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5n
ZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAg
ICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAg
ICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsK
KyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZv
clZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9Cisg
ICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2Jq
ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURp
Y3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0
aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5n
ZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0Rp
Y3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0
eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmot
PndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVs
ZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVy
KCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJn
ZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hl
biBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9z
dGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRp
b25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRp
b25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEo
KTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0
aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhD
YXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVB
cnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6
Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdl
RGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAg
ICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAq
Y2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5
cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6
Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9
IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9
IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndy
YXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5m
byk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25v
dyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0
aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGlu
Z0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5o
CmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlk
KXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9z
aXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
KWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3Qg
V2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAv
LyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYs
MTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5o
IgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
KyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAg
ICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5k
ZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2Up
CitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBu
b2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBu
b2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFs
dWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAot
ICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9z
aXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0
aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9
CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2
IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFw
cGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9u
b2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5k
Ojpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkK
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMg
YmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3Jp
bmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7
CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1
bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9O
KTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxl
dGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9V
bmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5k
aWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3
MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90
ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAj
aW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBA
QAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIK
ICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgi
CiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRF
dmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9k
ZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNo
aWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZD
aGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzMCw0NiBA
QCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0
LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlz
aWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29wZS5n
ZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3Bl
LmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQu
aXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRp
dEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQs
IGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRl
eHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8
VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJl
ZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRl
eHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsK
KyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRl
bGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxh
Y2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTU0
LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJy
VGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNp
emUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmlu
dGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiAr
MzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNz
IFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9z
aXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAg
ICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1
ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJv
b2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1
ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0g
dHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRD
b21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lk
IGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNl
KTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQp
OwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9u
Jik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2Rl
PiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJl
Zm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5x
dW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dElu
dG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50
PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7
CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1Np
YmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JO
b2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lk
IHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0
SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQs
IGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2Vs
ZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5v
ZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7
CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNp
bmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
ZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRp
dENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25D
dXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxl
dGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxl
dGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBs
YWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2Fu
aXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9v
bCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBA
QCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQg
PD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7
CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291
bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5l
ZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlw
ZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkp
OwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBA
IC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhD
RVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29m
ZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdl
dCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24o
bV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0
IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2Ez
MWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6Cisg
ICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
dW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBw
bHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJV
RwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92
ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAg
UmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25l
ZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3
IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24g
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8g
Tm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVz
ZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJl
J3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28K
LSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAg
cmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAK
IC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0
aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSAr
MjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcg
QEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNp
emVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJu
YXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRp
dmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0g
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6
OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJz
dHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNy
ZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1
cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxp
bmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0lu
TGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVj
dGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0
SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4
dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRp
dENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVi
bGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtl
clN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJT
dXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJ
bnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5k
OjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYg
bgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQor
ICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3
Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNs
dWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50Jiwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTk3
LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMo
Tm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYzE1M2M4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBi
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNy
ZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
IgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICsz
NzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVs
ZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNt
YXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUu
c2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFu
ZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUp
KTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBs
eUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0
RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQg
RWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFw
cGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAg
IC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFu
Z2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFt
ZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlv
bkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAg
IGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAg
IGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+
aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21w
b3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRp
bmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVk
dWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNv
cHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9u
VG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAg
ICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRl
KCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3
ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQo
KQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNt
aXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9u
LCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRp
dG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
bmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
LCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAg
Ly8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRo
ZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwg
bmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lk
IEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNv
bWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0
aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENo
YW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0g
ICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0
aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25z
IGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3Np
dGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyBy
ZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4
dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNt
YXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhT
bWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBF
ZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElP
UykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpA
QCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUg
eyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRD
b21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9p
ZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9p
ZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0
QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFj
dGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CmluZGV4IGE4ZjFiNDEuLmU0ZDUzZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246
OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJh
bWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmln
Z2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBz
ZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRl
ZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFs
KCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwg
YWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZh
bGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9u
LmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2Vy
ZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0y
NTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJ
ZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0
aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlv
bikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29y
T25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2Fy
ZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAg
IH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JPblNj
cm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpbwog
ICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFz
ZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9u
RnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYg
KG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0g
bV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1l
LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwg
Z3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rp
b24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQn
cyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFt
ZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVj
dEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0
aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFt
ZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91
ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBv
cHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9s
bCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2Vs
ZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWdu
LCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDksNyBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlv
dXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0
aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJh
bWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxl
Y3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lk
IEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVw
ZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVhbFNlbGVjdGlv
bihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoaW50ZW50KTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlRGF0
YURldGVjdG9yc0ZvclNlbGVjdGlvbigpCkBAIC0xMDE4LDcgKzEwMjYsODAgQEAgVmlzaWJsZVBv
c2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91bmRhcnkgfHwg
Z3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1l
bnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRl
eHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChh
bHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50
LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
OworICAgICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uT2ZT
ZWxlY3Rpb24oKSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7CisgICAgICAg
IH0KKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0
eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6
CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVH
cmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToK
KyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdy
YW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAg
ICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAg
IHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5Ogor
ICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToK
KyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5
OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFy
YWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3Vu
ZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlv
bikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJk
OgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRp
cmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25C
ZWdpbm5pbmcgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxp
cCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhP
YmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6Cisg
ICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0
aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24s
IFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJl
ZCkKIHsKQEAgLTEwNzQsNiArMTE1NSwxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnko
RUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAg
ICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9u
ID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAor
ICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
IHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51
bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBz
ZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBz
ZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxh
dGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBi
ZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MDcsOCArMTc5MywxMCBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2Rl
KHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0
aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNl
bGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisgICAgICAgIHNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJl
U2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNs
b3NlVHlwaW5nKQpAQCAtMjQyMCw3ICsyNTA4LDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNl
bGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBWaXMK
IAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24uc2Vs
ZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdy
YW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9uLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGRl
ZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBm
cmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0UG9zKGZy
YW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9uIGVuZFBvcyhm
cmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uM2MzMTk4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFtZVNl
bGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgKHVz
ZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDApOwog
ICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfQog
CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gbnVs
bHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91
dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxl
Y3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0K
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
IEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRH
cmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0
aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBDdXJzb3JB
bGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJp
dHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRT
ZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Y2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0g
RVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1
cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRT
ZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0
aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWdu
T25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBAIHByaXZhdGU6
CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmln
YXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9p
ZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJh
dGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAjZWxzZQot
ICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAg
IHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNl
bGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmln
Z2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpz
ZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBM
QVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2Uu
LmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUx
LDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0
eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRl
eHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJh
bWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAg
dm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBt
X25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0K
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4
dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwg
YXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUs
IG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBA
IHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAo
IW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAor
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwg
bV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1
bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0
Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lk
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAg
fQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAg
ICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBv
dmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgog
I2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNl
dDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7
CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAg
LTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgp
CiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNo
aWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOwor
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAg
IFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3Np
dGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdh
Y3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3Np
dGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMg
YmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsK
KyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAg
ICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9z
aXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihw
b3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhD
RVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgog
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gK
ICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZv
cmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2
YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3Jl
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFw
cGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0
Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBk
MmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRl
eHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFu
ZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsK
ICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUp
OworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAg
IEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lk
IGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
X2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZh
MzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1
YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
MzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVj
dGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0
KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2Fj
aGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlv
bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURl
bGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRl
ZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUs
IG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsx
LDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xh
c3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlw
ZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisK
KyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
ZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQu
aCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBA
QAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgog
I2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRl
ICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRl
ICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAg
QEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2Rl
ICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JB
ZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1h
bmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRp
dEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVy
biBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNo
aWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAg
IGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQs
IGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJu
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAK
IC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0
IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGly
ZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMg
aXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYu
LmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJm
b3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9m
SW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAg
ICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgog
CkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0
IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29t
bWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9
IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0
SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRp
b25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1do
aXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsK
IAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRl
eHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
UGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGls
ZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUs
CisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRU
b0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBl
KQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVk
VGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVy
biBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5l
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNl
VHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFj
ZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBl
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8
RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2
YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1YTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBA
IC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQg
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVl
MWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2Vs
ZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmls
aXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9z
ZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAg
Y2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9k
ZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRh
cmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBp
bnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkp
OwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgq
aW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJv
bSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91
c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9k
ZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAg
ICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0
Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFs
dWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhU
TUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisK
KyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAo
dGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAg
ICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3Np
dGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAg
fQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJl
cih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li5j
NTI4OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMx
ODQsNyBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZy
YW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAK
LSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBzZWxl
Y3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAKIHN0YXRpYyB2
b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2Fy
ZEV2ZW50KiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250454</attachid>
            <date>2015-04-09 13:10:13 -0700</date>
            <delta_ts>2015-04-09 13:20:02 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>227347</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDQ3M2FmZjI4YzUwZWQ5ZGMyYmM1N2YzYjhjNzUxYjY4MTQ0NDYxODMKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjAz
OjA0IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWFkODk5OS4uYWVmMjYxOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTA0LTA4ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworCisgICAgICAgIEZp
eCBmYWlsaW5nIHRlc3QKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hh
bmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDQtMDggIEJlbSBKb25lcy1CZXkg
IDxiam9uZXNiZUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFwZXNdIFByb3Blcmx5IGhh
bmRsZSBuZWdhdGl2ZSByZWZlcmVuY2UgYm94IHdpZHRocyBhbmQgY2VudGVyIGNvb3JkaW5hdGVz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJp
YS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2NDZkZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMt
Zm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApA
QCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQogICAgICAgICAvLyBUcmlnZ2VyIHZhbHVl
IGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxz
ZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IGF4VGV4dGJv
eC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAg
IHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRB
dEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5v
dGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAgICAgc2hvdWxk
QmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggYjFlMWE2Ny4uOTMyOWI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0NzQs
MTAgKzE0NzQsMTQgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJlYWtCbG9j
a3F1b3RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAog
ICAgIGVkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAg
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9u
QWx0ZXJuYXRpdmUuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorICAgIGVk
aXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdENvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCiAgICAgZWRpdGluZy9FZGl0b3IuY3Bw
CkBAIC0xNDk2LDExICsxNTAwLDE1IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5n
L01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvTW9kaWZ5U2Vs
ZWN0aW9uTGlzdExldmVsLmNwcAogICAgIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CisgICAgZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorICAgIGVkaXRp
bmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZUZvcm1hdENv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVu
ZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJp
YnV0ZUNvbW1hbmQuY3BwCkBAIC0xNTE2LDYgKzE1MjQsMTAgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIGVkaXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
VGV4dEl0ZXJhdG9yLmNwcAogICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAgICBlZGl0
aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9VbmxpbmtDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
VmlzaWJsZVBvc2l0aW9uLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA0OGQ0NjUzNDMuLjg0ZmM5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDcg
QEAKKzIwMTUtMDQtMDggIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgVGVzdHMgYXJlIHN0aWxsIGluIGRldmVsb3BtZW50
LiBTdWJtaXR0aW5nIHBhdGNoIGVhcmx5IGZvciBmZWVkYmFjay4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNh
bml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
VGV4dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVk
VmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNl
bWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLmg6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBlZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRo
b3V0TmV3bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNl
bGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlv
bkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgor
ICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0
SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbik6CisKIDIwMTUtMDQtMDgg
IEJlbSBKb25lcy1CZXkgIDxiam9uZXNiZUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFw
ZXNdIFByb3Blcmx5IGhhbmRsZSBuZWdhdGl2ZSByZWZlcmVuY2UgYm94IHdpZHRocyBhbmQgY2Vu
dGVyIGNvb3JkaW5hdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagppbmRleCBkZWNkZDUzLi5jZTFkMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0MzkzLDYgKzE0MzkzLDM0IEBA
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgpAQCAtMTQ0NDksNiArMTQ0NzcsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NzMwLDYgKzE0Nzg2LDM0IEBA
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KQEAgLTE1MDI0LDYgKzE1MTM2LDYyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5LDEwICsyMTIzNywxNCBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVha0Jsb2NrcXVvdGVDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENvbXBvc2l0ZUVk
aXRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0
ZUxpbmtDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQWx0ZXJu
YXRpdmUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9u
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBAIC0yMTA5OSwxMCArMjEy
NzEsMTQgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTWVyZ2VJZGVudGlj
YWxFbGVtZW50c0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIiAvPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXROb2RlQXR0cmlidXRlQ29tbWFu
ZC5oIiAvPgpAQCAtMjExMjEsNiArMjEyOTcsMTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFZpc2libGVQb3NpdGlvbi5oIiAvPgpAQCAtMjE3ODMsNCArMjE5NjMs
NCBAQAogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICAgIDxJbXBv
cnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6YXRpb25zXG1hc20udGFy
Z2V0cyIgLz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMwYTY2Ni4uM2Y3NDJhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM0NTAs
NiArMzQ1NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CiAgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xD
b21waWxlPgpAQCAtMzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAt
MzU3Niw2ICszNjAwLDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMDU2OSw2ICsxMDYw
NSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29t
bWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiPgorICAgICAg
PEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYgKzEwNzA3LDEyIEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQu
aCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAg
LTEwNzI1LDYgKzEwNzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFR5cGluZ0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUzMyw0IEBACiAgICAgICA8
RmlsdGVyPnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4KICAgPC9JdGVtR3JvdXA+
Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDU3ZjRjMWEuLjc4NDExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNzksMTIgKzYzNzksMjIgQEAKIAkJRjQ3ODc1NTUx
OTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRB
Mjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4
QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyog
U3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNw
cCAqLzsgfTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0Rjcx
NTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBG
b3JtQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBG
b3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07
CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkx
NUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1
MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2
IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAw
NjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NDNENjAxMUFDQjBD
ODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlG
NTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4
REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1
NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJE
MDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4
dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9
OwpAQCAtNjQzNCwxMiArNjQ0NCwyNiBAQAogCQlGNTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyog
VVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJ
CUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNF
RjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VG
MjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmgg
Ki87IH07CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIx
QUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5
MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1
Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUxMTVDRkIyMDMw
MDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICov
OyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICov
OyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlD
OTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07
CisJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsg
fTsKIAkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1
MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVC
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAw
MDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJC
MTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2
MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VB
NzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlG
NUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NF
MDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZG
Q0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyog
SFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEg
LyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRh
TGlzdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTE0MDA3LDYgKzE0MDMxLDggQEAKIAkJRjQ3ODc1NTMx
OTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAv
KiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Ny
b2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNC
MTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHls
ZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2
Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250
cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250
cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJE
QzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMTksOCArMTQwNDUsMTYgQEAKIAkJRjUy
M0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJE
RTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBF
bXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQjFB
Q0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAw
NjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNE
N0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQwNzAsNiArMTQxMDQsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEy
RDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVUkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNE
QUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVB
NDEyMiAvKiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFF
QTQxMjIgLyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUz
QTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA4MCw4ICsxNDEyMCwxNiBAQAog
CQlGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAg
LyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjEx
IC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUx
MkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAv
KiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0
YUxpc3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgw
RkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY5Nyw2ICsxNzc0NSwxMCBAQAogCQkJ
CTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAog
CQkJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8s
CiAJCQkJRDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8s
CisJCQkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8q
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMw
MDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYw
OTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJ
CTkzMzA5RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
Ki8sCiAJCQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwICovLApAQCAtMTc3MDUsNiArMTc3NTcsMTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZG
MDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3
OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3
NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1
NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8s
CisJCQkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1
NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0
OTEwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZF
NTgxIC8qIEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEg
LyogRWRpdENvbW1hbmQuaCAqLywKQEAgLTE3NzUxLDYgKzE3ODA3LDEwIEBACiAJCQkJQzZENzRB
RDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJ
CTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmgg
Ki8sCisJCQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0
IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1
NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1By
b3BlcnR5Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJl
bW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQz
RiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzYxLDYgKzE3ODIxLDEwIEBA
CiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRl
cmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5k
ZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNF
MDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlG
NTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAv
KiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4
MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlE
QkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAg
LTE3Nzk2LDYgKzE3ODYwLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRl
eHRJdGVyYXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8q
IFR5cGluZ0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBU
eXBpbmdDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVB
NTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAqLywKKwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJ
CQkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9T
dGVwLmggKi8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQu
Y3BwICovLAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmgg
Ki8sCkBAIC0yMzY5MCw2ICsyMzc2Miw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0Ey
IC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4
MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlE
RDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ5Myw2ICsyNDU2Niw3IEBACiAJCQkJMzEw
NjAzNzkxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmls
dGVyVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAw
QkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5
NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9N
Q1NTS2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2
Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTZGRTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFs
LmggaW4gSGVhZGVycyAqLywKQEAgLTI0ODE2LDYgKzI0ODkwLDcgQEAKIAkJCQlBMTlEOTM0QjFB
QTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5w
dXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4
NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTA0NSw2ICsyNTEyMCw3IEBACiAJCQkJRkRGN0U5QzQx
M0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRp
b0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0
ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDU0LDYgKzI1MTMwLDcgQEAKIAkJCQlC
RThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRl
RXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMTI0RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2Fk
RXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNzMsNiArMjUyNTAsNyBAQAogCQkJCUZEQTE1
RUFDMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MThGNTAwMjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MThGNTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1
IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMw
MDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4
ODMyMkZDMDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU2
MTQsNiArMjU2OTIsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4
MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2Fk
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3
MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNjc5NSw2ICsyNjg3NCw3IEBACiAJCQkJQjJDM0RBM0MwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RB
M0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjJBRkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQw
MEVGNkYyNiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJD
M0RBNDIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjg0OCw2ICsyNjkyOCw3IEBACiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVB
MjYyIC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRF
NzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYw
QjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQy
NCAvKiBUaWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZE
RUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlD
MTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk3Miwx
MiArMjcwNTMsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9u
RGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEz
MkYwRUNDMDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1NkM1QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyog
V2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVF
NTkwMDFFOUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2
OUREQTE2MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMw
OTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkw
MDFFOUFCQyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
NDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4
dHJhcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzAxMCw2ICsyNzA5Myw3IEBACiAJCQkJNkU0RTkx
QUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29u
dGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjgg
LyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFE
M0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJH
TERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc1Miw2ICsyNzgzNiw3IEBACiAJ
CQkJNkY5OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3Jp
ZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5
RjFGMDA1MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1
QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYy
MDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBF
NkNGRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI3ODI5LDYgKzI3OTE0LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyog
RGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEy
MEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFG
NDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTU5MzA5QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI3OTY1LDYgKzI4MDUxLDcgQEAKIAkJCQk4NUVDQkVGNjBB
QTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk4NURGODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAv
KiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1
RjMyQUVGMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25F
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8q
IERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMjgxMTMsNiAr
MjgyMDAsNyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RP
cGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUy
QkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5
NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4
ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVF
OEI4QTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI4MjIzLDYgKzI4MzExLDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2
MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcy
MEIwQTAxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3
QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2
MjUyRTE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI4MjQzLDYgKzI4MzMyLDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUz
MDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgz
RTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFB
OUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE3OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI4NDIyLDYgKzI4NTEyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZC
OUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIz
REMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0yODg4MCw2ICsyODk3MSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAw
QkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAx
MUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5n
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUy
MTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0I3MEQ2QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRl
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODkxNCw2ICsyOTAwNiw3IEBACiAJCQkJMDc5
NjlEQkIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1
ODgwMEFCREQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4
NDIgLyogSlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMx
MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yOTY5MCw2ICsyOTc4Myw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0
RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcz
Nzk0REQxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcz
QkUzNTAxN0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VF
MDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
Mjk4NjcsNiArMjk5NjEsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxU
cmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBD
QzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUz
MUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5
QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYy
RTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMwMzcxLDYgKzMwNDY2LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYg
LyogV0tHcmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERB
NjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4
MzAwREE2M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2
RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1h
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBX
b3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi41ZTEyNzNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwg
MjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmpl
Y3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3Vt
ZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9i
amVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIwIEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAg
Y2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBB
WE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0
b3AoKTsKKworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRl
bmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNh
biBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRp
b24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQg
dGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5vdGUgOiBub3Rp
ZmljYXRpb25zKQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oc3RkOjpnZXQ8MD4obm90ZSkuZ2V0KCksIHN0ZDo6Z2V0PDE+KG5vdGUpLCBzdGQ6OmdldDwy
Pihub3RlKSwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2VuZGlmCit9CiAgICAgCiB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhOb3Rp
ZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBv
c3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjUsMjIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90
aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNl
cnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9iamVj
dENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQp
Cit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRmKCJF
ZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
cHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChp
bnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAg
ICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVu
a25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJpbnRm
KCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAg
cHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJbnNl
cnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0
OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3RlIik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVj
dGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25V
bmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAg
ICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHByaW50
ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikg
eworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAg
ICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6Cisg
ICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAg
ICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAgICAg
ICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAg
cHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBwcmlu
dGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsKKyAg
ICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0
U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBt
X3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQorICAg
ICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKwogICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmln
aHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShu
b2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENo
YW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmotPmlz
UGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7
CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9i
aiwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUt
PnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0
T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5VU0VE
X1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQo
KTsKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGJvb2wgc2FuaXRpemVQYXNzd29y
ZFRleHQoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqLCBTdHJpbmcgJnRleHQsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKG9iai5pc1Bhc3N3b3JkRmll
bGQoKSB8fCBvYmouaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICB0ZXh0
ID0gb2JqLnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCktPnBhc3N3b3Jk
RmllbGRWYWx1ZSgpLnN1YnN0cmluZyhwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0
ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQubGVuZ3RoKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHR5
cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRP
YmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRP
ckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTdHJpbmcgc2FuaXRpemVk
VGV4dCA9IHRleHQ7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29y
ZFRleHQoKm9iaiwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pKSB7CisgICAgICAgICAgICBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKG9iai0+b2Jz
ZXJ2YWJsZU9iamVjdCgpLCB0eXBlLCBzYW5pdGl6ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAo
IW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAg
ICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNl
cnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgc2FuaXRpemVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBk
ZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGlu
c2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VS
VChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIFN0cmluZyBzYW5pdGl6ZWREZWxldGVkVGV4dCA9IGRlbGV0ZWRUZXh0OworICAgIFN0
cmluZyBzYW5pdGl6ZWRJbnNlcnRlZFRleHQgPSBpbnNlcnRlZFRleHQ7CisgICAgaWYgKG9iaikg
eworICAgICAgICBpZiAoc2FuaXRpemVQYXNzd29yZFRleHQoKm9iaiwgc2FuaXRpemVkSW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25z
VG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNlcnZhYmxlT2JqZWN0KCksIGlu
c2VydGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCkpOworICAgICAgICAgICAgaWYgKCFt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2
YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlwZSwgc2FuaXRpemVkRGVsZXRlZFRleHQsIGluc2Vy
dGlvblR5cGUsIHNhbml0aXplZEluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRU
eXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVk
aXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBv
c2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0
ZWRUZXh0KTsKKyNlbmRpZgogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2
ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50
KQpAQCAtMTA4NCw2ICsxMzAzLDE1IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9k
ZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0
Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqcm9v
dE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAocm9vdE9iamVjdC0+
aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgpOwor
ICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6
OkFYQXR0cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9j
YWNoZShjYWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKaW5kZXggYmZhOTI3Ny4uYmQyYzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywg
MjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDk5IEBA
IHB1YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9u
LCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3Vz
bHkpOwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9j
dW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RU
eXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAg
ICAgICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51bSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtu
b3duLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7Cisg
ICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEZWxl
dGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQs
IC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcsIC8v
IEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJ
bnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRl
IHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBhc3Rl
CisgICAgfTsKKworICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRleHQg
dmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3du
LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0gICAg
dm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwg
Ly8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhl
IHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBi
eSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBk
b2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9u
LgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxlY3Rp
b24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgewor
ICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBzZWxl
Y3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVsYXJp
dHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisKKyAg
ICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2VsZWN0
aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAg
ICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5r
bm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29s
IHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBz
ZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsg
fQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5n
ZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAg
ICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAg
ICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAg
ICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3luYyhz
eW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAg
dm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYK
KworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5n
ZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0g
QVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzMw
NSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFu
ZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5l
d0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQor
ICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAg
IEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFu
Z2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZl
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZl
bnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZv
aWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rl
cy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJv
b3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1h
cDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNo
TWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2
ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsK
ICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3Rp
ZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Q
b3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lcjsKKyAgICBWZWN0b3I8c3RkOjp0dXBsZTxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4s
IEFYVGV4dEVkaXRUeXBlLCBTdHJpbmc+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsK
KyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZv
aWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3Jl
YXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAg
LTI1MSw2ICszNzMsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAgICAg
QVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRl
Q2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDMyLDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0ln
bm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikg
eyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3Vt
ZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3Rp
ZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjNkNDVkM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVu
dC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgp
IGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0
RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2Fz
dDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAo
RWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8
SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNh
Y2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1h
Z2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgK
aW5kZXggM2U3NTcyZi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNz
d29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJ
bmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVs
ZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2
LDQgKzI2NDYsMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9h
cmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmls
aXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9k
ZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0
RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFk
b3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkK
KyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVs
ZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjJlOTc3NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2
ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFn
ZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFz
c3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVj
dCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJu
IHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAy
ZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgs
MTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRU
ZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlz
TmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbklu
dGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGgg
PiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1
ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBk
b3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVs
ZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3Rh
cnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+
ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlv
bihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciks
Ci0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3Np
dGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0
aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9u
SXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJh
bmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5j
aG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2Vs
ZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNv
bnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2Uu
ZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVj
dGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3Ro
LCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5n
ZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNo
ZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
LCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRv
KHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAg
IFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5z
dGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0
NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFj
Y2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAg
ICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAg
ICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciog
YWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9s
bGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYWI3OTM0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVj
dENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwog
ICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlm
aWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3
Ny4uNjA1MjNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0
ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBl
S2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJB
WFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHki
CisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lm
bmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgi
CisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1h
cmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBA
IkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRU
ZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0
aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53
cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25d
OwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAg
IGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmop
CisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0g
W1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlm
IChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
U3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0
ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50
LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
OgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAg
ICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25d
ID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGlu
dGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFy
aXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlz
Tm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVy
KCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVT
dGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVd
ID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290
V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlv
bldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWRO
b3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAv
LyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAg
IFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFy
eSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nICp0
ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQg
bGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGlu
aXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlw
ZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5n
dGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAg
IGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgp
OworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3Ro
XTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxs
KCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1h
cmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAg
ICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAg
ICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0
YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBp
bml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0
ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlm
IChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnko
b2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIg
PSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53
cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5m
byh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlcklu
Zm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtu
b3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmls
aXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNh
dGlvbl07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUg
ZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBp
bnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdl
YkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFi
bGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5p
dFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011
dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50
Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9u
KSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlv
bmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2Vy
dGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRP
YmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3Jh
cHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVh
KCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVz
ZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1
c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQg
dG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vz
c2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90
aWZpY2F0aW9uXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFY
TG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAK
Ky0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNp
YmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBv
c2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjoo
Y29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNl
bmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwx
MCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29t
bWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1l
bnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpB
cHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1Jl
ZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50
LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmlu
Z0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRD
aGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhO
b2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0
cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5u
b2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29t
bWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQog
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUp
ID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGlu
Z1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsK
KyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTgg
Kzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJl
bnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5
bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5
IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdl
dCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhD
RVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6Omdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0Owor
fQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVu
ZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4p
OwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7
CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFp
bmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFl
ZTcuLjY3MjYwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1h
bmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxv
Y2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiAr
NTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRl
eHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21t
YW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJT
Y29wZWRFdmVudFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIzLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQs
IHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxk
LCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAog
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9k
ZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUz
MCw0NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5n
JiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBz
Y29wZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgs
IHNjb3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAo
IXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkg
PT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNl
cnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRl
ZFRleHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBS
ZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNl
bWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRl
eHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1h
bmQtPmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0
ICsxNTU0LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVs
ZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1h
bmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCkt
MV0tPmludGVudCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNDVkMzhhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAt
MzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsK
IGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9v
bCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQg
Q29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA1LDE4IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50
Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBi
b29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwg
Ym9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3Vw
ID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRl
ID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVm
PEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9k
ZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAg
ICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9
IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZv
aWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVm
Q2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBv
c2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0
cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4g
aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2Rl
PiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0
Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBT
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wg
dXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJ
bnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7Cisg
ICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0
VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxF
bGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNw
YWNlKCk7CkBAIC0xMzAsNiArMTM1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFp
bmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwg
UGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRp
b25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAg
ICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENv
bW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxh
Y2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
Y291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBs
YWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRl
eHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNp
Z25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNp
YWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBs
YWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitS
ZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRB
Y3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1Ymxp
YyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21h
cnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9v
bCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2Us
IGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUs
IG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBk
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNp
Z25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBj
b25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9s
ZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgog
I2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0
NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1f
Y291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZv
aWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1f
bm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQs
IG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAg
IC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4
dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlF
ZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zm
c2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7
CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9V
bmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05P
UkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50
KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5n
ZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVk
LCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9u
b2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9z
aXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQg
KzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYw
NS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0
ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
b1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVm
IE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
CiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1
bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAg
Kzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRB
Y3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0g
ICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4g
dGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNl
IHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24o
KSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmci
Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7
CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBz
dHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0y
NywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRl
ICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5k
LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xp
bmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9u
QWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0
ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGlu
ZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENv
bW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2Vy
dC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxp
ZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENv
bW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1h
cmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3Rh
cnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0
aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGlu
Z1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVm
aW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0
cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5z
ZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitS
ZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50
b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAt
MCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
IDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlv
bk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBt
YXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRD
b21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5v
ZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVF
ZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29t
bWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNh
Y2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAw
M2U2YzM3Li41Y2ExOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRf
aAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIK
ICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIHsgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAg
ICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsK
QEAgLTk3LDYgKzEwMCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2Vu
ZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9u
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKaW5kZXgg
ZGMzYWUzMy4uNmRlMTNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbElu
T25lLmNwcApAQCAtMzIsMTAgKzMyLDE0IEBACiAjaW5jbHVkZSA8QnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUg
PENyZWF0ZUxpbmtDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcD4KKyNpbmNsdWRlIDxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNp
bmNsdWRlIDxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxEZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHA+
CiAjaW5jbHVkZSA8RGljdGF0aW9uQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8RGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8RGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxFZGl0
aW5nU3R5bGUuY3BwPgogI2luY2x1ZGUgPEVkaXRvci5jcHA+CkBAIC01NCwxMSArNTgsMTUgQEAK
ICNpbmNsdWRlIDxNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8
TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcD4KICNpbmNsdWRlIDxNb3ZlU2VsZWN0aW9uQ29t
bWFuZC5jcHA+CisjaW5jbHVkZSA8UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA+Cisj
aW5jbHVkZSA8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5j
bHVkZSA8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVGb3Jt
YXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVk
ZSA8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJl
bmRlcmVkUG9zaXRpb24uY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUg
PFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxTZXROb2RlQXR0cmlidXRl
Q29tbWFuZC5jcHA+CkBAIC03Nyw2ICs4NSwxMCBAQAogI2luY2x1ZGUgPFRleHRJbnNlcnRpb25C
YXNlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VGV4dEl0ZXJhdG9yLmNwcD4KICNpbmNsdWRlIDxU
eXBpbmdDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA+Cisj
aW5jbHVkZSA8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxVbmxpbmtDb21t
YW5kLmNwcD4KICNpbmNsdWRlIDxWaXNpYmxlUG9zaXRpb24uY3BwPgogI2luY2x1ZGUgPFZpc2li
bGVTZWxlY3Rpb24uY3BwPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDcxMGFhMzku
LmMxNTNjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUu
aCIKQEAgLTM3NCwxMiArMzc1LDE1IEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9u
KFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBnCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxl
dGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewog
ICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgaWYgKGVkaXRpbmdBY3Rpb24gPT0gRWRpdEFjdGlvbkN1
dCkKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGVsc2UKKyAgICAgICAgYXBwbHlDb21tYW5k
KEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0
ZSkpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTEwMDEsNyArMTAwNSw3IEBA
IHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21t
YW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhp
cyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2UgdGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNl
c3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9
IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFtZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJp
Z2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9u
LCBvcHRpb25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9u
LCBvcHRpb25zLCBjbWQtPmludGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENo
YW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBj
b21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVk
aXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjYsNyArMTI3MCw3IEBAIHZvaWQgRWRpdG9y
OjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAgICBk
aWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0
aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5
T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5T
bWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBh
c3RlKCkKQEAgLTI4NTAsNyArMjg1NCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlv
blBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21p
c3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lk
IEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlv
bk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVu
IGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQo
KS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg2Miw3
ICsyODY2LDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJv
YmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBS
YW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBz
ZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1l
LnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VE
T01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVk
aXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFm
ZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUg
d2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJr
ZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li5kNmM1ZTM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rp
b25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGlu
Z0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5n
ZWFibGVTdHlsZXMoKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU2V0
Q29tcG9zaXRpb25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9
OwogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9zaXRpb25N
b2RlKTsKIAotICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMpOworICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBlbnVtIEVkaXRvckFjdGlv
blNwZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFjdGlvbiB9OwogICAgIHZvaWQgcGVyZm9ybUN1
dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAppbmRleCBhOGYxYjQxLi5lNGQ1M2ZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTM4LDggKzEzOCw3IEBAIEVsZW1lbnQq
IEZyYW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBj
b25zdAogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwg
YWxpZ24pCiB7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVp
dmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rp
b24uaXNEaXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
dXNlclRyaWdnZXJlZCksIGFsaWduKTsKKyAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0
eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucyh1c2VyVHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbik7
CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24g
JmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2Vy
VHJpZ2dlcmVkKQpAQCAtMjU0LDcgKzI1MywxNiBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcGFzcwog
ICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3VsZENoYW5nZVNlbGVj
dGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2
ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAgICAKKyAg
ICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7CisgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKG5l
d1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQs
IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwg
U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBU
ZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcgQEAgYm9vbCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBW
aXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0g
bmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJh
bWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsK
ICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVj
dGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBu
ZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
b3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rp
b25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywg
ZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOwogICAgICAg
ICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFib3ZlIHNldCBzZWxl
Y3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQgYnkKICAgICAgICAg
ICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlTZWxlY3RlZCwgYnV0
IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UKICAgICAgICAgICAg
ICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRo
ZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3IEBAIGJvb2wgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNl
bGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBv
cHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1
cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsK
ICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9u
LCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1cm47CkBAIC0zNDEs
NyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW8KICAgICBpZiAoZnJhbWVWaWV3ICYm
IGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50
ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9y
U3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rp
b246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAgICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rp
b24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgaWYgKCFtX3Bl
bmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3ICszODgsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQogICAgICAg
ICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KIAotICAg
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiB9CiAKIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKQpAQCAtMTAxOCw3ICsxMDI2
LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dh
cmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRl
eHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0g
TGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51
bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZy
YW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7
CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBm
YWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7
CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAgICAgICAgICAg
aWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgICAgIGZsaXAg
PSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAgIHN3
aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJv
dW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFyYWdy
YXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50
R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRh
cnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0
ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRl
bmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJh
Z3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFy
eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFy
eToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
c3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2Ug
RGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVj
dGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25C
ZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGly
ZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9v
bCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJl
Y3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dl
cmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc0LDYgKzExNTUsMTEgQEAgYm9vbCBGcmFtZVNl
bGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGly
ZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9u
TW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1f
ZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAg
Y2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwg
ZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFi
b3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAg
ICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9z
c2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlw
ZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzA3
LDggKzE3OTMsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZp
c2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZy
b21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlm
IChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBhdXRvIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6
VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNj
b250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCkp
OworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBh
ZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjAsNyArMjUwOCw3IEBAIFZpc2libGVT
ZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxl
Y3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZy
YW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dy
YW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJz
b3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBm
cmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3Np
dGlvbiBzdGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQ
b3NpdGlvbiBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjNjMzE5ODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIs
MTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJU
eXBpbmdTdHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxl
Y3RFdmVudCkgOiAwKTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkK
KyAgICB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0
aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3Np
dGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsK
IAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9s
bElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25J
bnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRl
ZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9z
ZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQg
fTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURl
dGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRp
b25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMw
NCwxMCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxv
Y2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
OworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rp
b25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5
KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50
ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAg
ICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1D
b250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0
eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAppbmRleCA1Mzk0ZTdlLi5hZWM0NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0
LmgiCkBAIC01MCw2ICs1MSwxMSBAQCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VS
VCghbV90ZXh0LmlzRW1wdHkoKSk7CiB9CiAKK1N0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6aW5zZXJ0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRF
Y2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBA
IC02NSw5ICs3MSw5IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgp
CiAgICAgfQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9S
RV9FWENFUFRJT04pOwotCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQs
IG1fb2Zmc2V0LCBtX3RleHQpOworICAgIAorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTgyLDEwICs4OCwxMCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0
dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVh
bGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9u
KFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEo
bV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC05Nyw0
ICsxMDMsMTQgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29t
bWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAzMTBi
YmIzLi5lMzNmNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOSArNDAsMTEgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkpOwogICAgIH0KIAotcHJpdmF0ZToKKyAgICBTdHJpbmcmIGluc2VydGVkVGV4dCgp
OworcHJvdGVjdGVkOgogICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAKK3ByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNTEsNyArNTQs
MTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBs
eUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVu
c2lnbmVkIG1fb2Zmc2V0OwogICAgIFN0cmluZyBtX3RleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGQxNmI1ZDYuLjhk
NWVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCkBAIC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxh
Y2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTU3LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGls
ZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGls
ZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQt
Pm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hp
bGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDAp
OworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxk
LmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNp
YmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVk
IHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENo
aWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxk
LT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENo
aWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkp
LCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAw
KTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGls
ZC5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBW
aXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5y
ZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC04MSw0ICs4NywxNCBAQCB2b2lkIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9k
ZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXgg
ZDRiNzYyZC4uOGQ5YzYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKIAorI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0zOCwxNiArMzksMjAgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBj
aGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hp
bGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwog
Citwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogICAgIAogI2lmbmRlZiBOREVCVUcKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlk
ZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0
cjxOb2RlPiBtX2luc2VydENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAg
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmgKaW5kZXggZjEwZDJmZS4uYmZhMTgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNTksMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1h
cmtlclN1cHBsaWVyKSk7CiAgICAgfQogCi1wcml2YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1h
bmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCBSZWJhbGFuY2VUeXBlKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2Vy
U3VwcGxpZXI+KTsKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2
YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFhY2FiYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4g
cmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
aW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNTU5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3Jl
LAorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRU
b0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVm
UHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0N2E3ZjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKwor
I2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQorewor
fQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOGU2YTM1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KyNkZWZpbmUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkg
b3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAxN2I4MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3Vu
dCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQodGV4dCwgb2Zmc2V0LCBjb3VudCkK
K3sKK30KKwordm9pZCBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZDMwZmRiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3Mg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsK
KyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmM3OGMwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkK
KyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQorICAg
ICwgbV9kZWxldGVkVGV4dChkZWxldGVkVGV4dCkKK3sKK30KKwordm9pZCBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9k
ZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZVBhc3RlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2Fj
aGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
SW5zZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhY2hlLT5w
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCByZXBsYWNlQXBwbHlFZGl0VHlwZSgpLCB0
ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxh
Y2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnRlbnQoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyZXBsYWNlQXBwbHlFZGl0
VHlwZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5MGMxYzQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVi
bGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4
dCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVw
bGFjZUFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCgpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIG92ZXJyaWRlOworCisgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCmluZGV4IGZiMzg4MGMuLjMwYzQ3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJCcmVha0Js
b2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2lu
Y2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBA
IC00NCwxNCArNDUsMjAgQEAKICNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRl
ICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBDb21t
YW5kLmgiCiAjaW5jbHVkZSAiU21hcnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0
aWVzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2lu
Y2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5p
dHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAt
MTQ4Miw2ICsxNDg5LDMwIEBAIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnVwZGF0ZU5v
ZGVzSW5zZXJ0ZWQoTm9kZSAqbm9kZSkKIAogICAgIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQgPSBs
YXN0UG9zaXRpb25Jbk9yQWZ0ZXJOb2RlKG5vZGUtPmxhc3REZXNjZW5kYW50KCkpOwogfQorICAg
IAorUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2Rl
PiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24p
IHsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3Rl
OgorICAgICAgICByZXR1cm4gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGlu
c2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgfQorfQorCitSZWY8RWRpdENvbW1hbmQ+IFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNl
cnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgc3dpdGNoIChtX2Vk
aXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6
CisgICAgICAgIHJldHVybiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4
dCk7CisgICAgfQorfQogCiAvLyBEdXJpbmcgc2ltcGxlIHBhc3Rlcywgd2hlcmUgd2UncmUganVz
dCBwYXN0aW5nIGEgdGV4dCBub2RlIGludG8gYSBydW4gb2YgdGV4dCwgd2UgaW5zZXJ0IHRoZSB0
ZXh0IG5vZGUKIC8vIGRpcmVjdGx5IGludG8gdGhlIHRleHQgbm9kZSB0aGF0IGhvbGRzIHRoZSBz
ZWxlY3Rpb24uICBUaGlzIGlzIG11Y2ggZmFzdGVyIHRoYW4gdGhlIGdlbmVyYWxpemVkIGNvZGUg
aW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
aAppbmRleCBkODdjM2ZmLi5lMjZhOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0xMTEsNiArMTExLDkgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgcGVyZm9ybVRyaXZpYWxSZXBsYWNlKGNvbnN0IFJlcGxhY2VtZW50RnJhZ21l
bnQmKTsKIAorICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1h
bmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKwogICAgIFBv
c2l0aW9uIG1fc3RhcnRPZkluc2VydGVkQ29udGVudDsKICAgICBQb3NpdGlvbiBtX2VuZE9mSW5z
ZXJ0ZWRDb250ZW50OwogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1faW5zZXJ0aW9uU3R5bGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCA5MzI5Y2RmLi44
YzBmYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQw
LDYgKzQwLDcgQEAKICNpbmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVy
RWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAi
aHRtbGVkaXRpbmcuaCIKIApAQCAtMzczLDcgKzM3NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQog
CiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3Qg
U3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKLSAgICBSZWZQdHI8SW5z
ZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3Vt
ZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENv
bW1hbmQ+IGNvbW1hbmQgPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKICAgICAgICAgbV9jb21wb3NpdGlvblR5cGUg
PT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFk
aW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VB
bGxXaGl0ZXNwYWNlcyk7CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBl
bmRpbmdTZWxlY3Rpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zZTQyMjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
dGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBiZDE0
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1Ymxp
YyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
Jik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjI0NjA3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNzQ2MTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUg
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGls
ZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxk
VG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWIxNjY1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2Vy
dFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5
cGUgcmViYWxhbmNlVHlwZSkKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpCit7Cit9CisKK1JlZjxFZGl0Q29t
bWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwg
Y29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4
dCwgZGVsZXRlZFRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNzQ5M2I1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJ
bnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydFRleHRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0g
ZmFsc2UsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRU
cmFpbGluZ1doaXRlc3BhY2VzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4
dCwgcmViYWxhbmNlVHlwZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIGJvb2wsIFJlYmFsYW5jZVR5cGUp
OworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZGQ1MzEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkKK3sKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45NmMyZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2
NS4uZTY5NWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVT
ZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2Vs
ZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0
Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9
CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewog
ICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxl
Y3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbQppbmRleCA5YmRlZTFjLi4wN2UyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBD
R1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5k
aWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlv
bjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlz
Tm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0
KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3Rl
ZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAgIGNhY2hl
LT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVw
cmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYgIVBMQVRG
T1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uNWJmYjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4
LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc1Rl
eHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5l
clRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSBp
bm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0g
dmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJU
ZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQTEFU
Rk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgewog
ICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlv
bih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBh
cmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpbm5lclRleHQtPnNldElubmVyVGV4
dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgaWYgKHZhbHVlLmVuZHNX
aXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQogICAgICAgICAgICAgaW5uZXJUZXh0
LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9O
T19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NP
QSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAgICAgICAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlv
dXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNo
b3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFs
dWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
aW5kZXggNDYwNTFjNi4uYzUyODhiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMzE4NCw3ICszMTg0LDcgQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2Vs
ZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dl
cmVkKSk7CisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlv
bihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSkp
OwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1l
JiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250456</attachid>
            <date>2015-04-09 13:20:02 -0700</date>
            <delta_ts>2015-04-10 18:29:06 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>227289</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDUwMzMxZTYyODE2N2U5NDdmN2ZjNzVhYzdmYWNlY2NjMDVjNzZhOGMKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTBkNGI4Zi4uMzgzMDc2NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE1LTA0LTA5ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5n
ZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorCiAyMDE1LTA0LTA5ICBIdW5zZW9wIEplb25nICA8
aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBmYXN0L2Nzcy92ZXJ0aWNh
bC10ZXh0LW92ZXJmbG93LWVsbGlwc2lzLXRleHQtYWxpZ24tY2VudGVyLmh0bWwgaXMgZmFpbGlu
ZyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Nl
bGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1h
cmlhLXRleHRib3guaHRtbAppbmRleCBhMWU4NDNlLi4xMjY0NmRmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdl
cy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1s
CkBAIC00Nyw3ICs0Nyw4IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIC8vIFRyaWdnZXIgdmFs
dWUgY2hhbmdlLgogICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZh
bHNlLCAiaGVsbG8gIik7CiAKLSAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gYXhUZXh0
Ym94LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAg
ICAgdmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGls
ZEF0SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRk
Tm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwogICAgICAgICBzaG91
bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBiMWUxYTY3Li45MzI5YjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ3
NCwxMCArMTQ3NCwxNCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9CcmVha0Js
b2NrcXVvdGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRp
b25BbHRlcm5hdGl2ZS5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisgICAg
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKICAgICBlZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTE0OTYsMTEgKzE1MDAsMTUgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRp
bmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9Nb2RpZnlT
ZWxlY3Rpb25MaXN0TGV2ZWwuY3BwCiAgICAgZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlRm9ybWF0
Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9S
ZW5kZXJlZFBvc2l0aW9uLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcAogICAgIGVk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0
cmlidXRlQ29tbWFuZC5jcHAKQEAgLTE1MTYsNiArMTUyNCwxMCBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgZWRpdGluZy9UZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQuY3BwCiAgICAgZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwCiAgICAgZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorICAgIGVk
aXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1VubGlua0NvbW1hbmQuY3BwCiAgICAgZWRpdGlu
Zy9WaXNpYmxlUG9zaXRpb24uY3BwCiAgICAgZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDJkMmY5YTQuLjNmOTZjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDgg
QEAKKzIwMTUtMDQtMDkgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgVGVzdHMgYXJlIHN0aWxsIGluIGRldmVsb3BtZW50
LiBTdWJtaXR0aW5nIHBhdGNoIGVhcmx5IGZvciBmZWVkYmFjay4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6Cisg
ICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnNh
bml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
VGV4dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVk
VmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNl
bWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLmg6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBlZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRo
b3V0TmV3bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRDb21tYW5kOjppbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ0FsbEluT25l
LmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVy
Zm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNl
bGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRT
ZWxlY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5z
ZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlF
ZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgor
ICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRp
dGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAg
ICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJ
bml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorCiAyMDE1LTA0LTA5ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBwYXJ0IG9mIDE4MjUxNjog
aXQgYnJva2UgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCmluZGV4IGRlY2RkNTMuLmNlMWQxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQzOTMsNiArMTQzOTMsMzQgQEAK
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC0xNDQ0OSw2ICsxNDQ3NywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ3MzAsNiArMTQ3ODYsMzQgQEAK
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0ODAwLDYgKzE0ODg0LDM0IEBACiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxl
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2Vf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhT
cGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgpAQCAtMTUwMjQsNiArMTUxMzYsNjIgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMjEwNjksMTAgKzIxMjM3LDE0IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEJyZWFrQmxvY2txdW90ZUNvbW1h
bmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ29tcG9zaXRlRWRp
dENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRl
TGlua0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25BbHRlcm5h
dGl2ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25D
b21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xFZGl0aW5nQmVoYXZpb3IuaCIgLz4KQEAgLTIxMDk5LDEwICsyMTI3
MSwxNCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNZXJnZUlkZW50aWNh
bEVsZW1lbnRzQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJl
bW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZW1vdmVOb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFNldE5vZGVBdHRyaWJ1dGVDb21tYW5k
LmgiIC8+CkBAIC0yMTEyMSw2ICsyMTI5NywxMCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xUZXh0SXRlcmF0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVmlzaWJsZVBvc2l0aW9uLmgiIC8+CkBAIC0yMTc4Myw0ICsyMTk2Myw0
IEBACiAgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgICAgPEltcG9y
dCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlvbnNcbWFzbS50YXJn
ZXRzIiAvPgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBiYzBhNjY2Li4zZjc0MmFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCkBAIC0zNDM4LDYgKzM0MzgsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgorICAgICAg
PEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzQ1MCw2
ICszNDU2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlv
bkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xFZGl0Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CkBAIC0zNTEzLDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC0zNTI4LDYgKzM1NDYsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0z
NTc2LDYgKzM2MDAsMTggQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwNTY5LDYgKzEwNjA1
LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtDb21t
YW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CkBAIC0xMDU4MSw2ICsxMDYyMywxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NTksNiArMTA3MDcsMTIgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpAQCAtMTA2NzEsNiArMTA3MjUsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAt
MTA3MjUsNiArMTA3ODUsMTggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
VHlwaW5nQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW4uaCI+CisgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTE1NDYxLDQgKzE1NTMzLDQgQEAKICAgICAgIDxG
aWx0ZXI+cGxhdGZvcm1cd2luPC9GaWx0ZXI+CiAgICAgPC9NQVNNPgogICA8L0l0ZW1Hcm91cD4K
LTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NTdmNGMxYS4uNzg0MTFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjM3OSwxMiArNjM3OSwyMiBAQAogCQlGNDc4NzU1NTE5
OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDc4NzU1MzE5OTgzQUZGMDAyNEEy
ODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi87IH07CiAJCUY0N0E1RTNFMTk1QjhD
OEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBT
dHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlGNDdBNUUzRjE5NUI4RTQ4MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3Bw
ICovOyB9OworCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjUwNjNDMUQxQUI3NTZEODAwOUFCNTU2IC8qIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OwogCQlGNTA2NjRGNzE1
N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZv
cm1Db250cm9sbGVyLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZGIC8qIEZv
cm1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAqLzsgfTsK
IAkJRjUxM0EzRUExNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTEzQTNFOTE1
RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsgfTsKIAkJRjUy
QUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYg
LyogRW1wdHlDbGllbnRzLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2RDVEIC8q
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDVGRTFBQ0IwOURBMDA2
MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8q
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU0M0Q2MDExQUNCMEM4
MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVE
IC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDYwMjFBQ0Iw
QzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVE
IC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLzsgfTsKIAkJRjU0NEY3ODgxNUNGQjJB
ODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9y
bUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9y
bUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi87IH07CisJCUY1
NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhE
QTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQUExQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBODFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjU1
QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDc5MTI1MUYxMkQwMDNF
RjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREFFMTI1MUYxMkQw
MDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0
SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25J
bnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi87IH07
CkBAIC02NDM0LDEyICs2NDQ0LDI2IEBACiAJCUY1NUIzRERFMTI1MUYxMkQwMDNFRjI2OSAvKiBV
UkxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLzsgfTsKIAkJ
RjU1QjNEREYxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUIxMjUxRjEyRDAwM0VG
MjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RFMDEyNTFGMTJEMDAzRUYy
NjkgLyogV2Vla0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCAq
LzsgfTsKKwkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovOyB9OworCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTc0REVEQjFB
Q0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3NERFRDkx
QUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCAqLzsgfTsKKwkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5jcHAgKi87IH07CisJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmggKi87IH07CiAJCUY1OTczREUwMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTczRERFMTVD
RkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMuaCAqLzsgfTsKIAkJRjU5NzNERTExNUNGQjIwMzAw
MjdGODA0IC8qIExvY2FsZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gKi87
IH07CiAJCUY1OUM5NUZGMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5
Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi87
IH07CiAJCUY1OUM5NjAwMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5
NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLzsgfTsK
KwkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovOyB9OworCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRD
b21tYW5kLmggKi87IH07CiAJCUY1QTE1NDI3MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9u
TWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovOyB9
OwogCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI2MTI3OTUz
NEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovOyB9OworCQlGNUE1Mjk1RDFBQ0NF
OEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUIx
QUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAqLzsgfTsKKwkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjVBNTI5NjExQUNDRUE3MDAw
NTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIx
MSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTYy
MUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NjAxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CiAJCUY1
QzA0MURBMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ3MEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQxREIwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBI
VE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CiAJCUY1QzA0MUUzMEZGQ0E5NkQwMDgzOUQ0QSAv
KiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFERTBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFM
aXN0RWxlbWVudC5oICovOyB9OwpAQCAtMTQwMDcsNiArMTQwMzEsOCBAQAogCQlGNDc4NzU1MzE5
OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBwYXRoID0gc3R5bGUvU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0Ix
OTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgcGF0aCA9IHN0eWxl
L1N0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUIxQUI3NTZD
QzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRy
b2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybUNvbnRy
b2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNjE1N0Y1MkRD
MDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRm9ybUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUx
M0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAxOSw4ICsxNDA0NSwxNiBAQAogCQlGNTIz
RDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QzMDQwMkRF
NDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyog
RW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVt
cHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZCMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQzFBQ0IwOURBMDA2
MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAv
KiBCYXNlVGV4dElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
YXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3
QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRvbklucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNDA3MCw2ICsxNDEwNCwxMiBAQAogCQlGNTVCM0RBQTEyNTFGMTJE
MDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFVSTElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RB
QjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vla0lucHV0VHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg0RjAwMkRFMzc1OTAxRUE0
MTIyIC8qIEN1cnNvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEN1cnNvck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NTRDMDJERTM3NTkwMUVB
NDEyMiAvKiBXZWJDb3JlRnJhbWVWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVGcmFtZVZpZXcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NjNBMDJERTNB
MTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE0MDgwLDggKzE0MTIwLDE2IEBACiAJ
CUY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5
Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAv
KiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBWYWxpZGF0aW9uTWVzc2FnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEg
LyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUYxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8q
IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRh
TGlzdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFEODBG
RkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1QzA0MUQ5MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVt
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3Njk3LDYgKzE3NzQ1LDEwIEBACiAJCQkJ
OTMzMDlEOEUwOTlFNjQ5MTAwNTZFNTgxIC8qIENvbXBvc2l0ZUVkaXRDb21tYW5kLmggKi8sCiAJ
CQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLywK
IAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLywK
KwkJCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyog
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q2MDAxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ4RjA5
OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEOTAwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LywKIAkJCQk5MzMwOUQ5MTA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAgKi8sCkBAIC0xNzcwNSw2ICsxNzc1NywxMCBAQAogCQkJCUNFQ0FERkMzMTUzNzc4RkYw
MEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCUNFQ0FERkM0MTUzNzc4
RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmNwcCAqLywKIAkJCQlDRUNBREZDNTE1Mzc3
OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1MDYzQzFBMUFCNzU2
Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAorCQkJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3
IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTMwOTlFNjQ5
MTAwNTZFNTgxIC8qIEVkaXRBY3Rpb24uaCAqLywKIAkJCQk5MzMwOUQ5NDA5OUU2NDkxMDA1NkU1
ODEgLyogRWRpdENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDk1MDk5RTY0OTEwMDU2RTU4MSAv
KiBFZGl0Q29tbWFuZC5oICovLApAQCAtMTc3NTEsNiArMTc4MDcsMTAgQEAKIAkJCQlDNkQ3NEFE
MzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8sCiAJCQkJ
OTMzMDlEQUMwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywK
IAkJCQk5MzMwOURBRDA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCAq
LywKKwkJCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQg
LyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU3
NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLywKIAkJCQk5MzMwOURCMTA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJv
cGVydHlDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURCMjA5OUU2NDkxMDA1NkU1ODEgLyogUmVt
b3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggKi8sCiAJCQkJRDA2QzBEOEUwQ0ZEMTE0NjAwNjVGNDNG
IC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovLApAQCAtMTc3NjEsNiArMTc4MjEsMTAgQEAK
IAkJCQk5MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVy
ZWRQb3NpdGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRl
cmVkUG9zaXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1
NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVEQTEwIC8q
IFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBGNDRFOTgx
MDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURC
QTA5OUU2NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAt
MTc3OTYsNiArMTc4NjAsMTQgQEAKIAkJCQk5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4
dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJCQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyog
VHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5
cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkIxQUNDQjNDMDAw
NjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNUE1
Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUIxQUNDRThFMDAwNTEy
QjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0
ZXAuaCAqLywKIAkJCQlEMDg2RkU5NzA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5j
cHAgKi8sCiAJCQkJRDA4NkZFOTYwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuaCAq
LywKQEAgLTIzNjkwLDYgKzIzNzYyLDcgQEAKIAkJCQk2QzU2OENCMTE5REFGRUEwMDA0MzBDQTIg
LyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEZBRjE0OTgw
MEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
QTRGNjU3MjFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURE
NzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBOEY2QkJEMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQThGNkJCRjBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDkzLDYgKzI0NTY2LDcgQEAKIAkJCQkzMTA2
MDM3OTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxMDYwMzdCMTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0
ZXJWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RDBFNkNDQzI4MDBC
RjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNUE1Mjk1
RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdGMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01D
U1NLZXlmcmFtZVJ1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODAwRTZD
Q0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxNkZFMDgyMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLApAQCAtMjQ4MTYsNiArMjQ4OTAsNyBAQAogCQkJCUExOUQ5MzRCMUFB
MTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAv
KiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0
OUIxMjM3MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTMzMDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDQ1LDYgKzI1MTIwLDcgQEAKIAkJCQlGREY3RTlDNDEz
QUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGREExNUVBMDEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUE2MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlv
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8q
IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEQTE1RUE4MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVBRTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0xpc3Rl
bmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVCMDEyQjAzRUUxMDAzQTU4M0EgLyogSlNB
dWRpb05vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNTQsNiArMjUxMzAsNyBAQAogCQkJCUJF
OEVGMDQzMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCUJFOEVGMDQ1MTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3NkZCOUZGOTE5QTczRTNBMDA0MjA1NjIgLyogSlNBdXRvY29tcGxldGVF
cnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxMjRGMDAwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RkE0NDU0RTg5OEYyRkMxNjhCQzM4QzEgLyogSlNCZWZvcmVVbmxvYWRF
dmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE3Myw2ICsyNTI1MCw3IEBACiAJCQkJRkRBMTVF
QUMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
OEY1MDAyMTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxOEY1MDA0MTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWRCdXR0b24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NDBFOUM0NzAzMDAwRDZGNzUg
LyogSlNHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjYwRTlDNDcwMzAw
MEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREE3QzFGMTg4
MzIyRkMwMEM5NTRCNSAvKiBKU0dlc3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTYx
NCw2ICsyNTY5Miw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcw
QThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2Nzk1LDYgKzI2ODc0LDcgQEAKIAkJCQlCMkMzREEzQzBEMDA2
QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEz
RTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjTGF0aW4xLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkFGRkM5QTBEMDBBNURGMDAzMDA3NEQgLyogVGV4dENvZGVjTWFjLmggaW4gSGVhZGVycyAq
LywKKwkJCQlGNTc0REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDAwRDAwNkMxRDAw
RUY2RjI2IC8qIFRleHRDb2RlY1VzZXJEZWZpbmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMz
REE0MjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI2ODQ4LDYgKzI2OTI4LDcgQEAKIAkJCQkxODVCQ0YyOTBGMzI3OUNFMDAwRUEy
NjIgLyogVGhyZWFkVGltZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QTE5NEE2NEU3
MDAxQ0JEMjQgLyogVGlsZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGNzJCRjBC
MTg3RkQ0NUMwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2QTQxOTRCNUMyMjAwMUNCRDI0
IC8qIFRpbGVDb3ZlcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGODlBNDIxNTE4RkRF
QTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUMx
OTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVHcmlkLmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTcyLDEy
ICsyNzA1MywxNCBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25E
aXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QTdBQTQzMTMy
RjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkxNzkxNUMwMDAzNDE4NCAvKiBX
ZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QTgwODI0NUU1
OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5
RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlERDYxNjMyMDI2QzAwN0MzOERGIC8qIFdlYkNvcmVG
dWxsU2NyZWVuV2FybmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTI3REVFMTRGMzA5
ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM1M0Q5MTExMTQzMTBDQzAwMEQ4MTdFIC8qIFdlYkNvcmVKU0NsaWVudERhdGEuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY1QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0NUU1OTAw
MUU5QUJDIC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE0
MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1MDA3QjQyQTkgLyogV2ViQ29yZU5TU3RyaW5nRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MDEwLDYgKzI3MDkzLDcgQEAKIAkJCQk2RTRFOTFB
RjEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwMUQzQ0Y4MzE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250
ZXh0R3JvdXAuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAv
KiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMUQz
Q0Y4NTE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250ZXh0T2JqZWN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMEVFMERGNjE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjgxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdM
RGVidWdTaGFkZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzUyLDYgKzI3ODM2LDcgQEAKIAkJ
CQk2Rjk5NUEzOTFBNzA4MzM3MDBBNzM1RjQgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNEM0UyNTIzMTgwNDZCQ0QwMEUyN0Y1NiAvKiBDU1NHcmlk
VGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCRjg5MDQ1MTY5RTlG
MUYwMDUyRDg2RSAvKiBDU1NHcm91cGluZ1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVB
NTI5NjExQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjNFNzZDMERBRTg4QTkwMDlGREM5MSAvKiBDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzOTNFNUZGMTUxQTk5RjIw
MDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2
Q0ZFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbWFnZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjc4MjksNiArMjc5MTQsNyBAQAogCQkJCTMxRkIxQTU4MTIwQTVEMDYwMERDMDJBMCAvKiBE
ZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIxQTVBMTIw
QTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTMxRkIxQTVDMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE0MDM3OUUxMjRCRUE3RjAwQUY0
MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTkzMDlBMTExMUY0QUU1ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjkzOTcyNjFBNEE1RkJEMDBFODM0OUQgLyogTkZBLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjc5NjUsNiArMjgwNTEsNyBAQAogCQkJCTg1RUNCRUY2MEFB
NzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTW9kRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTg1REY4MTJDMEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTg1QkE0RDE2MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RF
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2RDVEIC8q
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODVG
MzJBRUYwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnQubW0gaW4gU291
cmNlcyAqLywKIAkJCQk4NTQwNzU2QzBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVs
ZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGMkY5QzBBQTNDQUU1MDBBRDY0QzUgLyog
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODExMyw2ICsy
ODIwMCw3IEBACiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9w
ZW5HTENvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzQzMDRCMDE5MUFDOTA4MDAwRTJC
QzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NzI4Njk0
RTE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4
QjhBMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE3NUU4QjhDMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMjgyMjMsNiArMjgzMTEsNyBAQAogCQkJCTRGQjM5MEFEMTVFRjYx
RjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzIw
QjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc0NkFGMjMxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyNjE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjYy
NTJFMThERTFCMTUwMEEwN0MwNSAvKiBHZW9tZXRyeVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCMkFGRkM4MzBEMDBBNUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlTWFjLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjgyNDMsNiArMjgzMzIsNyBAQAogCQkJCUIyQTAxNUFBMEFGNkNENTMw
MDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERjc0ODNF
MThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyogSGlkZGVuSW5wdXRUeXBlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE5
RDlGMzE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTc5Q0UzNjE5NUNBQzdFMDAxOUMxOTggLyogSElER2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDOTREMTUzMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmNwcCBp
biBTb3VyY2VzICovLApAQCAtMjg0MjIsNiArMjg1MTIsNyBAQAogCQkJCTUxMDE5MkQxMThCNkI5
QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNE
QzExMjUxRjEyRDAwM0VGMjY5IC8qIEltYWdlSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA4OTU4MjU1MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMjc1MzU3QjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VNYWMubW0gaW4gU291
cmNlcyAqLywKQEAgLTI4ODgwLDYgKzI4OTcxLDcgQEAKIAkJCQlFNTFBODFERjE3Mjk4RDc3MDBC
RkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTlBNTg3MDEx
RTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY0M0M4NUYxODlFMTVBNjAwMDE5QUUyIC8qIEpTUGVyZm9ybWFuY2VUaW1pbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q2MDExQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRFQTYyNDYxNTIx
MDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
QjcwRDZCMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE4OUYwMUQxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4OTE0LDYgKzI5MDA2LDcgQEAKIAkJCQkwNzk2
OURCQjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDc5NjlEQkQxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdEMDdCMTQxODM0MTU4
ODAwQUJERDNDIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJGMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ1N0YXRzQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQzEx
N0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDc5NjlEQzMxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXNwb25zZS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI5NjkwLDYgKzI5NzgzLDcgQEAKIAkJCQkwNzM3OTRGRDE5RjU4NjRF
MDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzM3
OTRERDE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3OEUwOTBCMTdEMTRDRUUwMDQyMEFBMSAvKiBSVENQZWVyQ29ubmVjdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzNC
RTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3Mzc5NEYxMTlFRTM3QkIwMEU1QTA0NSAvKiBSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBDMTdEMTRDRUUw
MDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
OTg2Nyw2ICsyOTk2MSw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8qIFNRTFRy
YW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2RTU5MEND
NTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDc2NTMx
QjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5MDAxRTlB
QkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDN0ZBNjJF
MEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMzAzNzEsNiArMzA0NjYsNyBAQAogCQkJCUExNDgzMkMwMTg3RjY1NjYwMERBNjNBNiAv
KiBXS0dyYXBoaWNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzIxODdGNjVDNzAwREE2
M0E2IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDNTE4N0Y2Njgz
MDBEQTYzQTYgLyogV0tWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjUwNjNDMUQxQUI3NTZE
ODAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzc5OTE5OTYxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxlRm9ybWF0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNDM0NjQ1MEY1NDZBODIwMEIwRjFCQSAvKiBXb3Jr
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM4MjA4OTYxNDdEMzVGOTAwMTBCQzA2IC8qIFdv
cmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLjVlMTI3M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAy
MDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTI5LDYgKzEyOSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVj
dENhY2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1l
bnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2Jq
ZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTc0Miw2ICs3NDMsMjAgQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBj
aGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3Rv
cCgpOworCisgICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVu
Y3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2Fu
IGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlv
biBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0
aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmRO
b3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbm90ZSA6IG5vdGlm
aWNhdGlvbnMpCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihzdGQ6OmdldDwwPihub3RlKS5nZXQoKSwgc3RkOjpnZXQ8MT4obm90ZSksIHN0ZDo6Z2V0PDI+
KG5vdGUpLCBWaXNpYmxlUG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlm
aWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9z
dFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NSwyMjAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3Rp
ZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2Vy
dmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkK
K3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBwcmludGYoIkVk
aXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBw
cmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGlu
dGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5r
bm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICBwcmludGYo
IkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2VydCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBw
cmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBwcmludGYoIlR5cGluZ0luc2Vy
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6
CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHByaW50ZigiUGFzdGUiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVu
a25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246OiIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAg
ICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgcHJpbnRm
KCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBwcmludGYoIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAg
ICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoKKyAg
ICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAg
ICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAg
ICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAg
ICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAg
ICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAgICAgICAgICBw
cmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIHByaW50
ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgcHJpbnRmKCItU3luYyIpOworICAg
IHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQoreworICAgIG1f
dGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewog
ICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAg
ICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsKKworCiAgICAgc3RvcENhY2hpbmdD
b21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAotICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdo
dCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5v
ZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hh
bmdlLCBvZmZzZXQsIHRleHQpOworICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+aXNQ
YXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsK
KyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2Jq
LCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+
cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRP
YnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURf
UEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudCgp
OworfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgYm9vbCBzYW5pdGl6ZVBhc3N3b3Jk
VGV4dChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmosIFN0cmluZyAmdGV4dCwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAob2JqLmlzUGFzc3dvcmRGaWVs
ZCgpIHx8IG9iai5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgIHRleHQg
PSBvYmoucGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKS0+cGFzc3dvcmRG
aWVsZFZhbHVlKCkuc3Vic3RyaW5nKHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlw
ZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9i
amVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9y
Q3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN0cmluZyBzYW5pdGl6ZWRU
ZXh0ID0gdGV4dDsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3Jk
VGV4dCgqb2JqLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIG1fcGFz
c3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUob2JqLT5vYnNl
cnZhYmxlT2JqZWN0KCksIHR5cGUsIHNhbml0aXplZFRleHQpKTsKKyAgICAgICAgICAgIGlmICgh
bV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAg
ICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2Vy
dmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0eXBlLCBzYW5pdGl6ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQor
ICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9y
RWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJU
KGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9
PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAg
ICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgU3RyaW5nIHNhbml0aXplZERlbGV0ZWRUZXh0ID0gZGVsZXRlZFRleHQ7CisgICAgU3Ry
aW5nIHNhbml0aXplZEluc2VydGVkVGV4dCA9IGluc2VydGVkVGV4dDsKKyAgICBpZiAob2JqKSB7
CisgICAgICAgIGlmIChzYW5pdGl6ZVBhc3N3b3JkVGV4dCgqb2JqLCBzYW5pdGl6ZWRJbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKSkgeworICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZShvYmotPm9ic2VydmFibGVPYmplY3QoKSwgaW5z
ZXJ0aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0KSk7CisgICAgICAgICAgICBpZiAoIW1f
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgICAg
ICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBzYW5pdGl6ZWREZWxldGVkVGV4dCwgaW5zZXJ0
aW9uVHlwZSwgc2FuaXRpemVkSW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5
cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRp
dGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9z
aXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRl
ZFRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQp
CkBAIC0xMDg0LDYgKzEzMDMsMTUgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2Rl
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RD
YWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290
T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChyb290T2JqZWN0LT5p
c0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc+KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7Cisg
ICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6
QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2Nh
Y2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAppbmRleCBiZmE5Mjc3Li5iZDJjNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksOTkgQEAg
cHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNs
eSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1
bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5
cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d24sCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorICAgIH07CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAg
ICAgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgICAgICBBWFRleHRFZGl0VHlwZURlbGV0
ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUluc2VydCwg
Ly8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8g
SW5zZXJ0IHZpYSB0eXBpbmcKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24sIC8vIElu
c2VydCB2aWEgZGljdGF0aW9uCisgICAgICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUg
dmlhIEN1dAorICAgICAgICBBWFRleHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUK
KyAgICB9OworCisgICAgLy8gU2ltcGxlIHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2
YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICBlbnVtIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cwogICAgIH07CiAKLSAgICB2
b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAv
LyBBbGwgZ3JhbnVsYXJpdHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUg
d2hvbGUgZG9jdW1lbnQgYXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5
IHNvbWUgb3RoZXIgZ3JhbnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRv
Y3VtZW50IHdpbGwgbm90IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24u
CisgICAgfTsKKworICAgIHN0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgICAgICBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSBncmFudWxhcml0eTsKKyAgICB9OworCisgICAgc3RhdGljIEFYVGV4dFNlbGVjdGlv
biBUZXh0U2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBn
cmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICB7Cisg
ICAgICAgIGF1dG8gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCk7CisgICAgICAgIHNlbGVj
dGlvbi5kaXJlY3Rpb24gPSBkaXJlY3Rpb247CisgICAgICAgIHNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IGdyYW51bGFyaXR5OworICAgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0KKworICAg
IHN0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSB0eXBlOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxlY3Rp
b24gc2VsZWN0aW9uOworICAgICAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgICAg
ICB9OworICAgICAgICBib29sIHN5bmM7CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtu
b3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJvb2wg
c3luYyA9IGZhbHNlKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNl
bGVjdGlvbihzZWxlY3Rpb24pCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeyB9
CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdl
KQorICAgICAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAg
ICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAgICAg
IHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSB0eXBlLCBib29sIHN5bmMpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAg
ICAgICwgc2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5jKHN5
bmMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQpOworICAgICAgICB9CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2
b2lkIHNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgor
CisgICAgdm9pZCBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hhbmdl
CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBB
WExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMzA1
LDM1IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3
Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisg
ICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAg
QVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENoYW5n
ZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHREZWxldGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlVHlwaW5nOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
SW5zZXJ0ZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVu
dCk7CiAgICAgdm9pZCB0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9p
ZCBsYWJlbENoYW5nZWQoRWxlbWVudCopOwpAQCAtMjI5LDYgKzM0NCw4IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVz
LmNvbnRhaW5zKG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9v
dFdlYkFyZWEoKTsKKyAgICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFw
PEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hN
YXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYg
KzM2MSwxMSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwog
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlm
aWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCk7CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRp
bWVyOworICAgIFZlY3RvcjxzdGQ6OnR1cGxlPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhUZXh0RWRpdFR5cGUsIFN0cmluZz4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0Owor
ICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAgdm9p
ZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVh
dGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpAQCAt
MjUxLDYgKzM3Myw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAgICAKICAgICBB
WElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVD
YWNoZUVuYWJsZXIKQEAgLTMwOCw4ICs0MzIsMTYgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdu
b3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSB7IH0KKyNlbHNlCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFu
Z2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRpZgogaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1l
bnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlm
aWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQs
IFBvc3RUeXBlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZDhkMjZkZS4uM2Q0NWQzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsMjcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50
LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkg
Y29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElucHV0RWxlbWVudCogaW5w
dXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoaW5wdXRF
bGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0
PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4odGhpcyk7CisgICAgfQorICAgIAorICAgIGlmIChF
bGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxI
VE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENh
Y2hlICpjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY2Fj
aGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFn
ZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApp
bmRleCAzZTc1NzJmLi5kNTNhOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0lu
ZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxk
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAppbmRleCA1YTI3ZWE4Li5hN2E5OTRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2NDYs
NCArMjY0NiwyNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldFByZXZlbnRLZXlib2Fy
ZERPTUV2ZW50RGlzcGF0Y2goYm9vbCBvbikKIH0KICNlbmRpZgogCitib29sIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2Rl
KiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIAorICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRF
bGVtZW50ID0gbnVsbHB0cjsKKyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRv
d0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKQor
ICAgICAgICAgICAgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxl
bWVudCk7CisgICAgfQorICAgIGlmICghaW5wdXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uMmU5Nzc2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKQEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
SW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdl
QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNz
d29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4g
cm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJk
OTI5OTYuLjZlZmFhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwx
OCBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRl
eHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVj
dGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNO
YXRpdmVUZXh0Q29udHJvbCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50
ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+
IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQg
OiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVl
KSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRv
d25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxl
bWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFy
dCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5m
cmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9u
KG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwK
LSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0
aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgUG9zaXRp
b24gcG9zMSA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25J
c09mZnNldEluQW5jaG9yKTsKKyAgICBQb3NpdGlvbiBwb3MyID0gUG9zaXRpb24obm9kZSwgcmFu
Z2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNo
b3IpOworICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbiA9IFZpc2libGVTZWxl
Y3Rpb24ocG9zMSwgcG9zMiwgRE9XTlNUUkVBTSk7CisgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24odmlzaWJsZVNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246
OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwxMyArMTk2NCwxNiBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29u
c3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5l
bmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0
aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgs
IHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdl
LmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisgICAgICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hl
LT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUs
IHRydWUpKTsKICAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8o
cmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAg
VmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0
YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgp
LnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQsIHRydWUpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAppbmRleCBjNjJjNzUzLi4wYzQ2
NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5oCkBAIC00Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goQWNj
ZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKikgb3ZlcnJpZGU7CiAKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyopOwogICAg
IApAQCAtNzEsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlOwogICAg
IAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKICAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB3ZWJBcmVhT2JqZWN0KCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKiBh
ZGRDaGlsZFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2b2lkIHJlbW92ZUNoaWxkU2Nyb2xs
YmFyKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi5hYjc5MzQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0
Q2FjaGVJT1MubW0KQEAgLTk1LDcgKzk1LDE2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAg
ICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZp
Y2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCit7CisgICAgcG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3
Li42MDUyM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9B
WE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUwIEBACiAjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRl
ZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFY
VGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFy
a2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAi
QVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRl
eHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRo
aXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xNTYsOCArMjAwLDEzMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07
CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCit7CisgICAg
aWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikK
KyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBb
W05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CisgICAgaWYg
KGludGVudC5zeW5jKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVT
eW5jS2V5XSA9IEBZRVM7CisgICAgaWYgKGludGVudC50eXBlICE9IEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVVua25vd24pIHsKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
Q2hhbmdlVHlwZUtleV0gPSBAKGludGVudC50eXBlKTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQu
dHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6
CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAg
ICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbl0g
PSBAKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIHN3aXRjaCAoaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eV0gPSBAKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJp
dHkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFzZWxlY3Rpb24uaXNO
b25lKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXJSYW5nZSA9IFtvYmotPndyYXBwZXIo
KSB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczpzZWxlY3Rpb24udmlzaWJsZVN0
YXJ0KCkgZW5kUG9zaXRpb246c2VsZWN0aW9uLnZpc2libGVFbmQoKV0pCisgICAgICAgICAgICB1
c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV0g
PSB0ZXh0TWFya2VyUmFuZ2U7CisgICAgfQorICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VFbGVtZW50XSA9IG9iai0+d3JhcHBlcigpOworICAgIGlkIHRhcmdldCA9IHJvb3RX
ZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9u
V2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5v
dGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8v
IFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAg
W3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNl
bGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb25dOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5
ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJp
bmcsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7CisgICAgTlNTdHJpbmcgKnRl
eHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBs
ZW5ndGhdOworICAgIGlmICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0
YWJsZURpY3Rpb25hcnkgKmNoYW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5p
dFdpdGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBl
XSA9IEAodHlwZSk7CisgICAgc3RhdGljIGNvbnN0IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0
aCA9IDEwMDA7CisgICAgaWYgKGxlbmd0aCA+IHRydW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAg
Y2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7
CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhd
OworICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZV0gPSB0ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwo
KSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFy
a2VyRm9yVmlzaWJsZVBvc2l0aW9uOnBvc2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAg
IH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAg
ICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGlu
aXRXaXRoQ2FwYWNpdHk6M107CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
Q2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYg
KE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShv
YmosIHR5cGUsIHRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlc10gPSBAW2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9
IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndy
YXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5m
byk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25v
dyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0
aW9uXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBk
ZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGlu
c2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2Vi
QXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJs
ZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNo
YW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0
YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBh
Y2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRD
aGFuZ2VEaWN0aW9uYXJ5KG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24p
KQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9u
YXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0
aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9i
amVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFw
cGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEo
KS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVz
ZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0
byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNz
aWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb25dOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhM
b2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAor
LSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2li
bGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9z
aXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihj
b25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBlbmQKIAogI2Vu
ZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMWRlYjRkYi4uNjcxZDFiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEw
ICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21t
YW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00NiwxNSArNDgsMjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFw
cGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVm
UHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQt
PnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5n
TGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgdGV4dENo
YW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5v
ZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUpCiB7Ci0gICAgU3Ry
aW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5v
ZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21t
YW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlmICh0ZXh0ID09ICJcbiIpCiAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obm9kZSkg
PyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5n
UG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOwor
ICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02NCwxOCAr
NzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVu
dC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFr
cyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHls
ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkg
dGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0
KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENF
UFRJT04pOwogfQpAQCAtODgsNCArOTYsMTQgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVuZE5vZGVDb21tYW5kOjp1bmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IGQ2NGIwNGUuLjQ5YzllYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5k
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ3LDYgKzQ3LDkgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsK
ICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBs
eUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxDb250YWlu
ZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVl
Ny4uNjcyNjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9j
a3F1b3RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC01OCw2ICs1
OSw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4
dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNj
b3BlZEV2ZW50UXVldWUuaCIKQEAgLTMyMCw5ICszMjMsMTQgQEAgYm9vbCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0
cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7CisgICAgcmV0dXJuIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1Jl
ZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwg
cmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQs
IHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogfQogCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2Rl
PiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTUyMiwyMyArNTMw
LDQ2IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcm
IHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0CiAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXgsIHNj
b3BlLmdldCgpKSwgdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCArIGxlbmd0aCwg
c2NvcGUuZ2V0KCkpKSk7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICgh
dGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIHRleHQpKTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9
PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIHJldHVybiBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CiB9CiAKIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKK30KKworUmVmPERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4g
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2Vy
dGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICByZXR1cm4gUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVk
VGV4dCwgZGVsZXRlZFRleHQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJl
ZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7Cisg
ICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSByZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVDb21tYW5kKTsKICAgICBpZiAoIXJlcGxhY2Vt
ZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4
dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShyZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFu
ZC0+ZGVsZXRlZFRleHQoKSkpOwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xNTIzLDQg
KzE1NTQsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxl
bWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoYnJUYWcsIGZhbHNlKTsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmludGVudCgpCit7CisgICAgaWYgKG1fY29tbWFu
ZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5kc1ttX2NvbW1hbmRzLnNpemUoKS0x
XS0+aW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi40NWQzOGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0z
Myw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50Owog
Y2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTg3LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvcigpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvcihib29s
KTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBD
b21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpAQCAtMTAzLDE1ICsxMDUsMTggQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVkRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+
KTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBi
b29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAg
PSB0cnVlKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUg
PSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CisgICAgdmlydHVhbCBSZWY8
RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQsIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dEZyb21Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogICAg
IHZvaWQgaW5wdXRUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0g
ZmFsc2UpOwogICAgIGJvb2wgaXNSZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKik7CiAgICAgdm9p
ZCBpbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiByZWZD
aGlsZCk7CiAgICAgdm9pZCBpbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9z
aXRpb24mKTsKICAgICB2b2lkIGluc2VydE5vZGVBdFRhYlNwYW5Qb3NpdGlvbihQYXNzUmVmUHRy
PE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBp
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRO
b2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID0gRG9Ob3RBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoYm9vbCB1
c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUlu
dG9VbnF1b3RlZEFyZWEgPSBmYWxzZSk7CiAgICAgdm9pZCBpbnNlcnRMaW5lQnJlYWsoKTsKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBpbnNlcnRU
ZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpOwogICAgIHZvaWQgbWVyZ2VJZGVudGljYWxFbGVtZW50cyhQYXNzUmVmUHRyPEVs
ZW1lbnQ+LCBQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIHJlYmFsYW5jZVdoaXRlc3Bh
Y2UoKTsKQEAgLTEzMCw2ICsxMzUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBtb3ZlUmVtYWlu
aW5nU2libGluZ3NUb05ld1BhcmVudChOb2RlKiwgTm9kZSogcGFzdExhc3ROb2RlVG9Nb3ZlLCBQ
YXNzUmVmUHRyPEVsZW1lbnQ+IHBycE5ld1BhcmVudCk7CiAgICAgdm9pZCB1cGRhdGVQb3NpdGlv
bkZvck5vZGVSZW1vdmFsUHJlc2VydmluZ0NoaWxkcmVuKFBvc2l0aW9uJiwgTm9kZSYpOwogICAg
IHZvaWQgcHJ1bmUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgdmlydHVhbCBSZWY8RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZD4gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29t
bWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFj
ZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpOwogICAgIFBvc2l0aW9uIHJlcGxh
Y2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4
dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkZjliZjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpCit7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZUN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjJmYTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2ln
bmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjRlNzAyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBt
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQorICAgIDogRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxh
Y2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApCit7Cit9CisKK1Jl
ZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCit7CisgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKworRWRpdEFjdGlvbiBDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFj
dGlvbkN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDA1YzMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTAsMCArMSw0OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGlj
IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFy
dERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29s
IHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwg
Ym9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRz
LCBzYW5pdGl6ZU1hcmt1cCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRz
LCBib29sIHNhbnRpemVNYXJrdXApOworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2ln
bmVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNv
bnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1Li44NTcxNjRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3
LDExIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9j
b3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKIH0KIAorU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9p
ZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9u
b2RlKTsKQEAgLTU2LDEwICs2MywxMCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+c3Vic3RyaW5nRGF0YShtX29mZnNldCwg
bV9jb3VudCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0
KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVk
aXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZz
ZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsK
IH0KQEAgLTczLDggKzgwLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9S
RV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQs
IG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25v
ZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3Np
dGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtODQsNCAr
OTEsMTQgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFu
ZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1
Li43YTMxYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAKKyNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCArNDAsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwg
Y291bnQpKTsKICAgICB9CiAKKyAgICBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3Rl
ZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCB1bnNpZ25lZCk7CisKIHByaXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRv
VW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyArNTMsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYg
TkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisK
ICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIHVu
c2lnbmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4NiwxMCAr
ODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIAogRWRpdEFj
dGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAg
ICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0
aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2Ug
dGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigp
LCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIK
LSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsK
IH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0
eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0Li4xOWY5ZmU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTI3
LDExICsyNywxMSBAQAogI2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKIAogI2luY2x1ZGUg
IkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgiCi0jaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQu
aCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNSw3ICsx
MTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGlu
ZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25B
bHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRl
cm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5l
KTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29t
bWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0
LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGll
cjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29t
bWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFy
a2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFy
dCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRp
dmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5n
U2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODhjNDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KyAgICAKK0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
bm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb247Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5ODM2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZp
bmUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MTVmNzYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRy
PFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgOiBJbnNl
cnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpCit7Cit9CisKK1Jl
ZjxFZGl0Q29tbWFuZD4gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzljYjQxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0w
LDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQg
OiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9u
TWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1h
cmtlclN1cHBsaWVyKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0
aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0
VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENv
bW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjkxZWE5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0xMjQsNSArMTI1LDI5IEBAIHZvaWQgU2ltcGxlRWRpdENv
bW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9k
ZSo+JiBuCiAgICAgICAgIG5vZGVzLmFkZChub2RlKTsKIH0KICNlbmRpZgorICAgIAorI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVk
aXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVk
aXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2Fj
aGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAz
ZTZjMzcuLjVjYTE5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1hbmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9o
CiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgog
I2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNTksNiArNjAsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgeyByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsgfTsKKwogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAgICAgRWRpdENvbW1hbmQoRG9jdW1l
bnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpA
QCAtOTcsNiArMTAwLDEyIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZE5vZGVBbmREZXNjZW5k
YW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoYXBwbHlFZGl0VHlwZSgpKTsgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAppbmRleCBk
YzNhZTMzLi42ZGUxM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5P
bmUuY3BwCkBAIC0zMiwxMCArMzIsMTQgQEAKICNpbmNsdWRlIDxCcmVha0Jsb2NrcXVvdGVDb21t
YW5kLmNwcD4KICNpbmNsdWRlIDxDb21wb3NpdGVFZGl0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8
Q3JlYXRlTGlua0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2lu
Y2x1ZGUgPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkFsdGVybmF0aXZlLmNwcD4K
ICNpbmNsdWRlIDxEaWN0YXRpb25Db21tYW5kLmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRp
bmdTdHlsZS5jcHA+CiAjaW5jbHVkZSA8RWRpdG9yLmNwcD4KQEAgLTU0LDExICs1OCwxNSBAQAog
I2luY2x1ZGUgPE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxN
b2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwPgogI2luY2x1ZGUgPE1vdmVTZWxlY3Rpb25Db21t
YW5kLmNwcD4KKyNpbmNsdWRlIDxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4KKyNp
bmNsdWRlIDxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNs
dWRlIDxSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUZvcm1h
dENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRl
IDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVu
ZGVyZWRQb3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cD4KICNpbmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVD
b21tYW5kLmNwcD4KQEAgLTc3LDYgKzg1LDEwIEBACiAjaW5jbHVkZSA8VGV4dEluc2VydGlvbkJh
c2VDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3IuY3BwPgogI2luY2x1ZGUgPFR5
cGluZ0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4KKyNp
bmNsdWRlIDxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFVubGlua0NvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFZpc2libGVQb3NpdGlvbi5jcHA+CiAjaW5jbHVkZSA8VmlzaWJs
ZVNlbGVjdGlvbi5jcHA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4u
YzE1M2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5o
IgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5o
IgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24o
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAg
ICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0
KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQo
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRl
KSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAg
dm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1h
bmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlz
IHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vz
c2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0g
Y21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25Ucmln
Z2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24s
IG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24s
IG9wdGlvbnMsIGNtZC0+aW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hh
bmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNv
bXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRp
dG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6
OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRp
ZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rp
b24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlP
ckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNt
YXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFz
dGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9u
UGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlz
cyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQg
RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0
aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4g
ZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgp
LmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcg
KzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9i
bGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJh
bmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNl
bGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURP
TVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRp
dGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZm
ZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3
aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtl
ZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlv
bkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5n
QWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwog
I2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdl
YWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRD
b21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07
CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1v
ZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0
aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0
aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9u
U3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0
T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uY3BwCmluZGV4IGUzOWJmYzYuLjM4OTBjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCog
RnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNv
bnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24g
JnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlv
bi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1
c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
KHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5
KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsK
IH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
YmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJU
cmlnZ2VyZWQpCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAg
ICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZl
bnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAg
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3
U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwg
QWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBT
ZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRl
eHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZp
c2libGVTZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBu
ZXdTZWxlY3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFt
ZT4gbmV3U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewog
ICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0
aW9uRG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5l
d1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBv
cHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlv
bkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAg
ICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVj
dGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAg
ICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQg
dGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAg
ICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhl
IGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBW
aXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2Vs
ZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vy
c29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewog
ICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24s
IG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3
ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYg
ZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0
ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRl
bnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JT
dHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlv
bigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVu
ZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzc5LDYgKzM4Nyw3IEBA
IHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAKICAgICAg
ICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CisgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOwogCkBAIC0xMDIwLDcgKzEwMjks
ODAgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2Fy
ZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBM
aW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVs
YXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJh
bWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVj
dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sK
KyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZh
bHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsK
KyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBp
ZiAoZGlyZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxpcCA9
IHRydWU7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dp
dGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
b3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91
bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3Jh
cGhHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRH
cmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFy
eSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3Rl
ckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVu
Y2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFn
cmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5
OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5
OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBz
d2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBE
aXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0
aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJl
Z2lubmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBib29s
IEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2Vy
ZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzYsNiArMTE1OCwxMSBAQCBib29sIEZyYW1lU2Vs
ZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJl
Y3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25N
b3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBj
YWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBk
aXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJv
dmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAg
IC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3Nz
aWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBl
IGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MDks
OCArMTc5NiwxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlz
aWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJv
bUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYg
KHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIGF1dG8gaW50
ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVjdENhY2hlOjpU
ZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2Nv
bnRpZ3VvdXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7
CisgICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFm
ZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKQpAQCAtMjQyMiw3ICsyNTExLDcgQEAgVmlzaWJsZVNl
bGVjdGlvbiBGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVj
dGlvbihjb25zdCBWaXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJh
bWVTZWxlY3Rpb24uc2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3Jh
bnVsYXJpdHkoV29yZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNv
ck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZy
YW1lU2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNj
cm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0
aW9uIHN0YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBv
c2l0aW9uIGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uM2MzMTk4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAog
I2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNs
dWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwx
MSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5
cGluZ1N0eWxlIHwgKHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVj
dEV2ZW50KSA6IDApOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCk7CisgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rp
b24oRnJhbWUqID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBtb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0
aW9uJiwgYm9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwog
CiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9zZWxlY3Rpb247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xs
SWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwg
U2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3Nl
VHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9
OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0
ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0
ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlv
bnMsIEN1cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0
LDEwIEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9j
a0RpcmVjdGlvbk5hdmlnYXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7
CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlv
bkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkp
OworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRl
bnQoKSk7CiAjZWxzZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZSgpIHsgfQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAg
ICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNv
bnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5
bGUpCiAKICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQg
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDUzOTRlN2UuLmFlYzQ3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQu
aCIKQEAgLTUwLDYgKzUxLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJU
KCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVj
aG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAg
LTY1LDkgKzcxLDkgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
ICAgICB9CiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JF
X0VYQ0VQVElPTik7Ci0KLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwg
bV9vZmZzZXQsIG1fdGV4dCk7CisgICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQ
b3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
ODIsMTAgKzg4LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFs
bHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YSht
X29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQg
KzEwMywxNCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJi
YjMuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7
Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwx
MCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5z
aWduZWQgbV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1
ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24u
aCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTcsOCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxk
LmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxk
LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+
bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGls
ZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwg
MCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQu
Z2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2li
bGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQg
dG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hp
bGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQt
Pm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hp
bGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDAp
OworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxk
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJl
bW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBk
NGI3NjJkLi44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNo
aWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7
CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGls
ZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAK
K3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFy
a2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQs
IFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJT
dXBwbGllcj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZh
dGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUs
CisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRv
SW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44ZTZhMzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1
ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQor
eworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kMzBmZGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzc4YzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
ICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAg
LCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
OworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNl
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
UGFzdGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRl
eHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFj
ZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmludGVudCgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRU
eXBlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwYzFjNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJs
aWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBs
YWNlQXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxv
Y2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5j
bHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAg
LTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIlBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUg
IlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1h
bmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRp
ZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5j
bHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0
cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC0x
NDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6dXBkYXRlTm9k
ZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZkluc2VydGVkQ29udGVudCA9IGxh
c3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2NlbmRhbnQoKSk7CiB9CisgICAg
CitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+
IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikg
eworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6
CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5z
ZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2Vy
dGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBzd2l0Y2ggKG1fZWRp
dEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToK
KyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGRlZmF1
bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0
KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVzLCB3aGVyZSB3ZSdyZSBqdXN0
IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0LCB3ZSBpbnNlcnQgdGhlIHRl
eHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2RlIHRoYXQgaG9sZHMgdGhlIHNl
bGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZ2VuZXJhbGl6ZWQgY29kZSBp
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
CmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsxMTEsOSBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3QgUmVwbGFjZW1lbnRGcmFnbWVu
dCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCiAgICAgUG9z
aXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBvc2l0aW9uIG1fZW5kT2ZJbnNl
cnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9pbnNlcnRpb25TdHlsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhj
MGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAs
NiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAK
IHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBT
dHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNl
cnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29t
bWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9
PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRp
bmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFs
bFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVu
ZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQp
Cit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGJkMTQ0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0
VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApA
QCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxk
VG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRU
b0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApA
QCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlw
ZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQs
IHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21t
YW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0
LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIklu
c2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBm
YWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRy
YWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7
CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBkZDUzMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1
Li5lNjk1YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNl
bGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxl
Y3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRG
b2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0K
IAogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAg
ICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVj
dGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFj
Lm1tCmluZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENH
UmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRp
ZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNO
b3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQo
KS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVk
VGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUt
PnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXBy
ZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgs
MjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUo
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4
dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVy
VGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlu
bmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2
YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRl
eHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRG
T1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAg
ICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9u
KHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFy
ZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0
KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dp
dGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQt
PmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09B
KQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91
c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2li
bGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hv
cikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1
ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApp
bmRleCA0NjA1MWM2Li5jNTI4OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0zMTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxl
Y3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBi
cmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlv
biwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2Vy
ZWQpKTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVT
ZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9u
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7
CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUm
IGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250548</attachid>
            <date>2015-04-10 18:29:06 -0700</date>
            <delta_ts>2015-04-10 18:40:29 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>236019</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGUxMTEyNWEwOThmYTI3ZTIxYTczZWJjNGVkOTJkNTcwODVmNzZjZDYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTIwNDY1Yi4uYjA2MjE1OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE1LTA0LTEwICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5n
ZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorCiAyMDE1LTA0LTEwICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIFN1cHBvcnQgbW9k
aWZ5aW5nIHJlcXVlc3QgVVJMcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5o
dG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3It
YXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcgKzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAg
ICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3Rp
ZmljYXRpb24gPSBheFRleHRib3guYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9u
Q2FsbGJhY2spOworICAgICAgICB2YXIgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFlYzM0NzkuLjFkOGMwZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNDcwLDEwICsxNDcwLDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAg
IGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAg
IGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5MiwxMSArMTQ5NiwxNSBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVT
ZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRp
dGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5j
cHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApAQCAtMTUxMiw2ICsxNTIwLDEwIEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2li
bGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY3N2Y4OC4uNTY0NGUxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxNyBAQAorMjAxNS0wNC0xMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBh
Y2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5
IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4
dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVu
dCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVs
ZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2Yg
Y2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFu
IG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Np
c3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBj
aGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVj
dGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBUZXN0cyBhcmUgc3Rp
bGwgaW4gZGV2ZWxvcG1lbnQuIFN1Ym1pdHRpbmcgcGF0Y2ggZWFybHkgZm9yIGZlZWRiYWNrLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRW
YWx1ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpyb290V2ViQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpUZXh0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNv
bnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29u
dGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBh
c3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxl
UG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2VtZW50Q2hh
bmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
ZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5k
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseUludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAg
KiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQp
OgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRl
eHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6
OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmFwcGx5SW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5SW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAg
ICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92
ZVdpdGhvdXRWYWxpZGF0aW9uVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWlu
aW5nQ2FyZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29t
bWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9O
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6
cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKyAgICAgICAg
KiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRy
b2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6CisKIDIwMTUtMDQtMTAgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50IEZpbHRlcmluZ10g
U3VwcG9ydCBtb2RpZnlpbmcgcmVxdWVzdCBVUkxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBkZWNkZDUzLi5jZTFkMTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Mzkz
LDYgKzE0MzkzLDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ0NDksNiArMTQ0NzcsMzQgQEAKICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3Bw
Ij4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NzMw
LDYgKzE0Nzg2LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE1MDI0LDYgKzE1MTM2LDYyIEBACiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRD
b21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3Bw
Ij4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5
LDEwICsyMTIzNywxNCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVh
a0Jsb2NrcXVvdGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXENvbXBvc2l0ZUVkaXRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBA
IC0yMTA5OSwxMCArMjEyNzEsMTQgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQ
b3NpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXROb2Rl
QXR0cmlidXRlQ29tbWFuZC5oIiAvPgpAQCAtMjExMjEsNiArMjEyOTcsMTAgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFZpc2libGVQb3NpdGlvbi5oIiAvPgpAQCAt
MjE3ODMsNCArMjE5NjMsNCBAQAogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdl
dHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6
YXRpb25zXG1hc20udGFyZ2V0cyIgLz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMw
YTY2Ni4uM2Y3NDJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KQEAgLTM0NTAsNiArMzQ1NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMzU3Niw2ICszNjAwLDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5j
cHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xMDU2OSw2ICsxMDYwNSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xDcmVhdGVMaW5rQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYg
KzEwNzA3LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxl
Y3Rpb25Db21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVX
aXRoU3BhbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KQEAgLTEwNzI1LDYgKzEwNzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
LmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUz
Myw0IEBACiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4K
ICAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
PC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDIwMDhjN2QuLjI1NjFjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNzMsMTIgKzYzNzMsMjIg
QEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1
NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9Owog
CQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4
QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAw
IC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2
RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2
Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUy
REMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUy
REMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250
cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMx
NTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEw
MDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0
M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJ
CUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZG
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsK
KwkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAw
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJ
CUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2Fs
ZS5oICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJ
CUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVC
M0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlG
NTVCM0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNF
RjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAz
RUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1
dFR5cGUuY3BwICovOyB9OwpAQCAtNjQyOCwxMiArNjQzOCwyNiBAQAogCQlGNTVCM0RERTEyNTFG
MTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRU
eXBlLmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIz
REFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNE
RTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBX
ZWVrSW5wdXRUeXBlLmggKi87IH07CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4
IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQw
MDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQg
LyogTG9jYWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1
OTczREUxMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyog
TG9jYWxlTWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmggKi87IH07CisJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1
MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBF
MDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIw
QzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRp
b25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsK
KwkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjEx
IC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1
QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1
RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICov
OyB9OworCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oICovOyB9OwogCQlGNUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07
CiAJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNB
N0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBG
RkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRB
IC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTEzOTkzLDYgKzE0MDE3LDgg
QEAKIAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1
QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9
IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRz
Lmg7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2Fn
ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMDUsOCArMTQw
MzEsMTYgQEAKIAkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0
M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2Nh
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNTYsNiArMTQwOTAsMTIgQEAKIAkJ
RjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVUkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBX
ZWVrSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1
dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAw
OTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAv
KiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4
NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3
ODU0QzAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA2Niw4
ICsxNDEwNiwxNiBAQAogCQlGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFD
Q0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEy
Nzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1l
c3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3Nh
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEy
QjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMx
QUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUy
OTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFD
Q0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEg
LyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyog
SFRNTERhdGFMaXN0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY3NCw2ICsx
NzcyMiwxMCBAQAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0
Q29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5r
Q29tbWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxp
bmtDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1
RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1
NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8s
CiAJCQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwICovLAogCQkJCTkzMzA5RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc2ODIsNiArMTc3MzQsMTAgQEAKIAkJCQlD
RUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJ
CQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJ
CQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJ
CQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8sCisJCQkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTcz
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJ
CTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlE
OTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5
OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCAqLywKQEAgLTE3NzI4LDYgKzE3Nzg0LDEw
IEBACiAJCQkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RM
ZXZlbC5oICovLAogCQkJCTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxl
Y3Rpb25Db21tYW5kLmggKi8sCisJCQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgx
QUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAorCQkJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgx
IC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5
MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhF
MENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzM4
LDYgKzE3Nzk4LDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAw
RjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkw
MEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0
NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
QTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgg
Ki8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcCAqLywKQEAgLTE3NzczLDYgKzE3ODM3LDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5
MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlF
NjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0
OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAw
NjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1
OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCisJCQkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFD
Q0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUy
OTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAw
RUNFRjNFIC8qIFVuZG9TdGVwLmggKi8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8q
IFVubGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBV
bmxpbmtDb21tYW5kLmggKi8sCkBAIC0yMzY2OCw2ICsyMzc0MCw3IEBACiAJCQkJNkM1NjhDQjEx
OURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRp
b25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8q
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ3MCw2ICsyNDU0
Myw3IEBACiAJCQkJMzEwNjAzNzkxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRl
clZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyog
RE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2
RkUwN0QwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4
MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJh
bWVzUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzkzLDYgKzI0ODY3LDcgQEAK
IAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBI
VE1MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3
NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFB
Qjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3QkM4NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJj
aGFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBI
VE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAyMiw2ICsyNTA5Nyw3IEBA
CiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAz
QTU4M0EgLyogSlNBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFC
NzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNB
IC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VF
MTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDMwLDYgKzI1
MTA2LDcgQEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1Ry
YWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8q
IEpTQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQx
QUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMTI0RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxv
YWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8q
IEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNDksNiArMjUyMjYs
NyBAQAogCQkJCUZEQTE1RUFDMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MThGNTAwMjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MThGNTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0
dG9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQw
RTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZF
ODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkRBN0MxRjE4ODMyMkZDMDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjU1OTAsNiArMjU2NjgsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5
OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
OTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNY
UGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjc3Miw2ICsyNjg1MSw3IEBACiAJ
CQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01h
Yy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTQwMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBNDIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVj
VVRGOC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjgyNSw2ICsyNjkwNSw3IEBACiAJCQkJMTg1QkNG
MjkwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0FBM0E2OUExOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlI
YW5kbGVySU9TLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0
MTk0QjVDMjIwMDFDQkQyNCAvKiBUaWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBRjg5QTQyMTUxOEZERUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBQTNBNjlDMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjk0OCwxMiArMjcwMjksMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQx
ODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNUE3QUE0MzEzMkYwRUNDMDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1NkM1QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5
MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzRjE5OUE4MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREM2OUREQTE2MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5Q
bGFjZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdD
MzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlND
bGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEg
LyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RjE5OUJCMDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdl
YkNvcmVOU1N0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk4Niw2ICsyNzA2OSw3
IEBACiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJH
TENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5
OTcwIC8qIFdlYkdMQ29udGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDFEM0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdM
RGVidWdSZW5kZXJlckluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUw
MEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcyNyw2
ICsyNzgxMSw3IEBACiAJCQkJNkY5OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBF
MjdGNTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGQkY4OTA0NTE2OUU5RjFGMDA1MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5
RkRDOTEgLyogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzkzRTVGRjE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBODBFNkNGRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI3ODA0LDYgKzI3ODg5LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1
RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMUZCMUE1QTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9u
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAz
NzlFMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTU5MzA5QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAw
RTgzNDlEIC8qIE5GQS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3OTQwLDYgKzI4MDI2LDcgQEAK
IAkJCQk4NUVDQkVGNjBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NURGODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVj
dEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQg
LyogRE9NSFRNTE9MaXN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1RjMyQUVGMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBF
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8q
IERPTUhUTUxPcHRpb25FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEz
Q0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICov
LApAQCAtMjgwODcsNiArMjgxNzQsNyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAv
KiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0
QjAxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNzcyODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQg
LyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNzVFOEI4QTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25l
bnRUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MTk3LDYgKzI4Mjg1LDcgQEAKIAkJ
CQk0RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDcyMEIwQTAxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFG
MjYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkI2MjUyRTE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBo
UGFnZU1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MjE3LDYgKzI4MzA2LDcgQEAKIAkJCQlC
MkEwMTVBQTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRl
bklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJC
MTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFBOUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE3OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcg
LyogSGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4Mzk2LDYgKzI4NDg2LDcgQEAKIAkJ
CQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFj
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFn
ZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8q
IEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUY1NUIzREMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIElt
YWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODg1Myw2ICsyODk0NCw3IEBACiAJCQkJRTUx
QTgxREYxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOEE5QTU4NzAxMUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1Bl
cmZvcm1hbmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMw
MDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZERUE2MjQ2MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5M0I3MEQ2QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzcz
OSAvKiBKU1BvcFN0YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg4Nyw2ICsyODk3
OSw3IEBACiAJCQkJMDc5NjlEQkIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAv
KiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3RDA3QjE0MTgzNDE1ODgwMEFCREQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURC
RjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OTY5REMxMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRz
UmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY2Miw2ICsyOTc1NSw3IEBACiAJCQkJ
MDczNzk0RkQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDczNzk0REQxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyog
UlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjND
MDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDczQkUzNTAxN0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUg
LyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
NzhFMDkwQzE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjk4MzksNiArMjk5MzMsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUw
MEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlB
RTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTMwMzQyLDYgKzMwNDM3LDcgQEAKIAkJCQlBMTQ4MzJDMDE4
N0Y2NTY2MDBEQTYzQTYgLyogV0tHcmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgz
MkMyMTg3RjY1QzcwMERBNjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTE0ODMyQzUxODdGNjY4MzAwREE2M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAv
KiBXT0ZGRmlsZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgy
MDBCMEYxQkEgLyogV29ya2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1
RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBi
MTVjLi5iNDBmYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGlt
ZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAg
ICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hl
OjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiAr
NzQzLDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQo
KQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAg
IH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRp
b25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNh
dGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVu
IHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29w
eSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6
bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIG9iamVjdCA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QuZ2V0KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAi
ICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0
aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlw
ZSkKIHsKQEAgLTg1MCwxNiArODY1LDIxOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNh
dGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJs
ZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQorewor
ICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50
ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50
LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dp
dGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3du
OgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVs
ZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUlu
c2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50
ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAg
ICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAg
ICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYoIkVu
ZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAg
ICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoK
KyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgeworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAgICAg
ICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAg
ICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAg
ICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAgICAg
IHByaW50ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIHBy
aW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAg
cHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAgIHBy
aW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHByaW50
ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJB
bGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9
CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAgcHJp
bnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVj
dGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0
U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CiAgICAg
aWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBp
ZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAg
aW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1
dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0g
Z2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bh
c3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOwor
ICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmos
IGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5y
ZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9i
c2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9Q
QVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
bihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKwog
ICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxl
Z2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmog
PSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9i
ai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICAgICAgZW5xdWV1ZVBh
c3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9
CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBl
LCB0ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBF
cXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30K
Kwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5v
ZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNl
cnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRF
ZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5
cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNl
cnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0g
QVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0
cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUo
bm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAo
b2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxk
KCkpIHsKKyAgICAgICAgICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9u
KG9iaik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0
aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRp
b25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNl
dCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVl
cEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOwor
I2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFu
Z2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQoreworICAgIGlmICghb2Jq
KQorICAgICAgICByZXR1cm47CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0ICpvYnNlcnZhYmxl
T2JqZWN0ID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2Jq
ZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RkOjpmaW5kKG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25zVG9Qb3N0LmJlZ2luKCksIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmVu
ZCgpLCBvYnNlcnZhYmxlT2JqZWN0KSA9PSBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5l
bmQoKSkgeworICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2Jz
ZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgIH0KIH0KIAogdm9pZCBBWE9iamVjdENhY2hl
OjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSogZnJhbWUsIEFYTG9hZGluZ0V2
ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMwMSwxNSBAQCBib29sIGlzTm9kZUFyaWFW
aXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7CisgICAgaWYgKEFjY2Vzc2li
aWxpdHlPYmplY3QgKnJvb3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0KCkpIHsKKyAgICAgICAg
aWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgICAg
IHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndl
YkFyZWFPYmplY3QoKTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBj
YWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLmY3OWRmODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
ODksMTIgKzE4OSw5OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0g
UG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJn
ZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFY
VGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxl
dGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwK
KyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhU
ZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFY
VGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4
dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVk
aXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5
cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8g
SW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFu
Z2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAv
LyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAg
IGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
CiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVtIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
ciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24g
b2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVu
ZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBh
c3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFy
aXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworICAgIH07CisKKyAgICBzdGF0
aWMgQVhUZXh0U2VsZWN0aW9uIFRleHRTZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duKQorICAgIHsKKyAgICAgICAgYXV0byBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24o
KTsKKyAgICAgICAgc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKKyAgICAgICAgc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gZ3JhbnVsYXJpdHk7CisgICAgICAgIHJldHVybiBzZWxlY3Rp
b247CisgICAgfQorCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlw
ZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRT
ZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkK
KyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhz
eW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRl
eHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3lu
YyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlw
ZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAg
ICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUg
PT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZu
ZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8v
IFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
Jik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRl
ZCwKQEAgLTIxOCw3ICszMDUsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAg
dm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3Vz
ZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7CisgICAgICAgIEFYVGV4dElu
c2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07CisgICAgaW5saW5lIEFYVGV4
dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKKyAgICB7
CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0
OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQ
YXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIG5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
VGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lk
IGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlP
YmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMzQ0
LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4g
bV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50JiBtX2RvY3Vt
ZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29i
amVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1h
cHBpbmc7CkBAIC0yNDQsNiArMzYxLDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmlj
YXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0
eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZv
aWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Pj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQo
Tm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZv
aWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMzczLDEwIEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZvY3VzZWRJbWFnZU1hcFVJ
RWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAgICAKICAgICBBWElEIGdldEFYSUQoQWNjZXNz
aWJpbGl0eU9iamVjdCopOworCisgICAgdm9pZCBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNh
Y2hlRW5hYmxlcgpAQCAtMzA4LDggKzQzNCwxNiBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
OjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25v
cmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxl
U2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQorI2Vsc2UKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVu
dCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZp
Y2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwg
UG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi4zZDQ1ZDNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQt
PmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBj
b25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVs
ZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVs
ZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhU
TUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUgKmNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNo
ZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdl
KCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmlu
ZGV4IDNlNzU3MmYuLmQ1M2E5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dv
cmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5k
aWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmE3YTk5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMjY0Niw0
ICsyNjQ2LDI0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2V0UHJldmVudEtleWJvYXJk
RE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQogI2VuZGlmCiAKK2Jvb2wgQWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUq
IG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVs
ZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93
SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCisg
ICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVt
ZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJhLi4yZTk3NzZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJ
bWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VC
dXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3
b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiBy
b2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5
Mjk5Ni4uNmVmYWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE4
IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4
dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0
ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05h
dGl2ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
YXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4g
MCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUp
KTsKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93
bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0
LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24o
bm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAot
ICAgICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRp
b246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBQb3NpdGlv
biBwb3MxID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpOworICAgIFBvc2l0aW9uIHBvczIgPSBQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
cik7CisgICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJsZVNlbGVj
dGlvbihwb3MxLCBwb3MyLCBET1dOU1RSRUFNKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbih2aXNpYmxlU2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnVybCgpIGNvbnN0CkBAIC0xOTYwLDEzICsxOTY0LDE2IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25z
dCBWaXNpYmxlUG9zCiB7CiAgICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVu
ZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rp
b24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwg
dGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2Uu
ZW5kKQorICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUt
PnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhy
YW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3Rh
cnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYgKzQzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nl
c3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqKSBvdmVycmlkZTsKIAorICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAg
CkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhpc3RzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ci0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFk
ZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxi
YXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBiMDAuLmFiNzkzNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2Fj
aGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbQpAQCAtOTUsNyArOTUsMTYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAg
ICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmlj
YXRpb25TdHJpbmddOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3sKKyAgICBwb3N0
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIzMDBlNzcu
LjYwNTIzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNTAgQEAKICNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVk
IgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtl
eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5IEAiQVhU
ZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Igor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisKKyNpZm5k
ZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVuZ3RoIgor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJr
ZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIgQCJB
WFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlIgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhp
cyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTE1Niw4ICsyMDAsMTMxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3Jh
cHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsK
IH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBp
ZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQor
ICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtb
TlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1XTsKKyAgICBpZiAo
aW50ZW50LnN5bmMpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5
bmNLZXldID0gQFlFUzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93bikgeworICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50
eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAg
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9
IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVFZGl0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05v
bmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iai0+d3JhcHBlcigp
IHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3Rh
cnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9
IHRleHRNYXJrZXJSYW5nZTsKKyAgICB9CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnRdID0gb2JqLT53cmFwcGVyKCk7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdl
YkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25X
aXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90
aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8g
VXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBb
dGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkg
KnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmlu
ZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKKyAgICBOU1N0cmluZyAqdGV4
dCA9IChOU1N0cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxl
bmd0aF07CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqY2hhbmdlID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OjRdOworICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGVd
ID0gQCh0eXBlKTsKKyAgICBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciB0cnVuY2F0aW9uTGVuZ3Ro
ID0gMTAwMDsKKyAgICBpZiAobGVuZ3RoID4gdHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsK
KyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6dHJ1bmNhdGlvbkxlbmd0aF07
CisgICAgfQorICAgIGlmIChsZW5ndGggPiAwKQorICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgp
KSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJr
ZXJGb3JWaXNpYmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAg
fQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAg
IG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFi
bGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5p
dFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAo
TlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9i
aiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0g
b2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3Jh
cHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
dGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZv
KTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93
IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRp
b25dOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJB
cmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNNdXRh
YmxlQXJyYXkgKmNoYW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjJdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENo
YW5nZURpY3Rpb25hcnkob2JqLCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikp
CisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0RpY3Rpb25h
cnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBpbnNlcnRp
b25UeXBlLCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2Jq
ZWN0OmNoYW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
c10gPSBjaGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYgKGlkIHdyYXBw
ZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgp
LT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRv
IGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbl07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExv
YWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJN
YWMuaAppbmRleCAzOGM1Y2QwLi45MjIyOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVyZmFjZSBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZQogCist
IChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFdlYkNvcmU6OlZpc2libGVQb3Np
dGlvbillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246KGNv
bnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAogCiAjZW5k
aWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAxZGViNGRiLi42NzFkMWJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMjYsMTAg
KzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1h
bmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDE1ICs0OCwyMyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBw
ZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQ
dAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+
cmVuZGVyZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hh
bmdlKQorc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9k
ZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsKLSAgICBTdHJp
bmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9k
ZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1h
bmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYgKHRleHQgPT0gIlxuIikKICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVj
dENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Pihub2RlKSA/
IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQ
b3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7Cisg
ICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDE4ICs3
NCwxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFyZW50
LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRl
eHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtz
KG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0
aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0
ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQo
KSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQ
VElPTik7CiB9CkBAIC04OCw0ICs5NiwxNCBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXRO
b2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4uNDljOWVhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzgsNyArMzgsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+KTsK
IAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDcsNiArNDcsOSBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwog
I2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPENvbnRhaW5l
ck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA4NDYxZWU3
Li4yNWVhYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiQXBwbHlTdHlsZUNvbW1hbmQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2Nr
cXVvdGVDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTU4LDYgKzU5
LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2Nv
cGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDYgKzE2NSwxMyBAQCB2b2lkIEVkaXRDb21tYW5kQ29t
cG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNl
bmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBFZGl0Q29tbWFu
ZENvbXBvc2l0aW9uOjp1bmFwcGx5SW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXpl
KCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT51bmFw
cGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRp
dENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBwbHkoKTsKQEAgLTMyMCw5ICsz
MzAsMTQgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhjb25z
dCBOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCit7CisgICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0
Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9
CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0
cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2Rl
PiByZWZDaGlsZCkKQEAgLTUyMiwyMyArNTM3LDQ2IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0
CiAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQb3Np
dGlvbkZvckluZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwgdmlzaWJsZVBvc2l0aW9uRm9y
SW5kZXgoc3RhcnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkpKSk7CiB9CiAKK1JlZjxFZGl0
Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKK3sKKyAgICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgdGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRl
eHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0
VGV4dEludG9Ob2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKK30KKworUmVmPEVkaXRD
b21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7
CisgICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICByZXR1
cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291
bnQpOworICAgIHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBjb3VudCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRl
eHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291
bnQpKTsKK30KKworUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3Vu
dCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVk
VGV4dCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOwogfQogCiB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+
IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSByZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVD
b21tYW5kKTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHJl
cGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSkpOwogfQogCiBQb3Np
dGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25z
dCBTdHJpbmcmIHRleHQpCkBAIC0xNTIzLDQgKzE1NjEsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50
PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KIAorQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFw
cGx5SW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJldHVy
biBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT5hcHBseUludGVudCgpOworICAgIHJl
dHVybiBFZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmlu
ZGV4IGMyYjQ4OWQuLmVkZWU0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOwogY2xhc3MgRWRpdGluZ1N0eWxl
OwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAtNTksNiArNjAs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8
Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgdW5hcHBseUludGVudCgpOworCiBwcml2YXRlOgogICAgIEVkaXRDb21t
YW5kQ29tcG9zaXRpb24oRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzdGFydGlu
Z1NlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uLCBFZGl0
QWN0aW9uKTsKIApAQCAtODcsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGJvb2wpOwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBh
cHBseUludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9z
aXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA3LDE4IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAg
ICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1
ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJv
b2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1
ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0g
dHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRD
b21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lk
IGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNl
KTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQp
OwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9u
Jik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2Rl
PiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJl
Zm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5x
dW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dElu
dG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50
PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7
CkBAIC0xMzAsNiArMTM3LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1Np
YmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JO
b2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lk
IHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0
SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQs
IGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2Vs
ZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5v
ZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7
CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNp
bmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
ZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRp
dENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25D
dXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxl
dGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxl
dGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBs
YWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2Fu
aXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9v
bCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBA
QCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQg
PD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7
CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291
bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5l
ZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlw
ZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkp
OwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBA
IC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhD
RVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29m
ZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdl
dCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24o
bV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0
IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2Ez
MWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6Cisg
ICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
dW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBw
bHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJV
RwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92
ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAg
UmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25l
ZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3
IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24g
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8g
Tm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVz
ZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJl
J3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28K
LSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAg
cmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAK
IC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0
aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSAr
MjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcg
QEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNp
emVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJu
YXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRp
dmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0g
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6
OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJz
dHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNy
ZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1
cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxp
bmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0lu
TGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVj
dGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0
SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4
dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRp
dENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVi
bGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtl
clN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJT
dXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJ
bnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5k
OjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYg
bgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQor
ICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3
Li4wMWEwMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNs
dWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgeyByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsgfTsKKwogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAgICAgRWRpdENvbW1hbmQoRG9jdW1l
bnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpA
QCAtOTAsNiArOTMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JikgPSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBwbHlFZGl0VHlw
ZSgpKTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgdW5hcHBseUludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KHVuYXBwbHlFZGl0VHlwZSgpKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21tYW5kKGRv
Y3VtZW50KSB7IH0KIApAQCAtOTcsNiArMTAzLDExIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFk
ZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCk7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5
cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
Tm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1Np
bXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAppbmRleCBkYzNhZTMzLi42
ZGUxM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBA
IC0zMiwxMCArMzIsMTQgQEAKICNpbmNsdWRlIDxCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxDb21wb3NpdGVFZGl0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8Q3JlYXRlTGlu
a0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
PgorI2luY2x1ZGUgPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkFsdGVybmF0aXZlLmNwcD4KICNpbmNsdWRl
IDxEaWN0YXRpb25Db21tYW5kLmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8RWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRpbmdTdHlsZS5j
cHA+CiAjaW5jbHVkZSA8RWRpdG9yLmNwcD4KQEAgLTU0LDExICs1OCwxNSBAQAogI2luY2x1ZGUg
PE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuY3BwPgogI2luY2x1ZGUgPE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcD4K
KyNpbmNsdWRlIDxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1v
dmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUZvcm1hdENvbW1hbmQu
Y3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3Np
dGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
PgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNs
dWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNw
cD4KQEAgLTc3LDYgKzg1LDEwIEBACiAjaW5jbHVkZSA8VGV4dEluc2VydGlvbkJhc2VDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3IuY3BwPgogI2luY2x1ZGUgPFR5cGluZ0NvbW1h
bmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgor
I2luY2x1ZGUgPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFVubGlua0NvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPFZpc2libGVQb3NpdGlvbi5jcHA+CiAjaW5jbHVkZSA8VmlzaWJsZVNlbGVjdGlv
bi5jcHA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uZTI0OWRkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUg
IkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1
ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0
LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNt
YXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShi
b29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1f
ZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5
Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnRE
ZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAg
ICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCks
IHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAK
IHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0
b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkK
IAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlv
biBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAg
ICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0Rp
Y3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAw
OwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMp
OworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMs
IGNtZC0+YXBwbHlJbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2Vk
RXZlbnRzKGNvbXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY29tcG9z
aXRpb24tPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JV
SU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMDMyLDcgKzEwMzYsNyBAQCB2b2lkIEVkaXRvcjo6dW5h
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICBub3RpZnlUZXh0RnJvbUNvbnRyb2xzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50
KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uKGNtZC0+c3RhcnRpbmdTZWxlY3Rpb24oKSk7Ci0gICAgY2hhbmdl
U2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpLCBjbWQtPnVuYXBwbHlJbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRD
aGFuZ2VkRXZlbnRzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+ZW5k
aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hl
ZHVsZWQoKTsKQEAgLTEyNjYsNyArMTI3MCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JD
b3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlv
blRvUGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBk
ZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7Cisg
ICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0
ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTI4NTAs
NyArMjg1NCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVk
KCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlz
bWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdl
U2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlv
biwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVk
aXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9u
cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAg
IC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0
aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8
IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg2Miw3ICsyODY2LDcgQEAgdm9p
ZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBT
b21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVj
dGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RD
aGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNl
bGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBt
X2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQot
ICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9w
dGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9u
cyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9z
aXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3Mg
cmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li5kNmM1ZTM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRl
eHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBz
bWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRo
U21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0g
RWRpdEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsK
QEAgLTQ2OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU2V0Q29tcG9zaXRpb25Nb2Rl
IHsgQ29uZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9OwogICAgIHZvaWQgc2V0
Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9zaXRpb25Nb2RlKTsKIAotICAgIHZv
aWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMpOworICAgIHZv
aWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1
dEFjdGlvbiwgQ29weUFjdGlvbiB9OwogICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JB
Y3Rpb25TcGVjaWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cAppbmRleCA1NzQ1MTcwLi5iNGM3MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcApAQCAtMTM4LDggKzEzOCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9u
Ojpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogCiB2b2lkIEZy
YW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJp
Z2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7Ci0gICAg
c2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5k
ZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25h
bCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCks
IGFsaWduKTsKKyAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlv
bi5pc0RpcmVjdGlvbmFsKCkpLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dl
cmVkKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJh
bWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAt
MTcwLDcgKzE2OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlv
blRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlzaWJsZVNlbGVj
dGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9u
KGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9uYWwoc2VsZWN0
aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9j
dXMpKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9
CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1MywxNiBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5
KTsKKyAgICAKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAg
ICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAgICBpbnRlbnQgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0
aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2
ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwog
fQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91
dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcg
QEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlv
bkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlm
IChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQt
PmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1l
ICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAg
ICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAg
ICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJp
dHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFi
b3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQg
YnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlT
ZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UK
ICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJ
ZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVh
cmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFu
Y2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1
cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW8KICAgICBpZiAo
ZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRhdGVBbmRSZXZlYWxT
ZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRh
dGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2OCw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAgICAgICAgdmlldy0+
Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAg
ICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM3
OSw4ICszODcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oKQogCiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7
CiAgICAgfQotCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOwor
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIAogICAg
IGlmIChhdXRvKiBjbGllbnQgPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKSkKICAgICAgICAg
Y2xpZW50LT5kaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsKQEAgLTEwMjEsNyAr
MTAyOCw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0Jh
Y2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFy
eShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5
ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBn
cmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGlu
ZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwg
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlw
ID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92
ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAg
ICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBm
bGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAg
ICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVu
Y2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5Ogor
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBh
cmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1
bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJv
dW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hh
cmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBT
ZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2Ug
UGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91
bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91
bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBj
YXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBE
aXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAK
IGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRy
aWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3Nyw2ICsxMTU3LDExIEBAIGJvb2wgRnJh
bWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJh
dGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAg
ICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0
ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRo
ZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24u
CiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRv
IHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9u
IHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAt
MTcxMCw4ICsxNzk1LDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAg
ICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rp
b25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5n
ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAg
ICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgYXV0
byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0Q2Fj
aGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlB
bGwpKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAgICB9CiB9CiAKIGJv
b2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZmaW5p
dHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yNDIzLDcgKzI1MTAsNyBAQCBWaXNp
YmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24g
PSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24uZXhwYW5kVXNp
bmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0aW9uLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7Cisg
ICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBBbGlnbkN1cnNv
ck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAg
UG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAg
ICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi4zYzMxOTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgog
I2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiAr
MTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENs
ZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJl
U2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNl
bGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3Qg
UG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1
cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZO
ZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wg
Y2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhU
RU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURh
dGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9u
T3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5
ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZv
ckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoKTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2Vs
ZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxh
cml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlv
bkludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYK
IAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRG
b3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKaW5kZXggNTM5NGU3ZS4uYWVjNDc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgpAQCAtNTAsNiArNTEsMTEgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBB
U1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwogfQogCitTdHJpbmcmIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9p
ZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3
b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgp
OwpAQCAtNjUsOSArNzEsOSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0
aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1Mp
CkBAIC04MiwxMCArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkoKQogewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBh
Y3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3Np
dGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVE
YXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAt
OTcsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsK
K30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXgg
MzEwYmJiMy4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIHRleHQpKTsKICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNlcnRlZFRl
eHQoKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCitw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTUxLDcg
KzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXRO
b2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVu
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAg
ICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2
Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw4ICs1OSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2luc2VydENo
aWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2Vy
dENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0
KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgp
LCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRD
aGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwg
VmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzEsMTAgQEAgdm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
TmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNl
cnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9pbnNlcnRD
aGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNl
cnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdl
dCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQo
KSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUo
KSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9pbnNlcnRDaGls
ZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODEsNCArODcsMTQgQEAgdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmlu
ZGV4IGQ0Yjc2MmQuLjhkOWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMTYgKzM5LDIwIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2Vy
dCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+
IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNpZm5kZWYgTkRFQlVH
CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3Zl
cnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBS
ZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsK
ICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0
Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTU5LDEwICs1OSwxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAotcHJpdmF0ZToKLQotICAgIEluc2VydFRleHRD
b21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCwgUmViYWxhbmNlVHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKKwor
cHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWNhYmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5v
ZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDU1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJl
Zm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNo
aWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7
CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDdhN2Y5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkK
K3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjhlNmEzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTdiODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
Y291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwgY291
bnQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQzMGZkYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2Ns
YXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSos
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVhYzdiNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRl
eHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkK
KyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAo
IUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsK
KyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAg
IGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVQYXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
IGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5cGUo
KSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi43N2M0MjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgeyBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7IH0KKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3Zl
cnJpZGUgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVw
bGFjZUFwcGx5RWRpdFR5cGUoKSk7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlk
ZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApp
bmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNDQsMTQgKzQ1
LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGVMaXN0
LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5k
ZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2lu
Y2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTE0ODIsNiArMTQ4
OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1cGRhdGVOb2Rlc0luc2VydGVk
KE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50ID0gbGFzdFBvc2l0aW9u
SW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsKIH0KKyAgICAKK1JlZjxFZGl0
Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAg
cmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwg
cmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZv
cmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7
CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVk
VGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICBy
ZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIH0K
K30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdlJ3JlIGp1c3QgcGFzdGluZyBh
IHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2VydCB0aGUgdGV4dCBub2RlCiAv
LyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xkcyB0aGUgc2VsZWN0aW9uLiAg
VGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXplZCBjb2RlIGluCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3
YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBib29s
IHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVudEZyYWdtZW50Jik7CiAKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICBQb3NpdGlvbiBtX3N0
YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9lbmRPZkluc2VydGVkQ29udGVu
dDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlvblN0eWxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
ICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQo
Y29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIAogdm9pZCBUeXBp
bmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4
dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21t
YW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0
LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21t
YW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBz
ZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21w
b3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWls
aW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFj
ZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0
aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uM2U0MjIxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAg
OiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKwor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYmQxNDQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyNDYwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNo
aWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2Vy
dENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MTc0NjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJl
Zm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBj
aGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQ
YXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTY2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgor
CisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5j
ZVR5cGUpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5z
ZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGlu
Z0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
cmV0dXJuIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5k
OjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRU
ZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTNiNWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKyNk
ZWZpbmUgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLCBSZWJh
bGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0
ZXNwYWNlcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5j
ZVR5cGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJhbGFuY2VUeXBlKTsKKworICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGRkNTMxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOTZjMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
PiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCmluZGV4IDdjMjEzNjUuLmU2OTVhNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5j
cHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdl
KFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0KQogfQogCiAKLXZvaWQg
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQor
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKICAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXgg
OWJkZWUxYy4uMDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vz
c2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFU
Rk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUt
PmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAm
JiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
ICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0
ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdl
ZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2Rl
KCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CmluZGV4IDFlNmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJp
bmcmIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRy
b2woKSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVG
cm9tKCppbm5lclRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFs
dWVGcm9tKCppbm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHBy
ZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hp
bGROb2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0Ep
CiAgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCiAgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhP
YmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAg
ICAgICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFT
U0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8
fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hp
bGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAg
IGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisg
ICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhp
cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9u
KFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAg
ICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1Jl
bmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUx
YzYuLmM1Mjg4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQs
NyArMzE4NCw3IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFt
ZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAotICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKIH0KIAogc3Rh
dGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtl
eWJvYXJkRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CmluZGV4IDc3YzA3ZmUuLmJmZDFmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKQEAgLTM0MSw3ICszNDEsNyBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5j
ZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAg
ICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShlbGVt
ZW50LmdldCgpKTsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24ocG9zaXRp
b24sIHBvc2l0aW9uLCBET1dOU1RSRUFNKTsKICAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigp
LnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgZnJhbWUu
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgICAgICBmcmFt
ZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKICAgICB9CiAK
ICAgICBlbGVtZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250550</attachid>
            <date>2015-04-10 18:40:29 -0700</date>
            <delta_ts>2015-04-10 18:44:39 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>236019</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGUxMTEyNWEwOThmYTI3ZTIxYTczZWJjNGVkOTJkNTcwODVmNzZjZDYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBOZXcgRWRpdENvbW1h
bmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVk
cyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTIwNDY1Yi4uYjA2MjE1OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE1LTA0LTEwICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5n
ZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgorCiAyMDE1LTA0LTEwICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIFN1cHBvcnQgbW9k
aWZ5aW5nIHJlcXVlc3QgVVJMcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5o
dG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZh
bHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCmluZGV4IGExZTg0M2UuLjEyNjQ2ZGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3It
YXJpYS10ZXh0Ym94Lmh0bWwKQEAgLTQ3LDcgKzQ3LDggQEAgY29udGVudCBpbnNpZGUKICAgICAg
ICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKIAotICAgICAgICB2YXIgYWRkZWROb3Rp
ZmljYXRpb24gPSBheFRleHRib3guYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9u
Q2FsbGJhY2spOworICAgICAgICB2YXIgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CiAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFlYzM0NzkuLjFkOGMwZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNDcwLDEwICsxNDcwLDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAg
IGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAg
IGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5MiwxMSArMTQ5NiwxNSBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVT
ZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRp
dGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5j
cHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApAQCAtMTUxMiw2ICsxNTIwLDEwIEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2li
bGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY3N2Y4OC4uNTY0NGUxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxNyBAQAorMjAxNS0wNC0xMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBh
Y2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5
IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4
dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVu
dCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVs
ZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2Yg
Y2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFu
IG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Np
c3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBj
aGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVj
dGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBUZXN0cyBhcmUgc3Rp
bGwgaW4gZGV2ZWxvcG1lbnQuIFN1Ym1pdHRpbmcgcGF0Y2ggZWFybHkgZm9yIGZlZWRiYWNrLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRW
YWx1ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpyb290V2ViQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpUZXh0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNv
bnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29u
dGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBh
c3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxl
UG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1Mu
bW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2VtZW50Q2hh
bmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
ZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5k
Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseUludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAgICogZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRp
dGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRU
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
aWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAg
KiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQp
OgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRl
eHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6
OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmFwcGx5SW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5SW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAg
ICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92
ZVdpdGhvdXRWYWxpZGF0aW9uVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWlu
aW5nQ2FyZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAq
IGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29t
bWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9O
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6
cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKyAgICAgICAg
KiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRy
b2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6CisKIDIwMTUtMDQtMTAgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50IEZpbHRlcmluZ10g
U3VwcG9ydCBtb2RpZnlpbmcgcmVxdWVzdCBVUkxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBkZWNkZDUzLi5jZTFkMTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Mzkz
LDYgKzE0MzkzLDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ0NDksNiArMTQ0NzcsMzQgQEAKICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3Bw
Ij4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NzMw
LDYgKzE0Nzg2LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE1MDI0LDYgKzE1MTM2LDYyIEBACiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRD
b21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3Bw
Ij4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5
LDEwICsyMTIzNywxNCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVh
a0Jsb2NrcXVvdGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXENvbXBvc2l0ZUVkaXRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBA
IC0yMTA5OSwxMCArMjEyNzEsMTQgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQ
b3NpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXROb2Rl
QXR0cmlidXRlQ29tbWFuZC5oIiAvPgpAQCAtMjExMjEsNiArMjEyOTcsMTAgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFZpc2libGVQb3NpdGlvbi5oIiAvPgpAQCAt
MjE3ODMsNCArMjE5NjMsNCBAQAogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdl
dHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6
YXRpb25zXG1hc20udGFyZ2V0cyIgLz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYmMw
YTY2Ni4uM2Y3NDJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzQzOCw2ICszNDM4LDEyIEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KQEAgLTM0NTAsNiArMzQ1NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzUxMyw2ICszNTI1LDEyIEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25Db21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzUyOCw2ICszNTQ2LDEyIEBACiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uY3BwIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMzU3Niw2ICszNjAwLDE4IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29t
cGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5j
cHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xMDU2OSw2ICsxMDYwNSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xDcmVhdGVMaW5rQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA1ODEsNiArMTA2MjMsMTIgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIj4KICAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24uaCI+CiAgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjU5LDYg
KzEwNzA3LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxl
Y3Rpb25Db21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjcxLDYgKzEwNzI1LDEyIEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVX
aXRoU3BhbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KQEAgLTEwNzI1LDYgKzEwNzg1LDE4IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
LmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xNTQ2MSw0ICsxNTUz
Myw0IEBACiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwvTUFTTT4K
ICAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
PC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDIwMDhjN2QuLjI1NjFjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNzMsMTIgKzYzNzMsMjIg
QEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3ODc1
NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9Owog
CQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5NUI4
QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgzMTAw
IC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFCNzU2
RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFCNzU2
Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUy
REMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3RjUy
REMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250
cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMx
NTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZEMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5REEw
MDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU0
M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZDMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJ
CUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZG
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsK
KwkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAw
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJ
CUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBB
RjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2Fs
ZS5oICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJ
CUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVC
M0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlG
NTVCM0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNF
RjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAz
RUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1
dFR5cGUuY3BwICovOyB9OwpAQCAtNjQyOCwxMiArNjQzOCwyNiBAQAogCQlGNTVCM0RERTEyNTFG
MTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRU
eXBlLmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIz
REFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNE
RTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBX
ZWVrSW5wdXRUeXBlLmggKi87IH07CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4
IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIyOEQw
MDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQg
LyogTG9jYWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1
OTczREUxMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyog
TG9jYWxlTWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmggKi87IH07CisJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1
MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBF
MDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIw
QzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRp
b25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsK
KwkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEyQjEx
IC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1
QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1
RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICov
OyB9OworCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oICovOyB9OwogCQlGNUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07
CiAJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNB
N0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBG
RkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRB
IC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTEzOTkzLDYgKzE0MDE3LDgg
QEAKIAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNBMTk1
QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0aCA9
IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRz
Lmg7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAwQUMy
MjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2Fn
ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMDUsOCArMTQw
MzEsMTYgQEAKIAkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0
M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2Nh
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNTYsNiArMTQwOTAsMTIgQEAKIAkJ
RjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVUkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBX
ZWVrSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJbnB1
dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4MjAw
OTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAv
KiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4
NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTg3
ODU0QzAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA2Niw4
ICsxNDEwNiwxNiBAQAogCQlGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZBMUFD
Q0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEy
Nzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1l
c3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3Nh
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAwNTEy
QjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUMx
QUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUy
OTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYwMUFD
Q0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEg
LyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyog
SFRNTERhdGFMaXN0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY3NCw2ICsx
NzcyMiwxMCBAQAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0
Q29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5r
Q29tbWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxp
bmtDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1
RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYxQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJCUY1
NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8s
CiAJCQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwICovLAogCQkJCTkzMzA5RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc2ODIsNiArMTc3MzQsMTAgQEAKIAkJCQlD
RUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJ
CQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8sCiAJ
CQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywKKwkJ
CQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8sCisJCQkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTcz
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJ
CTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlE
OTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5
OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCAqLywKQEAgLTE3NzI4LDYgKzE3Nzg0LDEw
IEBACiAJCQkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RM
ZXZlbC5oICovLAogCQkJCTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxl
Y3Rpb25Db21tYW5kLmggKi8sCisJCQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERFRDgx
QUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAorCQkJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgx
IC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlFNjQ5
MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMwRDhF
MENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3NzM4
LDYgKzE3Nzk4LDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZBOTAw
RjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdGQTkw
MEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUwMEY0
NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
QTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgg
Ki8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcCAqLywKQEAgLTE3NzczLDYgKzE3ODM3LDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2RDc5
MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0EwOTlF
NjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5RTY0
OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjNDMDAw
NjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1
OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCisJCQkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZGMUFD
Q0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1QTUy
OTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0NDRjAw
RUNFRjNFIC8qIFVuZG9TdGVwLmggKi8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzREIC8q
IFVubGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAvKiBV
bmxpbmtDb21tYW5kLmggKi8sCkBAIC0yMzY2OCw2ICsyMzc0MCw3IEBACiAJCQkJNkM1NjhDQjEx
OURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRp
b25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0IC8q
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ3MCw2ICsyNDU0
Myw3IEBACiAJCQkJMzEwNjAzNzkxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRl
clZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEgLyog
RE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2
RkUwN0QwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkNDQzI4
MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJh
bWVzUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzkzLDYgKzI0ODY3LDcgQEAK
IAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAvKiBI
VE1MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3
NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3NTFB
Qjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3QkM4NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0uaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50ZXJj
aGFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBI
VE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAyMiw2ICsyNTA5Nyw3IEBA
CiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUxMDAz
QTU4M0EgLyogSlNBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFDMUFC
NzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1ODNB
IC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIwM0VF
MTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDMwLDYgKzI1
MTA2LDcgQEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1Ry
YWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYyIC8q
IEpTQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NkQx
QUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMTI0RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9yZUxv
YWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMxIC8q
IEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNDksNiArMjUyMjYs
NyBAQAogCQkJCUZEQTE1RUFDMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MThGNTAwMjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MThGNTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkQnV0
dG9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjQw
RTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZF
ODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkRBN0MxRjE4ODMyMkZDMDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjU1OTAsNiArMjU2NjgsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5
OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
OTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURGMDAw
RUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyogSlNY
UGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjc3Miw2ICsyNjg1MSw3IEBACiAJ
CQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2RlY01h
Yy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTQwMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBNDIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVj
VVRGOC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjgyNSw2ICsyNjkwNSw3IEBACiAJCQkJMTg1QkNG
MjkwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0FBM0E2OUExOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1vcnlI
YW5kbGVySU9TLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkE0
MTk0QjVDMjIwMDFDQkQyNCAvKiBUaWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBRjg5QTQyMTUxOEZERUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBQTNBNjlDMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjk0OCwxMiArMjcwMjksMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQx
ODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNUE3QUE0MzEzMkYwRUNDMDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE1NkM1QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5MTc5
MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzRjE5OUE4MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREM2OUREQTE2MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5Q
bGFjZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMwMDdD
MzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlND
bGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEg
LyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RjE5OUJCMDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8qIFdl
YkNvcmVOU1N0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk4Niw2ICsyNzA2OSw3
IEBACiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJH
TENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAwRkU5
OTcwIC8qIFdlYkdMQ29udGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJEODFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDFEM0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdM
RGVidWdSZW5kZXJlckluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0RjgyNTUw
MEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcyNyw2
ICsyNzgxMSw3IEBACiAJCQkJNkY5OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNEMDBF
MjdGNTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGQkY4OTA0NTE2OUU5RjFGMDA1MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5MDA5
RkRDOTEgLyogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzkzRTVGRjE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBODBFNkNGRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI3ODA0LDYgKzI3ODg5LDcgQEAKIAkJCQkzMUZCMUE1ODEyMEE1
RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMUZCMUE1QTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9u
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNDAz
NzlFMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTU5MzA5QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZCRDAw
RTgzNDlEIC8qIE5GQS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3OTQwLDYgKzI4MDI2LDcgQEAK
IAkJCQk4NUVDQkVGNjBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NURGODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9iamVj
dEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1MkQg
LyogRE9NSFRNTE9MaXN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZEMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1RjMyQUVGMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3JvdXBF
bGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3IC8q
IERPTUhUTUxPcHRpb25FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMwQUEz
Q0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICov
LApAQCAtMjgwODcsNiArMjgxNzQsNyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAv
KiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MzA0
QjAxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNzcyODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQg
LyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNzVFOEI4QTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb25l
bnRUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MTk3LDYgKzI4Mjg1LDcgQEAKIAkJ
CQk0RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDcyMEIwQTAxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFG
MjYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkI2MjUyRTE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBo
UGFnZU1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MjE3LDYgKzI4MzA2LDcgQEAKIAkJCQlC
MkEwMTVBQTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRl
bklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJC
MTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFBOUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE3OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQ
cm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcg
LyogSGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4Mzk2LDYgKzI4NDg2LDcgQEAKIAkJ
CQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFj
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFn
ZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8q
IEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUY1NUIzREMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIElt
YWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODg1Myw2ICsyODk0NCw3IEBACiAJCQkJRTUx
QTgxREYxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOEE5QTU4NzAxMUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1Bl
cmZvcm1hbmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMw
MDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZERUE2MjQ2MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5M0I3MEQ2QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzcz
OSAvKiBKU1BvcFN0YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg4Nyw2ICsyODk3
OSw3IEBACiAJCQkJMDc5NjlEQkIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAv
KiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3RDA3QjE0MTgzNDE1ODgwMEFCREQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURC
RjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OTY5REMxMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRz
UmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY2Miw2ICsyOTc1NSw3IEBACiAJCQkJ
MDczNzk0RkQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDczNzk0REQxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyog
UlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjND
MDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDczQkUzNTAxN0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUg
LyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
NzhFMDkwQzE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjk4MzksNiArMjk5MzMsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUw
MEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlB
RTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTMwMzQyLDYgKzMwNDM3LDcgQEAKIAkJCQlBMTQ4MzJDMDE4
N0Y2NTY2MDBEQTYzQTYgLyogV0tHcmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgz
MkMyMTg3RjY1QzcwMERBNjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTE0ODMyQzUxODdGNjY4MzAwREE2M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAv
KiBXT0ZGRmlsZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgy
MDBCMEYxQkEgLyogV29ya2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1
RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBi
MTVjLi5iNDBmYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGlt
ZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAg
ICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hl
OjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiAr
NzQzLDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQo
KQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAg
IH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRp
b25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNh
dGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVu
IHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29w
eSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6
bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIG9iamVjdCA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QuZ2V0KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAi
ICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0
aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlw
ZSkKIHsKQEAgLTg1MCwxNiArODY1LDIxOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNh
dGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJs
ZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQorewor
ICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6
Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50
ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50
LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dp
dGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3du
OgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVs
ZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUlu
c2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50
ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAg
ICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAg
ICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYoIkVu
ZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAg
ICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoK
KyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgeworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAgICAg
ICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAg
ICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAg
ICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAgICAg
IHByaW50ZigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIHBy
aW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAg
cHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAgIHBy
aW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHByaW50
ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJB
bGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9
CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAgcHJp
bnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVj
dGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0
U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CiAgICAg
aWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBp
ZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAg
aW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1
dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0g
Z2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bh
c3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOwor
ICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmos
IGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5y
ZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9i
c2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9Q
QVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
bihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKwog
ICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxl
Z2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmog
PSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9i
ai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICAgICAgZW5xdWV1ZVBh
c3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9
CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBl
LCB0ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBF
cXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30K
Kwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5v
ZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNl
cnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRF
ZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5
cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNl
cnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0g
QVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0
cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUo
bm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAo
b2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxk
KCkpIHsKKyAgICAgICAgICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9u
KG9iaik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0
aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRp
b25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNl
dCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVl
cEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOwor
I2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFu
Z2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQoreworICAgIGlmICghb2Jq
KQorICAgICAgICByZXR1cm47CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0ICpvYnNlcnZhYmxl
T2JqZWN0ID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2Jq
ZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc3RkOjpmaW5kKG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25zVG9Qb3N0LmJlZ2luKCksIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmVu
ZCgpLCBvYnNlcnZhYmxlT2JqZWN0KSA9PSBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5l
bmQoKSkgeworICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2Jz
ZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgIH0KIH0KIAogdm9pZCBBWE9iamVjdENhY2hl
OjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSogZnJhbWUsIEFYTG9hZGluZ0V2
ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMwMSwxNSBAQCBib29sIGlzTm9kZUFyaWFW
aXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7CisgICAgaWYgKEFjY2Vzc2li
aWxpdHlPYmplY3QgKnJvb3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0KCkpIHsKKyAgICAgICAg
aWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgICAg
IHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndl
YkFyZWFPYmplY3QoKTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBj
YWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLmY3OWRmODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0x
ODksMTIgKzE4OSw5OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0g
UG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJn
ZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFY
VGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxl
dGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwK
KyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhU
ZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFY
VGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4
dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVk
aXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5
cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8g
SW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFu
Z2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAv
LyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworICAg
IGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
CiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICBlbnVtIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlVbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
ciwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24g
b2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVu
ZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBh
c3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFy
aXR5IG5vdGlmaWNhdGlvbi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworICAgIH07CisKKyAgICBzdGF0
aWMgQVhUZXh0U2VsZWN0aW9uIFRleHRTZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duKQorICAgIHsKKyAgICAgICAgYXV0byBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24o
KTsKKyAgICAgICAgc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKKyAgICAgICAgc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gZ3JhbnVsYXJpdHk7CisgICAgICAgIHJldHVybiBzZWxlY3Rp
b247CisgICAgfQorCisgICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlw
ZSBjaGFuZ2U7CisgICAgICAgIH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRT
ZWxlY3Rpb24oKSwgYm9vbCBzeW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkK
KyAgICAgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhz
eW5jKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRl
eHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCkKKyAgICAgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3lu
YyhmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlw
ZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAg
ICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUg
PT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZu
ZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8v
IFNlbGVjdGlvbiBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
Jik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRl
ZCwKQEAgLTIxOCw3ICszMDUsMzUgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAg
dm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3Vz
ZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7CisgICAgICAgIEFYVGV4dElu
c2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07CisgICAgaW5saW5lIEFYVGV4
dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKKyAgICB7
CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0
OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQ
YXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIG5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
VGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lk
IGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlP
YmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMzQ0
LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4g
bV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50JiBtX2RvY3Vt
ZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29i
amVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1h
cHBpbmc7CkBAIC0yNDQsNiArMzYxLDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmlj
YXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0
eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZv
aWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Pj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQo
Tm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZv
aWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMzczLDEwIEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZvY3VzZWRJbWFnZU1hcFVJ
RWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAgICAKICAgICBBWElEIGdldEFYSUQoQWNjZXNz
aWJpbGl0eU9iamVjdCopOworCisgICAgdm9pZCBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNh
Y2hlRW5hYmxlcgpAQCAtMzA4LDggKzQzNCwxNiBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
OjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25v
cmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxl
U2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQorI2Vsc2UKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVu
dCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZp
Y2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwg
UG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi4zZDQ1ZDNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQt
PmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBj
b25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVs
ZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisgICAgCisgICAgaWYgKEVs
ZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhU
TUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUgKmNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBjYWNo
ZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdl
KCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmlu
ZGV4IDNlNzU3MmYuLmQ1M2E5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dv
cmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5k
aWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmE3YTk5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMjY0Niw0
ICsyNjQ2LDI0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2V0UHJldmVudEtleWJvYXJk
RE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQogI2VuZGlmCiAKK2Jvb2wgQWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUq
IG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVs
ZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93
SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCisg
ICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVt
ZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJhLi4yZTk3NzZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJ
bWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VC
dXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3
b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiBy
b2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5
Mjk5Ni4uNmVmYWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE4
IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4
dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0
ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05h
dGl2ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
YXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4g
MCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUp
KTsKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93
bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0
LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24o
bm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAot
ICAgICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRp
b246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBQb3NpdGlv
biBwb3MxID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpOworICAgIFBvc2l0aW9uIHBvczIgPSBQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
cik7CisgICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJsZVNlbGVj
dGlvbihwb3MxLCBwb3MyLCBET1dOU1RSRUFNKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbih2aXNpYmxlU2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnVybCgpIGNvbnN0CkBAIC0xOTYwLDEzICsxOTY0LDE2IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25z
dCBWaXNpYmxlUG9zCiB7CiAgICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVu
ZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rp
b24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwg
dGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2Uu
ZW5kKQorICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUt
PnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhy
YW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3Rh
cnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYgKzQzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nl
c3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqKSBvdmVycmlkZTsKIAorICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAg
CkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhpc3RzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ci0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFk
ZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxi
YXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBiMDAuLmFiNzkzNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2Fj
aGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbQpAQCAtOTUsNyArOTUsMTYgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAg
ICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmlj
YXRpb25TdHJpbmddOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3sKKyAgICBwb3N0
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIzMDBlNzcu
LjYwNTIzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNTAgQEAKICNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVk
IgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtl
eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5IEAiQVhU
ZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Igor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisKKyNpZm5k
ZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVuZ3RoIgor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJr
ZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIgQCJB
WFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlIgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhp
cyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTE1Niw4ICsyMDAsMTMxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3Jh
cHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsK
IH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBp
ZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQor
ICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtb
TlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1XTsKKyAgICBpZiAo
aW50ZW50LnN5bmMpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5
bmNLZXldID0gQFlFUzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93bikgeworICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50
eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAg
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9
IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVFZGl0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05v
bmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iai0+d3JhcHBlcigp
IHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3Rh
cnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9
IHRleHRNYXJrZXJSYW5nZTsKKyAgICB9CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnRdID0gb2JqLT53cmFwcGVyKCk7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdl
YkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25X
aXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90
aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8g
VXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBb
dGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkg
KnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmlu
ZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKKyAgICBOU1N0cmluZyAqdGV4
dCA9IChOU1N0cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxl
bmd0aF07CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqY2hhbmdlID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OjRdOworICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGVd
ID0gQCh0eXBlKTsKKyAgICBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciB0cnVuY2F0aW9uTGVuZ3Ro
ID0gMTAwMDsKKyAgICBpZiAobGVuZ3RoID4gdHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsK
KyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6dHJ1bmNhdGlvbkxlbmd0aF07
CisgICAgfQorICAgIGlmIChsZW5ndGggPiAwKQorICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgp
KSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJr
ZXJGb3JWaXNpYmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAg
fQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAg
IG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFi
bGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5p
dFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAo
TlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9i
aiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0g
b2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VFbGVtZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3Jh
cHBlcigpOworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
dGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZv
KTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93
IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRp
b25dOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJB
cmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNNdXRh
YmxlQXJyYXkgKmNoYW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjJdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENo
YW5nZURpY3Rpb25hcnkob2JqLCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikp
CisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0RpY3Rpb25h
cnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBpbnNlcnRp
b25UeXBlLCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2Jq
ZWN0OmNoYW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
c10gPSBjaGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYgKGlkIHdyYXBw
ZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgp
LT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRv
IGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbl07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExv
YWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJN
YWMuaAppbmRleCAzOGM1Y2QwLi45MjIyOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVyZmFjZSBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZQogCist
IChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFdlYkNvcmU6OlZpc2libGVQb3Np
dGlvbillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246KGNv
bnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAogCiAjZW5k
aWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAxZGViNGRiLi42NzFkMWJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMjYsMTAg
KzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1h
bmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDE1ICs0OCwyMyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBw
ZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQ
dAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+
cmVuZGVyZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hh
bmdlKQorc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9k
ZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsKLSAgICBTdHJp
bmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9k
ZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1h
bmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYgKHRleHQgPT0gIlxuIikKICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVj
dENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Pihub2RlKSA/
IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQ
b3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7Cisg
ICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDE4ICs3
NCwxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFyZW50
LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRl
eHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtz
KG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0
aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0
ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQo
KSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQ
VElPTik7CiB9CkBAIC04OCw0ICs5NiwxNCBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpnZXRO
b2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4uNDljOWVhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzgsNyArMzgsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+KTsK
IAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDcsNiArNDcsOSBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwog
I2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPENvbnRhaW5l
ck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA4NDYxZWU3
Li4yNWVhYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiQXBwbHlTdHlsZUNvbW1hbmQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2Nr
cXVvdGVDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTU4LDYgKzU5
LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2Nv
cGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDYgKzE2NSwxMyBAQCB2b2lkIEVkaXRDb21tYW5kQ29t
cG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNl
bmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBFZGl0Q29tbWFu
ZENvbXBvc2l0aW9uOjp1bmFwcGx5SW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXpl
KCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT51bmFw
cGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRp
dENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBwbHkoKTsKQEAgLTMyMCw5ICsz
MzAsMTQgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhjb25z
dCBOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCit7CisgICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0
Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9
CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0
cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2Rl
PiByZWZDaGlsZCkKQEAgLTUyMiwyMyArNTM3LDQ2IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0
CiAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQb3Np
dGlvbkZvckluZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwgdmlzaWJsZVBvc2l0aW9uRm9y
SW5kZXgoc3RhcnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkpKSk7CiB9CiAKK1JlZjxFZGl0
Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKK3sKKyAgICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgdGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRl
eHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoaW5zZXJ0
VGV4dEludG9Ob2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKK30KKworUmVmPEVkaXRD
b21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7
CisgICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICByZXR1
cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291
bnQpOworICAgIHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBjb3VudCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRl
eHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291
bnQpKTsKK30KKworUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3Vu
dCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVk
VGV4dCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOwogfQogCiB2b2lk
IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+
IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSByZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVD
b21tYW5kKTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHJl
cGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSkpOwogfQogCiBQb3Np
dGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25z
dCBTdHJpbmcmIHRleHQpCkBAIC0xNTIzLDQgKzE1NjEsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50
PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KIAorQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFw
cGx5SW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJldHVy
biBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT5hcHBseUludGVudCgpOworICAgIHJl
dHVybiBFZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmlu
ZGV4IGMyYjQ4OWQuLmVkZWU0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOwogY2xhc3MgRWRpdGluZ1N0eWxl
OwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAtNTksNiArNjAs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8
Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgdW5hcHBseUludGVudCgpOworCiBwcml2YXRlOgogICAgIEVkaXRDb21t
YW5kQ29tcG9zaXRpb24oRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzdGFydGlu
Z1NlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uLCBFZGl0
QWN0aW9uKTsKIApAQCAtODcsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGJvb2wpOwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBh
cHBseUludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9z
aXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA3LDE4IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAg
ICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1
ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJv
b2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1
ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0g
dHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwgUmVmPEVkaXRD
b21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9tTm9kZShQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKICAgICB2b2lk
IGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNl
KTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQp
OwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9u
Jik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1JlZlB0cjxOb2Rl
PiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUJl
Zm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5x
dW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5zZXJ0VGV4dElu
dG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0cjxFbGVtZW50
PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7
CkBAIC0xMzAsNiArMTM3LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJlbWFpbmluZ1Np
YmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92ZSwgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9zaXRpb25Gb3JO
b2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsKICAgICB2b2lk
IHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0
SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQs
IGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiByZXBsYWNlU2Vs
ZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5v
ZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7
CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNp
bmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
ZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRp
dENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25D
dXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxl
dGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxl
dGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBs
YWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2Fu
aXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9v
bCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3MTY0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywxMSBA
QCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQg
PD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7
CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQsIG1fY291
bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIE5l
ZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlw
ZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkp
OwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBA
IC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhD
RVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29m
ZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdl
dCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24o
bV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0LDQgKzkxLDE0
IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJ
bnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uN2Ez
MWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6Cisg
ICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
dW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBw
bHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJV
RwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92
ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAg
UmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25l
ZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3
IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24g
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8g
Tm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVz
ZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJl
J3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28K
LSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAg
cmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAK
IC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0
aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlmOWZlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0yNywxMSAr
MjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUsNyArMTE1LDcg
QEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNp
emVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJu
YXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRp
dmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0g
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6
OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJz
dHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNy
ZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1
cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxp
bmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0lu
TGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVj
dGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0
SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4
dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRp
dENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVi
bGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtl
clN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJT
dXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJ
bnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcAppbmRleCA4ZjU2NTMyLi45MWVhOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyOSBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5k
OjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYg
bgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQor
ICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3
Li4wMWEwMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNs
dWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgeyByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsgfTsKKwogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAgICAgRWRpdENvbW1hbmQoRG9jdW1l
bnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpA
QCAtOTAsNiArOTMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JikgPSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBwbHlFZGl0VHlw
ZSgpKTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgdW5hcHBseUludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KHVuYXBwbHlFZGl0VHlwZSgpKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21tYW5kKGRv
Y3VtZW50KSB7IH0KIApAQCAtOTcsNiArMTAzLDExIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFk
ZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCk7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5
cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
Tm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1Np
bXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAppbmRleCBkYzNhZTMzLi42
ZGUxM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBA
IC0zMiwxMCArMzIsMTQgQEAKICNpbmNsdWRlIDxCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxDb21wb3NpdGVFZGl0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8Q3JlYXRlTGlu
a0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
PgorI2luY2x1ZGUgPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkFsdGVybmF0aXZlLmNwcD4KICNpbmNsdWRl
IDxEaWN0YXRpb25Db21tYW5kLmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8RWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRpbmdTdHlsZS5j
cHA+CiAjaW5jbHVkZSA8RWRpdG9yLmNwcD4KQEAgLTU0LDExICs1OCwxNSBAQAogI2luY2x1ZGUg
PE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuY3BwPgogI2luY2x1ZGUgPE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcD4K
KyNpbmNsdWRlIDxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1v
dmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUZvcm1hdENvbW1hbmQu
Y3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3Np
dGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
PgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNs
dWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNw
cD4KQEAgLTc3LDYgKzg1LDEwIEBACiAjaW5jbHVkZSA8VGV4dEluc2VydGlvbkJhc2VDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3IuY3BwPgogI2luY2x1ZGUgPFR5cGluZ0NvbW1h
bmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgor
I2luY2x1ZGUgPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFVubGlua0NvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPFZpc2libGVQb3NpdGlvbi5jcHA+CiAjaW5jbHVkZSA8VmlzaWJsZVNlbGVjdGlv
bi5jcHA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uZTI0OWRkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUg
IkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1
ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0
LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNt
YXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShi
b29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1f
ZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5
Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnRE
ZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAg
ICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCks
IHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAK
IHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0
b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkK
IAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlv
biBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAg
ICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0Rp
Y3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAw
OwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMp
OworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMs
IGNtZC0+YXBwbHlJbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2Vk
RXZlbnRzKGNvbXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY29tcG9z
aXRpb24tPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JV
SU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMDMyLDcgKzEwMzYsNyBAQCB2b2lkIEVkaXRvcjo6dW5h
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICBub3RpZnlUZXh0RnJvbUNvbnRyb2xzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50
KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uKGNtZC0+c3RhcnRpbmdTZWxlY3Rpb24oKSk7Ci0gICAgY2hhbmdl
U2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpLCBjbWQtPnVuYXBwbHlJbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRD
aGFuZ2VkRXZlbnRzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+ZW5k
aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hl
ZHVsZWQoKTsKQEAgLTEyNjYsNyArMTI3MCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JD
b3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlv
blRvUGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBk
ZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7Cisg
ICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0
ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTI4NTAs
NyArMjg1NCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVk
KCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlz
bWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdl
U2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlv
biwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVk
aXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9u
cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAg
IC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0
aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8
IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg2Miw3ICsyODY2LDcgQEAgdm9p
ZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBT
b21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVj
dGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RD
aGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNl
bGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBt
X2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQot
ICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9w
dGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9u
cyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9z
aXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3Mg
cmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li5kNmM1ZTM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRl
eHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBz
bWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRo
U21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0g
RWRpdEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsK
QEAgLTQ2OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU2V0Q29tcG9zaXRpb25Nb2Rl
IHsgQ29uZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9OwogICAgIHZvaWQgc2V0
Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9zaXRpb25Nb2RlKTsKIAotICAgIHZv
aWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMpOworICAgIHZv
aWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1
dEFjdGlvbiwgQ29weUFjdGlvbiB9OwogICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JB
Y3Rpb25TcGVjaWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cAppbmRleCA1NzQ1MTcwLi5iNGM3MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcApAQCAtMTM4LDggKzEzOCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9u
Ojpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogCiB2b2lkIEZy
YW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJp
Z2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7Ci0gICAg
c2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5k
ZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25h
bCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCks
IGFsaWduKTsKKyAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlv
bi5pc0RpcmVjdGlvbmFsKCkpLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dl
cmVkKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJh
bWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAt
MTcwLDcgKzE2OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlv
blRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlzaWJsZVNlbGVj
dGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9u
KGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9uYWwoc2VsZWN0
aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9j
dXMpKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9
CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1MywxNiBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5
KTsKKyAgICAKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAg
ICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAgICBpbnRlbnQgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0
aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2
ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwog
fQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91
dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcg
QEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlv
bkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlm
IChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQt
PmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1l
ICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAg
ICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAg
ICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJp
dHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFi
b3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQg
YnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlT
ZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UK
ICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJ
ZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVh
cmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFu
Y2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQogICAgICAgICByZXR1
cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW8KICAgICBpZiAo
ZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRhdGVBbmRSZXZlYWxT
ZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2VsZWN0aW9uQnlVcGRh
dGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2OCw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAgICAgICAgdmlldy0+
Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAg
ICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM3
OSw4ICszODcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oKQogCiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7
CiAgICAgfQotCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOwor
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIAogICAg
IGlmIChhdXRvKiBjbGllbnQgPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKSkKICAgICAgICAg
Y2xpZW50LT5kaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsKQEAgLTEwMjEsNyAr
MTAyOCw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0Jh
Y2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFy
eShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5
ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBn
cmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGlu
ZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwg
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlw
ID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92
ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAg
ICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBm
bGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAg
ICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVu
Y2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5Ogor
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBh
cmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1
bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJv
dW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hh
cmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBT
ZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2Ug
UGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91
bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91
bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBj
YXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBE
aXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAK
IGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRy
aWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3Nyw2ICsxMTU3LDExIEBAIGJvb2wgRnJh
bWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJh
dGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAg
ICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0
ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRo
ZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24u
CiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRv
IHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9u
IHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAt
MTcxMCw4ICsxNzk1LDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAg
ICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rp
b25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5n
ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAg
ICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgYXV0
byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYT2JqZWN0Q2Fj
aGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlB
bGwpKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAgICB9CiB9CiAKIGJv
b2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZmaW5p
dHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yNDIzLDcgKzI1MTAsNyBAQCBWaXNp
YmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24g
PSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24uZXhwYW5kVXNp
bmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0aW9uLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7Cisg
ICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBBbGlnbkN1cnNv
ck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAg
UG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAg
ICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi4zYzMxOTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgog
I2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xMzEsNiAr
MTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGluZyB8IENs
ZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24gfCBGaXJl
U2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVu
dCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNl
bGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3Qg
UG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1
cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZO
ZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wg
Y2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhU
RU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0ZURh
dGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9u
T3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5OCw5
ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZv
ckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoKTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2Vs
ZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxh
cml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlv
bkludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYK
IAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRG
b3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcgQEAgaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKaW5kZXggNTM5NGU3ZS4uYWVjNDc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgpAQCAtNTAsNiArNTEsMTEgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBB
U1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwogfQogCitTdHJpbmcmIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9p
ZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3
b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgp
OwpAQCAtNjUsOSArNzEsOSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0
aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1Mp
CkBAIC04MiwxMCArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkoKQogewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBh
Y3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3Np
dGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVE
YXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAt
OTcsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsK
K30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXgg
MzEwYmJiMy4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIHRleHQpKTsKICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNlcnRlZFRl
eHQoKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCitw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKQEAgLTUxLDcg
KzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXRO
b2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVu
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAg
ICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2
Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw4ICs1OSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2luc2VydENo
aWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2Vy
dENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0
KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgp
LCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRD
aGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwg
VmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzEsMTAgQEAgdm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
TmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNl
cnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9pbnNlcnRD
aGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNl
cnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdl
dCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQo
KSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0
Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUo
KSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9pbnNlcnRDaGls
ZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODEsNCArODcsMTQgQEAgdm9pZCBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmlu
ZGV4IGQ0Yjc2MmQuLjhkOWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMTYgKzM5LDIwIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2Vy
dCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+
IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNpZm5kZWYgTkRFQlVH
CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3Zl
cnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBS
ZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsK
ICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0
Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTU5LDEwICs1OSwxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAotcHJpdmF0ZToKLQotICAgIEluc2VydFRleHRD
b21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCwgUmViYWxhbmNlVHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKKwor
cHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWNhYmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5v
ZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDU1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJl
Zm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNo
aWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7
CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDdhN2Y5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkK
K3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjhlNmEzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTdiODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
Y291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwgY291
bnQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQzMGZkYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2Ns
YXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSos
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVhYzdiNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRl
eHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkK
KyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAo
IUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsK
KyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAg
IGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVQYXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
IGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5cGUo
KSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi43N2M0MjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgeyBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7IH0KKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3Zl
cnJpZGUgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVw
bGFjZUFwcGx5RWRpdFR5cGUoKSk7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlk
ZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApp
bmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNDQsMTQgKzQ1
LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGVMaXN0
LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5k
ZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2lu
Y2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTE0ODIsNiArMTQ4
OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1cGRhdGVOb2Rlc0luc2VydGVk
KE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50ID0gbGFzdFBvc2l0aW9u
SW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsKIH0KKyAgICAKK1JlZjxFZGl0
Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAg
cmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwg
cmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZv
cmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7
CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVk
VGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICBy
ZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIH0K
K30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdlJ3JlIGp1c3QgcGFzdGluZyBh
IHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2VydCB0aGUgdGV4dCBub2RlCiAv
LyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xkcyB0aGUgc2VsZWN0aW9uLiAg
VGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXplZCBjb2RlIGluCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3
YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBib29s
IHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVudEZyYWdtZW50Jik7CiAKKyAg
ICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICBQb3NpdGlvbiBtX3N0
YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9lbmRPZkluc2VydGVkQ29udGVu
dDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlvblN0eWxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
ICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQo
Y29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIAogdm9pZCBUeXBp
bmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4
dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21t
YW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0
LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21t
YW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBz
ZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21w
b3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWls
aW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFj
ZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0
aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uM2U0MjIxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAg
OiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKwor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYmQxNDQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyNDYwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAg
KzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNo
aWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2Vy
dENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MTc0NjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJl
Zm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBj
aGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQ
YXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTY2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgor
CisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5j
ZVR5cGUpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5z
ZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGlu
Z0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
cmV0dXJuIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5k
OjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRU
ZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTNiNWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKyNk
ZWZpbmUgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLCBSZWJh
bGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0
ZXNwYWNlcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5j
ZVR5cGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJhbGFuY2VUeXBlKTsKKworICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGRkNTMxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOTZjMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
PiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCmluZGV4IDdjMjEzNjUuLmU2OTVhNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5j
cHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdl
KFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0KQogfQogCiAKLXZvaWQg
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQor
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKICAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXgg
OWJkZWUxYy4uMDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vz
c2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFU
Rk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUt
PmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAm
JiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
ICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0
ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdl
ZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2Rl
KCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CmluZGV4IDFlNmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJp
bmcmIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRy
b2woKSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVG
cm9tKCppbm5lclRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFs
dWVGcm9tKCppbm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHBy
ZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hp
bGROb2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0Ep
CiAgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCiAgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhP
YmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAg
ICAgICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFT
U0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8
fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hp
bGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAg
IGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisg
ICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhp
cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9u
KFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAg
ICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1Jl
bmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUx
YzYuLmM1Mjg4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQs
NyArMzE4NCw3IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFt
ZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAotICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKIH0KIAogc3Rh
dGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtl
eWJvYXJkRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CmluZGV4IDc3YzA3ZmUuLmJmZDFmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKQEAgLTM0MSw3ICszNDEsNyBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5j
ZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAg
ICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShlbGVt
ZW50LmdldCgpKTsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24ocG9zaXRp
b24sIHBvc2l0aW9uLCBET1dOU1RSRUFNKTsKICAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigp
LnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgZnJhbWUu
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgICAgICBmcmFt
ZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKICAgICB9CiAK
ICAgICBlbGVtZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250552</attachid>
            <date>2015-04-10 18:44:39 -0700</date>
            <delta_ts>2015-04-10 18:51:31 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>237130</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDNkNjFmODU4ODBhYWU1ZDNhNmZlNGM3NjEwZGVlOThhM2I5YTkwNzYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MTkKICAgIAogICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgIE5ldyBFZGl0
Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5
IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBu
b3RpZmljYXRpb25zLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ug
bm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdp
dmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRp
bmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20g
dG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2Nl
ZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCiAgICAK
ICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4g
SW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNv
bnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24g
cGFzc3dvcmQgZmllbGRzLgogICAgCiAgICBUZXN0cyBhcmUgc3RpbGwgaW4gZGV2ZWxvcG1lbnQu
IFN1Ym1pdHRpbmcgcGF0Y2ggZWFybHkgZm9yIGZlZWRiYWNrLgoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMjA0NjViLi5i
N2ZkZmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDQtMTAgIERvdWcgUnVzc2VsbCAg
PGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250
ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUg
YW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNj
ZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVk
aXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxh
Y2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlh
YmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxz
byBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3Jk
IGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRv
IGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3Bv
bmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9z
dGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJp
YS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDQtMTAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDb250ZW50IEZpbHRlcmluZ10gU3VwcG9ydCBtb2RpZnlpbmcgcmVx
dWVzdCBVUkxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdl
cy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2NDZkZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVl
LWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRi
b3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQogICAgICAgICAvLyBUcmln
Z2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRl
eHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9
IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7
CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1l
bnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJB
cmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAg
ICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggMWVjMzQ3OS4uMWQ4YzBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTE0NzAsMTAgKzE0NzAsMTQgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcv
QnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcAogICAgIGVkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNw
cAorICAgIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRp
dENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCiAgICAgZWRpdGluZy9F
ZGl0b3IuY3BwCkBAIC0xNDkyLDExICsxNDk2LDE1IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBlZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcAogICAgIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCisgICAgZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAor
ICAgIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92
ZUZvcm1hdENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVk
aXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0
Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwCkBAIC0xNTEyLDYgKzE1MjAsMTAgQEAgc2V0KFdlYkNv
cmVfU09VUkNFUwogICAgIGVkaXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAogICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAK
KyAgICBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9VbmxpbmtDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlv
bi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBhNjc3Zjg4Li5hMjZjYWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjI0IEBACisyMDE1LTA0LTEwICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29t
PgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IEVk
aXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vzc2liaWxp
dHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24gY2hhbmdl
IG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0
byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNw
b25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFu
aXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2Fs
ZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgor
CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQg
b2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5n
ZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZl
bG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAg
TmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBV
UkwgKE9PUFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RD
YWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNo
b3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVj
dGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVk
aXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dv
cmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNl
dFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAgICAgICogZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21t
YW5kQ29tcG9zaXRpb246OnVuYXBwbHlJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
OmRlbGV0ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dElu
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFn
cmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBl
ZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkNvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1
bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6
OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAg
KiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIpOgor
ICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxl
RWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVF
ZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjph
cHBseUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBs
eUludGVudCk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBw
bGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhv
dXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0U2VsZWN0aW9uKToKKyAgICAgICAg
KiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAg
ICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAg
ICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAq
IGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0lu
c2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3
bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0
ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRp
dGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAg
ICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxL
ZXlib2FyZFNlbGVjdGlvbik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50
T3JkZXIpOgorCiAyMDE1LTA0LTEwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmddIFN1cHBvcnQgbW9kaWZ5aW5nIHJlcXVlc3QgVVJM
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggZGVjZGQ1My4uY2UxZDE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNDM5Myw2ICsxNDM5MywzNCBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0
NDQ5LDYgKzE0NDc3LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDczMCw2ICsxNDc4NiwzNCBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENv
bXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3Bl
cnR5Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgpAQCAtMTQ4MDAsNiArMTQ4ODQsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNTAy
NCw2ICsxNTEzNiw2MiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2Vf
V2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMTA2OSwxMCArMjEyMzcsMTQgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0Q29tbWFuZC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkFsdGVybmF0aXZlLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCIgLz4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xFZGl0QWN0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXEVkaXRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXEVkaXRpbmdCZWhhdmlvci5oIiAvPgpAQCAtMjEwOTksMTAgKzIxMjcxLDE0IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vZGlmeVNlbGVj
dGlvbkxpc3RMZXZlbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xN
b3ZlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVy
dHlDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92
ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KQEAgLTIx
MTIxLDYgKzIxMjk3LDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRl
eHRJdGVyYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUZXh0
SXRlcmF0b3JCZWhhdmlvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xUeXBpbmdDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xWaXNpYmxlUG9zaXRpb24uaCIgLz4KQEAgLTIxNzgzLDQgKzIxOTYzLDQgQEAKICAgPEltcG9y
dEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQo
VkNUYXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+CiAgIDwv
SW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Q
cm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGJjMGE2NjYuLjNmNzQyYWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
QEAgLTM0MzgsNiArMzQzOCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNDUwLDYgKzM0NTYsMTIgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5jcHAi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21t
YW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KQEAgLTM1MTMsNiArMzUyNSwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1
MjgsNiArMzU0NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5k
ZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1NzYsNiArMzYwMCwx
OCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTA1NjksNiArMTA2MDUsMTIgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAg
LTEwNTgxLDYgKzEwNjIzLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XERpY3RhdGlvbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xFZGl0QWN0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMDY1OSw2ICsxMDcwNywxMiBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiPgorICAgICAg
PEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21t
YW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0xMDY3MSw2ICsxMDcyNSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDcyNSw2ICsxMDc4
NSwxOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5k
LmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbi5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xVbmRvU3RlcC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtMTU0NjEsNCArMTU1MzMsNCBAQAogICAgICAgPEZpbHRlcj5wbGF0Zm9y
bVx3aW48L0ZpbHRlcj4KICAgICA8L01BU00+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMDA4YzdkLi4yNTYx
YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC02MzczLDEyICs2MzczLDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4
NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25h
cFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0Ex
OTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1
MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2
M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2
RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIu
Y3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2
MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1
RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZE
QiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVG
MDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVu
dHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyog
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAv
KiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyog
UGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAq
LzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1
MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4
REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJE
MDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VU
ZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJh
c2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAq
LzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEy
NTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MjgsMTIg
KzY0MzgsMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUEx
MjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFG
MTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lu
cHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVE
MEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07
CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVE
MEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICov
OyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJF
NCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgy
RTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlG
NTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsK
KwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3
MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsK
IAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0
IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9j
YWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1
RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNG
MDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2
MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFB
Q0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07
CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNw
cCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsg
fTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3
OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4
MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8q
IFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJC
MTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9Owor
CQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdD
RTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhU
TUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEg
LyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRh
TGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50Lmgg
Ki87IH07CkBAIC0xMzk5Myw2ICsxNDAxNyw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4
NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxl
U2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMx
MDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxT
bmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2
Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyog
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBG
b3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29u
dHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQx
MDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE0MDA1LDggKzE0MDMxLDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYw
MTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0Eg
LyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8q
IFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3
ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkx
MjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5w
dXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNF
RjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0MDU2LDYgKzE0MDkwLDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBV
UkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNF
RjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIy
OEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0
REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVB
MkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29y
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNv
cmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8q
IFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwNjYsOCArMTQxMDYsMTYgQEAKIAkJRjU5NzNEREYxNUNG
QjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNG
MDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRp
b25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0
QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTc2NzQsNiArMTc3MjIsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2
NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5
QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2
MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZC
MUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4
MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2
NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5
RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAg
LTE3NjgyLDYgKzE3NzM0LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERp
Y3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8q
IERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAv
KiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8q
IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFC
MUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyog
RWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29t
bWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5k
LmggKi8sCkBAIC0xNzcyOCw2ICsxNzc4NCwxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBC
MEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2
NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFE
MDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQw
QkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhE
MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAog
CQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQu
Y3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9y
bWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzczOCw2ICsxNzc5OCwxMCBAQAogCQkJCTkzMzA5REI4
MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5o
ICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNw
cCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5o
ICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVX
aXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBS
ZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2
RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc3Myw2ICsxNzgz
NywxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhh
dmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5k
LmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5o
ICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAw
MDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVB
NTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
Ki8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21t
YW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFD
Q0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
ICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJ
CUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlE
MDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2Njgs
NiArMjM3NDAsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ0NzAsNiArMjQ1NDMsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0Qw
MEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01D
U1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUx
MkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVs
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODgg
LyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZD
Q0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNDc5Myw2ICsyNDg2Nyw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0
IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAw
QzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5
OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjUwMjIsNiArMjUwOTcsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVB
QyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEw
MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIw
M0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTAzMCw2ICsyNTEwNiw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZG
OTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUx
NzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0
NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEw
N0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1MTQ5LDYgKzI1MjI2LDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAz
QTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMz
QTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRD
QUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0
M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNH
ZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1
IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTkwLDYgKzI1NjY4LDcg
QEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2Vw
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpT
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5
NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0
N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0
RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2
MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMjY3NzIsNiArMjY4NTEsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAv
KiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVG
NkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQw
MEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRE
RURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4
dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQw
MEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIx
MkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4
MjUsNiArMjY5MDUsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRU
aW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBU
aWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlC
Q0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVy
YWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyog
VGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JE
MjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NDgsMTIgKzI3MDI5LDE0IEBA
CiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5
ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0My
IC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYz
NDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQz
RDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVy
RXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyog
V2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAw
N0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJu
aW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8q
IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTEx
NDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2Vi
Q29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdG
MDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY5ODYsNiArMjcwNjksNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEy
Nzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2
RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAw
MEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUw
REY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMu
aCBpbiBIZWFkZXJzICovLApAQCAtMjc3MjcsNiArMjc4MTEsNyBAQAogCQkJCTZGOTk1QTM5MUE3
MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFz
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8q
IENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcw
MDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENT
U0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgwNCw2ICsy
Nzg4OSw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBB
NUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRB
RTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzk0MCw2ICsyODAyNiw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBC
IC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3
Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3
MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9u
c0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MDg3LDYgKzI4MTc0LDcgQEAKIAkJ
CQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFk
ZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0
ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAw
N0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMw
RTFERTJENjAwN0YyNDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yODE5Nyw2ICsyODI4NSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8q
IEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUw
MDY0Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2
QUYyMzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAw
QTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZG
QzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yODIxNyw2ICsyODMwNiw3IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdy
YXBoaWNzVHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZF
Q0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIz
REJGMTI1MUYxMkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMw
MDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1
Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM5NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yODM5Niw2ICsyODQ4Niw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8q
IEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5
NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAz
RUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUw
RTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
NzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAt
Mjg4NTMsNiArMjg5NDQsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1Bl
cmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZE
MSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQz
Qzg1RjE4OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAg
LyogSlNQZXJpb2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3
QzAwOUQ4NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjg4ODcsNiArMjg5NzksNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEw
MDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzk2OURCRDE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxs
YmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyog
SlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1
RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3Rh
dHNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4
NDIgLyogSlNSVENTdGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3
RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjk2NjIsNiArMjk3NTUsNyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBS
VENOb3RpZmllcnNNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIw
MEU1QTA0NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDc4RTA5MEIxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYw
MDJCRDQzMSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDczNzk0RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1v
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODM5LDYgKzI5OTMz
LDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0
ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYy
IC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2
Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhE
QTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlH
ZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIy
MkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1
MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM0Miw2
ICszMDQzNyw3IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3Mu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGls
aXRpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBX
S1ZpZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyog
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzNzk5MTk5NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uZDM1YmI5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMjksNiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVz
ZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2Jq
ZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
ICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90
aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9z
dFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCkKIHsKIH0KIApAQCAtNzQyLDYgKzc0MywyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdl
ZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAv
LyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlh
dGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4
cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xl
YXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAg
ICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBvYmplY3QgOiBub3RpZmljYXRpb25zKQor
ICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0Lmdl
dCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxlUG9zaXRpb24oKSk7CisjZW5k
aWYKK30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJP
YmplY3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQg
cG9zdFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NSwyMTggQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGls
ZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5n
ZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5k
ZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7Cisg
ICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVu
a25vd24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0OgorICAgICAgICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92
ZTo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kOgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93
biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxl
dGU6CisgICAgICAgICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIklu
c2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVE
aWN0YXRpb246CisgICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAg
ICAgICBwcmludGYoIlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAg
ICAgICAgIHByaW50ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAg
ICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25v
d246OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kOgorICAgICAgICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAg
ICBwcmludGYoIlByZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVu
dC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUNoYXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFnZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1
bWVudDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxs
OgorICAgICAgICAgICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAg
ICAgcHJpbnRmKCItU3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30K
Kwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5v
ZGUgKm5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVu
dDsKKworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChv
YmopIHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRh
aW5lZEJ5UGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmog
PSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQor
ICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhT
ZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURf
UEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisg
ICAgc2V0VGV4dFNlbGVjdGlvbkludGVudCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9
IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0
QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCiAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwg
dGV4dCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAo
b2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxk
KCkpIHsKKyAgICAgICAgICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9u
KG9iaik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2Jq
LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAg
ICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVk
aXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5n
T2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxl
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2Vy
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFT
U0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChp
bnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0g
QVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAg
c3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2Jq
LT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgICAgICBlbnF1ZXVlUGFz
c3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmopOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0K
KworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRlbGV0
aW9uVHlwZSwgZGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRp
b24pOworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwg
dGV4dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVU
ZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUo
aW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iai0+b2JzZXJ2YWJsZU9iamVj
dCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHN0ZDo6ZmluZChtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5iZWdpbigpLCBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSwgb2JzZXJ2YWJsZU9iamVjdCkgPT0gbV9w
YXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuZW5kKCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5v
dGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAo
IW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAg
IG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAg
ICB9CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRp
b24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYg
KzEzMDEsMTUgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdl
YkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhp
cy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChyb290T2JqZWN0LT5pc0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8QWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXc+KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7CisgICAgfQorICAgIHJl
dHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVD
YWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBi
ZmE5Mjc3Li5mNzlkZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAy
MDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksOTkgQEAgcHVibGljOgogICAg
IHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQg
PSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9p
ZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90
aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5
bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJ
bnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgICAg
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorICAgIH07CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICAgICAgQVhUZXh0
RWRpdFR5cGVVbmtub3duLAorICAgICAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJp
YyB0ZXh0IGRlbGV0ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0
ZXh0IGluc2VydAorICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0
eXBpbmcKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGlj
dGF0aW9uCisgICAgICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAg
ICAgICBBWFRleHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKKyAgICB9OworCisg
ICAgLy8gU2ltcGxlIHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UK
KyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
biB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cwogICAgIH07CiAKLSAgICB2b2lkIG5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJik7CisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSB7Cisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYWdlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3Vt
ZW50LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBBbGwgZ3JhbnVs
YXJpdHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hvbGUgZG9jdW1l
bnQgYXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNvbWUgb3RoZXIg
Z3JhbnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3VtZW50IHdpbGwg
bm90IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24uCisgICAgfTsKKwor
ICAgIHN0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24gZGlyZWN0aW9uOworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFu
dWxhcml0eTsKKyAgICB9OworCisgICAgc3RhdGljIEFYVGV4dFNlbGVjdGlvbiBUZXh0U2VsZWN0
aW9uKEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25Vbmtub3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eSA9
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICB7CisgICAgICAgIGF1dG8g
c2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCk7CisgICAgICAgIHNlbGVjdGlvbi5kaXJlY3Rp
b24gPSBkaXJlY3Rpb247CisgICAgICAgIHNlbGVjdGlvbi5ncmFudWxhcml0eSA9IGdyYW51bGFy
aXR5OworICAgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0KKworICAgIHN0cnVjdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBl
OworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9u
OworICAgICAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgICAgICB9OworICAgICAg
ICBib29sIHN5bmM7CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRT
ZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJvb2wgc3luYyA9IGZhbHNl
KQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihzZWxl
Y3Rpb24pCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeyB9CisKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQorICAgICAgICAg
ICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICAgICAsIGNoYW5n
ZShjaGFuZ2UpCisgICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAgICAgIHsgfQorCisgICAg
ICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlLCBi
b29sIHN5bmMpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0
aW9uKEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAg
IHsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQp
OworICAgICAgICB9CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRl
bnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBz
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hhbmdlCisgICAgdm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdFdmVu
dCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMzA1LDM1IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlF
bGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUp
OwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
Jik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lk
IHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRl
eHRDaGFuZ2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRl
ZCwKKyAgICB9OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBl
KEFYVGV4dEVkaXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZURlbGV0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVk
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgor
ICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVV
bmtub3duOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9p
ZCB0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5n
ZWQoRWxlbWVudCopOwpAQCAtMjI5LDYgKzM0NCw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlz
Tm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4p
OyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsK
KyAgICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2Jq
ZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzM2MSwxMSBAQCBw
cml2YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1f
bm90aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVk
KCk7CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZl
Y3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25z
VG9Qb3N0OworICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOwor
CiAgICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVS
ZWdpb25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9k
ZSopOwpAQCAtMjUxLDYgKzM3MywxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAg
ICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIHZvaWQg
ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCopOworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50
OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4ICs0MzQsMTYg
QEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9s
bFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSop
IHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9
CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9Citpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7
IH0KKyNlbmRpZgogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdl
dCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNh
dGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUp
IHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAK
aW5kZXggZDhkMjZkZS4uM2Q0NWQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIs
MjcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29u
c3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNj
ZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRP
ckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhp
cy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBpZiAoSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1l
bnQoKSkgeworICAgICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4odGhp
cyk7CisgICAgfQorICAgIAorICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93
SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpIHsK
KyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlICpjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJvb2wgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9
IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJmLi5kNTNhOTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRp
dmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRD
b250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVs
ZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFz
c3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA1YTI3ZWE4Li5h
N2E5OTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2NDYsNCArMjY0NiwyNCBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goYm9vbCBvbikKIH0K
ICNlbmRpZgogCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29y
ZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlm
ICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChhcmlhUm9sZUF0
dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisg
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbnVsbHB0cjsKKyAgICBpZiAoRWxl
bWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRN
TElucHV0RWxlbWVudD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgaW5wdXRFbGVtZW50ID0gZG93
bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCk7CisgICAgfQorICAgIGlmICghaW5wdXRF
bGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIGlucHV0RWxl
bWVudC0+aXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
aW5kZXggMzU4NmYyYS4uMmU5Nzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFz
c3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wg
aXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJvbGU7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjZlZmFhYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwxOCBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4dFJh
bmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7CisgICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAg
IGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9y
ZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5z
ZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXIt
Pm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6
UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uu
c3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBET1dOU1RSRUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0aW9uKG5vZGUsIHJhbmdl
LnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBQb3NpdGlv
biBwb3MyID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0
aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2libGVTZWxlY3Rpb24gdmlz
aWJsZVNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9zMiwgRE9XTlNUUkVBTSk7
CisgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24odmlzaWJs
ZVNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAg
PyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7
CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2
MCwxMyArMTk2NCwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVj
dGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5n
ZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1
c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0g
ICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0g
cmFuZ2UuZW5kKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9yZW5kZXJlci0+
ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOwor
ICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24g
PSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3Jl
bmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOwor
ICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcuaAppbmRleCBjNjJjNzUzLi4wYzQ2NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCkBAIC00Myw2ICs0
Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlLCBBWE9i
amVjdENhY2hlKikgb3ZlcnJpZGU7CiAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVh
T2JqZWN0KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXcoU2Nyb2xsVmlldyopOwogICAgIApAQCAtNzEsNyArNzMsNiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJZkV4
aXN0cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdl
YkFyZWFPYmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZp
cnN0Q2hpbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB3ZWJBcmVhT2JqZWN0KCk7IH0KICAg
ICBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKiBhZGRDaGlsZFNjcm9sbGJhcihTY3JvbGxiYXIqKTsK
ICAgICB2b2lkIHJlbW92ZUNoaWxkU2Nyb2xsYmFyKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9T
Lm1tCmluZGV4IDExOWUwYjAwLi5hYjc5MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDcgKzk1LDE2IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9i
amVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgQVhT
ZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li42MDUyM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYg
KzQ0LDUwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZp
Y2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
biIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxh
cml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJB
WFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4
dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRD
aGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgg
QCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVu
dCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJh
bmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJh
bmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCiAvLyBU
aGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25z
LgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMjAwLDEzMSBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RX
ZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGlu
aXRXaXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7CisgICAgaWYgKGludGVu
dC50eXBlICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKGludGVudC50eXBl
KTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmls
aXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9u
KTsKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAg
ICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
QmVnaW5uaW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAg
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eV0gPSBA
KGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRN
YXJrZXJSYW5nZSA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBv
c2l0aW9uczpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRpb246c2VsZWN0aW9uLnZp
c2libGVFbmQoKV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlTZWxlY3Rl
ZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFuZ2U7CisgICAgfQorICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IG9iai0+d3JhcHBl
cigpOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0Fj
Y2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3Np
YmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1
c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3Rp
ZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb25d
OworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9u
YXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCiB7CisgICAgTlNTdHJpbmcgKnRleHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAg
TlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICghbGVuZ3RoKQorICAg
ICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNoYW5nZSA9IFtbTlNN
dXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2Vb
TlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAgc3RhdGljIGNvbnN0
IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYgKGxlbmd0aCA+IHRy
dW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJp
bmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkK
KyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV0gPSB0ZXh0Owor
ICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtl
ciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOnBvc2l0aW9u
XSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVs
ZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107CisgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBvc2l0aW9uKSkKKyAg
ICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBAW2NoYW5n
ZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworICAgIGlk
IHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQ
b3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVD
aGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwor
CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3Rl
ZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3Np
YmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5z
ZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICgh
b2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAg
ICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNo
YW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5
ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgZGVsZXRpb25U
eXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6
Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRD
aGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlv
bikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyBy
ZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7Cisg
ICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpOworICAgIE5TQWNjZXNzaWJp
bGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlW
YWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFz
ZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUg
cG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0Fj
Y2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwogfQogCiB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBA
CiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBv
c2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0
TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24m
KXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAK
aW5kZXggMWRlYjRkYi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxh
Y2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNs
dWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwxNSArNDgs
MjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0Vk
aXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9p
ZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRD
aGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1
ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBj
b25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNp
ZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4i
KQorICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENo
YW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2Rl
LT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9u
IHBvc2l0aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2Rl
KSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNh
Y2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29t
bWFuZDo6ZG9BcHBseSgpCkBAIC02NCwxOCArNzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUo
KSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYg
KCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAg
IAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcg
dGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
LSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAg
IG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODgsNCArOTYsMTQgQEAg
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVu
ZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIEFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4
IGQ2NGIwNGUuLjQ5YzllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ3
LDYgKzQ3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQo
SGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKKwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8
Tm9kZT4gbV9ub2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uMjVlYWI0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tG
bG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTE2Miw2ICsx
NjUsMTMgQEAgdm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChI
YXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseUludGVudCgp
Cit7CisgICAgaWYgKG1fY29tbWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5k
c1ttX2NvbW1hbmRzLnNpemUoKS0xXS0+dW5hcHBseUludGVudCgpOworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB2b2lkIGFwcGx5Q29t
bWFuZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjb21tYW5kKQogewogICAgIGNv
bW1hbmQtPmFwcGx5KCk7CkBAIC0zMjAsOSArMzMwLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4g
aW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzNyw0
NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24o
VmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29w
ZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNj
b3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRl
eHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0g
RWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRl
ZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRl
eHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFj
ZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQ
dHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAg
IFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVu
dFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQp
KTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQt
PmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJl
cGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsx
NTYxLDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseUludGVudCgpCit7CisgICAgaWYgKG1fY29t
bWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5kc1ttX2NvbW1hbmRzLnNpemUo
KS0xXS0+YXBwbHlJbnRlbnQoKTsKKyAgICByZXR1cm4gRWRpdENvbW1hbmQ6OmFwcGx5SW50ZW50
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi5lZGVlNDk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICsz
Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3Mg
U3R5bGVkRWxlbWVudDsKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHVuYXBwbHlJbnRlbnQo
KTsKKwogcHJpdmF0ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKQEAgLTg3LDYgKzkwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGlj
YXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29ycmVj
dGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0Qmxp
bmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZTsKIAogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jik7CkBA
IC0xMDMsMTUgKzEwNywxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1vdmVTdHlsZWRFbGVt
ZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9uKGJvb2wg
c21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwg
Ym9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1
ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwogICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0
cnVlKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCk7CiAgICAgdm9pZCBpbnB1dFRleHQoY29uc3QgU3RyaW5nJiwgYm9v
bCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSk7CiAgICAgYm9vbCBpc1JlbW92YWJsZUJsb2Nr
KGNvbnN0IE5vZGUqKTsKICAgICB2b2lkIGluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKTsKICAgICB2b2lkIGluc2VydE5vZGVBdChQYXNz
UmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0VGFi
U3BhblBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKTsKICAgICB2b2lkIGluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1Jl
ZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
PSBEb05vdEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2b2lkIGluc2VydFBh
cmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2Us
IGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlKTsKICAgICB2b2lk
IGluc2VydExpbmVCcmVhaygpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRU
ZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIGluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgdm9pZCBtZXJnZUlkZW50aWNh
bEVsZW1lbnRzKFBhc3NSZWZQdHI8RWxlbWVudD4sIFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAg
IHZvaWQgcmViYWxhbmNlV2hpdGVzcGFjZSgpOwpAQCAtMTMwLDYgKzEzNyw4IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIG1vdmVSZW1haW5pbmdTaWJsaW5nc1RvTmV3UGFyZW50KE5vZGUqLCBOb2Rl
KiBwYXN0TGFzdE5vZGVUb01vdmUsIFBhc3NSZWZQdHI8RWxlbWVudD4gcHJwTmV3UGFyZW50KTsK
ICAgICB2b2lkIHVwZGF0ZVBvc2l0aW9uRm9yTm9kZVJlbW92YWxQcmVzZXJ2aW5nQ2hpbGRyZW4o
UG9zaXRpb24mLCBOb2RlJik7CiAgICAgdm9pZCBwcnVuZShQYXNzUmVmUHRyPE5vZGU+KTsKKyAg
ICB2aXJ0dWFsIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiByZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4
dCk7CiAgICAgUG9zaXRpb24gcmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudFRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZmRmOWJmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCBjb3VudCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMmZhNzcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAi
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQor
Citwcm90ZWN0ZWQ6CisgICAgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFiNGU3MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKKyNpbmNsdWRlICJDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCisg
ICAgOiBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5p
dGl6ZU1hcmt1cCkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitF
ZGl0QWN0aW9uIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dAoreworICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDVjMzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisjZGVm
aW5lIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
ZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0
RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisKKyAgICB2aXJ0
dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDJlYTk2ZDUuLjg1NzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKIApAQCAtNDUsNiArNDcsMTEgQEAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAg
ICBBU1NFUlQobV9vZmZzZXQgKyBtX2NvdW50IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwogfQogCitT
dHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogewogICAgIEFTU0VSVChtX25vZGUpOwpAQCAtNTYsMTAgKzYzLDEwIEBAIHZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgbV90ZXh0ID0gbV9ub2RlLT5z
dWJzdHJpbmdEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm47Ci0gICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1
YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERl
bGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YSht
X29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2b2lkIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEo
bV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4
dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNp
Zm5kZWYgTkRFQlVHCkBAIC04NCw0ICs5MSwxNCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRp
ZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGU7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLjdhMzFjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw4ICs0MCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwogICAgIH0KIAorICAgIFN0cmluZyYgZGVs
ZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKwogcHJpdmF0ZToKLSAgICBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00OCw3ICs1Mywx
MCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5z
aWduZWQgbV9vZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9jb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDJiYmM2ZWQuLjQ5
ZjAwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmRvQXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVTZWxlY3Rpb25Db21t
YW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERlbGV0ZSBrZXksCi0g
ICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFuZCB0aGF0IHN1cHBs
aWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8gbWVudSBjb3JyZWN0
bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworICAgIHJl
dHVybiBFZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0
IHByZXNlcnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBG
b3IgZXhhbXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IGMxNzNkZjQuLjE5ZjlmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVkZSAiRGljdGF0aW9u
Q29tbWFuZC5oIgogCiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCIKLSNpbmNs
dWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5z
ZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBzaXplX3QgbGluCiB7
CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAg
ICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVu
Z3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9j
dW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCks
IERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7Cisg
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0lu
c2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3Vw
cGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OGM0MDAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjk4MzZhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
IDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjQxNWY3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAi
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJr
ZXJTdXBwbGllcikKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJr
ZXJTdXBwbGllcikKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOWNi
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQ
YXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUzMi4uOTFlYTkwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTEyNCw1ICsxMjUs
MjkgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
IHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KICAgICAgICAgbm9kZXMuYWRkKG5vZGUpOwog
fQogI2VuZGlmCisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVVua25vd247Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBs
ZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247Cit9
CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVj
dENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhY2hlLT5w
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0aW9u
KTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uMDFhMDMwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9o
CiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBA
IC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAw
OwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBh
cHBseUludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVu
dCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTkwLDYgKzkzLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpID0gMDsKICNl
bmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHVuYXBwbHlJbnRlbnQoKSB7IHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCh1bmFwcGx5RWRpdFR5cGUoKSk7
IH0KKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCkgOiBFZGl0Q29tbWFuZChkb2N1bWVudCkgeyB9CiAKQEAgLTk3LDYgKzEwMywx
MSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhh
c2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKwogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdB
bGxJbk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uNmRlMTNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtMzIsMTAgKzMyLDE0IEBACiAjaW5jbHVkZSA8
QnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8Q29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPENyZWF0ZUxpbmtDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEaWN0YXRp
b25BbHRlcm5hdGl2ZS5jcHA+CiAjaW5jbHVkZSA8RGljdGF0aW9uQ29tbWFuZC5jcHA+CisjaW5j
bHVkZSA8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRDb21tYW5kLmNw
cD4KICNpbmNsdWRlIDxFZGl0aW5nU3R5bGUuY3BwPgogI2luY2x1ZGUgPEVkaXRvci5jcHA+CkBA
IC01NCwxMSArNTgsMTUgQEAKICNpbmNsdWRlIDxNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcD4KICNpbmNsdWRl
IDxNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcD4KICNp
bmNsdWRlIDxSZW1vdmVGb3JtYXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQu
Y3BwPgogI2luY2x1ZGUgPFJlbmRlcmVkUG9zaXRpb24uY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRl
IDxTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHA+CkBAIC03Nyw2ICs4NSwxMCBAQAogI2luY2x1
ZGUgPFRleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VGV4dEl0ZXJhdG9y
LmNwcD4KICNpbmNsdWRlIDxUeXBpbmdDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwPgor
I2luY2x1ZGUgPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNp
bmNsdWRlIDxVbmxpbmtDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxWaXNpYmxlUG9zaXRpb24uY3Bw
PgogI2luY2x1ZGUgPFZpc2libGVTZWxlY3Rpb24uY3BwPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IDcxMGFhMzkuLmUyNDlkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2luY2x1ZGUg
IkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5oIgorI2lu
Y2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEYXRhVHJhbnNm
ZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGlj
dGF0aW9uQWx0ZXJuYXRpdmUuaCIKQEAgLTM3NCwxMiArMzc1LDE1IEBAIGJvb2wgRWRpdG9yOjpk
ZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9yOjpkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgaWYgKGVkaXRpbmdBY3Rp
b24gPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGVsc2UKKyAg
ICAgICAgYXBwbHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1
bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKQEAg
LTEwMDEsNyArMTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRy
PENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0aGUgdHlw
aW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2UgdGhpbmdz
IGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlv
bk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFtZVNlbGVj
dGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmFwcGx5SW50ZW50KCkpOwogICAgIGRp
c3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdS
b290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVt
ZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAzMiw3
ICsxMDM2LDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0
Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhjbWQt
PnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVs
ZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0YXJ0
aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxl
Y3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsKKyAg
ICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21kLT51bmFwcGx5SW50ZW50KCkpOwog
ICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0YXJ0aW5nUm9v
dEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAK
ICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjY2LDcgKzEyNzAsNyBA
QCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0
aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAoYWN0
aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
KGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZv
aWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6ZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVk
KTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBv
cnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2Vs
ZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4o
KSkKQEAgLTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNl
ZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxp
ZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rp
b24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9u
RGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAg
ICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFs
bHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8v
IEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUg
Y2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzkyYmM0
Ni4uZDZjNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcgQEAg
cHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhEaXJl
Y3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJpbmcs
IGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQg
Y2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToK
ICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2Vs
Q29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNl
dENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51
bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2
b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNTc0NTE3MC4uYjRjNzI1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsxMzgs
NyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1l
bnRFbGVtZW50KCkgY29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JB
bGlnbk9uU2Nyb2xsIGFsaWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
KHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5
KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0U2VsZWN0aW9uKFZp
c2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgp
LCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRl
bnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJU
cmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNjksNyBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFzZSwgY29u
c3QgUG9zaXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAgIG5ld1Nl
bGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5ld1NlbGVj
dGlvbi5zZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAgc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91
bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1cyA/
IDAgOiBEb05vdFNldEZvY3VzKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhP
YmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25EaXNjb250aWd1b3VzKSkpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xsZXI6
OnNldENhcmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAgLTI1
NCw3ICsyNTMsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlm
RGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rp
b24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9u
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJl
dCgpKQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAg
fSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlv
bnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAg
ICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNl
KCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25G
cmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAo
bmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBt
X2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUt
PnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBn
cmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rp
b25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdz
IHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1l
U2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0
RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rp
b24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1l
IGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3Vy
IHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpbwog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xs
IGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxl
Y3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24s
IGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91
dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRp
YyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFt
ZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVj
dGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQg
RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBk
YXRlKQogICAgICAgICByZXR1cm47CkBAIC0zNzksOCArMzg3LDcgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKIAogICAgICAgICByZXZlYWxTZWxlY3Rp
b24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KLQotICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKGludGVudCk7CiAKICAgICBpZiAoYXV0byogY2xpZW50ID0gbV9mcmFtZS0+
ZWRpdG9yKCkuY2xpZW50KCkpCiAgICAgICAgIGNsaWVudC0+ZGlkQ2hhbmdlU2VsZWN0aW9uQW5k
VXBkYXRlTGF5b3V0KCk7CkBAIC0xMDIxLDcgKzEwMjgsODAgQEAgVmlzaWJsZVBvc2l0aW9uIEZy
YW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJp
dHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFy
eTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rp
b25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24s
IFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBG
cmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAg
ICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uT2ZTZWxlY3Rpb24o
KSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9
IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAg
IGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3Jh
bnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VH
cmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxhcml0
eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFu
dWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNl
IFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERv
Y3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAo
Z3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2Ug
V29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNl
IExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNh
c2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5j
ZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91
bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRy
dWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAg
IGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAg
ICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9
IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcg
OiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlm
IChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxp
cCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnko
RUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAg
LTEwNzcsNiArMTE1NywxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRp
b24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAo
IXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdp
bmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICht
X2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbklu
dGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7
CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBv
c0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24g
d2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAg
IC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0
IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MTAsOCArMTc5NSwxMCBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0
KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAg
ICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisgICAgICAgIHNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZl
bnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rl
ZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5n
KQpAQCAtMjQyMyw3ICsyNTEwLDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNlbGVjdGlvbjo6
d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBWaXMKIAogICAgIFZp
c2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCk7
CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51bGFyaXR5
KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1l
U2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9uLnNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGRlZmF1bHRTZXRT
ZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVj
dGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0UG9zKGZyYW1lU2VsZWN0
aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9uIGVuZFBvcyhmcmFtZVNlbGVj
dGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmgKaW5kZXggMGU0ZTI4ZS4uM2MzMTk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9o
CiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVk
ZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgKHVzZXJUcmlnZ2Vy
ZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDApOwogICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfQogCiAgICAgV0VC
Q09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gbnVsbHB0cik7CiAK
QEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlkYXRp
b25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25IYXNE
aXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0
U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEN1cnNvckFs
aWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0
eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFy
YWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJh
bmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsK
QEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9u
VHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25J
bnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAK
ICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGws
IFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBAIHByaXZhdGU6CiAgICAgTGF5
b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oRVBv
c2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2Vs
ZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAjZWxzZQotICAgIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNh
Y2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpA
QCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdT
dHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JNKENP
Q09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLmFlYzQ3NTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDExIEBAIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0K
IAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQorewor
ICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5zZXR0
aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAgdm9pZCBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBtX25vZGUtPmlu
c2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0KLSAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAg
CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAg
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0
VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0
KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBAIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9kZS0+
aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8g
TmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2Rl
LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsK
KyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRp
dFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNl
dCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgp
LCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lkIEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmlu
ZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
OSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2
YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9B
cHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsK
ICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBO
REVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
KSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwog
ICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgU3Ry
aW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI2LDkgKzI2
LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsOCAr
NTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBw
YXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgp
LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9u
IHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3du
Y2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5n
UG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwg
bV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOwor
ICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAg
LTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFj
dHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlv
biBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93
bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGlu
Z1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUo
KSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikp
OworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsK
IH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5v
ZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0
OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKICNkZWZpbmUg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDE2
ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgorcHJv
dGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hp
bGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3Zl
cnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0lu
Q29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAg
ICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5iZmEx
ODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01
OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNl
cnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9CiAK
LXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJvdGVj
dGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIEluc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNo
YXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2Rl
PiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
CisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1
NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNz
UmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9k
ZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBk
ZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VB
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZhMzUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKwor
Y2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBk
ZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShO
b2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzBmZGJkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
KworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAg
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjM1YWM3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsx
LDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRU
ZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc6
CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBj
YXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4
dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBv
c2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmlj
YXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRl
ZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdjNDI2OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQg
OiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0
ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlSW5zZXJ0OyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOyB9CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4
dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgog
I2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHlsZURl
Y2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRsZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHls
ZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisj
aW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJT
aW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNs
dWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4
dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIK
KyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVk
ZSAibWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRPZklu
c2VydGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERlc2Nl
bmRhbnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxk
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBzd2l0
Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAg
cmV0dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQs
IHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hp
bGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisKK1Jl
ZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sK
KyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoK
KyAgICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBjYXNl
IEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRl
ZFRleHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNlcnRl
ZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFzdGVz
LCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0ZXh0
LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBub2Rl
IHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0aGUg
Z2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2ICsx
MTEsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29uc3Qg
UmVwbGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4s
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFBv
c2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4g
bV9pbnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3Bw
CmluZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisj
aW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5p
dHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9p
ZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhv
dXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQog
ewotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJl
ZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBt
X2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1h
bmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENv
bW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2MDcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRD
aGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgOiBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYxMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNz
UmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2
NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRl
ICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1h
bmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sK
K30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4
dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21t
YW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVy
biBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5k
X2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENv
bW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+
IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmVi
YWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwg
c2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9v
bCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0
VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzBkZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAg
OiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRl
bGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
NiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRU
ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0
aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRr
LmNwcAppbmRleCA3YzIxMzY1Li5lNjk1YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2
b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyAr
NDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dS
ZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBG
cmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2
b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2Vs
ZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxs
KCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24o
bV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVj
dENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwor
ICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxl
Y3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAg
ICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdl
ZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcg
cHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29s
IHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXND
aGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAm
JiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hl
LT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBU
YXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVy
VGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAg
ICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAg
ICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
ICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJl
cigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9z
aXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAg
c2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li5jNTI4OGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBzZXRJ
bml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2li
bGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVz
ZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENh
Y2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0
aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2MwN2ZlLi5iZmQxZmQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zNDEsNyArMzQxLDcgQEAg
Ym9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBmaXJz
dFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZWxlbWVudC5nZXQoKSk7CiAgICAgICAgIFZpc2libGVT
ZWxlY3Rpb24gbmV3U2VsZWN0aW9uKHBvc2l0aW9uLCBwb3NpdGlvbiwgRE9XTlNUUkVBTSk7CiAg
ICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVz
ZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENh
Y2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkRpc2NvbnRpZ3VvdXMpKSk7CiAgICAgfQogCiAgICAgZWxlbWVudC0+Zm9jdXMoZmFsc2UsIGRp
cmVjdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250554</attachid>
            <date>2015-04-10 18:51:31 -0700</date>
            <delta_ts>2015-04-14 12:13:18 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>236978</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGE2ZTg0MDhjNTZjMDM3NzQwNjUwZjhlZWY4MmZlNDQ3MGM5ZjE0ZDcKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MTkKICAgIAogICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgIE5ldyBFZGl0
Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5
IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBu
b3RpZmljYXRpb25zLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ug
bm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdp
dmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRp
bmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20g
dG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2Nl
ZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCiAgICAK
ICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4g
SW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNv
bnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24g
cGFzc3dvcmQgZmllbGRzLgogICAgCiAgICBUZXN0cyBhcmUgc3RpbGwgaW4gZGV2ZWxvcG1lbnQu
IFN1Ym1pdHRpbmcgcGF0Y2ggZWFybHkgZm9yIGZlZWRiYWNrLgoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMjA0NjViLi5i
N2ZkZmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTUtMDQtMTAgIERvdWcgUnVzc2VsbCAg
PGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250
ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUg
YW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNj
ZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVk
aXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxh
Y2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlh
YmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxz
byBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3Jk
IGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRv
IGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3Bv
bmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9z
dGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJp
YS10ZXh0Ym94Lmh0bWw6CisKIDIwMTUtMDQtMTAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDb250ZW50IEZpbHRlcmluZ10gU3VwcG9ydCBtb2RpZnlpbmcgcmVx
dWVzdCBVUkxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdl
cy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uMTI2NDZkZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVl
LWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRi
b3guaHRtbApAQCAtNDcsNyArNDcsOCBAQCBjb250ZW50IGluc2lkZQogICAgICAgICAvLyBUcmln
Z2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRl
eHQiLCBmYWxzZSwgImhlbGxvICIpOwogCi0gICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9
IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7
CisgICAgICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1l
bnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJB
cmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKICAgICAg
ICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggMWVjMzQ3OS4uMWQ4YzBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTE0NzAsMTAgKzE0NzAsMTQgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcv
QnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcAogICAgIGVkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNw
cAorICAgIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRp
dENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCiAgICAgZWRpdGluZy9F
ZGl0b3IuY3BwCkBAIC0xNDkyLDExICsxNDk2LDE1IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBlZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcAogICAgIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCisgICAgZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAor
ICAgIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92
ZUZvcm1hdENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVk
aXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0
Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwCkBAIC0xNTEyLDYgKzE1MjAsMTAgQEAgc2V0KFdlYkNv
cmVfU09VUkNFUwogICAgIGVkaXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAogICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAK
KyAgICBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9VbmxpbmtDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlv
bi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBhNjc3Zjg4Li41NjQ0ZTExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjE3IEBACisyMDE1LTA0LTEwICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29t
PgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IEVk
aXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vzc2liaWxp
dHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24gY2hhbmdl
IG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0
byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNw
b25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFu
aXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2Fs
ZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgor
CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQg
b2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5n
ZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZl
bG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdl
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJB
cmVhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bh
c3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBh
c3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cGFzc3dvcmRGaWVs
ZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJh
bmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJl
cGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9u
YXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgor
ICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5k
Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5SW50ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJl
Zm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4
dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQp
OgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0Fj
dGlvbik6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAg
ICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAo
V2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRp
dGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNv
bW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAqIGVkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2Rl
Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxl
RWRpdENvbW1hbmQ6OnVuYXBwbHlJbnRlbnQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ0Fs
bEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6dW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZvcm1D
dXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZh
bGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
Ojppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2Vs
ZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNl
bGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNl
cnRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpk
b1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBseUVk
aXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBw
bHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNl
cnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpyZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRD
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVy
VGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2
YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKwogMjAxNS0wNC0xMCAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnQgRmlsdGVyaW5nXSBTdXBwb3J0IG1v
ZGlmeWluZyByZXF1ZXN0IFVSTHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCmluZGV4IGRlY2RkNTMuLmNlMWQxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQzOTMsNiArMTQzOTMs
MzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAi
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0xNDQ0OSw2ICsxNDQ3NywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFuZC5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ3MzAsNiArMTQ3ODYs
MzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0ODAwLDYgKzE0ODg0LDM0IEBACiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgpAQCAtMTUwMjQsNiArMTUxMzYsNjIgQEAKICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMjEwNjksMTAgKzIxMjM3
LDE0IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEJyZWFrQmxvY2txdW90
ZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ29tcG9z
aXRlRWRpdENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
Q3JlYXRlTGlua0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25B
bHRlcm5hdGl2ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0
YXRpb25Db21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0aW5nQmVoYXZpb3IuaCIgLz4KQEAgLTIxMDk5LDEw
ICsyMTI3MSwxNCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFNldE5vZGVBdHRyaWJ1dGVD
b21tYW5kLmgiIC8+CkBAIC0yMTEyMSw2ICsyMTI5NywxMCBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUZXh0SXRlcmF0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVmlzaWJsZVBvc2l0aW9uLmgiIC8+CkBAIC0yMTc4Myw0ICsy
MTk2Myw0IEBACiAgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgICAg
PEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlvbnNcbWFz
bS50YXJnZXRzIiAvPgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBiYzBhNjY2Li4zZjc0
MmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNDM4LDYgKzM0MzgsMTIgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAt
MzQ1MCw2ICszNDU2LDEyIEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xFZGl0Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNTEzLDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KICAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1By
b3BlcnR5Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CkBAIC0zNTI4LDYgKzM1NDYsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CkBAIC0zNTc2LDYgKzM2MDAsMTggQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmNwcCI+CiAgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwNTY5LDYg
KzEwNjA1LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxp
bmtDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMDU4MSw2ICsxMDYyMywxMiBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NTksNiArMTA3MDcsMTIg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1h
bmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJl
bW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NzEsNiArMTA3MjUsMTIgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29t
bWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgpAQCAtMTA3MjUsNiArMTA3ODUsMTggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW4uaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTE1NDYxLDQgKzE1NTMzLDQgQEAKICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm1cd2luPC9GaWx0ZXI+CiAgICAgPC9NQVNNPgogICA8L0l0ZW1H
cm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjAwOGM3ZC4uMjU2MWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjM3MywxMiArNjM3MywyMiBAQAogCQlGNDc4
NzU1NTE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDc4NzU1MzE5OTgzQUZG
MDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi87IH07CiAJCUY0N0E1RTNF
MTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEw
MCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDdBNUUzRjE5NUI4RTQ4MDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2lu
dHMuY3BwICovOyB9OworCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjUwNjNDMUQxQUI3NTZEODAwOUFCNTU2
IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2
IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OwogCQlGNTA2
NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAq
LzsgfTsKIAkJRjUxM0EzRUExNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsgfTsK
IAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1
OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsgfTsKKwkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8q
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDVGRTFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkMxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU0M0Q2MDEx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q1RkYxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDYw
MjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0M0Q2MDAxQUNCMEM4MzAw
NjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLzsgfTsKIAkJRjU0NEY3ODgx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQ
bGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQ
bGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi87IH07
CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQUEx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBODFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsK
IAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDc5MTI1MUYx
MkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREFFMTI1
MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJh
c2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBC
dXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAg
Ki87IH07CkBAIC02NDI4LDEyICs2NDM4LDI2IEBACiAJCUY1NUIzRERFMTI1MUYxMkQwMDNFRjI2
OSAvKiBVUkxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLzsg
fTsKIAkJRjU1QjNEREYxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUIxMjUxRjEy
RDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RFMDEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5
cGUuaCAqLzsgfTsKKwkJRjU1RDBCRDcxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8q
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTc0
REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3
NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKKwkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmggKi87IH07CiAJCUY1OTczREUwMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVN
YWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTcz
RERFMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMuaCAqLzsgfTsKIAkJRjU5NzNERTExNUNG
QjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMu
bW0gKi87IH07CiAJCUY1OUM5NUZGMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAgKi87IH07CiAJCUY1OUM5NjAwMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAq
LzsgfTsKKwkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmggKi87IH07CiAJCUY1QTE1NDI3MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxp
ZGF0aW9uTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
ICovOyB9OwogCQlGNUExNTQyODEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI2
MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovOyB9OworCQlGNUE1Mjk1
RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVB
NTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjVBNTI5NjExQUND
RUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVGMUFDQ0VBNzAw
MDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NjAx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07
CiAJCUY1QzA0MURBMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ3MEZG
Q0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQx
REIwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0
QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CiAJCUY1QzA0MUUzMEZGQ0E5NkQwMDgz
OUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFERTBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRN
TERhdGFMaXN0RWxlbWVudC5oICovOyB9OwpAQCAtMTM5OTMsNiArMTQwMTcsOCBAQAogCQlGNDc4
NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0ExOTVCOEM4QTAwNDgz
MTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBwYXRoID0gc3R5bGUvU3R5
bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3
QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgcGF0aCA9
IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUIx
QUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9y
bUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNjE1
N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwNSw4ICsxNDAzMSwxNiBAQAog
CQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qz
MDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZC
RTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGQzFBQ0Iw
OURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2
MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlVGV4dElucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNF
RjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRvbklucHV0VHlwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1Niw2ICsxNDA5MCwxMiBAQAogCQlGNTVCM0RBQTEy
NTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFVSTElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUMxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vla0lucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg0RjAwMkRFMzc1
OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEN1cnNvck1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NTRDMDJERTM3
NTkwMUVBNDEyMiAvKiBXZWJDb3JlRnJhbWVWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVGcmFtZVZpZXcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NjNB
MDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE0MDY2LDggKzE0MTA2LDE2
IEBACiAJCUY1OTczRERGMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGVNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkExQUNDQjNDMDAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3
QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydFRleHRDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QTE1NDI1MTI3OTUzNEQwMEQw
QjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1
MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUYxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NjAxQUNDRUE3MDAwNTEy
QjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0
YUxpc3RFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxEYXRhTGlzdEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMw
NDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ5MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxp
c3RFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3Njc0LDYgKzE3NzIyLDEwIEBA
CiAJCQkJOTMzMDlEOEUwOTlFNjQ5MTAwNTZFNTgxIC8qIENvbXBvc2l0ZUVkaXRDb21tYW5kLmgg
Ki8sCiAJCQkJRDBCMDU1NjcwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNw
cCAqLywKIAkJCQlEMEIwNTU2NjA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQu
aCAqLywKKwkJCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZE
NUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q2MDAxQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMw
OUQ4RjA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEOTAwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLywKIAkJCQk5MzMwOUQ5MTA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzY4Miw2ICsxNzczNCwxMCBAQAogCQkJCUNFQ0FERkMzMTUz
Nzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCUNFQ0FERkM0
MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmNwcCAqLywKIAkJCQlDRUNBREZD
NTE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1MDYzQzFB
MUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAqLywKKwkJCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU4NzJBNzMxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTMw
OTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRBY3Rpb24uaCAqLywKIAkJCQk5MzMwOUQ5NDA5OUU2NDkx
MDA1NkU1ODEgLyogRWRpdENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDk1MDk5RTY0OTEwMDU2
RTU4MSAvKiBFZGl0Q29tbWFuZC5oICovLApAQCAtMTc3MjgsNiArMTc3ODQsMTAgQEAKIAkJCQlD
NkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8s
CiAJCQkJOTMzMDlEQUMwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOURBRDA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1h
bmQuaCAqLywKKwkJCQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTc0REVEODFBQ0EyMjhEMDA1
OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJ
CQkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCMTA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURCMjA5OUU2NDkxMDA1NkU1ODEg
LyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggKi8sCiAJCQkJRDA2QzBEOEUwQ0ZEMTE0NjAw
NjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovLApAQCAtMTc3MzgsNiArMTc3OTgs
MTAgQEAKIAkJCQk5MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyog
UmVuZGVyZWRQb3NpdGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8q
IFJlbmRlcmVkUG9zaXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAor
CQkJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVE
QTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBG
NDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5
MzMwOURCQTA5OUU2NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICov
LApAQCAtMTc3NzMsNiArMTc4MzcsMTQgQEAKIAkJCQk5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODgg
LyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJCQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1
ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgx
IC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkIxQUND
QjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJ
CQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkYxQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUIxQUNDRThF
MDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKKwkJCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyog
VW5kb1N0ZXAuaCAqLywKIAkJCQlEMDg2RkU5NzA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29t
bWFuZC5jcHAgKi8sCiAJCQkJRDA4NkZFOTYwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1h
bmQuaCAqLywKQEAgLTIzNjY4LDYgKzIzNzQwLDcgQEAKIAkJCQk2QzU2OENCMTE5REFGRUEwMDA0
MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEZB
RjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QTRGNjU3MjFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzMwOURENzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBOEY2QkJEMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRjBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRp
b25DYWNoZUdyb3VwLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDcwLDYgKzI0NTQzLDcgQEAKIAkJ
CQkzMTA2MDM3OTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTMxMDYwMzdCMTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRD
U1NGaWx0ZXJWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RDBFNkND
QzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdGMEU2Q0NDMjgwMEJGNjA4OCAv
KiBET01DU1NLZXlmcmFtZVJ1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUw
ODAwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDgyMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ3OTMsNiArMjQ4NjcsNyBAQAogCQkJCUExOUQ5
MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxv
YWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhU
TUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgw
RjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTdCQzg0OUIxMjM3MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzMDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDIyLDYgKzI1MDk3LDcgQEAKIAkJCQlGREY3
RTlDNDEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGREExNUVBMDEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUE2MTJCMDNFRTEwMDNBNTgzQSAvKiBK
U0F1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjUwNjNDMUMxQUI3NTZENTAwOUFC
NTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEQTE1RUE4MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvRGVzdGluYXRpb25Ob2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBRTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRp
b0xpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVCMDEyQjAzRUUxMDAzQTU4M0Eg
LyogSlNBdWRpb05vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwMzAsNiArMjUxMDYsNyBAQAog
CQkJCUJFOEVGMDQzMTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJFOEVGMDQ1MTcxQzhGRjkwMDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3NkZCOUZGOTE5QTczRTNBMDA0MjA1NjIgLyogSlNBdXRvY29t
cGxldGVFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUyMzQ5IC8qIEpTQmFyUHJvcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM5NDYzNDgxMDdBOTM2NjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RkE0NDU0RTg5OEYyRkMxNjhCQzM4QzEgLyogSlNCZWZvcmVV
bmxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE0OSw2ICsyNTIyNiw3IEBACiAJCQkJ
RkRBMTVFQUMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTR2Fpbk5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxOEY1MDAyMTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxOEY1MDA0MTk0Q0FDM0EwMDgxQkFBRSAvKiBKU0dhbWVwYWRCdXR0b24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NDBFOUM0NzAzMDAw
RDZGNzUgLyogSlNHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjYwRTlD
NDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREE3
QzFGMTg4MzIyRkMwMEM5NTRCNSAvKiBKU0dlc3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNTU5MCw2ICsyNTY2OCw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpT
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERC
NTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RV
cGxvYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFD
RTUzRjcwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0
aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzcyLDYgKzI2ODUxLDcgQEAKIAkJCQlCMkMzREEz
QzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkMzREEzRTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjTGF0aW4xLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkFGRkM5QTBEMDBBNURGMDAzMDA3NEQgLyogVGV4dENvZGVjTWFjLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNTc0REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDAwRDAw
NkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VzZXJEZWZpbmVkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE0MjBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4g
SGVhZGVycyAqLywKQEAgLTI2ODI1LDYgKzI2OTA1LDcgQEAKIAkJCQkxODVCQ0YyOTBGMzI3OUNF
MDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QTE5
NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFG
NzJCRjBCMTg3RkQ0NUMwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1Mu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2QTQxOTRCNUMyMjAw
MUNCRDI0IC8qIFRpbGVDb3ZlcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGODlBNDIx
NTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FB
M0E2OUMxOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVHcmlkLmggaW4gSGVhZGVycyAqLywKQEAgLTI2
OTQ4LDEyICsyNzAyOSwxNCBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJB
Y3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QTdB
QTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkxNzkxNUMwMDAzNDE4
NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QTgw
ODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVy
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlERDYxNjMyMDI2QzAwN0MzOERGIC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTI3REVF
MTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1M0Q5MTExMTQzMTBDQzAwMEQ4MTdFIC8qIFdlYkNvcmVKU0NsaWVudERhdGEu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0
NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBCOEMxMTc1MDA3QjQyQTkgLyogV2ViQ29yZU5TU3Ry
aW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTg2LDYgKzI3MDY5LDcgQEAKIAkJCQk2
RTRFOTFBRjEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwMUQzQ0Y4MzE0QkQwQTMwMDBGRTk5NzAgLyogV2Vi
R0xDb250ZXh0R3JvdXAuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NUQwQkQ4MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwMUQzQ0Y4NTE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250ZXh0T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMEVFMERGNjE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjgxNDRGODI1NTAwRjgwQjBEIC8q
IFdlYkdMRGVidWdTaGFkZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3NzI3LDYgKzI3ODExLDcg
QEAKIAkJCQk2Rjk5NUEzOTFBNzA4MzM3MDBBNzM1RjQgLyogSlNXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEM0UyNTIzMTgwNDZCQ0QwMEUyN0Y1NiAvKiBD
U1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCRjg5MDQ1
MTY5RTlGMUYwMDUyRDg2RSAvKiBDU1NHcm91cGluZ1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjVBNTI5NjExQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjNFNzZDMERBRTg4QTkwMDlGREM5MSAvKiBD
U1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzOTNFNUZGMTUx
QTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4MEU2Q0ZFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbWFnZVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjc4MDQsNiArMjc4ODksNyBAQAogCQkJCTMxRkIxQTU4MTIwQTVEMDYwMERDMDJB
MCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIx
QTVBMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxRkIxQTVDMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE0MDM3OUUxMjRCRUE3
RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTkzMDlBMTExMUY0QUU1ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjkzOTcyNjFBNEE1RkJEMDBFODM0OUQgLyog
TkZBLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5NDAsNiArMjgwMjYsNyBAQAogCQkJCTg1RUNC
RUY2MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MTW9kRWxlbWVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTg1REY4MTJDMEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0RDE2MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1M
T0xpc3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2
RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODVGMzJBRUYwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NTQwNzU2QzBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9w
dGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGMkY5QzBBQTNDQUU1MDBBRDY0
QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODA4
Nyw2ICsyODE3NCw3IEBACiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lv
bnMzRE9wZW5HTENvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzQzMDRCMDE5MUFDOTA4
MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
NzI4Njk0RTE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUY1NzRERURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3NUU4QjhBMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3NUU4QjhDMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgxOTcsNiArMjgyODUsNyBAQAogCQkJCTRGQjM5MEFE
MTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50UXVldWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTc0NkFGMjMxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyNjE0RjREREU2
MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGQjYyNTJFMThERTFCMTUwMEEwN0MwNSAvKiBHZW9tZXRyeVV0aWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMkFGRkM4MzBEMDBBNUMxMDAzMDA3NEQgLyogR2x5cGhQYWdlTWFjLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjgyMTcsNiArMjgzMDYsNyBAQAogCQkJCUIyQTAxNUFBMEFG
NkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
Rjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyogSGlkZGVuSW5wdXRUeXBl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUE5RDlGMzE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MTc5Q0UzNjE5NUNBQzdFMDAxOUMxOTggLyogSElER2FtZXBhZFByb3ZpZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTREMTUzMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgzOTYsNiArMjg0ODYsNyBAQAogCQkJCTUxMDE5MkQx
MThCNkI5QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjU1QjNEQzExMjUxRjEyRDAwM0VGMjY5IC8qIEltYWdlSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA4OTU4MjU1MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMjc1MzU3QjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VNYWMubW0g
aW4gU291cmNlcyAqLywKQEAgLTI4ODUzLDYgKzI4OTQ0LDcgQEAKIAkJCQlFNTFBODFERjE3Mjk4
RDc3MDBCRkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4QTlB
NTg3MDExRTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY0M0M4NUYxODlFMTVBNjAwMDE5QUUyIC8qIEpTUGVyZm9ybWFuY2VU
aW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q2MDExQUNCMEM4MzAwNjM2RDVEIC8q
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRFQTYy
NDYxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzQjcwRDZCMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4OUYwMUQxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9w
U3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4ODg3LDYgKzI4OTc5LDcgQEAKIAkJ
CQkwNzk2OURCQjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkQxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdEMDdCMTQx
ODM0MTU4ODAwQUJERDNDIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJGMTdEMTQxNTEw
MDdGRjg0MiAvKiBKU1JUQ1N0YXRzQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5
NjlEQzExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXBvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc5NjlEQzMxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXNwb25zZS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI5NjYyLDYgKzI5NzU1LDcgQEAKIAkJCQkwNzM3OTRGRDE5
RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzM3OTRERDE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBCMTdEMTRDRUUwMDQyMEFBMSAvKiBSVENQZWVyQ29u
bmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEYxMTlFRTM3QkIwMEU1QTA0NSAvKiBSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBDMTdE
MTRDRUUwMDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTgzOSw2ICsyOTkzMyw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2
RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5
MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMzAzNDIsNiArMzA0MzcsNyBAQAogCQkJCUExNDgzMkMwMTg3RjY1NjYwMERB
NjNBNiAvKiBXS0dyYXBoaWNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzIxODdGNjVD
NzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJDNTE4
N0Y2NjgzMDBEQTYzQTYgLyogV0tWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjUwNjNDMUQx
QUI3NTZEODAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5OTE5OTYxMjAwRERGNDAwRUEwNDFDIC8qIFdPRkZGaWxl
Rm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNDM0NjQ1MEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM4MjA4OTYxNDdEMzVGOTAwMTBCQzA2
IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLmQzNWJi
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI5LDYgKzEyOSw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBB
WE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywg
JkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTc0Miw2ICs3NDMsMjAgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAg
ICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQor
eworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXIuc3RvcCgpOworCisgICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEg
dGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hp
Y2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlm
aWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlz
dCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFz
c3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAgIGZvciAoY29uc3QgYXV0byYgb2JqZWN0
IDogbm90aWZpY2F0aW9ucykKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iamVjdC5nZXQoKSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJs
ZVBvc2l0aW9uKCkpOworI2VuZGlmCit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZp
Y2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAt
ODUwLDE2ICs4NjUsMjE4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNo
YW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRl
cmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsK
IH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2Rl
KiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50
ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNo
IChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoK
KyAgICAgICAgcHJpbnRmKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgcHJpbnRmKCJFZGl0OjoiKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgor
ICAgICAgICBwcmludGYoIk1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgcHJpbnRmKCJFeHRlbmQ6
OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgewor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGludGVu
dC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAg
ICAgICBwcmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcHJpbnRmKCJEZWxldGUiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAg
ICAgICAgICAgcHJpbnRmKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgcHJpbnRmKCJEaWN0YXRp
b25JbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlVHlwaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAg
cHJpbnRmKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlUGFzdGU6CisgICAgICAgICAgICBwcmludGYoIlBhc3RlIik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24p
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAg
ICAgICAgcHJpbnRmKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIHByaW50
ZigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIHByaW50ZigiRW5kOjoiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblBy
ZXZpb3VzOgorICAgICAgICAgICAgcHJpbnRmKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAg
ICAgICAgcHJpbnRmKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBwcmlu
dGYoIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAg
ICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBw
cmludGYoIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAg
cHJpbnRmKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgorICAgICAgICAgICAgICAgIHBy
aW50ZigiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJM
aW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAgICAgICAgICBwcmludGYoIlBh
cmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYWdl
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJEb2N1bWVu
dCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkFsbCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAo
aW50ZW50LnN5bmMpCisgICAgICAgIHByaW50ZigiLVN5bmMiKTsKKyAgICBwcmludGYoIlxuIik7
Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50
KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rpb25J
bnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5vZGUp
CiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQu
dHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBt
X3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RB
dHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0
ZShub2RlKTsKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVs
ZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgaW50ZW50LCBz
ZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCks
IEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBh
cmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVj
dGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5v
ZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsK
KyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOworCiAgICAgc3RvcENh
Y2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAotICAgIC8vIERlbGVnYXRlIG9uIHRo
ZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3Jl
YXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0
ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChv
YmopIHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRh
aW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgICAgICBlbnF1ZXVlUGFzc3dvcmRWYWx1
ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmopOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHR5cGUsIHRleHQsIHBv
c2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihv
YmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZSh0eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQo
KS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSogbm9kZSwg
QVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBB
WFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGVs
ZXRlKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUluc2VydCB8
fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0
VHlwZVBhc3RlKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7
CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFz
c3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAg
ICAgICAgICAgZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFi
bGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24ob2JqLCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBp
bnNlcnRlZFRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBw
b3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0
ZWRUZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKK30K
Kwordm9pZCBBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCit7CisgICAgaWYgKCFvYmopCisgICAgICAg
IHJldHVybjsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9ic2VydmFibGVPYmplY3QgPSBv
YmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICBpZiAoIW9ic2VydmFibGVPYmplY3QpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChzdGQ6OmZpbmQobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QuYmVnaW4oKSwgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuZW5kKCksIG9ic2Vy
dmFibGVPYmplY3QpID09IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmVuZCgpKSB7Cisg
ICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChvYnNlcnZhYmxlT2Jq
ZWN0KTsKKyAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0
aXZlKCkpCisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0
T25lU2hvdCgwLjAyNSk7CisgICAgfQogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9h
ZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGlu
Z0V2ZW50KQpAQCAtMTA4NCw2ICsxMzAxLDE1IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9k
ZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVj
dCAqcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAocm9vdE9i
amVjdC0+aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVj
dCgpOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVu
YWJsZXI6OkFYQXR0cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAg
IDogbV9jYWNoZShjYWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKaW5kZXggYmZhOTI3Ny4uZjc5ZGY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5
LDk5IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZp
Y2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNo
cm9ub3VzbHkpOwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQs
IFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdl
IHsKLSAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAg
ZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVVbmtub3duLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKKyAgICB9OworCisgICAgZW51bSBBWFRleHRFZGl0VHlw
ZSB7CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0RWRpdFR5
cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVUeXBp
bmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9u
LCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8g
RGVsZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlh
IFBhc3RlCisgICAgfTsKKworICAgIC8vIFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZv
aWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5k
IHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisgICAgZW51bSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25V
bmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQs
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9Owog
Ci0gICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25v
d24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3Rp
bmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVj
dGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3
aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZp
Y2F0aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRT
ZWxlY3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
ID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisg
ICAgeworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAg
ICBzZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3Jh
bnVsYXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9
CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRT
dGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0
U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsK
KyAgICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigp
LCBib29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAg
ICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAg
ICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBl
IGNoYW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQor
ICAgICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQor
ICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0
ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisg
ICAgICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwg
c3luYyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVH
CisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7Cisj
ZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9u
IGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAg
IGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4
LDcgKzMwNSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRm
b3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5v
ZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAg
IHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Cisj
ZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisg
ICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAg
c3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAg
ICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2Fk
aW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2Fk
aW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwog
ICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJr
ZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAg
SGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAg
ICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAg
LTI0NCw2ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RU
aW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAg
ICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVN
ZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICszNzMsMTAgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhU
TUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Kik7CisKKyAgICB2b2lkIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1f
dGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVy
CkBAIC0zMDgsOCArNDM0LDE2IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNj
cm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
OjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50Kikg
eyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVy
T2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRv
QW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25z
dCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9
CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3Rp
ZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBv
c3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjNkNDVkM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
Y3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
UGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29y
ZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7Cisg
ICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9
IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNQ
YXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAoRWxlbWVudCogZWxl
bWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxl
bWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSAqY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNy
ZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBudWxscHRyOwor
fQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAog
ewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcy
Zi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMjQg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERp
c3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpp
c0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRo
aXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51
bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsK
KyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAg
IGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAg
IH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAor
ICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjJlOTc3NmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMs
NiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgp
ID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li42ZWZh
YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTggQEAgUGxhaW5U
ZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBj
b25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5n
ZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENv
bnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENh
Y2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5k
ZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAg
ICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0
YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUq
IG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5n
ZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBv
c2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQ
b3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBW
aXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEs
IHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQ
b3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVs
bCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUg
dG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAg
aWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAg
ICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0
LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2Uu
ZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVl
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlE
ZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcg
KzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVu
dE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVj
dCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2Vi
QXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3Jv
bGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3Np
YmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYWI3OTM0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmlu
Z107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uNjA1MjNhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZl
UmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYK
IAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5
bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5n
ZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBA
IkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFu
Z2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9u
J3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIw
MCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQogCi12b2lk
IEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2JqKQor
ICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJl
dHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuc3lu
YykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBA
WUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3du
KSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7Cisg
ICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtl
clJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBv
c2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtl
clJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53
cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5m
byh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24s
IHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERS
VCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRD
aGFuZ2VkTm90aWZpY2F0aW9uXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxh
Y2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3Ry
aW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAg
ICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9u
YXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNp
dHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUp
OworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOwor
ICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0
ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9Cisg
ICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAg
ICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2li
bGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0
dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9v
dFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25h
cnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0
ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBw
ZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRd
ID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7Cisg
ICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5T
QWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1
c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3Rp
ZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbl07Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKwor
ICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5
ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5
XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAq
Y2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAg
W2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdl
ID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGlu
c2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdl
XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5n
ZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+
d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIo
KTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdl
dCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7Cisg
ICAgW3VzZXJJbmZvIHJlbGVhc2VdOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVu
IG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0
ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uXTsK
IH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50
IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4
IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
aApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRN
YXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24p
c3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBv
c2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29y
ZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0j
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNs
dWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNT
RVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigp
KTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0
aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFs
dWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsK
ICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlm
IChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkg
eworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5v
ZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihu
b2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAK
IHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZv
aWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENo
aWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdl
dCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5l
QnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0K
QEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5
KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5h
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9w
YXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjI1ZWFiNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNs
dWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5j
bHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1
ZXVlLmgiCkBAIC0xNjIsNiArMTY1LDEzIEBAIHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IEVkaXRDb21tYW5kQ29tcG9zaXRp
b246OnVuYXBwbHlJbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAg
ICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPnVuYXBwbHlJbnRlbnQo
KTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsK
K30KKwogdm9pZCBhcHBseUNvbW1hbmQoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4g
Y29tbWFuZCkKIHsKICAgICBjb21tYW5kLT5hcHBseSgpOwpAQCAtMzIwLDkgKzMzMCwxNCBAQCBi
b29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5v
ZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2Vy
dENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAg
ICByZXR1cm4gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKK30KKwogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGlu
c2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsK
LSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3Jl
YXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRl
cihQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxk
KQpAQCAtNTIyLDIzICs1MzcsNDYgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRU
ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKICAgICAgICAg
c2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uRm9ySW5k
ZXgoc3RhcnRJbmRleCwgc2NvcGUuZ2V0KCkpLCB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFy
dEluZGV4ICsgbGVuZ3RoLCBzY29wZS5nZXQoKSkpKTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAg
IHJldHVybiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
dGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnRUZXh0SW50b05v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICBpZiAo
ZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIHJldHVybiBDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAg
cmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNv
dW50KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkK
IHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworfQor
CitSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKwor
UmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorewor
ICAgIHJldHVybiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gZGVs
ZXRlQ29tbWFuZCA9IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwog
ICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKHJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRU
ZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYg
dGV4dCkKQEAgLTE1MjMsNCArMTU2MSwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJs
b2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQogCitBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQo
KQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFu
ZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmFwcGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEVkaXRD
b21tYW5kOjphcHBseUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5
ZC4uZWRlZTQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBI
VE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC01OSw2ICs2MCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsK
ICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCB1bmFwcGx5SW50ZW50KCk7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3Np
dGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9u
LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwog
CkBAIC04Nyw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWlu
QXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
dWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29s
IHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50
KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29t
bWFuZChEb2N1bWVudCYpOwpAQCAtMTAzLDE1ICsxMDcsMTggQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgcmVtb3ZlU3R5bGVkRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIGRl
bGV0ZVNlbGVjdGlvbihib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKICAgICB2
b2lkIGRlbGV0ZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERl
bGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJl
cGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29s
IHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2ln
bmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0
KGNvbnN0IFN0cmluZyYsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJv
b2wgaXNSZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0
ZXIoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAgICAgdm9p
ZCBpbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2
b2lkIGluc2VydE5vZGVBdFRhYlNwYW5Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQ
b3NpdGlvbiYpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NS
ZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlID0gRG9Ob3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CiAgICAgdm9pZCBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdy
YXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEg
PSBmYWxzZSk7CiAgICAgdm9pZCBpbnNlcnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxF
ZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05vZGUoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAg
IHZvaWQgbWVyZ2VJZGVudGljYWxFbGVtZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVm
UHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2
ICsxMzcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05l
d1BhcmVudChOb2RlKiwgTm9kZSogcGFzdExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1l
bnQ+IHBycE5ld1BhcmVudCk7CiAgICAgdm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVSZW1vdmFs
UHJlc2VydmluZ0NoaWxkcmVuKFBvc2l0aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFz
c1JlZlB0cjxOb2RlPik7CisgICAgdmlydHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZD4gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQsIHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGUoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3Ry
aW5nJiByZXBsYWNlbWVudFRleHQpOwogICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJ
bk5vZGUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZp
bmdNYXJrZXJzKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkZjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iZjJmYTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVi
bGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xYjRlNzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMCwwICsxLDUw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgor
CisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkVk
aXRpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29s
IHNhbml0aXplTWFya3VwKQorICAgIDogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwg
c21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4g
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7Cisg
ICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KTsKK30KKworRWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpl
ZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xZDA1YzMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKworI2lu
Y2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1h
cmt1cCA9IHRydWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1
cCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERv
Y3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBi
b29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVN
YXJrdXApOworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1Li44NTcxNjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3LDExIEBAIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUt
Pmxlbmd0aCgpKTsKIH0KIAorU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxl
dGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU2LDEw
ICs2MywxMCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAg
IG1fdGV4dCA9IG1fbm9kZS0+c3Vic3RyaW5nRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gTmVlZCB0byBub3Rp
ZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4
dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBt
X25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzgw
LDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAg
bV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwog
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3Rl
eHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBw
bHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1f
b2Zmc2V0KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtODQsNCArOTEsMTQgQEAgdm9pZCBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li43YTMxYzE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
ICNkZWZpbmUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMzksOCArNDAsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKICAgICB9
CiAKKyAgICBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7
CisKIHByaXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJy
aWRlOwpAQCAtNDgsNyArNTMsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmly
dHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAj
ZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4
dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fY291bnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9pZCBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRoYXQg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2Vz
IHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGlu
Z0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRo
ZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRp
dEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFs
bHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHBy
ZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTI3LDExICsyNywxMSBAQAog
I2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kLmgiCi0jaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJU
ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERp
Y3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVT
dGFydCwgc2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0
ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdl
KGxpbmVTdGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8
SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5l
U3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVy
bmF0aXZlc0luTGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9j
dW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCks
IERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mODhjNDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZjI5ODM2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsK
KworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCIKKworI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25N
YXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChk
b2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4g
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkK
K3sKKyAgICByZXR1cm4gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zYzljYjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0
VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+
IG1hcmtlclN1cHBsaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7
CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+KTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4
IDhmNTY1MzIuLjkxZWE5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENv
bW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3Np
dGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCkBAIC0xMjQsNSArMTI1LDI5IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVB
bmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAg
IG5vZGVzLmFkZChub2RlKTsKIH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVVbmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJl
dHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0
eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLjAxYTAzMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgRWRpdENvbW1hbmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2li
bGVTZWxlY3Rpb24uaCIKIApAQCAtNTksNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQg
RWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CkBAIC05MCw2ICs5
Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNl
dDxOb2RlKj4mKSA9IDA7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChhcHBseUVkaXRUeXBlKCkpOyB9Cisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCB1bmFwcGx5
SW50ZW50KCkgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
dW5hcHBseUVkaXRUeXBlKCkpOyB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBTaW1wbGVF
ZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsg
fQogCkBAIC05Nyw2ICsxMDMsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYWRkTm9kZUFuZERl
c2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworCisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENv
bW1hbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCmluZGV4IGRjM2FlMzMuLjZkZTEzZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKQEAgLTMyLDEwICsz
MiwxNCBAQAogI2luY2x1ZGUgPEJyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUg
PENvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxDcmVhdGVMaW5rQ29tbWFuZC5j
cHA+CisjaW5jbHVkZSA8Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVk
ZSA8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+
CiAjaW5jbHVkZSA8RGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlv
bkNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwPgorI2luY2x1ZGUgPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcD4KICNpbmNs
dWRlIDxFZGl0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RWRpdGluZ1N0eWxlLmNwcD4KICNpbmNs
dWRlIDxFZGl0b3IuY3BwPgpAQCAtNTQsMTEgKzU4LDE1IEBACiAjaW5jbHVkZSA8TWVyZ2VJZGVu
dGljYWxFbGVtZW50c0NvbW1hbmQuY3BwPgogI2luY2x1ZGUgPE1vZGlmeVNlbGVjdGlvbkxpc3RM
ZXZlbC5jcHA+CiAjaW5jbHVkZSA8TW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgorI2luY2x1ZGUg
PFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUNTU1Byb3Bl
cnR5Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA+CiAjaW5j
bHVkZSA8UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4K
KyNpbmNsdWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVk
ZSA8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwPgpAQCAtNzcs
NiArODUsMTAgQEAKICNpbmNsdWRlIDxUZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQuY3BwPgogI2lu
Y2x1ZGUgPFRleHRJdGVyYXRvci5jcHA+CiAjaW5jbHVkZSA8VHlwaW5nQ29tbWFuZC5jcHA+Cisj
aW5jbHVkZSA8VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VW5saW5rQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8
VmlzaWJsZVBvc2l0aW9uLmNwcD4KICNpbmNsdWRlIDxWaXNpYmxlU2VsZWN0aW9uLmNwcD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3MTBhYTM5Li5lMjQ5ZGQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJk
RXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3NpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRl
TGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAj
aW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwx
NSBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUp
Cit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnRE
ZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxl
Y3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwor
ICAgIGlmIChlZGl0aW5nQWN0aW9uID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29t
bWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxl
dGUpKTsKKyAgICBlbHNlCisgICAgICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0
b3I6OmNsZWFyVGV4dCgpCkBAIC0xMDAxLDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGll
ZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8g
RG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4g
IFdlIGRvIHRob3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2Vs
ZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29t
bWFuZCgpID8gRnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hh
bmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hh
bmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBs
eUludGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29t
cG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5k
aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hl
ZHVsZWQoKTsKQEAgLTEwMzIsNyArMTAzNiw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0
aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRl
eHRGcm9tQ29udHJvbHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5l
bmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24oY21kLT5zdGFydGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVj
dGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+
dW5hcHBseUludGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVu
dHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRp
dGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpA
QCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9y
QWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJv
YXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVs
ZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRB
Y3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcg
QEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1f
YWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0
ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVT
ZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhl
IG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rp
b24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0
aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6
Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1Nl
bGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0
IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBv
c2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7
CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2Vs
ZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7Cisg
ICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0
aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0
aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRo
aW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4g
dGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApA
QCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFy
aXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9u
RGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcg
KzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJt
Q29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlv
bihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBD
b3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNp
Zmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDU3
NDUxNzAuLmI0YzcyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0
YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rp
b246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNl
clRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFs
ZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAg
ICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOwor
ICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBw
b3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0
aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZh
dWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlv
bjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0xNzAsNyArMTY5
LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3Qg
UG9zaXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW8KICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbjsKICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlkYXRpb24oYmFzZSwgZXh0
ZW50KTsKICAgICBuZXdTZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25hbChzZWxlY3Rpb25IYXNEaXJl
Y3Rpb24pOwotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cykpOworICAg
IHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkg
fCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKIH0KIAogdm9pZCBE
cmFnQ2FyZXRDb250cm9sbGVyOjpzZXRDYXJldFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNz
CiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0
RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAor
ICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAo
bmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVu
dCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9u
LCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24s
IFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0
IFZpc2libGVTZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQg
PSBuZXdTZWxlY3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxG
cmFtZT4gbmV3U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkg
ewogICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2Vs
ZWN0aW9uRG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAg
IG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVj
dGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25z
LCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAg
ICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNl
bGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAg
ICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBi
dXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAg
ICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMg
dGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25z
dCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0
U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwg
Q3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQog
ewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rp
b24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0
MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcg
JiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihp
bnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0
T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVj
dGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1f
cGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzc5LDggKzM4Nyw3
IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAKICAg
ICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9Ci0K
LSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgaWYgKGF1dG8q
IGNsaWVudCA9IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpKQogICAgICAgICBjbGllbnQtPmRp
ZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpOwpAQCAtMTAyMSw3ICsxMDI4LDgwIEBA
IFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJv
dW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5
ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2Vs
ZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25E
aXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsK
KyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAg
ICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRp
cmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVl
OworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAgIHN3aXRjaCAo
Z3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgICAgICBp
bnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdy
YW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5
OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3Jh
bnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVs
YXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0
aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBm
YWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFu
dWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3Jh
bnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhH
cmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAg
ICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAg
ICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNo
IChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0
aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJh
Y2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9u
ID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFt
ZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVz
ZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc3LDYgKzExNTcsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAm
JiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUt
PmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUt
PnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0
aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9w
ZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBT
ZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkg
cmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBh
cmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzEwLDggKzE3
OTUsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVT
ZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250
ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9u
KG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91
bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBhdXRvIGludGVudCA9
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6VGV4dFNl
bGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAg
ICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0
eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUxMCw3IEBAIFZpc2libGVTZWxlY3Rp
b24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24o
Y29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2Vs
ZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFy
aXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNj
cm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNl
bGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJ
Zk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBz
dGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlv
biBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjNjMzE5ODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5k
ZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAi
SW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdT
dHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVu
dCkgOiAwKTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7
CisgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
OworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZy
YW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQg
bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYs
IGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAg
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vs
ZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVl
ZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNl
bGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQo
KSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4
dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGlu
Zyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAot
ICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9y
c0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdB
cHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBD
dXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBA
QCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJl
Y3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAg
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRl
bnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAg
ICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkp
OwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhP
YmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9p
ZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9s
KEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQog
CiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwp
KQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRl
eCA1Mzk0ZTdlLi5hZWM0NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBA
IC01MCw2ICs1MSwxMSBAQCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVCghbV90
ZXh0LmlzRW1wdHkoKSk7CiB9CiAKK1N0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
aW5zZXJ0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5h
YmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5
ICs3MSw5IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAg
fQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENF
UFRJT04pOwotCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zm
c2V0LCBtX3RleHQpOworICAgIAorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25v
ZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRp
b24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEw
ICs4OCwxMCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7
CiAgICAgaWYgKCFtX25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRl
bGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwg
bV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9k
ZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0
aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZz
ZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC05Nyw0ICsxMDMs
MTQgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChI
YXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAzMTBiYmIzLi5l
MzNmNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzksOSArNDAsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCkpOwogICAgIH0KIAotcHJpdmF0ZToKKyAgICBTdHJpbmcmIGluc2VydGVkVGV4dCgpOworcHJv
dGVjdGVkOgogICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAKK3ByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9V
bmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNTEsNyArNTQsMTAgQEAg
cHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21t
YW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRU
eXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVk
IG1fb2Zmc2V0OwogICAgIFN0cmluZyBtX3RleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGQxNmI1ZDYuLjhkNWVjMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCkBAIC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
Ikluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTU3LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQo
KSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVW
YWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
eworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0
KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDog
Y3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgp
LCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9z
aXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5v
dGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0g
ICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2Rl
VmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
IHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdl
dCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6
IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAg
ICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQo
KSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxl
UG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUo
SUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC04MSw0ICs4NywxNCBAQCB2b2lkIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9
CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYy
ZC4uOGQ5YzYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZF9oCiAjZGVmaW5lIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKIAorI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0zOCwxNiArMzksMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRv
SW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAg
IH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0lu
c2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCitwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNl
bmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2Rl
PiBtX2luc2VydENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRl
eHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgK
aW5kZXggZjEwZDJmZS4uYmZhMTgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
VGV4dENvbW1hbmQuaApAQCAtNTksMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1
cHBsaWVyKSk7CiAgICAgfQogCi1wcml2YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJh
bGFuY2VUeXBlKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYs
IGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+KTsKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4
dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgog
CiAgICAgdm9pZCBkZWxldGVDaGFyYWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFhY2FiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hp
bGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0
Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sK
K30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMWQwNTU5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQg
OiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAg
ICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2Vy
dEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5v
ZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0N2E3ZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOGU2YTM1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZp
bmUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQgOiBwdWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4g
Y3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAxN2I4MQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAg
ICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQodGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30K
Kwordm9pZCBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZDMwZmRiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9
CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWFjN2I3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQorICAgICwgbV9k
ZWxldGVkVGV4dChkZWxldGVkVGV4dCkKK3sKK30KKwordm9pZCBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9k
ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAg
ICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAg
Y2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVEaWN0YXRpb246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3Rl
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0
LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCByZXBsYWNlQXBwbHlFZGl0VHlwZSgpLCB0ZXh0LCBw
b3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
Ljc3YzQyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+
IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSB7IHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZSB7IHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyZXBsYWNlQXBwbHlF
ZGl0VHlwZSgpKTsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworCisgICAg
U3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGZiMzg4
MGMuLjMwYzQ3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQmVmb3JlVGV4
dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCiAj
aW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC00NCwxNCArNDUsMjAgQEAKICNp
bmNsdWRlICJIVE1MVGl0bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNs
dWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVkZSAiU21h
cnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTQ4Miw2ICsxNDg5LDMwIEBAIHZv
aWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnVwZGF0ZU5vZGVzSW5zZXJ0ZWQoTm9kZSAqbm9k
ZSkKIAogICAgIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQgPSBsYXN0UG9zaXRpb25Jbk9yQWZ0ZXJO
b2RlKG5vZGUtPmxhc3REZXNjZW5kYW50KCkpOwogfQorICAgIAorUmVmPEVkaXRDb21tYW5kPiBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0
cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rp
b25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
aW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSk7CisgICAgfQorfQorCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNl
IEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxl
dGVkVGV4dCk7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBp
bnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgfQorfQogCiAvLyBE
dXJpbmcgc2ltcGxlIHBhc3Rlcywgd2hlcmUgd2UncmUganVzdCBwYXN0aW5nIGEgdGV4dCBub2Rl
IGludG8gYSBydW4gb2YgdGV4dCwgd2UgaW5zZXJ0IHRoZSB0ZXh0IG5vZGUKIC8vIGRpcmVjdGx5
IGludG8gdGhlIHRleHQgbm9kZSB0aGF0IGhvbGRzIHRoZSBzZWxlY3Rpb24uICBUaGlzIGlzIG11
Y2ggZmFzdGVyIHRoYW4gdGhlIGdlbmVyYWxpemVkIGNvZGUgaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi5lMjZh
OTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oCkBAIC0xMTEsNiArMTExLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGVyZm9ybVRy
aXZpYWxSZXBsYWNlKGNvbnN0IFJlcGxhY2VtZW50RnJhZ21lbnQmKTsKIAorICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKwogICAgIFBvc2l0aW9uIG1fc3RhcnRPZkluc2Vy
dGVkQ29udGVudDsKICAgICBQb3NpdGlvbiBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFJl
ZlB0cjxFZGl0aW5nU3R5bGU+IG1faW5zZXJ0aW9uU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCA5MzI5Y2RmLi44YzBmYjAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJNYXRoTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCiAj
aW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAt
MzczLDcgKzM3NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJp
bmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6
Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCkKIHsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1h
bmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdElu
c2VydGVkVGV4dCwKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2Vy
dGVkVGV4dCwKICAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9u
ZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNw
YWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CiAKICAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTQy
MjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVU
eXBpbmc7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBiZDE0NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZp
bmUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi43YjI0NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKwor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NS
ZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZVR5cGluZzsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjgxNzQ2MTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6
IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAg
ICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNl
cnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQor
Citwcml2YXRlOgorICAgIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wMWIxNjY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJUZXh0LmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
I2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSkKKyAg
ICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQs
IHJlYmFsYW5jZVR5cGUpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7
Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVk
VGV4dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ5M2I1ZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydFRleHRDb21tYW5kIDog
cHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGlu
Z0luc2VydFRleHRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsIFJlYmFsYW5jZVR5cGUg
cmViYWxhbmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYs
IGNvbnN0IFN0cmluZyYsIGJvb2wsIFJlYmFsYW5jZVR5cGUpOworCisgICAgdmlydHVhbCBSZWY8
RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRD
b21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjMwZGQ1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxh
Y2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVUeXBpbmc7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmMyZTBm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VGV4dDsKKworY2xhc3MgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBw
dWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0
ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uZTY5NWE3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgs
NyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4w
N2UyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVj
dGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlv
bk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNv
bnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykK
ICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQo
KTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0
aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hl
LT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+
cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRP
YnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50
LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2
YzZiMi4uNWJmYjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAg
ICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVy
VGV4dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlu
bmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1
ZTsKICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkp
IHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAg
aWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAg
ICAgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hl
OjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNl
bmRpZgogICAgICAgICBpbm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAKICAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVu
ZHNXaXRoKCdccicpKQogICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJ
c0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAg
ICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24o
dGhpcywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNl
bmRpZgogICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDYwNTFjNi4uYzUyODhi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE4NCw3ICszMTg0LDcg
QEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwg
U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAg
c2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSkpOwogfQogCiBzdGF0aWMgdm9pZCBo
YW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdj
MDdmZS4uYmZkMWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApA
QCAtMzQxLDcgKzM0MSw3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRv
Y3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXliCiAgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkp
OwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihwb3NpdGlvbiwgcG9zaXRp
b24sIERPV05TVFJFQU0pOwogICAgICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hh
bmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSkpOwogICAgIH0KIAogICAgIGVsZW1l
bnQtPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250721</attachid>
            <date>2015-04-14 12:13:18 -0700</date>
            <delta_ts>2015-04-14 13:47:34 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>267679</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGMyZGQ1YTU2NDc5NjVjNjBmOGZlODI4MTNhNTM3ZTYyNWQzMjQ5NWYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MTkKICAgIAogICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4
dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFu
ZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCiAgICAKICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFu
ZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBz
ZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUyMDQ2NWIuLjRk
MjEyMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wNC0xNCAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3gu
aHRtbDoKKwogMjAxNS0wNC0xMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvbnRlbnQgRmlsdGVyaW5nXSBTdXBwb3J0IG1vZGlmeWluZyByZXF1ZXN0IFVSTHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NjOWYyMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTUgQEAKK29uZSB0d28gdGhy
ZWUuIGZvdXIgZml2ZSBzaXguCisKK3NldmVuIGVpZ2h0IG5pbmUuCisKK1RoaXMgdGVzdHMgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBtb3Zlcy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25C
ZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlX
b3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24i
XSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0
aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjE3MTM0NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0
bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4K
KworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRp
dGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2
ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2Pgor
Cis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5n
ZSBub3RpZmljYXRpb25zIGZvciBtb3Zlcy4iKTsKKworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlID0gMjsKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kID0gMzsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmcgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSAyOworICAg
IHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IDM7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgPSA0OworCisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Q2hhcmFjdGVyID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkID0gMjsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lID0gMzsK
KyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSA9IDQ7CisgICAgdmFy
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoID0gNTsKKyAgICB2YXIgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCA9IDc7CisKKyAgICB2YXIgZ3JhbiA9IFsiY2hh
cmFjdGVyIiwgIndvcmQiLCAic2VudGVuY2UiLCAibGluZSIsICJwYXJhZ3JhcGgiLCAibGluZWJv
dW5kYXJ5IiwgInNlbnRlbmNlYm91bmRhcnkiLCAicGFyYWdyYXBoYm91bmRhcnkiLCAiZG9jdW1l
bnRib3VuZGFyeSJdOworICAgIHZhciB3ZWJBcmVhID0gMDsKKyAgICB2YXIgY291bnQgPSAwOwor
ICAgIHZhciByZXN1bHRzID0gW107CisgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICBmdW5j
dGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAg
ICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCIpIHsKKyAgICAg
ICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBpZiAodXNlckluZm8pCisgICAgICAgICAgICAg
ICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA9PSBncmFu
Lmxlbmd0aCAqIDQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJl
dmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5l
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVc
Il0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBh
cmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAg
ICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxp
dHkodHJ1ZSk7CisKKyAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJv
b3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9u
ID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7
CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAg
ICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAg
IHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2Vz
LgorICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgcy5zZXRQ
b3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAg
ICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgICAg
ICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIsIGdyYW5baV0pOworICAgICAgICB9CisgICAg
ICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0
Ym94LCAwKTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5b
aV0pOworICAgICAgICB9CisgICAgfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFy
aWEtdGV4dGJveC5odG1sCmluZGV4IGExZTg0M2UuLmY2ZDRkYTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2Vz
LWZvci1hcmlhLXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwK
QEAgLTE3LDExICsxNywxMSBAQCBjb250ZW50IGluc2lkZQogCiAgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdHMgdGhhdCBBUklBIHJlbW92aW5nIGFuIGVsZW1lbnQgZnJvbSBhIGxpdmUgcmVnaW9u
IHNlbmRzIHRoZSBjb3JyZWN0IG5vdGlmaWNhdGlvbi4iKTsKIAotICAgIHZhciBheFRleHRib3gg
PSAwOworICAgIHZhciB3ZWJBcmVhID0gMDsKICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxs
YmFjayhub3RpZmljYXRpb24pIHsKICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1
ZUNoYW5nZWQiKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmlj
YXRpb25zIikuaW5uZXJIVE1MICs9ICJTdWNjZXNzZnVsbHkgcmVjZWl2ZWQgIiArIG5vdGlmaWNh
dGlvbiArICI8YnI+IjsKLSAgICAgICAgICAgYXhUZXh0Ym94LnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KTsKICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9
CiAgICAgICAgIGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZFRleHRDaGFuZ2Vk
IikgewpAQCAtMzUsNyArMzUsOSBAQCBjb250ZW50IGluc2lkZQogICAgICAgICB0ZXh0Ym94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKICAgICAgICAgdGV4dGJveC5mb2N1
cygpOwogCi0gICAgICAgIHZhciBheFRleHRib3ggPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5m
b2N1c2VkRWxlbWVudDsKKyAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKICAg
ICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCk7CkBAIC00Niw5ICs0OCw2IEBAIGNvbnRlbnQgaW5zaWRlCiAKICAg
ICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKLQotICAgICAgICB2YXIgYWRkZWRO
b3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0
aW9uQ2FsbGJhY2spOwotICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1
ZSIpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFlYzM0Nzku
LjFkOGMwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDcwLDEwICsxNDcwLDE0IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NyZWF0
ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0aXZlLmNwcAog
ICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5MiwxMSArMTQ5
NiwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVs
ZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5j
cHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUxMiw2ICsxNTIwLDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1Rl
eHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAK
ICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5j
cHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY3N2Y4
OC4uMDhhZWUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMyBAQAorMjAxNS0wNC0xNCAgRG91
ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdp
dmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRh
aWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAg
IFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1
Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBz
IG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBj
b250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMg
aW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFs
eXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJp
bGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4
dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxz
byBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKwor
ICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6VGV4dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpw
YXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4
dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNl
dFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9B
WE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRl
eHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
XSk6CisgICAgICAgIChyZW1vdmVOb25KU09OVHlwZXNGcm9tQXJyYXkpOgorICAgICAgICAocmVt
b3ZlTm9uSlNPTlR5cGVzRnJvbURpY3Rpb25hcnkpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjp1c2Vy
SW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFw
cGx5SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBl
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAg
IChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6ZGVsZXRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0
aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXds
aW5lcyk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRp
dENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjphcHBseUludGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUludGVudCk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0
aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGllZEVkaXRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3Jk
U2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0U2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAg
ICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRl
KToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6
Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRp
dGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVj
dGlvbkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVj
dGlvbik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCiAy
MDE1LTA0LTEwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29u
dGVudCBGaWx0ZXJpbmddIFN1cHBvcnQgbW9kaWZ5aW5nIHJlcXVlc3QgVVJMcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZGVjZGQ1My4u
Y2UxZDE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCkBAIC0xNDM5Myw2ICsxNDM5MywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NDQ5LDYgKzE0NDc3
LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1
ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdT
dWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XEVkaXRDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC0xNDczMCw2ICsxNDc4NiwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5j
cHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ4
MDAsNiArMTQ4ODQsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNTAyNCw2ICsxNTEzNiw2
MiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xV
bmxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC0yMTA2OSwxMCArMjEyMzcsMTQgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0Q29tbWFuZC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkFsdGVybmF0aXZlLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xF
ZGl0QWN0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRD
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRpbmdC
ZWhhdmlvci5oIiAvPgpAQCAtMjEwOTksMTAgKzIxMjcxLDE0IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZl
bC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9u
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5k
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVX
aXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KQEAgLTIxMTIxLDYgKzIxMjk3
LDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJdGVyYXRvci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUZXh0SXRlcmF0b3JCZWhh
dmlvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21t
YW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5k
b1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29t
bWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9z
aXRpb24uaCIgLz4KQEAgLTIxNzgzLDQgKzIxOTYzLDQgQEAKICAgPEltcG9ydEdyb3VwIExhYmVs
PSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0
aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+
Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCmluZGV4IGJjMGE2NjYuLjNmNzQyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTM0MzgsNiAr
MzQzOCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5r
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNDUwLDYgKzM0NTYsMTIgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1MTMs
NiArMzUyNSwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1MjgsNiArMzU0Niwx
MiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9u
LmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1NzYsNiArMzYwMCwxOCBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmNwcCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgpAQCAtMTA1NjksNiArMTA2MDUsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNTgxLDYgKzEw
NjIzLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNv
bW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgor
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0
QWN0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkBAIC0xMDY1OSw2ICsxMDcwNywxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDY3MSw2
ICsxMDcyNSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJl
ZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDcyNSw2ICsxMDc4NSwxOCBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmgiPgogICAgICAg
PEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbi5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmRvU3Rl
cC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpA
QCAtMTU0NjEsNCArMTU1MzMsNCBAQAogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVx3aW48L0ZpbHRl
cj4KICAgICA8L01BU00+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMDA4YzdkLi4yNTYxYzIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02
MzczLDEyICs2MzczLDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JT
dGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNG
MTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgz
MTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2
RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkND
MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9Owor
CQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9Owog
CQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFD
MjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2
REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0
aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyog
RW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9
OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0
NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0
NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTgg
LyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJ
CUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyog
QmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRU
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVC
M0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1
QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYy
NjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MjgsMTIgKzY0MzgsMjYgQEAK
IAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkg
LyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAg
Ki87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFG
MTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0
REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1
QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBG
NDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAx
NUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1h
Yy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNG
QjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZE
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9Owor
CQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0
MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBD
MCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQw
QjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFB
Q0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVD
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8q
IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFM
aXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsg
fTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURF
MEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0x
Mzk5Myw2ICsxNDAxNyw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxl
U2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2
NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyog
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0MDA1LDggKzE0MDMxLDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBS
YW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0
M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMw
MDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9j
YWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9j
YWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4
REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEw
MzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0
b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0
dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDU2LDYg
KzE0MDkwLDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJ
bnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFG
MTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAv
KiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhE
MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVB
MkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAv
KiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vy
c29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRp
bmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwpAQCAtMTQwNjYsOCArMTQxMDYsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0
IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1
QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2
RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMw
IC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUy
OTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcw
RkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0
YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRh
TGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTc2NzQsNiArMTc3MjIsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEg
LyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdF
NDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMw
N0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVG
QzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAor
CQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEg
LyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEw
MDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NjgyLDYgKzE3
NzM0LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVy
bmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNv
bW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25D
b21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4
NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5o
ICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0x
NzcyOCw2ICsxNzc4NCwxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2Rp
ZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEg
LyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2
RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIw
MDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVE
MEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICov
LAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyog
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIx
MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJ
CTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAq
LywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5j
cHAgKi8sCkBAIC0xNzczOCw2ICsxNzc5OCwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2
RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlC
MzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5
QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1
NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywK
IAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc3Myw2ICsxNzgzNywxNCBAQAogCQkJ
CTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAog
CQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJ
CQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1
OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5
RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywK
KwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIx
MSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlC
MkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlE
NTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUz
QUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2NjgsNiArMjM3NDAsNyBA
QAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25V
dGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAv
KiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBl
bmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURC
Nzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERC
NTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApA
QCAtMjQ0NzAsNiArMjQ1NDMsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBE
T01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMy
ODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1
bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5
ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4
IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDc5
Myw2ICsyNDg2Nyw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkz
ODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEz
NjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRN
TElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1
ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3
NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUw
MjIsNiArMjUwOTcsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlv
QnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNB
NTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRB
MTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNB
IC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFF
MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTAzMCw2ICsyNTEwNiw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8q
IEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0
OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlB
NzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkg
LyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcx
OTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4
RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI1MTQ5LDYgKzI1MjI2LDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNH
YWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8q
IEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFF
IC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlE
QTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVy
ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTkwLDYgKzI1NjY4LDcgQEAKIAkJCQlCQzYw
REEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5
RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1
MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxT
ZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIg
LyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0Qx
RTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3NzIs
NiArMjY4NTEsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJ
Q1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0
Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0
RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcw
MDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRl
ZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBU
ZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzND
NUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjUsNiArMjY5MDUs
NyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVD
b250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzEx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdy
aWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NDgsMTIgKzI3MDI5LDE0IEBACiAJCQkJMkQzRUY0
NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9j
YXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0Mg
LyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgz
MDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1l
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdl
YkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2
OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgx
N0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJk
VUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyog
V2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzEx
NzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAt
MjY5ODYsNiArMjcwNjksNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIx
MDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDND
RjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBX
ZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUw
MEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjc3MjcsNiArMjc4MTEsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVG
NCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Qz
RTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5n
UnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMy
M0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgwNCw2ICsyNzg4OSw3IEBACiAJ
CQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1v
dGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFC
NzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMg
LyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2
OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk0
MCw2ICsyODAyNiw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxN
b2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3
IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYw
QUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywK
KwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyog
RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFE
NkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
bW0gaW4gU291cmNlcyAqLywKQEAgLTI4MDg3LDYgKzI4MTc0LDcgQEAKIAkJCQk0NERBQjVCMTE1
QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9E
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREEx
QUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxl
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZF
Q29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODE5Nyw2
ICsyODI4NSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZElt
YWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBH
ZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2
MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdl
b21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEw
MDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIxNyw2ICsy
ODMwNiw3IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQw
MDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5
NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBI
SURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5
OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMw
QzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM5Niw2
ICsyODQ4Niw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJv
bHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBD
MDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIz
OTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1
NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1h
Z2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgy
QzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4
MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTMsNiArMjg5
NDQsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZv
cm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2
MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
NTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2Rp
Y1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8q
IEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAx
RDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjg4ODcsNiArMjg5NzksNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBK
U1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3
RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9u
RGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4
MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENT
dGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4
NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2NjIsNiAr
Mjk3NTUsNyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNN
b2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBS
VENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0Qx
NENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjEx
OUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODM5LDYgKzI5OTMzLDcgQEAKIAkJCQlG
RTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xL
ZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRp
Y05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVD
QiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM0Miw2ICszMDQzNyw3IEBA
CiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNl
cyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBT
b3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4g
U291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEy
MDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKaW5kZXggYTAwYjE1Yy4uZDM1YmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjks
NiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VB
Y2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90
aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9z
dFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlz
LCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsK
IH0KIApAQCAtNzQyLDYgKzc0MywyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlv
blBvc3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVu
dE9iamVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBv
c3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1
cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2
aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUg
ZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlm
aWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisg
ICAgZm9yIChjb25zdCBhdXRvJiBvYmplY3QgOiBub3RpZmljYXRpb25zKQorICAgICAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LmdldCgpLCBBWFRleHRF
ZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxlUG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRl
cmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwg
UG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NSwyMTggQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQog
ICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQs
IFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAg
ICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6Iik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
OgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
ICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2VydCIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246Cisg
ICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBwcmludGYo
IlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHByaW50
ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChp
bnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAg
ICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBwcmludGYoIlBy
ZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3Jh
bnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToK
KyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAg
ICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAg
ICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAg
ICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAg
ICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgcHJpbnRmKCIt
U3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwordm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5vZGUsIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVu
a25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsKKworCisgICAg
c3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAg
ICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dv
cmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBvYmotPm9ic2Vy
dmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3Rp
ZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRD
aGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50
KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNl
bGVjdGlvbkludGVudCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlm
ICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4dEVkaXRU
eXBlVW5rbm93bik7CisKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygp
OwogCi0gICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCiAgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3
b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKKyAgICAg
ICAgICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iaik7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxl
T2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKHR5cGUp
LCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRl
eHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChkZWxldGlv
blR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNlcnRpb25UeXBl
ID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5
cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiB8fCBp
bnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3RvcENhY2hpbmdD
b21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChvYmop
IHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgICAgICBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbihvYmopOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlwZSwgZGVs
ZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVj
YXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlw
ZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwg
aW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmVucXVldWVQ
YXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikK
K3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIGlm
ICghb2JzZXJ2YWJsZU9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHN0ZDo6Zmlu
ZChtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5iZWdpbigpLCBtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdC5lbmQoKSwgb2JzZXJ2YWJsZU9iamVjdCkgPT0gbV9wYXNzd29yZE5vdGlm
aWNhdGlvbnNUb1Bvc3QuZW5kKCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICB9CiB9CiAKIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUqIGZy
YW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEzMDEsMTUgQEAg
Ym9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEoKQorewor
ICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVj
dCgpKSB7CisgICAgICAgIGlmIChyb290T2JqZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
KCkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc+
KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRy
OworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIo
QVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li41OGIx
MzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksOTkgQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE5v
dGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkp
OwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRlZCwKLSAg
ICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7Cisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorICAgIH07
CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVVbmtu
b3duLAorICAgICAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0
ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAor
ICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0eXBpbmcKKyAgICAg
ICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAg
ICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgICAgICBBWFRleHRF
ZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKKyAgICB9OworCisgICAgLy8gU2ltcGxl
IHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlIGRlbGV0
aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0
aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpOworCisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmcsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMKICAgICB9OwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlv
bihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOwor
ICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMg
dGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFj
dGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGls
IGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBh
bGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0
U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsK
KworICAgIHN0YXRpYyBBWFRleHRTZWxlY3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVVua25vd24pCisgICAgeworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4
dFNlbGVjdGlvbigpOworICAgICAgICBzZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOwor
ICAgICAgICBzZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0
dXJuIHNlbGVjdGlvbjsKKyAgICB9CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24g
eworICAgICAgICAgICAgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFY
VGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBl
ID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlv
biA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDog
dHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAg
ICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAg
ICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAg
ICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rp
b24oKSkKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBB
U1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUg
PT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAg
IH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbklu
dGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkp
OworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExv
YWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzMwNSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0
aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9k
ZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAg
ICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBp
bmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0
eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
ICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlv
bjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEluc2VydGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQor
ICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYK
KwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNj
ZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAg
LTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBu
KSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgor
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1l
bnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9i
amVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVu
ZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1l
ciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bv
c3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIg
bV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lk
IHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxl
TWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2Rl
Kik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsz
NzMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNl
ZEltYWdlTWFwVUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0
QVhJRChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICB2b2lkIGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFY
QXR0cmlidXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDM0LDE2IEBAIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNv
bXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRD
aGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9Citp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENP
Q09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0K
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0
KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjNk
NDVkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlu
cHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3Qq
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dv
cmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAg
aWYgKGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4g
Y29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAK
KyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAg
ICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpp
c0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiAr
ODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlz
UHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNT
ZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC0yNjQ2LDQgKzI2NDYsMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2
ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7
CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtu
b3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBu
b2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCpl
bGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRG
aWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjJl
OTc3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBp
c0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCAyZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgs
MTQgKzE0ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAg
ICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5n
ZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENv
bnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3Jt
Q29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2Uo
cmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVu
Z3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOwor
ICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246
OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9u
KG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09m
ZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBW
aXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXIt
PmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlv
blJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkg
fHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBt
YWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHpl
cm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFy
dCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAg
ICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9u
KCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7
CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlv
bihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYy
Yzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJy
aWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZp
ZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVy
cmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29u
c3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNj
cm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVD
aGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIw
MC4uYWI3OTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
QVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
Tm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQor
eworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdl
ZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5k
ZXggYjMwMGU3Ny4uODg1MGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJl
Z2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5
bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lm
bmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFs
dWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRl
ZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lm
bmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFY
U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBj
YWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAg
ICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3Rp
ZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
KQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVz
ZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVd
OworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRj
aCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBz
d2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2Vs
ZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2Jq
LT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9u
LnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAg
ICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VB
dHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJn
ZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRv
IGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5n
ZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworICAgIFt1c2VySW5mbyByZWxlYXNl
XTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBv
c2l0aW9uKQogeworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAg
IE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdl
W05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25z
dCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0
cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3Ry
aW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDAp
CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsK
KyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJr
ZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlv
bl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3Rh
cnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3Jl
bGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
bikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAg
IGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tO
U011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRS
ZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFu
Z2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBp
ZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5
UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVl
Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8g
a25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZp
Y2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKwor
ICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5
ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5
XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAq
Y2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAg
W2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdl
ID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGlu
c2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdl
XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5n
ZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+
d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIo
KTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdl
dCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisK
KyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVk
LgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2li
aWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworICAgIFt1
c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdF
dmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmpl
Y3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4uYzQ2NDhmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgVmlzaWJsZVBv
c2l0aW9uOwogLSAoaWQpYXR0YWNobWVudFZpZXc7CiAvLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVt
ZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCiAt
ICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZp
Y2F0aW9uTmFtZTsKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNT
dHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5m
bzsKIAogLSAoQ0dQYXRoUmVmKWNvbnZlcnRQYXRoVG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6UGF0
aCAmKXBhdGg7CiAtIChDR1BvaW50KWNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6
OkZsb2F0UG9pbnQgJilwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFz
ZS5tbQppbmRleCA1ZGRmYzNhLi5iZGRkNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLm1tCkBAIC0zODcsOSArMzg3LDU3IEBAIHN0YXRpYyBCT09MIGFjY2Vzc2li
aWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZQogeworICAgIGlm
IChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykKKyAgICAgICAgW3NlbGYg
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25OYW1lIHVzZXJJbmZv
Om5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICpyZW1vdmVOb25KU09OVHlwZXNGcm9tQXJyYXko
TlNBcnJheSAqYXJyYXkpCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJheSA9IFth
cnJheSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGlkeCA9IDA7IGlkeCA8IFtt
dXRhYmxlQXJyYXkgY291bnRdOyBpZHgrKykgeworICAgICAgICBpZCB2YWx1ZSA9IG11dGFibGVB
cnJheVtpZHhdOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFy
eSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRl
eDppZHggd2l0aE9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeSh2YWx1ZSld
OworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11d
KQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppZHggd2l0
aE9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tQXJyYXkodmFsdWUpXTsKKyAgICAgICAgZWxz
ZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUg
aXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZUFy
cmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aWR4XTsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxl
QXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpyZW1vdmVOb25K
U09OVHlwZXNGcm9tRGljdGlvbmFyeShOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAg
TlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0YWJsZURpY3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRh
YmxlQ29weV07CisgICAgW2RpY3Rpb25hcnkgZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Js
b2NrOl4oaWQga2V5LCBpZCB2YWx1ZSwgQk9PTCAqKQorICAgIHsKKyAgICAgICAgaWYgKFt2YWx1
ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFi
bGVEaWN0aW9uYXJ5W2tleV0gPSByZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeSh2YWx1
ZSk7CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNz
XV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gcmVtb3ZlTm9uSlNPTlR5
cGVzRnJvbUFycmF5KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZD
bGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIg
Y2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9y
S2V5OmtleV07CisgICAgfV07CisgICAgcmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVs
ZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNT
dHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5m
bworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewot
ICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5
V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIs
IG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9z
dE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlcklu
Zm86dXNlckluZm9dOworICAgICAgICBBU1NFUlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAg
IE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAg
ICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFX
aXRoSlNPTk9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeSh1c2VySW5mbykg
b3B0aW9uczpOU0pTT05Xcml0aW5nUHJldHR5UHJpbnRlZCBlcnJvcjpuaWxdOworICAgICAgICAg
ICAgaWYgKHVzZXJJbmZvRGF0YSkgeworICAgICAgICAgICAgICAgIE5TU3RyaW5nICp1c2VySW5m
b1N0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTp1c2VySW5mb0RhdGEgZW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOworICAgICAgICAgICAgICAgIGlmICh1c2VySW5m
b1N0cmluZykKKyAgICAgICAgICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1l
IiA6IG5vdGlmaWNhdGlvbk5hbWUsIEAidXNlckluZm8iIDogdXNlckluZm9TdHJpbmd9OworICAg
ICAgICAgICAgICAgIFt1c2VySW5mb1N0cmluZyByZWxlYXNlXTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBpZiAoIXVzZXJJbmZvKQorICAgICAgICAgICAgaW5mbyA9IEB7QCJu
b3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlvbk5hbWV9OworICAgICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlRO
b3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBA
CiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBv
c2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0
TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24m
KXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAK
aW5kZXggMWRlYjRkYi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxh
Y2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNs
dWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwxNSArNDgs
MjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0Vk
aXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9p
ZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRD
aGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1
ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBj
b25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNp
ZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4i
KQorICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENo
YW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2Rl
LT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9u
IHBvc2l0aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2Rl
KSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNh
Y2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29t
bWFuZDo6ZG9BcHBseSgpCkBAIC02NCwxOCArNzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUo
KSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYg
KCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAg
IAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcg
dGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
LSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAg
IG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODgsNCArOTYsMTQgQEAg
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVu
ZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIEFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4
IGQ2NGIwNGUuLjQ5YzllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ3
LDYgKzQ3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQo
SGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKKwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8
Tm9kZT4gbV9ub2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uMjVlYWI0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tG
bG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTE2Miw2ICsx
NjUsMTMgQEAgdm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChI
YXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseUludGVudCgp
Cit7CisgICAgaWYgKG1fY29tbWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5k
c1ttX2NvbW1hbmRzLnNpemUoKS0xXS0+dW5hcHBseUludGVudCgpOworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB2b2lkIGFwcGx5Q29t
bWFuZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjb21tYW5kKQogewogICAgIGNv
bW1hbmQtPmFwcGx5KCk7CkBAIC0zMjAsOSArMzMwLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4g
aW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzNyw0
NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24o
VmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29w
ZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNj
b3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRl
eHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0g
RWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRl
ZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRl
eHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFj
ZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQ
dHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAg
IFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVu
dFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQp
KTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQt
PmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJl
cGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsx
NTYxLDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseUludGVudCgpCit7CisgICAgaWYgKG1fY29t
bWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5kc1ttX2NvbW1hbmRzLnNpemUo
KS0xXS0+YXBwbHlJbnRlbnQoKTsKKyAgICByZXR1cm4gRWRpdENvbW1hbmQ6OmFwcGx5SW50ZW50
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi5lZGVlNDk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICsz
Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3Mg
U3R5bGVkRWxlbWVudDsKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHVuYXBwbHlJbnRlbnQo
KTsKKwogcHJpdmF0ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKQEAgLTg3LDYgKzkwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGlj
YXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29ycmVj
dGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0Qmxp
bmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZTsKIAogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jik7CkBA
IC0xMDMsMTUgKzEwNywxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1vdmVTdHlsZWRFbGVt
ZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9uKGJvb2wg
c21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwg
Ym9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1
ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwogICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0
cnVlKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCk7CiAgICAgdm9pZCBpbnB1dFRleHQoY29uc3QgU3RyaW5nJiwgYm9v
bCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSk7CiAgICAgYm9vbCBpc1JlbW92YWJsZUJsb2Nr
KGNvbnN0IE5vZGUqKTsKICAgICB2b2lkIGluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKTsKICAgICB2b2lkIGluc2VydE5vZGVBdChQYXNz
UmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0VGFi
U3BhblBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKTsKICAgICB2b2lkIGluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1Jl
ZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
PSBEb05vdEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2b2lkIGluc2VydFBh
cmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2Us
IGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlKTsKICAgICB2b2lk
IGluc2VydExpbmVCcmVhaygpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRU
ZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIGluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgdm9pZCBtZXJnZUlkZW50aWNh
bEVsZW1lbnRzKFBhc3NSZWZQdHI8RWxlbWVudD4sIFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAg
IHZvaWQgcmViYWxhbmNlV2hpdGVzcGFjZSgpOwpAQCAtMTMwLDYgKzEzNyw4IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIG1vdmVSZW1haW5pbmdTaWJsaW5nc1RvTmV3UGFyZW50KE5vZGUqLCBOb2Rl
KiBwYXN0TGFzdE5vZGVUb01vdmUsIFBhc3NSZWZQdHI8RWxlbWVudD4gcHJwTmV3UGFyZW50KTsK
ICAgICB2b2lkIHVwZGF0ZVBvc2l0aW9uRm9yTm9kZVJlbW92YWxQcmVzZXJ2aW5nQ2hpbGRyZW4o
UG9zaXRpb24mLCBOb2RlJik7CiAgICAgdm9pZCBwcnVuZShQYXNzUmVmUHRyPE5vZGU+KTsKKyAg
ICB2aXJ0dWFsIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiByZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4
dCk7CiAgICAgUG9zaXRpb24gcmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudFRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZmRmOWJmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCBjb3VudCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMmZhNzcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAi
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQor
Citwcm90ZWN0ZWQ6CisgICAgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFiNGU3MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKKyNpbmNsdWRlICJDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCisg
ICAgOiBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5p
dGl6ZU1hcmt1cCkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitF
ZGl0QWN0aW9uIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dAoreworICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDVjMzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisjZGVm
aW5lIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
ZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0
RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisKKyAgICB2aXJ0
dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDJlYTk2ZDUuLjg1NzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKIApAQCAtNDUsNiArNDcsMTEgQEAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAg
ICBBU1NFUlQobV9vZmZzZXQgKyBtX2NvdW50IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwogfQogCitT
dHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogewogICAgIEFTU0VSVChtX25vZGUpOwpAQCAtNTYsMTAgKzYzLDEwIEBAIHZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgbV90ZXh0ID0gbV9ub2RlLT5z
dWJzdHJpbmdEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm47Ci0gICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1
YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERl
bGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YSht
X29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2b2lkIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEo
bV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4
dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNp
Zm5kZWYgTkRFQlVHCkBAIC04NCw0ICs5MSwxNCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRp
ZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGU7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLjdhMzFjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw4ICs0MCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwogICAgIH0KIAorICAgIFN0cmluZyYgZGVs
ZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKwogcHJpdmF0ZToKLSAgICBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00OCw3ICs1Mywx
MCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5z
aWduZWQgbV9vZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9jb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDJiYmM2ZWQuLjQ5
ZjAwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmRvQXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVTZWxlY3Rpb25Db21t
YW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERlbGV0ZSBrZXksCi0g
ICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFuZCB0aGF0IHN1cHBs
aWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8gbWVudSBjb3JyZWN0
bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworICAgIHJl
dHVybiBFZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0
IHByZXNlcnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBG
b3IgZXhhbXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IGMxNzNkZjQuLjE5ZjlmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVkZSAiRGljdGF0aW9u
Q29tbWFuZC5oIgogCiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCIKLSNpbmNs
dWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5z
ZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBzaXplX3QgbGluCiB7
CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAg
ICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVu
Z3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9j
dW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCks
IERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7Cisg
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0lu
c2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3Vw
cGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OGM0MDAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjk4MzZhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
IDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjQxNWY3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAi
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJr
ZXJTdXBwbGllcikKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJr
ZXJTdXBwbGllcikKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOWNi
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQ
YXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUzMi4uNzlhYmE3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTEyNCw1ICsxMjUs
MjcgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
IHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KICAgICAgICAgbm9kZXMuYWRkKG5vZGUpOwog
fQogI2VuZGlmCisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247
Cit9CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhY2hl
LT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0
aW9uKTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uMDFhMDMwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFu
ZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgog
CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkg
PSAwOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBhcHBseUludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1
bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTkwLDYgKzkzLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpID0gMDsK
ICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHVuYXBwbHlJbnRlbnQoKSB7IHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCh1bmFwcGx5RWRpdFR5cGUo
KSk7IH0KKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCkgOiBFZGl0Q29tbWFuZChkb2N1bWVudCkgeyB9CiAKQEAgLTk3LDYgKzEw
MywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSos
IEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKwog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdBbGxJbk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uNmRlMTNmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtMzIsMTAgKzMyLDE0IEBACiAjaW5jbHVk
ZSA8QnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8Q29tcG9zaXRlRWRpdENv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPENyZWF0ZUxpbmtDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cD4KICNpbmNsdWRlIDxEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEaWN0
YXRpb25BbHRlcm5hdGl2ZS5jcHA+CiAjaW5jbHVkZSA8RGljdGF0aW9uQ29tbWFuZC5jcHA+Cisj
aW5jbHVkZSA8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVk
ZSA8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxFZGl0aW5nU3R5bGUuY3BwPgogI2luY2x1ZGUgPEVkaXRvci5jcHA+
CkBAIC01NCwxMSArNTgsMTUgQEAKICNpbmNsdWRlIDxNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcD4KICNpbmNs
dWRlIDxNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxSZW1vdmVGb3JtYXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2Rl
Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFJlbmRlcmVkUG9zaXRpb24uY3BwPgorI2luY2x1ZGUgPFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNs
dWRlIDxTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHA+CkBAIC03Nyw2ICs4NSwxMCBAQAogI2lu
Y2x1ZGUgPFRleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VGV4dEl0ZXJh
dG9yLmNwcD4KICNpbmNsdWRlIDxUeXBpbmdDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
PgorI2luY2x1ZGUgPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxVbmxpbmtDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxWaXNpYmxlUG9zaXRpb24u
Y3BwPgogI2luY2x1ZGUgPFZpc2libGVTZWxlY3Rpb24uY3BwPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCmluZGV4IDcxMGFhMzkuLmUyNDlkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5oIgor
I2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEYXRhVHJh
bnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAi
RGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKQEAgLTM3NCwxMiArMzc1LDE1IEBAIGJvb2wgRWRpdG9y
OjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9yOjpk
ZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgaWYgKGVkaXRpbmdB
Y3Rpb24gPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGVsc2UK
KyAgICAgICAgYXBwbHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkK
QEAgLTEwMDEsNyArMTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNzUmVm
UHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0aGUg
dHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2UgdGhp
bmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFtZVNl
bGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmFwcGx5SW50ZW50KCkpOwogICAg
IGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRp
bmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVF
bGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAz
Miw3ICsxMDM2LDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhj
bWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJs
ZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0
YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsK
KyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21kLT51bmFwcGx5SW50ZW50KCkp
OwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0YXJ0aW5n
Um9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7
CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjY2LDcgKzEyNzAs
NyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIg
YWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAo
YWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRo
U21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAK
IHZvaWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6
ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25v
cmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2Vs
ZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0
aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBp
cyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3
U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBo
YW4oKSkKQEAgLTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8v
IFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2
YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxl
Y3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0
aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwog
CiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlz
dWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAg
IC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0
aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzky
YmM0Ni4uZDZjNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhE
aXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJp
bmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxl
dGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZv
aWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0
ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2Fu
Y2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYs
IFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAg
ZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAg
ICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNTc0NTE3MC4uYjRjNzI1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsx
MzgsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9j
dW1lbnRFbGVtZW50KCkgY29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0
aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmlu
aXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0U2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVu
dCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25J
bnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3Qg
VmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVz
ZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNjksNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFzZSwg
Y29uc3QgUG9zaXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAgIG5l
d1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5ld1Nl
bGVjdGlvbi5zZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAgc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChz
aG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1
cyA/IDAgOiBEb05vdFNldEZvY3VzKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
QVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSkpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xs
ZXI6OnNldENhcmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAg
LTI1NCw3ICsyNTMsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3Vz
ZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxl
Y3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0
aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJz
b3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXND
YXJldCgpKQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cisg
ICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9u
U2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlv
CiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5i
YXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rp
b25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBp
ZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAh
PSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJh
bWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWdu
LCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxl
Y3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJ
dCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZy
YW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2Vs
ZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxl
Y3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZy
YW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIg
b3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rp
bwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Ny
b2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxp
Z24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxh
eW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0
YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBm
cmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1Nl
bGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9u
VXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zNzksOCArMzg3LDcgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKIAogICAgICAgICByZXZlYWxTZWxl
Y3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KLQotICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiAKICAgICBpZiAoYXV0byogY2xpZW50ID0gbV9mcmFt
ZS0+ZWRpdG9yKCkuY2xpZW50KCkpCiAgICAgICAgIGNsaWVudC0+ZGlkQ2hhbmdlU2VsZWN0aW9u
QW5kVXBkYXRlTGF5b3V0KCk7CkBAIC0xMDIxLDcgKzEwMjgsODAgQEAgVmlzaWJsZVBvc2l0aW9u
IEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVs
YXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3Vu
ZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRleHRTZWxl
Y3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rp
b24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9
PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAg
ICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uT2ZTZWxlY3Rp
b24oKSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgewor
ICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVu
Y2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVu
dC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxh
cml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBj
YXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFy
aXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNl
IERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRj
aCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNh
c2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBj
YXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAg
IGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50
ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBo
Qm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9
IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewor
ICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAg
ICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
biA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmcgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAg
IGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0g
ZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2Rp
ZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsK
QEAgLTEwNzcsNiArMTE1NywxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVy
YXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBp
ZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9y
aWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlm
IChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAg
ICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlv
bkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5
KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4g
eFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rp
b24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgog
ICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNl
IGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MTAsOCArMTc5NSwxMCBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3Qu
Z2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkK
LSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlv
bihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisgICAgICAgIHNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0
RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlw
aW5nKQpAQCAtMjQyMyw3ICsyNTEwLDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNlbGVjdGlv
bjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBWaXMKIAogICAg
IFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9u
KCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51bGFy
aXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZy
YW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9uLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGRlZmF1bHRT
ZXRTZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNl
bGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0UG9zKGZyYW1lU2Vs
ZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9uIGVuZFBvcyhmcmFtZVNl
bGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uM2MzMTk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFtZVNlbGVjdGlv
bl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgKHVzZXJUcmln
Z2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDApOwogICAgIH0K
KyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfQogCiAgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gbnVsbHB0cik7
CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlk
YXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25I
YXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwg
U2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEN1cnNv
ckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxh
cml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBD
aGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3Rl
ZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIo
KTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0
aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rp
b25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7
CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3Jv
bGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBAIHByaXZhdGU6CiAgICAg
TGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24o
RVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwg
U2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAjZWxzZQotICAgIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlv
bkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQp
OwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBp
bmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLmFlYzQ3
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDExIEBA
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsK
IH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQor
eworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5z
ZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAgdm9pZCBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBtX25vZGUt
Pmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0KLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlF
ZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zm
c2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9k
ZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0
KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0
aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lkIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBu
b2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2Rl
ZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1w
cml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
ZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlk
ZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgogI2lmbmRl
ZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2Rl
Kj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAg
U3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI2LDkg
KzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcs
OCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihk
b3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0
aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUo
KSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikp
OworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
QEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5v
ZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlv
bikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9O
KTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Omdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5z
ZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKICNkZWZp
bmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4
LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgor
cHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkg
b3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rl
c0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7
CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5i
ZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBA
IC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9
CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJv
dGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIEluc2Vy
dFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0
ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0
ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
ZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8
Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxh
Y2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZhMzUyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsK
KworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0
ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzBmZGJk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
X2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgor
ICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjM1YWM3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCww
ICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0
ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisg
ICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBp
bmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwg
dGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQs
IHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVs
ZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdjNDI2OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNp
bmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRl
bGV0ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlSW5zZXJ0OyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOyB9CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVk
VGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5o
IgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHls
ZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRs
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJT
dHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNs
dWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAi
UmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRl
ICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNp
bmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAi
VGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5j
bHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRP
Zkluc2VydGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERl
c2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENo
aWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBz
d2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAg
ICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAg
Y2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisK
K1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkK
K3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGlu
ZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBj
YXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVs
ZXRlZFRleHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFz
dGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0
ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBu
b2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0
aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2
ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29u
c3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9k
ZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAg
IFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHls
ZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQu
Y3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxl
VW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAg
dm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBz
ZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldp
dGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0
KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRD
b21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAg
IFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAg
ICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENv
bW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4
dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2
MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNl
cnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAg
OiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYx
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNp
bmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0
cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAx
YjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNs
dWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5k
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENv
bW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkK
K3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0
VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRD
b21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJl
dHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21t
YW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4
dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBz
ZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0g
UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4
dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwg
Ym9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5z
ZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisg
ICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQs
IGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0
ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2Vs
ZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9u
QXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRp
YyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlP
YmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00Nywx
MyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3Qo
Q0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1f
c2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3RO
dWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRp
b24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9i
amVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQp
OworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9z
ZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsK
ICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hh
bmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJp
bmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBi
b29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0
SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdl
ZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNh
Y2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2Vk
LCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlu
bmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAg
ICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAg
ICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5k
ZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6
UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAg
ICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li5jNTI4OGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBz
ZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rp
b24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2Vs
ZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZp
c2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVj
dENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2Vs
ZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2MwN2ZlLi5iZmQxZmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zNDEsNyArMzQxLDcg
QEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBm
aXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZWxlbWVudC5nZXQoKSk7CiAgICAgICAgIFZpc2li
bGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKHBvc2l0aW9uLCBwb3NpdGlvbiwgRE9XTlNUUkVBTSk7
CiAgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVj
dENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiAgICAgfQogCiAgICAgZWxlbWVudC0+Zm9jdXMoZmFsc2Us
IGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZjY1NDk4MS4uZDZmZTY1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA0LTE0ICBEb3VnIFJ1
c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBj
aGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0
aGUgY29udGV4dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVk
IHZhbHVlIGFuZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgUmlj
aGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBB
WFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9y
ZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRl
bnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBw
YXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emlu
ZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5
IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJs
b2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKwogMjAxNS0wNC0wOSAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBkYXRlIG15IGVt
YWlsIGFkZHJlc3MgYW5kIGV4cGVydGlzZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAg
LTEyNSwxOSArMTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZv
cm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0Ai
dXNlckluZm8iXTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQ
YWdlR2V0TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+
cGFnZSgpKTsKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZh
U2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1Jl
Zl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1h
a2VTdHJpbmcoY29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYg
dXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZh
bHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlcklu
Zm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0p
OworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNP
TlN0cmluZyhjb250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAg
aWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxl
bWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAg
ICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJl
Zj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5h
bWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVu
ZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50
cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNh
dGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07
CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAg
ICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25v
dGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0g
ZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5v
dGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbM107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3Rd
KSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7Cisg
ICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAg
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4o
bV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAg
ICB9CiB9Cg==
</data>
<flag name="commit-queue"
          id="275526"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250722</attachid>
            <date>2015-04-14 12:25:23 -0700</date>
            <delta_ts>2015-04-16 19:37:35 -0700</delta_ts>
            <desc>Edit commands infrastructure</desc>
            <filename>0001-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>162640</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA5YmJlYWU4NTNhOGM2OWIyMzUyOTEyZWU4NjA4NTM5N2UwM2JmNzBjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgOCBBcHIgMjAxNSAxMzoxNDo0OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKTmV3IEVkaXRpbmcgQ29tbWFuZHMKLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArKwogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMTQgKysrKysrKysrKysrKwog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiAgICAgfCAxODAg
KysrKysrKysrKysrKysrKysrKysrCiAuLi4vV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzICAgICAgICB8ICA3MiArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgIDk2ICsrKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAxOCArKy0KIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCAgICAgICAgIHwgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCAgICB8ICAzOCAr
KysrLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oICAgICAg
fCAgIDYgKwogLi4uL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgICAg
ICAgfCAgMzggKysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIHwgIDQ2ICsrKysrKwogLi4uL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCAgfCAgNDUgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCB8ICA0OCArKysrKysKIC4uLi9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgIHwgIDI2ICsrLQogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgMTAgKy0KIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgICAgICAgIHwgICA0ICstCiAuLi4v
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCB8ICA0MCArKysr
KwogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgfCAg
NDYgKysrKysrCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcCB8ICA0NSArKysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCAgIHwgIDQ3ICsrKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5n
QWxsSW5PbmUuY3BwICAgICAgICAgfCAgMTIgKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcCAgICAgICAgICAgICAgICAgIHwgIDExICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vV2ViQ29yZS9lZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICB8ICAyOSArKystCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgOSArLQogU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgfCAgMjIgKystCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggICB8ICAgOCArLQog
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oICAgICAgICAgfCAgIDcg
Ky0KIC4uLi9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICAgICAgIHwg
IDM4ICsrKysrCiAuLi4vV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCB8ICA0NyArKysrKysKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAgICAgIHwgIDM4ICsrKysrCiAuLi4vUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICAgICAgICB8ICA0OCArKysrKysKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgIHwgIDM4ICsrKysrCiAuLi4vZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICAgICB8ICA0OSArKysrKysKIC4uLi9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgIHwgIDQwICsrKysrCiAu
Li4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICA1MiAr
KysrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IHwgIDMxICsrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuaCAgIHwgICAzICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAg
ICAgICAgICAgIHwgICAzICstCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAgICB8ICA0MCArKysrKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICAgICAgfCAgNDUgKysrKysrCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAgICB8ICAzOCArKysrKwogLi4uL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgICAgICAgfCAgNDcgKysrKysrCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCB8ICA1MCArKysrKysK
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAgIHwgIDQ5
ICsrKysrKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAg
ICAgfCAgMzggKysrKysKIC4uLi9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICAgICAgIHwgIDQ4ICsrKysrKwogNDcgZmlsZXMgY2hhbmdlZCwgMTczNSBpbnNlcnRpb25z
KCspLCAzOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDFlYzM0NzkuLjFkOGMwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xNDcwLDEwICsxNDcwLDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5n
L0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcv
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L0RpY3RhdGlvbkFsdGVybmF0aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5j
cHAKKyAgICBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisg
ICAgZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcv
RWRpdG9yLmNwcApAQCAtMTQ5MiwxMSArMTQ5NiwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25D
b21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAK
KyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAg
ICAgZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1v
dmVGb3JtYXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAg
ICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Nl
dE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApAQCAtMTUxMiw2ICsxNTIwLDEwIEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3Bw
CisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rp
b24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYTY3N2Y4OC4uYjhjMzJlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDExNyBAQAorMjAxNS0wNC0wOCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNv
bT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFu
ZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRz
IHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBUaGlzIGNvbW1pdCBpcyBhbGwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGRvZXNuJ3QgY29u
dGFpbiBhbnkgYWNjZXNzaWJpbGl0eSBzcGVjaWZpYyBjaGFuZ2VzLgorCisgICAgICAgIFRlc3Rz
IGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBlYXJseSBmb3IgZmVl
ZGJhY2suCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6
Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAgKiBlZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGlu
Zy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9DdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
b1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
OgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAg
ICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05v
ZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVhdGVX
aXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgor
ICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAg
ICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6
CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29t
bWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZSk6CisKIDIwMTUtMDQtMTAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb250ZW50IEZpbHRlcmluZ10gU3VwcG9ydCBtb2RpZnlpbmcgcmVxdWVzdCBVUkxzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBk
ZWNkZDUzLi44NjEwOTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKQEAgLTE0MzkzLDYgKzE0MzkzLDM0IEBACiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAi
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ0NDks
NiArMTQ0NzcsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29t
cGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcRWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KQEAgLTE0NzMwLDYgKzE0Nzg2LDM0IEBACiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlD
b21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CkBAIC0xNDgwMCw2ICsxNDg4NCwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE1MDI0LDYg
KzE1MTM2LDYyIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KQEAgLTIxMDY5LDEwICsyMTIzNywxNCBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENvbXBvc2l0ZUVkaXRDb21tYW5kLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXEVkaXRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRWRpdENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RWRpdGluZ0JlaGF2aW9yLmgiIC8+CkBAIC0yMTA5OSwxMCArMjEyNzEsMTQgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW9kaWZ5U2VsZWN0aW9u
TGlzdExldmVsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVT
ZWxlY3Rpb25Db21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9k
ZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIiAvPgpAQCAtMjExMjEs
NiArMjEyOTcsMTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVGV4dEl0
ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJdGVy
YXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xVbmRvU3RlcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xV
bmxpbmtDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFZp
c2libGVQb3NpdGlvbi5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGJjMGE2NjYuLjI4YjBhOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKQEAgLTM0MzgsNiArMzQzOCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNDUwLDYg
KzM0NTYsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9u
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTM1MTMsNiArMzUyNSwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlD
b21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KQEAgLTM1MjgsNiArMzU0NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1
NzYsNiArMzYwMCwxOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBp
bmdDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTA1NjksNiArMTA2MDUs
MTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1h
bmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KQEAgLTEwNTgxLDYgKzEwNjIzLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0QWN0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDY1OSw2ICsxMDcwNywxMiBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIj4K
ICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NT
UHJvcGVydHlDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkBAIC0xMDY3MSw2ICsxMDcyNSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0x
MDcyNSw2ICsxMDc4NSwxOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbi5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIwMDhjN2QuLjI1NjFjMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNzMs
MTIgKzYzNzMsMjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBB
bmltYXRvclN0YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRl
Lm1tICovOyB9OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFw
UG9pbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVC
OEU0ODAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAg
LyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjUwNjNDMUMxQUI3NTZENTAw
OUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1
MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUY1
MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZG
IC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAv
KiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0
eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJ
CUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNE
NUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAq
LzsgfTsKKwkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggKi87IH07CisJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAqLzsgfTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4
NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4
OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQ
bGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1
MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4
REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNl
VGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3Bw
ICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdB
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RB
RjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAv
KiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAtNjQyOCwxMiArNjQzOCwyNiBAQAogCQlG
NTVCM0RERTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkg
LyogVVJMSW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBX
ZWVrSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsg
fTsKIAkJRjU1QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQw
MDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi87IH07CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAv
KiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNC
NzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkz
NDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CisJCUY1NzRERURB
MUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRE
RUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLzsgfTsKKwkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1
QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1
NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZC
MjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmgg
Ki87IH07CiAJCUY1OTczREUxMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIz
QzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIz
QzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CisJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NkQxQUND
QjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1
OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTlG
QTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNUExNTQyNzEy
Nzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8q
IFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMw
IC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3Nh
Z2UuaCAqLzsgfTsKKwkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTVFMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUMxQUND
RThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CisJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oICovOyB9OwogCQlGNUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRN
TERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVu
dC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9Owog
CQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxREUwRkZD
QTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTEzOTkz
LDYgKzE0MDE3LDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBB
bmltYXRvclN0YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0N0E1RTNBMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRz
LmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9s
bFNuYXBQb2ludHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVTY3Jv
bGxTbmFwUG9pbnRzLmg7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUx
NTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxp
ZGF0aW9uTWVzc2FnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTQwMDUsOCArMTQwMzEsMTYgQEAKIAkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
RjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVG
RjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2
RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMx
QUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklu
cHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25J
bnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNTYsNiArMTQw
OTAsMTIgQEAKIAkJRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxJbnB1dFR5cGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1
dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vla0lucHV0
VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFDMTI1MUYxMkQw
MDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlZWtJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBC
RDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ2MUFDQjcw
ODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5
ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDdXJzb3JN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlGNTg3ODU0QzAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZUZyYW1lVmlldy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3Jl
RnJhbWVWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGluZ3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CkBAIC0xNDA2Niw4ICsxNDEwNiwxNiBAQAogCQlGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyog
TG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9j
YWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRDEyNTVCMjNG
MDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZFMUFD
Q0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFs
aWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIx
QUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFENzBGRkNB
N0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlz
dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERhdGFMaXN0
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFEOTBGRkNBN0NF
MDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNzY3NCw2ICsxNzcyMiwxMCBAQAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBD
b21wb3NpdGVFZGl0Q29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAv
KiBDcmVhdGVMaW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQz
IC8qIENyZWF0ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVE
IC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENUZDMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJ
RjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZF
NTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc2ODIsNiArMTc3MzQs
MTAgQEAKIAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRp
dmUuaCAqLywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1h
bmQuaCAqLywKKwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2
IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3
MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAor
CQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8s
CiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmNwcCAqLywKIAkJ
CQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCAqLywKQEAgLTE3NzI4
LDYgKzE3Nzg0LDEwIEBACiAJCQkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNl
bGVjdGlvbkxpc3RMZXZlbC5oICovLAogCQkJCTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBN
b3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgx
IC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmggKi8sCisJCQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NUQwQkQ2
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJ
CQkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjEwOTlF
NjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMz
MDlEQjIwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oICovLAog
CQkJCUQwNkMwRDhFMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAq
LywKQEAgLTE3NzM4LDYgKzE3Nzk4LDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgx
IC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIzMkNE
QTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlCMzJD
REE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1MjhE
QTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJ
CUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5j
cHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNw
YW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NzczLDYgKzE3ODM3LDE0IEBACiAJCQkJOTM5
MjE0NjgxOEE2RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmggKi8sCiAJCQkJ
OTMzMDlEQ0EwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwICovLAogCQkJCTkz
MzA5RENCMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0
NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1
MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2
RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJ
CUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICov
LAorCQkJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8q
IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOUIyRDhB
NzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FB
QjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwODZGRTk2MDlENTNBQUIw
MDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8sCkBAIC0yMzY2OCw2ICsyMzc0MCw3IEBACiAJ
CQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4
REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQg
LyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNE
QzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NDQ3MCw2ICsyNDU0Myw3IEBACiAJCQkJMzEwNjAzNzkxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdl
YktpdENTU0ZpbHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3QjE0MzI4MUNE
MDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTA3RjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFt
ZXNSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MjBFNkNDQzI4MDBCRjYwODggLyog
RE9NQ1NTS2V5ZnJhbWVzUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NzkzLDYg
KzI0ODY3LDcgQEAKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJCMEExOTM4NTUw
MEE4RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUND
MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5w
dXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REU2MDk5RTY0OTIwMDU2RTU4MSAv
KiBIVE1MSW50ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYw
MEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAyMiw2
ICsyNTA5Nyw3IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZm
ZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNB
IC8qIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVB
NjEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyog
SlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIw
M0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRB
MTVFQjAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAg
LTI1MDMwLDYgKzI1MTA2LDcgQEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNB
dWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMg
LyogSlNBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0Uz
QTAwNDIwNTYyIC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU5RkE0NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBK
U0JhclByb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAv
KiBKU0JlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZD
MTY4QkMzOEMxIC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUx
NDksNiArMjUyMjYsNyBAQAogCQkJCUZEQTE1RUFDMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5O
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwMjE5NENBQzNBMDA4MUJBQUUgLyogSlNH
YW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwNDE5NENBQzNBMDA4MUJBQUUgLyog
SlNHYW1lcGFkQnV0dG9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2
MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkU4MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkRBN0MxRjE4ODMyMkZDMDBDOTU0QjUgLyogSlNHZXN0dXJlRXZl
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1OTAsNiArMjU2NjgsNyBAQAogCQkJCUJDNjBEQTNB
MEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBB
RCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERB
QTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlh
bGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoRXZhbHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBC
OTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjc3Miw2ICsy
Njg1MSw3IEBACiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lDVS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2Rl
Y0xhdGluMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDOUEwRDAwQTVERjAwMzAwNzREIC8q
IFRleHRDb2RlY01hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU3NERFREIxQUNBMkY0NzAwNTk4
MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5l
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRD
b2RlY1VURjE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUg
LyogVGV4dENvZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjgyNSw2ICsyNjkwNSw3IEBA
CiAJCQkJMTg1QkNGMjkwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0FBM0E2OUExOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRy
b2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBQTNBNkE0MTk0QjVDMjIwMDFDQkQyNCAvKiBUaWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBRjg5QTQyMTUxOEZERUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBp
biBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlDMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNjk0OCwxMiArMjcwMjksMTQgQEAKIAkJCQkyRDNFRjQ0ODE5
MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUE3QUE0MzEzMkYwRUNDMDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0
YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NkM1QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBX
ZWJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NDNENjAyMUFDQjBDODMwMDYz
NkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQky
RDNFRjQ0QTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OUREQTE2MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29y
ZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5REQ2
MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlbldhcm5pbmdWaWV3LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAv
KiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJD
b3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAw
N0I0MkE5IC8qIFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk4
Niw2ICsyNzA2OSw3IEBACiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1
Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODMx
NEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGNTVEMEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdM
Q29udGV4dE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjYxNDRGODI1NTAwRjgw
QjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUw
REY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNzcyNyw2ICsyNzgxMSw3IEBACiAJCQkJNkY5OTVBMzkxQTcwODMzNzAwQTczNUY0IC8q
IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDNFMjUy
MzE4MDQ2QkNEMDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIzRTc2
QzBEQUU4OEE5MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5MzkzRTVGRjE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNkNGRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1h
Z2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3ODA0LDYgKzI3ODg5LDcgQEAKIAkJCQkz
MUZCMUE1ODEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9u
RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyog
RGV2aWNlTW90aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU4NzJBNzQxQUI3NUEy
QjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxNDAzNzlFMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU5MzA5QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3
MjYxQTRBNUZCRDAwRTgzNDlEIC8qIE5GQS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3OTQwLDYg
KzI4MDI2LDcgQEAKIAkJCQk4NUVDQkVGNjBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVs
ZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODEyQzBBQTc3ODcyMDA0ODZBRDcgLyog
RE9NSFRNTE9iamVjdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4
ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUY1NDNENUZEMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUVGMEFBNjNCODcwMEZGMzE4NCAvKiBET01I
VE1MT3B0R3JvdXBFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JG
OTAwNjIwQzU3IC8qIERPTUhUTUxPcHRpb25FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVERjJGOUMwQUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBp
biBTb3VyY2VzICovLApAQCAtMjgwODcsNiArMjgxNzQsNyBAQAogCQkJCTQ0REFCNUIxMTVBNjIz
NTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUM0MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTc0REVEQTFBQ0Ey
RUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xv
ck1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzVFOEI4QzBFMURFMkQ2MDA3RjI0ODEg
LyogRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MTk3LDYgKzI4
Mjg1LDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMEIwQTAxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVy
aWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2MjUyRTE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0
cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODMwRDAwQTVDMTAwMzAw
NzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MjE3LDYgKzI4MzA2
LDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29s
dmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VG
MjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFB
Q0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdh
bWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8q
IEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1
QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4Mzk2LDYgKzI4
NDg2LDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jv
b3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4
NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5Mjkx
MDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhE
QTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMg
LyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAw
MkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODg1Myw2ICsyODk0NCw3
IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAxMUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFu
Y2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAx
OUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNE
NjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODlGMDFEMTBC
MzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODg4Nyw2ICsyODk3OSw3IEBACiAJCQkJMDc5NjlEQkIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJEMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1ODgwMEFCREQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5
MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c0NhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3OTY5REMxMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRz
UmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAv
KiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY2Miw2ICsyOTc1
NSw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2su
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0REQxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09m
ZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VF
MDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5
RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAxN0QxODFBNjAwMkJENDMxIC8qIFJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzM3OTRGMTE5RUUz
N0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4MzksNiArMjk5MzMsNyBAQAogCQkJCUZFMzZG
RDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdl
bmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3
QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9k
ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8q
IFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwMzQyLDYgKzMwNDM3LDcgQEAKIAkJ
CQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYgLyogV0tHcmFwaGljcy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4MzAwREE2M0E2IC8qIFdLVmlldy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTkxOTk2MTIwMERE
RjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQz
NDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYz
ODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IDFkZWI0ZGIuLjJkZTZkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5o
IgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgog
CkBAIC00NiwxNSArNDgsMTcgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQo
bV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwog
fQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2Rl
KiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2
b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsICBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2ln
bmVkIG9mZnNldCkKIHsKLSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7
CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29t
bWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQog
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAg
ICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNl
dCwgdGV4dCk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQs
OCArNjgsNyBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFy
ZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRB
WFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fbm9kZS0+
bm9kZVZhbHVlKCksIDApOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHko
KQpAQCAtNzQsOCArNzcsNyBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQog
ICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVm
b3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7Cisg
ICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX25vZGUtPm5vZGVWYWx1ZSgpLCAwKTsKIAogICAg
IG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IGQ2NGIwNGUuLmVkZjY4MWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5k
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uMzFmNTE3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTU4LDYgKzU4
LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2Nv
cGVkRXZlbnRRdWV1ZS5oIgpAQCAtMzIwLDkgKzMyMiwxNCBAQCBib29sIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRy
PE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICByZXR1cm4gSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVm
UHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwg
cmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9CiAKIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+
IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtNTIyLDIzICs1Mjks
NDQgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYg
dGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCwgc2Nv
cGUuZ2V0KCkpLCB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4ICsgbGVuZ3RoLCBz
Y29wZS5nZXQoKSkpKTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKwogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgaWYgKCF0
ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCkpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQs
IGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRl
eHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8
VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJl
ZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRl
eHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsK
KyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRl
bGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxh
Y2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4IGMyYjQ4OWQuLmY4ZGY5ZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAg
LTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOwogY2xhc3MgRWRpdGluZ1N0eWxlOwogY2xhc3MgSFRNTEVsZW1lbnQ7
CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAtMTAzLDE1ICsxMDQsMTggQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgcmVtb3ZlU3R5bGVkRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2
b2lkIGRlbGV0ZVNlbGVjdGlvbihib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsK
ICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBz
bWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBi
b29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVl
LCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1h
bmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogICAgIHZvaWQgaW5w
dXRUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwog
ICAgIGJvb2wgaXNSZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnRO
b2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAg
ICAgdm9pZCBpbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsK
ICAgICB2b2lkIGluc2VydE5vZGVBdFRhYlNwYW5Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBj
b25zdCBQb3NpdGlvbiYpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3Jl
KFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID0gRG9Ob3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0
UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3Rl
ZEFyZWEgPSBmYWxzZSk7CiAgICAgdm9pZCBpbnNlcnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05v
ZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQp
OwogICAgIHZvaWQgbWVyZ2VJZGVudGljYWxFbGVtZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQ
YXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAg
LTEzMCw2ICsxMzQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGlu
Z3NUb05ld1BhcmVudChOb2RlKiwgTm9kZSogcGFzdExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IHBycE5ld1BhcmVudCk7CiAgICAgdm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVS
ZW1vdmFsUHJlc2VydmluZ0NoaWxkcmVuKFBvc2l0aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1
bmUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgdmlydHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZD4gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5v
ZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpOwogICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3Rl
ZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVBy
ZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjZmQyNGEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25l
ZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBj
b3VudCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGY1NzkxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAs
MCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVu
c2lnbmVkKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTYzYzkyMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5
bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwg
Ym9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6
ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVs
ZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVy
biBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3Vu
dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOWNiZTE1NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxl
dGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxl
dGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBs
YWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2Fu
aXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9v
bCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkg
b3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDJlYTk2ZDUuLjU5N2Y0OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNs
dWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtNDUsNiArNDcsMjAg
QEAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBBU1NFUlQobV9vZmZzZXQgKyBtX2NvdW50
IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwogfQogCitTdHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQordm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKK3sK
KyAgICBpZiAobm9kZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQor
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKyNlbmRpZgorCiB2b2lk
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIEFTU0VSVChtX25v
ZGUpOwpAQCAtNTcsOSArNzMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
b0FwcGx5KCkKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAgICAKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkg
ZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVk
LCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fdGV4dCwgbV9v
ZmZzZXQpOworI2VuZGlmCiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291
bnQsIGVjKTsKIH0KQEAgLTczLDggKzkwLDkgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3Rl
eHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKKyNlbmRpZgogfQogCiAj
aWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li40ZTQ3Y2Y5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2lmbmRlZiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCAr
NDAsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKICAgICB9CiAKKyAgICBTdHJp
bmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKKyNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UsIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkKTsKKyNlbmRpZgogcHJpdmF0ZToKLSAgICBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTI3LDExICsyNywxMSBAQAogI2luY2x1
ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21t
YW5kLmgiCi0jaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlv
bkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwg
c2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRp
dmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVT
dGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0
VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQs
IGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZl
c0luTGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQo
KSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3Rh
dGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43NWY2MWIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNTQ1MTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CisjZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQxNWY3NgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
CkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dElu
c2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICA6IEluc2VydFRleHRD
b21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikKK3sKK30KKworUmVmPEVkaXRD
b21tYW5kPiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIHJldHVybiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOWNiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCA6IHB1Ymxp
YyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJT
dXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3Vw
cGxpZXIpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJr
ZXJTdXBwbGllcj4pOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50
b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0Fs
bEluT25lLmNwcAppbmRleCBkYzNhZTMzLi42ZGUxM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBAIC0zMiwxMCArMzIsMTQgQEAKICNpbmNsdWRlIDxC
cmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxDb21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8Q3JlYXRlTGlua0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlv
bkFsdGVybmF0aXZlLmNwcD4KICNpbmNsdWRlIDxEaWN0YXRpb25Db21tYW5kLmNwcD4KKyNpbmNs
dWRlIDxEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RWRpdENvbW1hbmQuY3Bw
PgogI2luY2x1ZGUgPEVkaXRpbmdTdHlsZS5jcHA+CiAjaW5jbHVkZSA8RWRpdG9yLmNwcD4KQEAg
LTU0LDExICs1OCwxNSBAQAogI2luY2x1ZGUgPE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwPgogI2luY2x1ZGUg
PE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcD4KKyNpbmNsdWRlIDxQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwPgogI2lu
Y2x1ZGUgPFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21t
YW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUg
PFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcD4KQEAgLTc3LDYgKzg1LDEwIEBACiAjaW5jbHVk
ZSA8VGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3Iu
Y3BwPgogI2luY2x1ZGUgPFR5cGluZ0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA+Cisj
aW5jbHVkZSA8VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2lu
Y2x1ZGUgPFVubGlua0NvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFZpc2libGVQb3NpdGlvbi5jcHA+
CiAjaW5jbHVkZSA8VmlzaWJsZVNlbGVjdGlvbi5jcHA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggNzEwYWEzOS4uYzQ3NzFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAi
Q29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5j
bHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zl
ci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0
YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzgyLDYgKzM4MywxNCBAQCB2b2lkIEVkaXRvcjo6ZGVs
ZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCiAgICAgYXBwbHlD
b21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERl
bGV0ZSkpOwogfQogCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
Rm9yQ3V0KGJvb2wgc21hcnREZWxldGUpCit7CisgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCku
aXNOb25lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKK30KKwog
dm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCiB7CiAgICAgQ2xlYXJUZXh0Q29tbWFuZDo6Q3JlYXRl
QW5kQXBwbHkoJm1fZnJhbWUpOwpAQCAtMTI2Niw3ICsxMjc1LDcgQEAgdm9pZCBFZGl0b3I6OnBl
cmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdy
aXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24p
Ci0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRl
bGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGNh
blNtYXJ0Q29weU9yRGVsZXRlKCkpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKaW5kZXggNzkyYmM0Ni4uOTM5ODI2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC00NTIsNiArNDUyLDcgQEAgcHJpdmF0ZToKIAogICAgIERvY3VtZW50JiBkb2N1
bWVudCgpIGNvbnN0OwogCisgICAgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVG
b3JDdXQoYm9vbCk7CiAgICAgYm9vbCBjYW5EZWxldGVSYW5nZShSYW5nZSopIGNvbnN0OwogICAg
IGJvb2wgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCYpOwogICAgIHZv
aWQgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IDUzOTRlN2UuLjlmMDkwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUg
IlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIK
QEAgLTUwLDYgKzUxLDIwIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFt
X3RleHQuaXNFbXB0eSgpKTsKIH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCit2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENo
YW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQoreworICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQorICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNo
YW5nZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKyNlbmRpZgorCiB2b2lkIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZy
YW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5ICs4MCwxMCBA
QCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0KIAogICAg
IG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsK
LQotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbiht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90
ZXh0KTsKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCwgbV90ZXh0LCBtX29mZnNldCk7CisjZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKElPUykK
QEAgLTgyLDEwICs5OCwxMSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAg
cmV0dXJuOwotICAgICAgICAKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8g
TmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2Rl
LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsK
KyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOworI2VuZGlmCiAKICAg
ICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLjVjYTJkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0
MCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgor
ICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0KTsKIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOworI2VuZGlmCisKK3By
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBk
MTZiNWQ2Li4wY2I4YWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTAgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFt
ZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQ4LDYgKzQ5LDE1IEBAIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQCiAgICAgQVNT
RVJUKG1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3Jl
ZkNoaWxkLT5wYXJlbnROb2RlKCktPnJlbmRlcmVyKCkpOwogfQogCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQordm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNo
YW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCit7CisgICAgaWYgKEFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBv
ZmZzZXQsIHRleHQpOworfQorI2VuZGlmCisKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvQXBwbHkoKQogewogICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG1fcmVmQ2hpbGQtPnBh
cmVudE5vZGUoKTsKQEAgLTU3LDggKzY3LDkgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdl
dCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0g
ICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9k
ZVZhbHVlKCkpOworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRJbnNlcnRlZCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIDApOworI2VuZGlmCiB9CiAK
IHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Niw5ICs3Nywx
MCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICgh
aXNFZGl0YWJsZU5vZGUoKm1faW5zZXJ0Q2hpbGQpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0
dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKKyNl
bmRpZgogCiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmlu
ZGV4IGQ0Yjc2MmQuLjM3NWQwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsOSArMzksMTQgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0
LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSkpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OwogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQpOworI2VuZGlmCisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJp
ZGU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5k
ZXggZjEwZDJmZS4uYmZhMTgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaApAQCAtNTksMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBs
aWVyKSk7CiAgICAgfQogCi1wcml2YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1l
bnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFu
Y2VUeXBlKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+
KTsKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAg
ICAgdm9pZCBkZWxldGVDaGFyYWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYWMwYzNjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzNhZjdj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1
ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4s
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjM0MDdiNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAg
OiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRl
bGV0ZWRUZXh0KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Y2Y0MWUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0
OworCitjbGFzcyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRl
eHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5OGIw
MTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQodGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmRmZDhlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
I2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
LCB1bnNpZ25lZCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3YTYyZjgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOWZmNWJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIFN0cmluZyBtX2RlbGV0
ZWRUZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMGM0N2NhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50
LmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNDQsMTQgKzQ1LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRp
dGxlRWxlbWVudC5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRl
clN0eWxlLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2lu
Y2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRl
ICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgog
I2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNp
bmNsdWRlICJtYXJrdXAuaCIKQEAgLTE0ODIsNiArMTQ4OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjp1cGRhdGVOb2Rlc0luc2VydGVkKE5vZGUgKm5vZGUpCiAKICAgICBtX2Vu
ZE9mSW5zZXJ0ZWRDb250ZW50ID0gbGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShub2RlLT5sYXN0
RGVzY2VuZGFudCgpKTsKIH0KKyAgICAKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0
Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAg
IHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAg
ICAgICByZXR1cm4gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAg
ICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29t
cG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIH0KK30K
KworUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
KQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlw
aW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAg
IGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBk
ZWxldGVkVGV4dCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGlu
c2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIH0KK30KIAogLy8gRHVyaW5nIHNpbXBsZSBw
YXN0ZXMsIHdoZXJlIHdlJ3JlIGp1c3QgcGFzdGluZyBhIHRleHQgbm9kZSBpbnRvIGEgcnVuIG9m
IHRleHQsIHdlIGluc2VydCB0aGUgdGV4dCBub2RlCiAvLyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0
IG5vZGUgdGhhdCBob2xkcyB0aGUgc2VsZWN0aW9uLiAgVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFu
IHRoZSBnZW5lcmFsaXplZCBjb2RlIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMTEx
LDYgKzExMSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIHBlcmZvcm1Ucml2aWFsUmVwbGFjZShj
b25zdCBSZXBsYWNlbWVudEZyYWdtZW50Jik7CiAKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGU7CisKICAgICBQb3NpdGlvbiBtX3N0YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAg
ICAgUG9zaXRpb24gbV9lbmRPZkluc2VydGVkQ29udGVudDsKICAgICBSZWZQdHI8RWRpdGluZ1N0
eWxlPiBtX2luc2VydGlvblN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKaW5kZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0NvbW1hbmQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2li
bGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQsNyBA
QCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29s
IHNlbGVjdEluc2VydGVkVGV4dCkKIAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQpCiB7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCisg
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAgICAg
ICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0
Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRU
ZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JmYjk3ZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDA3NDk4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgdGV4dCkpOworICAgIH0KK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMzBhNGRjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQ
YXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBT
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxk
LCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDQyMTkx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBh
c3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRy
PE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxh
bmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQs
IHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVk
aXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0
ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1
ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGlu
Z0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0
ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNl
VHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FjM2NhMwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNmZjNhMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2Ns
YXNzIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwg
ZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAotLSAKMi4y
LjEgKEFwcGxlIEdpdC01MykKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250723</attachid>
            <date>2015-04-14 12:26:10 -0700</date>
            <delta_ts>2015-04-15 13:55:38 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>68428</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAxMGU3N2MzNTU0ZDg3YWFmOWVjZmIxODUwYWI1YjRkYjRiOTYwZGQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMjAgKysrKysrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
ICAgICB8ICA4NiArKysrKysrKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oICAgICAgIHwgIDcxICsrKysrKysrKystLQogLi4uL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwICAgICAgfCAgMjEgKysrKwogLi4uL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCAgICAgICAgfCAgIDEgKwogLi4uL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgfCAgMjAgKysrKwog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggfCAgIDIg
KwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCAgICAgICAgfCAg
IDMgKy0KIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0g
IHwgICA2ICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tICB8IDExMiArKysrKysrKysrKysrKysrKystCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLmggICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAzMCArKysrLS0KIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCAgICAgICAgIHwgICAzICsKIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgICAzICsKIC4uLi9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICAgIHwgICA2ICsrCiAuLi4v
V2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgNCArCiAu
Li4vV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICB8ICAgNSAr
CiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCB8ICAg
MSArCiAuLi4vV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICB8
ICAzMSArKystLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwICB8ICAgNSArLQogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgfCAgIDUgKwogLi4uL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29t
bWFuZC5jcHAgICAgICAgICAgICAgfCAgMjMgKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5oICAgICAgICAgICAgICAgfCAgIDUgKwogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwICAgICAgICAgICAgICAgICAgfCAgMTcgKystCiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogLi4uL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgfCAgMzEgKysrLS0tCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgOSArLQog
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgfCAgMzQg
KysrLS0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
ICB8ICAgOSArLQogLi4uL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
ICAgICAgfCAgIDUgKwogLi4uL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmggfCAgIDIgKwogLi4uL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICAgICAgfCAgIDUgKwogLi4uL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAgICAgICAgfCAgIDIgKwogLi4uL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwICAgfCAgIDUgKwogLi4uL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCAgICAgfCAgIDQgKy0KIC4uLi9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgIHwgIDI1ICsrKysrCiAuLi4vZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICB8ICAgNSArLQogLi4uL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICAgfCAgIDUgKwogLi4uL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICAgfCAgIDMgKwogLi4uL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICAgICAgfCAgIDUgKwogLi4uL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgICAgICAgfCAgIDIgKwogLi4u
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICAgfCAgIDUgKwog
Li4uL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICAgfCAgIDIg
KwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAg
MTIgKystCiA0NiBmaWxlcyBjaGFuZ2VkLCA2NjQgaW5zZXJ0aW9ucygrKSwgMTAyIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBiOGMzMmVjLi4zMTE2NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC01LDYg
KzUsMTI2IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQg
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFw
cHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2Vi
IGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdl
cyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFu
YWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGls
bCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNhbml0aXplUGFzc3dvcmRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3
b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRl
eHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4
dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVk
aXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAg
ICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAq
IGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBl
ZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmNsZWFyVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2VydERp
Y3RhdGlvblBocmFzZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0
ZSk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAq
IGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZCk6IERlbGV0ZWQuCisgICAgICAg
ICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKiBlZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBw
bHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dElubmVyVGV4dFZhbHVlKToKKworMjAxNS0wNC0wOCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjcx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIE5ldyBF
ZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmls
aXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5n
ZSBub3RpZmljYXRpb25zLiBUaGlzIGNvbW1pdCBpcyBhbGwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGRv
ZXNuJ3QgY29udGFpbiBhbnkgYWNjZXNzaWJpbGl0eSBzcGVjaWZpYyBjaGFuZ2VzLgogCiAgICAg
ICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0dGluZyBwYXRjaCBlYXJs
eSBmb3IgZmVlZGJhY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi5hMzllYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVy
ZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNo
ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwg
bV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIo
KnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVk
KQogewogfQogCkBAIC03NDIsNiArNzQzLDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZp
Y2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+
cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIERS
VCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1
ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQg
YmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0
IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8g
bm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7
CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG9iamVjdCA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAg
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QuZ2V0KCksIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgorfQog
ICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCog
cmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFy
Z2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY1LDcwIEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJl
cikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFu
Z2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpu
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENo
YW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0
RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOworICAgIEFTU0VS
VCh0eXBlICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1
dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0g
Z2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgewor
ICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKCkpIHsKKyAgICAgICAgICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdl
Tm90aWZpY2F0aW9uKG9iaik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRpb24p
OworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRF
ZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVk
aXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0
dXJuOworICAgIEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOwor
ICAgIEFTU0VSVChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2Vy
dGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFz
dGUpOwogCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAotICAg
IC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQogICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxk
KCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgICAgICBl
bnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmopOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgp
OworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihv
YmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4
dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRl
ZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOwor
ICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9y
RWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVj
YXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iai0+b2JzZXJ2
YWJsZU9iamVjdCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKHN0ZDo6ZmluZChtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5iZWdp
bigpLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSwgb2JzZXJ2YWJsZU9iamVj
dCkgPT0gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuZW5kKCkpIHsKKyAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAg
ICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAg
ICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAu
MDI1KTsKKyAgICB9CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRO
b3RpZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBA
IC0xMDg0LDYgKzExNTMsMTUgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNo
ZTo6cm9vdFdlYkFyZWEoKQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2Jq
ZWN0ID0gdGhpcy0+cm9vdE9iamVjdCgpKSB7CisgICAgICAgIGlmIChyb290T2JqZWN0LT5pc0Fj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8QWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXc+KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7CisgICAg
fQorICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhB
dHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hl
KGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAppbmRleCBiZmE5Mjc3Li4xNTc0N2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4
LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksMjUgQEAgcHVi
bGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBv
c3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7
CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVu
dCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUg
PSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAg
ICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24s
CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKKyAgICB9OworCisgICAgZW51bSBB
WFRleHRFZGl0VHlwZSB7CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAgICAgICAg
QVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICAgICAgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICAgICAgQVhUZXh0
RWRpdFR5cGVUeXBpbmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgICAgIEFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgICAgICBBWFRleHRFZGl0
VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAv
LyBJbnNlcnQgdmlhIFBhc3RlCiAgICAgfTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3Rp
ZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmKTsKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVl
IGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBB
WFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAg
ICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxOCw3ICsyMzEsMzQgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRD
aGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAg
ICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7CisgICAg
ICAgIEFYVGV4dEluc2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07CisgICAg
aW5saW5lIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUg
dHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAg
ICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRp
b246CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRJbnNlcnRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0K
KyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlm
CisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFj
Y2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBA
IC0yMjksNiArMjY5LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSog
bikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToK
KyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3Vt
ZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlP
YmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3Jl
bmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMjg2LDExIEBAIHByaXZhdGU6CiAgICAgVGlt
ZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8
QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Q
b3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVy
IG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPFJlZlB0cjxBY2Nl
c3NpYmlsaXR5T2JqZWN0Pj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9p
ZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRs
ZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9k
ZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiAr
Mjk4LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZvY3Vz
ZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAgICAKICAgICBBWElEIGdl
dEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgdm9pZCBlbnF1ZXVlUGFzc3dvcmRW
YWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBB
WEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzM1OSwxNCBAQCBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVj
b21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
JikgeyB9CisjZW5kaWYKIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RU
YXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3Rp
ZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RU
eXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9k
ZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
Y3BwCmluZGV4IGQ4ZDI2ZGUuLjNkNDVkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiAr
NTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgp
IGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAK
K0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9
IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRF
bGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkp
CisgICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+
KHRoaXMpOworICAgIH0KKyAgICAKKyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNo
YWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQp
KSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hl
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5v
ZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uZDUzYTkzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
TmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVU
ZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3Jk
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2Vh
OC4uYTdhOTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMjQgQEAgdm9pZCBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24p
CiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAg
ICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJv
bGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYg
KEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlz
PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9
IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlu
cHV0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1
dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCmluZGV4IDM1ODZmMmEuLjJlOTc3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmlu
Z1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBi
b29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAt
NDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlw
ZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
d2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2Jq
ZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgp
OyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xs
YmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVj
dENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uNGUyNmI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5
NSwxMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZv
aWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3
Ny4uZWVmNzlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
QVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw0MiBAQAogI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0
ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBl
S2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5n
dGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtl
ciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKwogLy8gVGhlIHNp
bXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzE5Miw4MiBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
Tm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKnRleHRS
ZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBOU1N0cmluZyAqdGV4dCA9IChO
U1N0cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxlbmd0aF07
CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSAqY2hhbmdlID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENh
cGFjaXR5OjRdOworICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGVdID0gQCh0
eXBlKTsKKyAgICBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciB0cnVuY2F0aW9uTGVuZ3RoID0gMTAw
MDsKKyAgICBpZiAobGVuZ3RoID4gdHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBjaGFuZ2Vb
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsKKyAgICAg
ICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6dHJ1bmNhdGlvbkxlbmd0aF07CisgICAg
fQorICAgIGlmIChsZW5ndGggPiAwKQorICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7Cisg
ICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0gW29iai0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JW
aXNpYmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAg
IHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9
IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0
aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhD
YXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAoTlNEaWN0
aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgdHlw
ZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53
cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50XSA9IHdyYXBwZXI7CisgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigp
OworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0
LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAg
ICBbdXNlckluZm8gcmVsZWFzZV07CisKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4g
bm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwor
fQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9u
VHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9u
VHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlv
bmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlw
ZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNNdXRhYmxlQXJy
YXkgKmNoYW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJd
OworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURp
Y3Rpb25hcnkob2JqLCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAg
ICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNo
YW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCBpbnNlcnRpb25UeXBl
LCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNo
YW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBj
aGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBv
YmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFw
cGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0
YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cg
d2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlv
bl07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdF
dmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApp
bmRleCAzOGM1Y2QwLi45MjIyOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVyZmFjZSBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZQogCistIChpZCl0
ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooV2ViQ29yZTo6VmlzaWJsZVBvc2l0
aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbill
bmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFdl
YkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAogCiAjZW5kaWYgLy8g
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAyZGU2ZGJmLi42NzFkMWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMjYsMTIgKzI2LDEy
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIK
IAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ4LDE3ICs0OCwyMyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAg
IEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVy
ZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsICBjb25z
dCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRD
aGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHR5cGUpCiB7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKICAg
ICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGNvbnN0IFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAgICAg
Ly8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1hbmQKICAgICBpZiAodGV4
dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0
KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4
dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkgOiBjcmVhdGVMZWdh
Y3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQb3NpdGlvbihwb3Np
dGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBA
IC02OCwxNiArNzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAg
ICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IAotICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fbm9kZS0+bm9kZVZhbHVlKCksIDApOwor
ICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBw
bHlFZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
IHsKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxs
eSBkZWxldGluZyB0aGUgdGV4dAotICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9ub2RlLT5u
b2RlVmFsdWUoKSwgMCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJ
R05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTkwLDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRp
ZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
SW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29t
bWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBlZGY2ODFiLi40OWM5ZWFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC00Nyw2
ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhh
c2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5v
ZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwCmluZGV4IDMxZjUxNzguLmFmZWQyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgpAQCAtNTQyLDYgKzU0Myw4IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
CiAKIFJlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQogeworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkK
KyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KTsKICAgICByZXR1cm4gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCBiY2Zk
MjRhLi5mZGY5YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAK
KyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zNSw0ICszNiw5IEBAIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlCiB7
CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZUN1dDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApp
bmRleCA0ZGY1NzkxLi5iZjJmYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzksNiArMzksMTAgQEAgcHVi
bGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAxNjNjOTIyLi4x
YjRlNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTQyLDQgKzQyLDkgQEAgUmVmPEVkaXRDb21tYW5kPiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHIKICAgICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgY291bnQpOwogfQogCitFZGl0QWN0aW9uIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0Owor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IDljYmUxNTcuLjFkMDVjMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oCkBAIC00MSw2ICs0MSw3IEBAIHByaXZhdGU6CiAgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRl
bGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBz
YW50aXplTWFya3VwKTsKIAogICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDU5N2Y0OWMu
Ljg1NzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcApAQCAtNTIsMTUgKzUyLDYgQEAgU3RyaW5nJiBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCiAgICAgcmV0dXJuIG1fdGV4dDsKIH0KIAot
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLXZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZz
ZXQpCi17Ci0gICAgaWYgKG5vZGUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKLSAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQo
KS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYK
LQogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBBU1NF
UlQobV9ub2RlKTsKQEAgLTcyLDExICs2MywxMCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+c3Vic3RyaW5nRGF0YShtX29m
ZnNldCwgbV9jb3VudCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAgIAot
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVm
b3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBt
X3RleHQsIG1fb2Zmc2V0KTsKLSNlbmRpZgorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YSht
X29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtOTAsOSArODAsOCBAQCB2b2lkIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEo
bV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV90ZXh0LCBtX29mZnNldCk7Ci0jZW5k
aWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTEwMiw0ICs5MSwxNCBAQCB2b2lkIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+
JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDRlNDdjZjkuLjdhMzFjMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CkBAIC00NSw5ICs0NSw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAKLSNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UsIGNvbnN0
IFN0cmluZyYsIHVuc2lnbmVkKTsKLSNlbmRpZgogcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9p
ZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CkBAIC01Niw3ICs1MywxMCBAQCBwcml2YXRlOgogI2lmbmRl
ZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2Rl
Kj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAg
dW5zaWduZWQgbV9jb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDJiYmM2ZWQuLjQ5ZjAwZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtODg2LDEw
ICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogCiBFZGl0
QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAogewot
ICAgIC8vIE5vdGUgdGhhdCBEZWxldGVTZWxlY3Rpb25Db21tYW5kIGlzIGFsc28gdXNlZCB3aGVu
IHRoZSB1c2VyIHByZXNzZXMgdGhlIERlbGV0ZSBrZXksCi0gICAgLy8gYnV0IGluIHRoYXQgY2Fz
ZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFuZCB0aGF0IHN1cHBsaWVzIHRoZSBlZGl0aW5nQWN0aW9u
KCksIHNvCi0gICAgLy8gdGhlIFVuZG8gbWVudSBjb3JyZWN0bHkgc2hvd3MgIlVuZG8gVHlwaW5n
IgotICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworICAgIHJldHVybiBFZGl0QWN0aW9uRGVsZXRl
OwogfQogCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0IHByZXNlcnZlIHRoZSB0eXBpbmcg
c3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBGb3IgZXhhbXBsZSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDc1ZjYxYjAuLmY4OGM0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtMzcsNCArMzcsOSBAQCBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdAogewog
fQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb247Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggZmU1NDUxMC4uZjI5ODM2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5j
cHAKaW5kZXggOGY1NjUzMi4uNzlhYmE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29t
bWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFZGl0b3IuaCIKQEAgLTEyNCw1ICsxMjUsMjcgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6
YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4K
ICAgICAgICAgbm9kZXMuYWRkKG5vZGUpOwogfQogI2VuZGlmCisgICAgCisjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZVVua25vd247Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBs
ZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkK
KyAgICAgICAgcmV0dXJuOworICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMz
Ny4uZjViODZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5j
bHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBAIC05Nyw2ICs5OCwxMCBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7
CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBw
bHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
dW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGM0NzcxYmQuLjBiMGMxMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM3NSwyMCArMzc1LDE1IEBAIGJvb2wg
RWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24s
IFRleHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpk
ZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRp
dG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlz
Tm9uZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7Ci19Ci0KLXZvaWQg
RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQoYm9vbCBzbWFydERl
bGV0ZSkKLXsKLSAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgYXBwbHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChlZGl0aW5nQWN0aW9uID09
IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBlbHNlCisgICAgICAg
IGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgc21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCkBAIC0xMjc1
LDcgKzEyNzAsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25T
cGVjaWZpZXIgYWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsK
ICAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0
aFNtYXJ0RGVsZXRlRm9yQ3V0KGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFj
dGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAppbmRleCA5Mzk4MjY0Li42NmRiMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3
NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwg
Ym9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9v
bCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0
ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsKQEAgLTQ1Miw3ICs0NTIs
NiBAQCBwcml2YXRlOgogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29uc3Q7CiAKLSAgICB2
b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZUZvckN1dChib29sKTsKICAgICBib29s
IGNhbkRlbGV0ZVJhbmdlKFJhbmdlKikgY29uc3Q7CiAgICAgYm9vbCBjYW5TbWFydFJlcGxhY2VX
aXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgdm9pZCBwYXN0ZUFzUGxhaW5UZXh0V2l0
aFBhc3RlYm9hcmQoUGFzdGVib2FyZCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggOWYwOTAyNy4uYWVjNDc1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC01NiwxNSArNTYsNiBAQCBTdHJpbmcmIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6Omluc2VydGVkVGV4dCgpCiAgICAgcmV0dXJuIG1fdGV4dDsKIH0KIAotI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLXZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCi17Ci0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCkpCi0gICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwg
Y2hhbmdlLCBvZmZzZXQsIHRleHQpOwotfQotI2VuZGlmCi0KIHZvaWQgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0g
ZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTgxLDkgKzcyLDgg
QEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fbm9k
ZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICAK
LSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV90ZXh0
LCBtX29mZnNldCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9u
b2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0
aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC05OCwx
MSArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQog
ewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0
aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCwgbV90ZXh0LCBtX29mZnNldCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxl
UG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVs
ZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0K
QEAgLTExNCw0ICsxMDMsMTQgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpnZXRO
b2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5z
ZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApp
bmRleCA1Y2EyZDk2Li5lMzNmNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDQsMTAgKzQ0LDYgQEAgcHVibGljOgog
cHJvdGVjdGVkOgogICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAKLSNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UsIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkKTsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0Fw
cGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpA
QCAtNTgsNyArNTQsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2
b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYK
LSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9u
b2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIFN0cmluZyBtX3RleHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4
IDBjYjhhZGMuLjhkNWVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGlu
Zy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSwxNSArNTAsNiBAQCBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgUAogICAgIEFTU0VSVChtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCktPmhhc0Vk
aXRhYmxlU3R5bGUoKSB8fCAhbV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpKTsK
IH0KIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLXZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQg
b2Zmc2V0KQotewotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQotICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lkIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBDb250YWluZXJOb2RlKiBw
YXJlbnQgPSBtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCk7CkBAIC02Nyw5ICs1OSwxMCBAQCB2b2lk
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0
QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENF
UFRJT04pOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEluc2VydGVkLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgMCk7Ci0jZW5kaWYKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBl
KCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CkBAIC03NywxMCArNzAsMTEgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKICAgICBpZiAoIWlzRWRpdGFibGVOb2RlKCptX2luc2VydENoaWxkKSkKICAgICAgICAg
cmV0dXJuOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogICAgIC8vIE5lZWQgdG8gbm90aWZ5
IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RGVsZXRlZCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIDApOwotI2VuZGlmCisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAg
UG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0
aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2Fj
eUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVk
aXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9z
aXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQ
VElPTik7CiB9CkBAIC05Myw0ICs4NywxNCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggMzc1ZDA5OS4uOGQ5YzYwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aApAQCAtNDIsMTAgKzQyLDYgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSk7CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBj
b25zdCBTdHJpbmcmLCB1bnNpZ25lZCk7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBv
dmVycmlkZTsKQEAgLTUzLDcgKzQ5LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRl
OwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGFjMGMzY2IuLjYxYWNhYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBAQCBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZQog
ewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVQYXN0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBlNzNhZjdjLi4xZDA1
NTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaApAQCAtNDAsNiArNDAsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVm
UHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCmluZGV4IDM0MDdiNDMuLmM0N2E3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBAQCBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhcwogewog
fQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggYTRjZjQxZS4uOGU2YTM1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQxLDYgKzQxLDggQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAppbmRleCA4OThiMDE3Li5lMDE3YjgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNSw0
ICszNiw4IEBAIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRlCiB7CiB9CiAKK3ZvaWQgUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oCmluZGV4IGRmZDhlM2UuLmQzMGZkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAogI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAKLSNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Miw2ICs0MSw5IEBAIHB1YmxpYzoKIAog
cHJvdGVjdGVkOgogICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCmluZGV4IDg3YTYyZjguLjM1YWM3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIApAQCAtMzcsNCArMzgsMjgg
QEAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGUKIHsKIH0KIAordm9pZCBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSog
bm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsK
KyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBlKSB7Cisg
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgY2FzZSBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBh
c3RlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUt
PnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5z
ZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCByZXBsYWNlQXBwbHlFZGl0VHlwZSgpLCB0ZXh0
LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IGQ5ZmY1YmUuLjQ2OTE1MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZm5kZWYgUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0MiwxMSBA
QCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNl
QXBwbHlFZGl0VHlwZSgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5z
ZXJ0OyB9CisKIHByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKICAgICBTdHJpbmcg
bV9kZWxldGVkVGV4dDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDNiZmI5N2QuLjNl
NDIyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzcsNCArMzcsOSBAQCBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dAogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggYjQwNzQ5OC4uMDBiZDE0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTM2LDggKzM2LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQorCiBwcml2YXRlOgogICAgIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRU
eXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCmluZGV4IDMwYTRkY2YuLjdiMjQ2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0zNSw0ICsz
NSw5IEBAIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaAppbmRleCBjNDQyMTkxLi44MTc0NjEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBA
IC00MCw2ICs0MCw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXgg
N2FjM2NhMy4uMzBkZDUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTM1LDQgKzM1LDkgQEAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFAKIHsKIH0KIAorQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyM2ZmM2EyLi45NmMyZTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC00MSw2ICs0MSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBl
KCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2
YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQog
ICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAg
Ym9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRl
eHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5l
clRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7
CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlm
ICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAg
ICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6
QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5k
aWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENF
UFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRz
V2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXND
aGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAg
ICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRo
aXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9CisjZW5k
aWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUp
OwotLSAKMi4yLjEgKEFwcGxlIEdpdC01MykKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250724</attachid>
            <date>2015-04-14 12:26:32 -0700</date>
            <delta_ts>2015-04-15 13:56:51 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>47882</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA2Mjk4YzFhMDFlNDUzZjNiMmQxMTg1NWYwNmI5ZjMyZjkxNTNlOGFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKysrKysrKysr
CiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwICAgICB8IDE0
OCArKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oICAgICAgIHwgIDc5ICsrKysrKysrKystCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAxNyArKy0KIC4uLi9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gIHwgICA1ICsKIC4uLi9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gIHwgIDU3ICsrKysrKysrCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCAgICB8ICAxNCAr
KwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oICAgICAgfCAg
IDMgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oICAgICAgICAgICAgICAg
fCAgIDYgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwICAgICAgICAgICAgICAg
ICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggICAgICAgICAgICAg
ICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cCAgICAgICAgICB8IDExNSArKysrKysrKysrKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmggICAgICAgICAgICB8ICAxNyArKy0KIC4uLi9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgIHwgICAxICsKIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCAgIHwgICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSAgICB8ICAgNCArLQogU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCAgICAgICAgICAgIHwgICAyICst
CiAxOCBmaWxlcyBjaGFuZ2VkLCA1MDcgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDMxMTY0OTAuLmRjMjZlNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTUsNiArNSw2NiBA
QAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2Vs
ZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQg
ZmllbGRzLgorCisgICAgICAgIFRlc3RzIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudC4gU3VibWl0
dGluZyBwYXRjaCBlYXJseSBmb3IgZmVlZGJhY2suCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2hv
d0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0
aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRp
dENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjppbnRlbnQpOgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBw
bGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxl
Y3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6aW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0
aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbik6CisK
KzIwMTUtMDQtMDggIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAg
ICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1
ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4
dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0
aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9y
IHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBt
ZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGlu
IGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5n
ZXMuCiAKICAgICAgICAgVGVzdHMgYXJlIHN0aWxsIGluIGRldmVsb3BtZW50LiBTdWJtaXR0aW5n
IHBhdGNoIGVhcmx5IGZvciBmZWVkYmFjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEzOWViNDQuLmQzNWJiOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtODY1LDYgKzg2
NSwxNTQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2Vs
ZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgewor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgcHJpbnRmKCJV
bmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdDoKKyAgICAgICAgcHJpbnRmKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBwcmludGYoIk1v
dmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDoKKyAgICAgICAgcHJpbnRmKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25v
d24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlOgorICAgICAgICAgICAgcHJpbnRmKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgcHJpbnRmKCJJ
bnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uOgorICAgICAgICAgICAgcHJpbnRmKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAg
ICAgICAgcHJpbnRmKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgcHJpbnRmKCJDdXQiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAg
ICAgICAgICBwcmludGYoIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAg
ICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtu
b3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIHByaW50ZigiQmVnaW5uaW5nOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgICAgIHByaW50ZigiRW5kOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAg
ICAgcHJpbnRmKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgcHJpbnRmKCJOZXh0
OjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBwcmludGYoIkRpc2NvbnRpZ3VvdXM6
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQu
c2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBwcmludGYoIlVua25vd24iKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJDaGFyYWN0ZXIi
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlXb3JkOgorICAgICAgICAgICAgICAgIHByaW50ZigiV29yZCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJMaW5lIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVBhcmFncmFwaDoKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhcmFncmFwaCIpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhZ2U6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYWdlIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9j
dW1lbnQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJEb2N1bWVudCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFs
bDoKKyAgICAgICAgICAgICAgICBwcmludGYoIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoaW50ZW50LnN5bmMpCisgICAg
ICAgIHByaW50ZigiLVN5bmMiKTsKKyAgICBwcmludGYoIlxuIik7Cit9CisjZW5kaWYKKwordm9p
ZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihO
b2RlICpub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRl
bnQ7CisKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBpZiAo
b2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250
YWluZWRCeVBhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2Jq
ID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UK
KyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFY
U2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VE
X1BBUkFNKGludGVudCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKwor
ICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoKTsKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
bikKIHsKICAgICBpZiAoIW5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oCmluZGV4IDE1NzQ3YWIuLjU4YjEzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xOTEsNyArMTkxLDkgQEAgcHVibGlj
OgogCiAgICAgZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgewogICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duLAotICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Cisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZAogICAgIH07CiAKICAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKQEAgLTIwOSw2
ICsyMTEsNzggQEAgcHVibGljOgogICAgIC8vIENvbXBvdW5kIHRleHQgdmFsdWUgY2hhbmdlCiAg
ICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRU
eXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKIAorICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25EaXNjb250aWd1b3VzCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24s
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlB
bGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3Rpbmcg
dGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlv
biBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9s
ZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0
aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxl
Y3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0g
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAg
eworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBz
ZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisK
KyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAg
ICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
VW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBi
b29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAg
LCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAg
IHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNo
YW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAg
ICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAg
ICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAg
ICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3lu
YyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisg
ICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5k
aWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNo
YW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKKwogICAgIGVu
dW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLAogICAgICAgICBB
WExvYWRpbmdSZWxvYWRlZCwKQEAgLTIzMiw2ICszMDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWRO
b2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2
b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KTsKICAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpOwogICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpOwogI2Vsc2UKQEAgLTM1OSw5ICs0MzQsMTEgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdu
b3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlu
bGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24o
Tm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiAjaWYgUExBVEZPUk0oQ09D
T0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKSB7IH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDky
OTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTgg
QEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0
UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rl
ZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0
aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBh
eE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVu
dChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAw
ID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDog
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkp
OwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3du
Y2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1l
bnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQs
IHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihu
b2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0g
ICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlv
bjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFBvc2l0aW9u
IHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9uKG5vZGUsIHJhbmdl
LnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9y
KTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0
aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2Vs
ZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAgdm9pZCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0
IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5k
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlv
biBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0
aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5l
bmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0
cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJh
bmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZp
c2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFy
dCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCA0ZTI2YjY3Li5hYjc5MzQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2Fj
aGVJT1MubW0KQEAgLTk1LDYgKzk1LDExIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAg
W29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0
aW9uU3RyaW5nXTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCit7CisgICAgcG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iaiwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwogdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggZWVmNzlmYS4uNjA1MjNhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tCkBAIC00OCw2ICs0OCwxMCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgogI2VuZGlmCiAKKyNpZm5k
ZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0U3RhdGVTeW5jS2V5IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKICNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbgogI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgog
I2VuZGlmCkBAIC04MCw2ICs4NCwxMCBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRU
ZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0
aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMTkyLDYgKzIwMCw1NSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07
CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCit7CisgICAgaWYg
KCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGlu
dGVudC5zeW5jKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5j
S2V5XSA9IEBZRVM7CisgICAgaWYgKGludGVudC50eXBlICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVVua25vd24pIHsKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleV0gPSBAKGludGVudC50eXBlKTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlw
ZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6Cisg
ICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAg
ICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBA
KGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50
LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eV0gPSBAKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25l
KCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXJSYW5nZSA9IFtvYmotPndyYXBwZXIoKSB0
ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0
KCkgZW5kUG9zaXRpb246c2VsZWN0aW9uLnZpc2libGVFbmQoKV0pCisgICAgICAgICAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0
ZXh0TWFya2VyUmFuZ2U7CisgICAgfQorICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50XSA9IG9iai0+d3JhcHBlcigpOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJB
cmVhKCktPndyYXBwZXIoKTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKKworICAgIC8vIFVz
ZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3Rh
cmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dENoYW5nZWROb3RpZmljYXRpb25dOworfQorCiBzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0
ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7CiAgICAgTlNTdHJpbmcgKnRleHQg
PSAoTlNTdHJpbmcgKilzdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IGFmZWQyYjkuLjI1ZWFiNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0xNjUsNiArMTY1
LDEzIEBAIHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlJbnRlbnQoKQor
eworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNb
bV9jb21tYW5kcy5zaXplKCktMV0tPnVuYXBwbHlJbnRlbnQoKTsKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogdm9pZCBhcHBseUNvbW1h
bmQoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsKICAgICBjb21t
YW5kLT5hcHBseSgpOwpAQCAtMTU1NCw0ICsxNTYxLDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4g
Y3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJl
dHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBs
eUludGVudCgpCit7CisgICAgaWYgKG1fY29tbWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4g
bV9jb21tYW5kc1ttX2NvbW1hbmRzLnNpemUoKS0xXS0+YXBwbHlJbnRlbnQoKTsKKyAgICByZXR1
cm4gRWRpdENvbW1hbmQ6OmFwcGx5SW50ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRl
eCBmOGRmOWQ5Li5lZGVlNDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCB1bmFwcGx5SW50ZW50
KCk7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCkBAIC04OCw2ICs5MCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRp
Y2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJl
Y3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJs
aW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3ZlcnJpZGU7CiAKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IGY1Yjg2YzMuLjAxYTAzMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgeyByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsgfTsKKwogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAgICAgRWRpdENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYpOwpAQCAtOTEsNiArOTMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JikgPSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3ZlcnJp
ZGUgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoYXBwbHlF
ZGl0VHlwZSgpKTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgdW5hcHBseUludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KHVuYXBwbHlFZGl0VHlwZSgpKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAg
ZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21t
YW5kKGRvY3VtZW50KSB7IH0KIApAQCAtMTAyLDYgKzEwNyw3IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOwogCisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRp
dENvbW1hbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCmluZGV4IDBiMGMxMGIuLmUyNDlkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRp
dGluZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24n
dCBjbGVhciB0aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2Ug
ZG8gdGhvc2UgdGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rp
b246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5k
KCkgPyBGcmFtZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmFwcGx5SW50
ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3Np
dGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdS
b290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxl
ZCgpOwpAQCAtMTAzNiw3ICsxMDM2LDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmco
UGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZy
b21Db250cm9scyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGlu
Z1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVj
dGlvbihjbWQtPnN0YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21kLT51bmFw
cGx5SW50ZW50KCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhj
bWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJs
ZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0y
ODU0LDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdu
b3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZv
ckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNo
YW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxl
Y3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9p
ZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsK
ICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRh
dGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4o
KSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NjYsNyArMjg2Niw3IEBA
IHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMx
NT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBz
ZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlk
Tm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24o
KS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24g
fHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9u
KSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJh
dGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRz
IHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91IHBy
ZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNjZkYjAyMC4uZDZjNWUzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENv
bXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsK
ICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9k
ZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25T
cGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRP
ckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKaW5kZXggNTc0NTE3MC4uYjRjNzI1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsxMzgsNyBAQCBFbGVtZW50KiBG
cmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29u
c3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
cG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFs
aWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZh
bGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9u
LmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVz
ZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24o
cG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHko
KSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24pOwog
fQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZi
YXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRy
aWdnZXJlZCkKQEAgLTE3MCw3ICsxNjksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlV2l0
aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFzZSwgY29uc3QgUG9zaXRpbwogICAg
IFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRo
b3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5ld1NlbGVjdGlvbi5zZXRJc0RpcmVj
dGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1cyA/IDAg
OiBEb05vdFNldEZvY3VzKSk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZv
Y3VzKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4
dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzKSkpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xsZXI6OnNldENhcmV0UG9zaXRp
b24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAgLTI1NCw3ICsyNTMsMTYgQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0
aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKSB7CisgICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJldCgpKQorICAgICAgICAg
ICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNo
ZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25E
aXNjb250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudCA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAgICAg
IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAg
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8
IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdy
YW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Q
b3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vy
c29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAt
Mjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50
KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkg
ewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVj
dGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJh
bWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVu
dCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7Cisg
ICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxp
Z24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQg
ZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBi
ZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5Q
YXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2Vy
IHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJl
IGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAg
LTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFs
aWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVj
dGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICsz
NjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAg
ICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICBy
ZXR1cm47CkBAIC0zNzksOCArMzg3LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5k
UmV2ZWFsU2VsZWN0aW9uKCkKIAogICAgICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBS
ZXZlYWxFeHRlbnQpOwogICAgIH0KLQotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGlu
dGVudCk7CiAKICAgICBpZiAoYXV0byogY2xpZW50ID0gbV9mcmFtZS0+ZWRpdG9yKCkuY2xpZW50
KCkpCiAgICAgICAgIGNsaWVudC0+ZGlkQ2hhbmdlU2VsZWN0aW9uQW5kVXBkYXRlTGF5b3V0KCk7
CkBAIC0xMDIxLDcgKzEwMjgsODAgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjpt
b2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBi
b29sIGlzQm91bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVy
biBncmFudWxhcml0eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBo
Qm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisK
KyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVy
YXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0
eSBncmFudWxhcml0eSkKK3sKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOwor
ICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6
QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNSYW5nZSgp
KSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwpCisgICAg
ICAgICAgICAgICAgZmxpcCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAg
aW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVy
R3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAg
ICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExp
bmVCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5k
YXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6
CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsK
KyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5
OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0
eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFu
dWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAg
IGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2Fz
ZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9u
UmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkp
CisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0
OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAg
ICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsK
K30KKyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0
ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE1Nywx
MSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVj
dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFs
dGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlv
bikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hl
KCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0
aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAg
Ly8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJy
b3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwg
c28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBT
VEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQg
d291bGQgYmUKQEAgLTE3MTAsOCArMTc5NSwxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxl
Y3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVj
dGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlm
IChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxl
Y3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7
CisgICAgICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
LCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5QWxsKSk7CisgICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCk7Cisg
ICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiBy
YW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKQpAQCAtMjQyMyw3ICsy
NTEwLDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNv
bnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBWaXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24g
bmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0
aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNl
bGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51
bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQo
KSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0
eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigp
LnN0YXJ0KCkpOwogICAgIFBvc2l0aW9uIGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24o
KS5lbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0
ZTI4ZS4uM2MzMTk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1l
U2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0
aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5o
IgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gQ2xv
c2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgKHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2Vs
ZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDApOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
aW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRT
ZWxlY3Rpb25JbnRlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3Np
dGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wg
c2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9u
cyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBB
bGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3Rlckdy
YW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVm
YXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJz
b3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0
eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFm
ZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVj
dEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBF
TkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
KTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAg
dm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNl
bGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0
eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBsaW5lRGly
ZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oRVBvc2l0aW9uVHlwZSk7CiAK
ICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9u
LCBUZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1
bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAjZWxzZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25JbnRlbnQp
IHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9u
SXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3
IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRy
PEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5l
IHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCA0NjkxNTM4Li43N2M0MjY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCkBAIC00Myw2ICs0Myw3IEBAIHByb3RlY3RlZDoKICAgICBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAKICAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgeyByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmVwbGFjZUFwcGx5RWRpdFR5
cGUoKSk7IH0KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1
Li5lNjk1YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNl
bGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxl
Y3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRG
b2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0K
IAogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAg
ICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVj
dGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFj
Lm1tCmluZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENH
UmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRp
ZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNO
b3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQo
KS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVk
VGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUt
PnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXBy
ZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDQ2MDUxYzYuLmM1
Mjg4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxODQsNyArMzE4
NCw3IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJh
bWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAot
ICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworICAgIHNlbGVj
dGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKIH0KIAogc3RhdGljIHZv
aWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJk
RXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4
IDc3YzA3ZmUuLmJmZDFmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKQEAgLTM0MSw3ICszNDEsNyBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3Vz
SW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgICAgICBQ
b3NpdGlvbiBwb3NpdGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShlbGVtZW50Lmdl
dCgpKTsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24ocG9zaXRpb24sIHBv
c2l0aW9uLCBET1dOU1RSRUFNKTsKICAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgZnJhbWUuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgICAgICBmcmFtZS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKICAgICB9CiAKICAgICBl
bGVtZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsKLS0gCjIuMi4xIChBcHBsZSBHaXQtNTMp
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250725</attachid>
            <date>2015-04-14 12:26:52 -0700</date>
            <delta_ts>2015-04-14 14:01:35 -0700</delta_ts>
            <desc>tests</desc>
            <filename>0004-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>33919</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBkOTUyZjhiMTE4ZDU2OGQwYTQyMTkxOTYxYWUyYTAwOWJhZDQ3NWE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAxMDo0ODo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVGVzdHMKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAxMSArKwogLi4uL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8t
ZXhwZWN0ZWQudHh0ICAgICAgICAgfCAgOTUgKysrKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwgICB8IDIxNyArKysrKysrKysrKysrKysrKysr
KysKIC4uLi9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgIHwg
IDExICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
ICB8ICAxMiArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaCAg
ICAgICAgfCAgIDEgKwogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0gICAgICAgfCAgNTIgKysrKy0KIC4uLi9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW0gICAgICAgIHwgIDE5ICstCiA4IGZpbGVzIGNoYW5nZWQsIDQwMCBpbnNlcnRpb25z
KCspLCAxOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMjA0NjViLi43
NzFjYzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDQtMDggIERvdWcgUnVzc2VsbCAg
PGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggZmFpbGluZyB0ZXN0CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWw6CisKIDIw
MTUtMDQtMTAgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250
ZW50IEZpbHRlcmluZ10gU3VwcG9ydCBtb2RpZnlpbmcgcmVxdWVzdCBVUkxzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjYzlmMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZp
dmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyBmb3IgbW92ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
biJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Nl
bGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xNzEzNDU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAg
KzEsMjE3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgcm9s
ZT0idGV4dGJveCIgdGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxlPXRydWU+
Cis8cD5vbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4LjwvcD4KKzxwPnNldmVuIGVpZ2h0IG5p
bmUuPC9wPgorPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworPHNjcmlwdD4K
KworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyBmb3IgbW92ZXMuIik7CisKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSA9IDI7CisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCA9IDM7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nID0gMTsK
KyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kID0gMjsKKyAgICB2YXIgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgPSAzOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0ID0gNDsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciA9IDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCA9IDI7
CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IDM7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSA0OworICAgIHZhciBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IDU7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQgPSA3OworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3
b3JkIiwgInNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJz
ZW50ZW5jZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnki
XTsKKyAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVz
dWx0cyA9IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZp
Y2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90
aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3Vu
dCsrOworICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMu
cHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0
KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJ
bmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRl
eCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0g
MjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewor
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOwor
CisgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEu
YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBz
aG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3gg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZv
Y3VzKCk7CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAg
dmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4
dGJveCwgMCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5t
b2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZh
ciBpIGluIGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Cisg
ICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAg
ICAgfQorICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1
ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3gu
aHRtbAppbmRleCBhMWU4NDNlLi5mNmQ0ZGE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10
ZXh0Ym94Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
c2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sCkBAIC0xNywxMSAr
MTcsMTEgQEAgY29udGVudCBpbnNpZGUKIAogICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRo
YXQgQVJJQSByZW1vdmluZyBhbiBlbGVtZW50IGZyb20gYSBsaXZlIHJlZ2lvbiBzZW5kcyB0aGUg
Y29ycmVjdCBub3RpZmljYXRpb24uIik7CiAKLSAgICB2YXIgYXhUZXh0Ym94ID0gMDsKKyAgICB2
YXIgd2ViQXJlYSA9IDA7CiAgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZp
Y2F0aW9uKSB7CiAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikg
ewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9ucyIpLmlu
bmVySFRNTCArPSAiU3VjY2Vzc2Z1bGx5IHJlY2VpdmVkICIgKyBub3RpZmljYXRpb24gKyAiPGJy
PiI7Ci0gICAgICAgICAgIGF4VGV4dGJveC5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwor
ICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CiAgICAgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQogICAgICAgICBl
bHNlIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCIpIHsKQEAgLTM1
LDcgKzM1LDkgQEAgY29udGVudCBpbnNpZGUKICAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CiAgICAgICAgIHRleHRib3guZm9jdXMoKTsKIAotICAg
ICAgICB2YXIgYXhUZXh0Ym94ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1l
bnQ7CisgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVu
dC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFy
ZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAg
ICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwogCiAgICAgICAgIC8vIFRy
aWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCiAgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVj
dGlvbigpOwpAQCAtNDYsOSArNDgsNiBAQCBjb250ZW50IGluc2lkZQogCiAgICAgICAgIC8vIFRy
aWdnZXIgdmFsdWUgY2hhbmdlLgogICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0
VGV4dCIsIGZhbHNlLCAiaGVsbG8gIik7Ci0KLSAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9u
ID0gYXhUZXh0Ym94LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNr
KTsKLSAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKICAgICB9
CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggNjA1MjNhOC4uODg1MGU2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBA
IC0yNDMsMTAgKzI0MywxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KgogICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IG9iai0+d3JhcHBlcigpOwogICAg
IGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKTsKICAgICBOU0FjY2Vzc2liaWxp
dHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdldCwgTlNBY2Nlc3NpYmlsaXR5U2Vs
ZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwotICAgIFt1c2VySW5mbyBy
ZWxlYXNlXTsKIAogICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25z
IGFyZSBwb3N0ZWQuCi0gICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9u
Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb25dOworICAgIFt0
YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxl
Y3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICBbdXNl
ckluZm8gcmVsZWFzZV07CiB9CiAKIHN0YXRpYyBOU0RpY3Rpb25hcnkgKnRleHRSZXBsYWNlbWVu
dENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAgLTI5MiwxMCArMjkyLDEwIEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqCiAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50XSA9IHdyYXBwZXI7CiAgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+d3JhcHBlcigp
OwogICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8odGFyZ2V0
LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKLSAg
ICBbdXNlckluZm8gcmVsZWFzZV07CiAKICAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4g
bm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgotICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb25dOwor
ICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxp
dHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworICAgIFt1c2Vy
SW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRF
ZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVk
aXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMzIxLDEwICszMjEsMTAgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCoKICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZUVsZW1lbnRdID0gd3JhcHBlcjsKICAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFw
cGVyKCk7CiAgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0
YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OwotICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIAogICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cg
d2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCi0gICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlv
bl07CisgICAgW3RhcmdldCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisgICAg
W3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGlu
Z0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9i
amVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5jNDY0OGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTgsNiArNTgsNyBAQCBjbGFzcyBWaXNpYmxl
UG9zaXRpb247CiAtIChpZClhdHRhY2htZW50VmlldzsKIC8vIFVzZWQgdG8gaW5mb3JtIGFuIGVs
ZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2VkIGJ5IERSVC4K
IC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3Rp
ZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihO
U1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJ
bmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpQ
YXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTooV2ViQ29y
ZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLm1tCmluZGV4IDVkZGZjM2EuLmJkZGQ1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4Nyw5ICszODcsNTcgQEAgc3RhdGljIEJPT0wgYWNjZXNz
aWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM7CiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lCiB7CisgICAg
aWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zKQorICAgICAgICBbc2Vs
ZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbk5hbWUgdXNlcklu
Zm86bmlsXTsKK30KKworc3RhdGljIE5TQXJyYXkgKnJlbW92ZU5vbkpTT05UeXBlc0Zyb21BcnJh
eShOU0FycmF5ICphcnJheSkKK3sKKyAgICBOU011dGFibGVBcnJheSAqbXV0YWJsZUFycmF5ID0g
W2FycmF5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TVUludGVnZXIgaWR4ID0gMDsgaWR4IDwg
W211dGFibGVBcnJheSBjb3VudF07IGlkeCsrKSB7CisgICAgICAgIGlkIHZhbHVlID0gbXV0YWJs
ZUFycmF5W2lkeF07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9u
YXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdElu
ZGV4OmlkeCB3aXRoT2JqZWN0OnJlbW92ZU5vbkpTT05UeXBlc0Zyb21EaWN0aW9uYXJ5KHZhbHVl
KV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNz
XV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4OmlkeCB3
aXRoT2JqZWN0OnJlbW92ZU5vbkpTT05UeXBlc0Zyb21BcnJheSh2YWx1ZSldOworICAgICAgICBl
bHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1
ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAgIFttdXRhYmxl
QXJyYXkgcmVtb3ZlT2JqZWN0QXRJbmRleDppZHhdOworICAgIH0KKyAgICByZXR1cm4gW211dGFi
bGVBcnJheSBhdXRvcmVsZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKnJlbW92ZU5v
bkpTT05UeXBlc0Zyb21EaWN0aW9uYXJ5KE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKK3sKKyAg
ICBOU011dGFibGVEaWN0aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11
dGFibGVDb3B5XTsKKyAgICBbZGljdGlvbmFyeSBlbnVtZXJhdGVLZXlzQW5kT2JqZWN0c1VzaW5n
QmxvY2s6XihpZCBrZXksIGlkIHZhbHVlLCBCT09MICopCisgICAgeworICAgICAgICBpZiAoW3Zh
bHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgbXV0
YWJsZURpY3Rpb25hcnlba2V5XSA9IHJlbW92ZU5vbkpTT05UeXBlc0Zyb21EaWN0aW9uYXJ5KHZh
bHVlKTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xh
c3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0gPSByZW1vdmVOb25KU09O
VHlwZXNGcm9tQXJyYXkodmFsdWUpOworICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJl
ciBjbGFzc11dKSkKKyAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RG
b3JLZXk6a2V5XTsKKyAgICB9XTsKKyAgICByZXR1cm4gW211dGFibGVEaWN0aW9uYXJ5IGF1dG9y
ZWxlYXNlXTsKK30KKworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihO
U1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJ
bmZvCit7CiAgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zKSB7
Ci0gICAgICAgIE5TRGljdGlvbmFyeSogdXNlckluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25h
cnlXaXRoT2JqZWN0c0FuZEtleXM6bm90aWZpY2F0aW9uTmFtZSwgQCJub3RpZmljYXRpb25OYW1l
IiwgbmlsXTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBw
b3N0Tm90aWZpY2F0aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2Vy
SW5mbzp1c2VySW5mb107CisgICAgICAgIEFTU0VSVChub3RpZmljYXRpb25OYW1lKTsKKyAgICAg
ICAgTlNEaWN0aW9uYXJ5ICppbmZvID0gbmlsOworICAgICAgICBpZiAodXNlckluZm8pIHsKKyAg
ICAgICAgICAgIE5TRGF0YSAqdXNlckluZm9EYXRhID0gW05TSlNPTlNlcmlhbGl6YXRpb24gZGF0
YVdpdGhKU09OT2JqZWN0OnJlbW92ZU5vbkpTT05UeXBlc0Zyb21EaWN0aW9uYXJ5KHVzZXJJbmZv
KSBvcHRpb25zOk5TSlNPTldyaXRpbmdQcmV0dHlQcmludGVkIGVycm9yOm5pbF07CisgICAgICAg
ICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKnVzZXJJ
bmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnVzZXJJbmZvRGF0YSBl
bmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAgICAgICAgICAgaWYgKHVzZXJJ
bmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlmaWNhdGlvbk5h
bWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1c2VySW5mb1N0cmluZ307Cisg
ICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2VdOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIGlmICghdXNlckluZm8pCisgICAgICAgICAgICBpbmZvID0gQHtA
Im5vdGlmaWNhdGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZX07CisgICAgICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERS
VE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86aW5mb107CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmlu
ZGV4IDY1MWI1OTEuLjI4Y2EwM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjUsMTkgKzEyNSwzMCBAQAogICAgIGlmICht
X3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0aW9uIG9i
amVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pTT05WYWx1
ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBXS0J1bmRsZUZy
YW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShXVFI6OkluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7CiAgICAgSlNDb250ZXh0UmVmIGNv
bnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1lKTsKIAog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlm
aWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzTm90aWZpY2F0
aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBu
aWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9K
U09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVB
cmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwganNVc2VySW5mb0pT
T05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAg
ICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwg
dGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNv
bnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxs
YmFjayksIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDApOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQgYW5kIHRoZSBu
b3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8vIExpc3RlbmVyIGZvciBv
bmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAgICAg
ICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1bWVudHNbMF0gPSBub3Rp
ZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9IHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwg
Y29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwg
MCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGdsb2JhbCBs
aXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8u
CisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVudHNbMF0g
PSB0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkpKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0g
bm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5m
b0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRl
eHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFj
ayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQotLSAKMi4yLjEgKEFwcGxlIEdpdC01
MykKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>250730</attachid>
            <date>2015-04-14 13:07:02 -0700</date>
            <delta_ts>2015-04-24 09:24:39 -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>546572</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">UEsDBBQAAgAIALtmjkZPSizunOcAANmACgAOABwAYWNjZXNzX2xvZy50eHRVVAkAA1JwLVWPby1V
dXgLAAEE9QEAAARQAAAA7D1rc5vIst/Pr0idKvvTxWaGl9hbLlfeSSWbZDfOnt29dSuF0UgiQUAA
2db++jsPkBHMIBgGSc517caWJZue7un3dPcA6Jzp+D/wRMP//Q8wz58m6TnUgfULgL9Y8BfdfqLp
jq7/75N/v3559eTcSxLf8xfo3NRNbelFwQxl+dkiX4ZP3lxdfToHZ+DfT6Cu439A/xeQfvw0RpkW
xbmG7gIMoIRUAYIX8MQwrQEwUpTFq9RH2XkWLJMQneV3eQ0LYHR4vrP9fPZw+lVL0TRIkZ8HcZRx
qWQblgyE6MbLim9a7gVRjqaaN8tRqk1T71YLlt4c8eAZjgn7w7sn1DcMDm+DlqTo7FtWJ5bpTuz+
Ty+feQ+F/Ljw0ghlWROKbVvORJpm90CArt/hf1oYLMk++flZdjNvbL/zr19+EcOYKIKxGxs+pFt0
PQ/P4zSYB5Hmh8jDX+NoFqdYXnwuAzjQtaTBJYsgDBK6PVhmkL9Kg3x9RjjuLWU49ms8sMBxTQmw
MWbsKJ8FIebsIJqfe2EY3xaMXooWD5wJbSVINrnPsV23/6PvOWKz6mSRXK7S8KKJ5P0vJ17WoKah
wyeaAlK2Q2G6aaQdwzo9wd/QlAfV1hVAvQ5j//tYfCK5mTMvCMfaTB6+w6ns7oC6jKfBbH0PMEU/
VkSRY0pwia1P+gM9ALEHoK2e5ll2fh2nU7yv1KZrYexN8SJ4z3dNSQBVGjNUwng+J1CaJh4aYMgm
bvyHGDt1jadD7G61mdvaYzHTe2Hl4d41Okuihn2FsJPP4/bwSlKUxCkPgYkrAYrjkBLvuvyJ5/xS
X86UYeb4e4CfP41X1yHSfqxi4jneeOEKabdBvtAytAywDxHGEY/FJkBi93l2FbNdfZtsGc6qhQnb
u08jBJmncjakBmg7UqCALH2IYEQov43T7xqORFahl8cpVXOEWBeYVhpPB5z68RKzxvQiy730nlG1
ihDXaKzJM8z9Sot3mHRk+RrHTbzdnAxlFIor1n6e/32exqtoyttdc3IoomPqNkh+mnj54oL9GTz7
lqigf40PWVhJbFIahxsbdOnHU3SBDdwpMYz0dzwi3yleabzEW3VHzeYp+/lrML0Ap/S3vhZPukiw
Pgj8/zqB+tK70zDCFzhu0YdbTzXEnqNO/A2gIgLziHeJqfb685u/33349Onvj+/N365eP63Bt5xj
0WBqyE4iynQkxYJJi//5qyX2rbTCx7paJ0hbotzjuo+mcbziE8VYFcYpOsXS81Wd9BDvzE9jvE8z
b0o2gOwQjzgWdEZmffvjr691/Y/fXtjvv/z2+5dfFbB+08VqTS9B4EwmSqEIndCBbrRSR/Shs3Af
Jvtj8uLXv/4G8I/nH55+cT48V8BkI4vQjn03sALXjnrP6RuK91yo2+8WKTc7aFmTkTnrC/jj7e+/
Pn3+6cOLybvfnn4aU31xdAo0HPdBqP+Hw2S9th+8e/XmP6/eP736ODGMyZs3Shy3ZfUECUVTbUnS
/DlmdAp2eUFWcM7jd/NoNE1XLO7UILEnlluuqFzeeGEw9fIx1NsOmnlJgsMpj5z7jUk6EbtfPfvy
8o35Un/z/OrZM/DO3DO7/7e/8NIM5RerfKZNFDH/eIqwhwwox6w/L6kn7k8hlPv0xERi9yeO1/8y
v9jOi4lrvTH+On739XDZpX1HFh9evnv99+uXxssXf31wfrUUbc1IFpnnPHMdZ7mEPOEpzFE7T5SA
Y9gj5p4aa9hLRlvB8lpyv5tstaL877Z9mK6WyzUn3e6oeXCz1kbNczl1VUDNk5u+leUONsI/Vl6K
oH52vUwatToQKnv8PJjV164rezgn/aTw6U3WtqB7qNw30FtKFDeHqDz1pk/ggMd3P63taAk6QFJz
DCkE5F3HWO8yLyCO8Ff/O9Z797oOQ+ASEnap++uAXhf4gtNwOGkrHajD5h41rhEpVuKITpeSuZ40
5ZOxy3FmOyrC2jxhSSiYyEAVoDeNb6PCWm6qg4VcY+juCFwjXIKohthxx0Cfv8G2MS7GIukwLcWM
hb2dHKVRWfI5C8LwM60F4JaCu4YyEidpPE8Rv2IRGBYYgb4bkALiAsMeEaoGzkggUy/+McYECfcP
0lQFsg/bZjg6/Y5aGNccxLi+TzC7CTytWry45Rg4ihwDHiyehABVGogDTyQeI+uePFiK9K1rwwH9
IVW3rqiOI8XMSy+I7t297Q1lOThd7+OLbFcYni0Tc7jr2I1+KfJyvk9gDjLN3ipfcJsPTEcN8+Hn
Y3TyVVIjv6mDJ1BGZ7RXuXHLEQwgE5yobaWR3PZYYD5dHY4Ek3mfrV4C9kMluAPdoChnJK2+1q69
aiKdV8o6Mq47TAuYTIBi+Ji1EF/pW9AaRlmSJkNptkXhomeOV+gOFIGrN+hp7APe+ToYBrEBiX6o
4U1E3vLMy4JMojGwDhCzP/KSgHRrXNNuAWxHstX1LPWWfDp2qfDer4JRWkQlos89EB6lNCG9ZPRH
CZPZQm0DcJbGS23q5Z6omwXohqPe0HCJCWTcYD53b6tFDl/LsJxIBxeHFxSWVpxact1sY6JMfPGr
JI4yAXCS368cqbBj3aqonxjPTqBe/PqJ8eLL1avGGasBj3SxtwFJBeCAEVrgoayZd4h9tIs9gZAy
BP5+rEvWZnF87aV45YpXuC3YaYY9rCzw+eJs2fKK+G6RarQMgnQxMw1MPoqI5keZj3+FH+tBaEso
kXFKkOtQWKMaQYjgU6/3uEeUnC/GES/UmEioZd55GW8kgNEnWOUzLbZfFZ5gTLqK8ou6GoLuUDSa
FTISFTB9QagsABJ7VCMcR5c6hP6dIXcivdcFh0FWrBY+gNVukVfRgstk/jmVJc3L/CDg6jtrXEZv
Z21MkyBSnb2h2kipDlcXmyjgo45NbI4+nj6Gw/Txp4+fMUjMHIs8TwoMKlAxPfIgIZU7hPAa8hcx
Z4drXeqDOSlg8SDHErjgIPvco2tutI02jmGj4QDtVw1Z7/VgEwjUVQThWBs9Z2+e+fOgVYkP5tfN
0CyO8gP744iaEhyu0FfXLWciPZPySvjPkHA2t0sj6VyEqZYtPEH5pdGTxw+G1wPOCjaldd5dWoeH
uaQtEqU3iN+4ZoADMIA1pBzJT71sod0uUKRF3k0w93JSKOPdemstJ2+SClbu2Z1jKkl3EuOodPdm
qzDM/BShqPIShYjWT0+D2Qyl5BUbksb1pIHMKf/GUk3RzMPbpqHIj0WFP7ZtHGmunZNuIREBTTpF
ZI5cGPxDW0/49RETZwheSUwmF6YamV619QNDVzgCELquoVzMI43IJHewkn4ILW/J1RBs0TSIIjLc
QXhiAqCpxEcLAwzSC7XvcTDRUr6bpgAbdv4jypJNoHMAJ9eV14oErkaiQvYGlsOcHHR9y/iHqo5i
lqcVLVhbTvH7gRfyZwAazmGIqswPriKoOjFZyEEQLVAakEFapQ1g2hS7xMsgy7DyJNEgxlwwkXX/
BJ44x+iHHVM32sj8BxXwX6/+t3fP3N/1139cvf/7zV//+XLF6X8bGWNDpcS1WZ5LBRmCVp8yI0ao
zZ0Eo6svUwX7FPKMnUtigzDLUANEjVIchevCKvGrSE193ygOS9qO7xXNw/jaCxcBmaGzPi++a1PM
NHNaWEKzWFi3tM+jNXR1WKr1luqjzae1OlheyGgZSq0qt+15oqaeWTYsNh2FBTMonvGzDI675yzn
QAMkzMlr+9ssQTW6NShibQwhjuKcDAOexhGSnDfccgIhfnZR1qmq6ASrYsJ7nFSTczDpkqx8l4xO
RyfkZHwQ7nEm6EqbSDZZm67IDG3iYOA90nLsRc0RFirtei1UsUCXyZ51sscpmmHMF+022dTlDWXk
o7DEmcwkX6XYIhNh4NsShTVa7HUxE94P40zgycn0C29krJQsWgzDjW5lKs/LTaueATZYhwRz2AER
5OUttdEFw0+N4uhhTE4L/rzQFRjrQtJZgiBEhXuf8S8JAWpYfjPth+RAspXvI+zqc8fXTBxHmYKs
lu4390zKK21cGET6OrIFQjk2U2r8nAPQb3wXcUv35zE7weCUahiOM+6mSHoTnaxIHuSC/lFbQvsV
wwi+JWiukUQejos10dAnW5c5VxdtyiVQsy1jJgp3YAAVMlYhihuFSROqd4uUqzINGU+5E3fdBBmN
gsMg+s4HDR4EEwxWLaAX8ZJVtshyQX+r1eV6gjrAgiuqZfnBPIqJ98pR13xPVpeAW6LIxsAVl32l
KAk97OaVeMfX38hdNP4iCPn2QbckMFYvyWAv9fegh6GgraLVXeUdSJlKUZO5/EbEFdUgu8kfGZdB
WnKfVqeutiORjPGVTA/+7OphDGATSRCD2F8SZg+lxY1AOnUEDlVX44ubWNDMTiEqdyenQYahrYsi
xVVEjm3oPXuZVqTm7wuT+UG/KyHkokRDQvphtvuluYUEQIkBUpCeAnsLIsFomeyBUllyaQkzjjJ6
+JeiGUpTfk7FNifHuYEc0SRD1tqRkTE3IglIEdafERH3wtoVZG1L9XUqs+3n8ZY6SOj0Oo4q6dhg
zPOV7ONkk0oFbHneLOrtd7qMDeog3WiZ5OtBY5EErJ7ECd1mbRZgaKySK0HRlLlatCZIMCDNGGBX
s/tSNVrSJM6ZW6Yqb44HkESpWY6SnmU7g8HB/YKrV8y4kyFMv06DMAx8zPL8dkLDMId7ltTvAHyf
Q4LxlkHmb43KWNK7ipt9lsbEBrYag1ylk/DiTWeIlSqujcVP2pw/6dj6Yo06zc6SxsaY6hGj5Yn8
LIGuBBgtQ/FRkhe1IlA7eaGfuK9OXoCTiU5eP3tJv0L61aq8/5R+rR94yJjLpl+woX3upXP+LBLX
tkahwGACDPCei5FG5aQZdJdgKvCzRJZq7Gc4MKEpxqH4OyNKwWVwMXR5MoIzfvqidWvKBte+qGuf
nn7+XBcbCe0eRNgTIxWVZDYGm+wU+6tMu0Z4Y8TRq6lI0x8PIXbO+R4iPHTEsW0oNlhQscEaP9Ms
Yeslg+xeaucV3jd48hzvrXPy3KKvn508B+OolxGDqgdBVQ0+DLXNdauhMrd6f5s2vlgzRJr5LNK3
WxnB0H76YADdOnL5mrJk1rSs6yJZHxz/3y4C2u8RZCT0z4MlP91luWoSGt1XoXGjQBOaytzYoneH
m78BatC9evP289dXb9+//Pri48vPXz98vPr68s+3n6+EVwkoCh6EcLdOg9h1H+6+Nxbym170R4of
1GTsz4Hqwiv8M14ZLbRXLdub/QbFyz2YznQfsfr5RYlry4wHKzQPkY3vnY1ojtXZj1VMau/oICBu
wgxYg7afTIlfYwDiXsRuI4YOU1b1E4jinp34vKjPEJeFwAHinq0jX2MTXTZHS0FUXrhbVIfwOzXt
4VFqec/7zgtS7EHO4v1IH9KqXKnAKYI9Ap0bA6kpQMkeIAOWMPJFkE5pUXnZ3U0uFPbuhCOVTTCc
LcrYXNTeZSup9KKXX5REa95j6igBUtBslQchvfBjkVz+WKF0PVtFPsktXDBXuFhGYxzlsYtYN2ha
VIyVqJtCd2j2hk0dYBqyMk6QngRs4n0m9dwsjj0xhiNdgmltbFexl8WQjjKN0RR0qSO//1fYMFbk
X/x11Ch14ng+j9tgWNVJiw1oG4lhAIkD2KKVKYm2O5lIbtYLk4XHNwf6MARHsAS8hFm7F8Jv0YNK
dDJhnV0SDYfR8OCGjskeX+YOitm4wDHnvopjBrxxYdheXLGfnrhPo+mz0r2u+7vOo3zubFqnCpwO
i8q9MKSgyd0sF+xueKDTq+dP6YdP8wudvXoVp42RewC6pn5QeXpYKlLCCAnqFx3r0Tocp4JuaA+x
hzuZPEh1uZmvnsRpnm2qnjV/7QsuynQfaOjejin+qM675gOTypZBJmdn/fDvOiprd06wUIGbSxa4
lxurcMTbdNBgZmE3UHpzUh3Jz8zJRGNRluANiFMtSeM89uOwvMW7+AQHoeKOTCjVstSKWFMGgK4G
r8pIxOItevrBuVnNsUbn/Bace3eRtOLKDngENTHyEw+KQZKkV1jYz2a7CtI7DJD8QB0O781irBNm
pOc4S/3yph7+KHsIxsNgUOM2WTU9IoyXRT6WDfVKEfXFSfMX1nht40wn/eK6rGpWbtE1JWLRVsZu
CSMTmOfEP4jy0/J2xoviN39nv/icTHE9y+/y4RtZy+1gUV4m9FJIupjx4fdQMNzUmYxstMJ8W354
xVVqQAfAVAKyEJiCubRp7K/oCOQIMwD39FIf1Bd9b8Yz/ONSEDubimOnApbCNs0KQhmZhyrowret
ccSyKgF9xbOLEoQibEv2uCVzezWCs1YOzYbyMxBgkw5kFhK9ga0kMKvQYI2wWRjflqpeo2MuyK0K
KE1j0axAYwDS1Z4NIfqDmAu28QFrMcbvXcrS5LS4wEZCT8K9VJ3AfVz32Epki2S1tgy6tXN+COyh
z+nutHpv3cpCJAST7yo6/YEVzHVu6E7hnxi6UbyiGyM98HS4/HPF3u401AnWxqaVaFaHruN9y2OK
btFXWnf+DBlpUiTn6sS7iTpFmWDuiDB3VAFy2Pi9eJUnq5wPjTlb8HCU9kLM7JGXI3W0JsOZmH9C
zoeFLj6UGevAH+1x6wU5mz1TnUbLqTCxBmJFL9Vrx8oFcpu59LLv25ezcs9jXb3/4zvfD9tcw+aC
2Cwn9/N0uiC29/p2zqgRBL/GYUghvlub/JHsldpwLzNsRiBHxyuigT5E9uh1uqucTD2nN//dpjFW
YTsuAgNw4h6GJj2uU1ZgaciKIA3qWUJUUGNn6kDWpheT4WZYzU5R6K3puDZsQm74TTOGZQ+1aAWY
50Hqh01ESFn+tidEGWKVEVu2RKOSkY3iGuDZUmPdmu3vlraG8rOcmrk9ZfSryCp5g9gxmmcuHn3h
xylJPpc/n5LpOFjKpuUH5c81xq1RpPaUI1swGz03YAvJtQtkwNIqIUXw/EQEcIa5MwTrigIlN6rm
hAzx0ssD3wvDNd+/MaES3myg2JRxJcqxUqKYyejIWZBi0dkDaBZcqkD5MJaAzOihUPmmuHZay0Zx
jIRf50tOW02Qz2wPRq1uewxn2OQYGoet8tmkuO6wWSih1zoM9k2uIfBiHImlErzvDtRm/ESphCUV
lADzqw9N+VVvTeP9883vOEgPw/f4wyLfzR8Casry9SxEtKhC6xZquqY5mqK/LB1lejjWa8bxTvab
xXHtjIDJ7OQo7XHnaIPtX5Bz928vYXp/I87mko4DidusP8B8skqjqbYgKbtq6xA9sN4MrPWL2XD8
0zHHPjgH7CU7wfF1ImzSsgUZAXaTaUmASElto4hJl4psOkDT/DhZjwDyYFzRV5GyhQ7fWcXcuIfk
UE+uMJQFFjs4XhKQ4g0YMxO1t6iO+C/ZwiNXdFAkaR0Nr116iAFgaZm23D6YqPMhBPlKY4RdUBtZ
k+nd7BC+uD+B0Q0/Vcv8NEhy+RuHd4ocAUIPshjM63i6rhWzSiJXDc4Sb5WREQQFOptD56RZCWKb
CulYgCMNzNWbTbhTAcA+DhRklDJPUlsTA4bM4Sc/lsaw+XPdnZF4r7FXSnhRfBqWp2tSleIHmWAm
oGPoqhiDwSmgnuHwulGwB+WpSp2nb96NV/A8q7jA9motvKvOspS4CP+gNNZCFM3zhWSdZS8QjcIe
bST9viOgHrBTPhtNufDolcPsGltR34tlOT+BgaSYwLE3SpXDXu5UhN06NP167U2/shxtxkHLMHTV
EC7Z6+GIFKaDTBa7v+xLW65yxoAJNVVZnq4EV17b9lGjVgkchEg29YVpufYgkRLHpSY0dEVMXgAR
FYxCNYlENku1prbHjLLKNWglhvdRFXOa9hRuN9dB8zk8GpHx69h1ZUOzmgbOVlU1XJ303jiZt5Wy
1dYtM8ML9R7RkVeT5JCcHBcXPkHZ0lM0SdIu4KxZmiP5Z/y7XozRVdZhNMo0yJQpFZ654TQuQhsc
tcIiEmEYModBknxaKSitfaaB+z/PY1os0hBfeOT6vyDnz7jE8fYdFoVBpLa4ygGzIAqyhZqyikce
eFzi4xIfl6hqiWSuzheJwsgDa09W+AoeGeKwNjSOaI7vhsyCWOI9Y7f00hu0OEcguiFTJfS4Y8fq
5xplt1q1MpjKr1BmgW4/csDjEnewajKdaSTWDXJWOlNWzAgadwYcrGbBP+z8isJhx5D0PQ3ecU8g
TRm8hB3dnGZuaDjukCQuFuNgHmltyVxgypxFN5HIUp9MK1mgMEEpb0rHRFFRaB0nQe7YtUYB10pL
wx0FZi0vV4dMk3OO86BAtx/Z8E9pnGH12Gk8x3hmwQ1SW5PdkLZifIzoZgZgAah0r4pZSKLxl/YY
wFSp3p2QqoPCOQPN7LHPh3r4VtJUUwpDzAZjoqKeWOo3vjaBpKg5S8JL2o50AXRdYclFOXxaOCfL
lRndUKNYn1lprfWJJhzqNTWub90uaWUHSI46KNdeVlSKGQTUJWhchwXHAwZVAONIwC6msXVrPKSM
fVLQ2icwcx/bJdC7pjVczIurOdjNGZwZrK4zOvcNrH3ftUP2Ptlhsk9g7j6BOWMCK+NiFqomWOXq
DXBDwvzi8ZgxyZiOzPciTsoIOjIxlsLJokqarLcJ2ZiB4UiWT9+glPbfa15I/CjCHWEQlWjed3kI
euCA6/wkuRNJbdUrqTG42EN0tcTZ2Tn7f+Zlea0i4zr4jrKz62VyugyW6GqdoAtK6hPyFucWCr05
hBAYprrKcgwoX2WaH0/Za5Txh2nL6CF+dXkFIqu0rLxxARsuvMw0RCnA5hZgU93gph1wrS241t7g
wi24cE9wDR1siaD0MIruqrJ9OIVudZEmoxPiNAlRtvTkKfKW3O4JQxnAdkpDiRqlB4moITG98kEi
6kgUjRoP0nw9wO0xdfP/2vvT5saNdFEQ/j6/4tyJkOrYbZSQid03FDW1tn1OeRlX+XTfMzHXAZIg
CRcI0ACopd94//vkAnDDkyCWTBBUqbsskZSEzHzy2dcOFWBGMzlNhzL4eZ6Gkw1cH2M1Su41BumA
bAzRAbkOcDTSwepTq5oOL7ssPGrC+RBWo06/RrMyS152DW5K2OXbwK5ipD3CV00i1xQteGBvDrCg
dSAZtH7s0p9kSUSIj5EiYTbhWrtfhgSN1z7k37Y6IFArvcYQBCNQP6jGSazJoJ8O3Cj278IFCx/u
gX2RCMc/IsOSTaTC0wsJFZvu1yKEs2C6ScP88WaW+gstuWOel1VCe6AUldA1rpdmBfONLotGtP+I
k/wPuMjF63GyfXIH29hg3CXSoiRwZQwSzTHaOjJxj2hOx8XwkIsZQy5mDrmYJWOxbVginAWrdcLY
Qk1Vt+0Z6g5kSz3QHklVjtZnXkrHwzlDooY75GLeMIshzqh0GasBAiRbJve/BXRmU/ojXa5j0Zgk
bDS6maPAuRZpEMTY0h8sHRCQntMO5fmUkqPpJFQfItoFneawfJykIQuZviK69iq7JQf0v3+NsGFa
tnPlvD3WbfpiChAAAe0zS9f76H01SbvlkA42zmMvt45tK0lndEAN36Sa1o+9jBK5ztbe2PEd++AN
+0AKsuzEW5wRoBwODWM9gkrig2N0zeZ3DoQ24n6RhYbaqYfN2TcfJxqrXgHqnr8ah+nwUGcg17bT
iC4RcfgR6N1e9AEI8RIR3fsM42O+5wWoxsaTa9mGDaG+bBSZpH4YRYEsVDkzoyei9qJvg7cVxBfP
NmUdochj3E4r1wwdgUq4bV8cE8Hn58tPixFfOt0csuLLPU3RzxNfqNHAtPKOHfKF7GsXXioYWZGH
uI5eVROhunhCz4W06zSMc9nMvgKtYmwqNKDEti6Ua9G2oKNTzb97OiLC36R+9CQkwkUfgnYNjmeE
3c0u+y7WafInH52kTLXFF6/a5rJcPm18zXD6i+5dENjuLp02iBIwBoOGi6+3xQeup6OnY+WwNuIj
NwoaTvoxHV2ZMn2c6z4mZVrqHJ5Lj04oV10VMQNAcBtjE9yDxIObR0DBLs4Ynx88Q4UOG/Ku4/KV
M/KugeN852EG312sNXyxMcyhY5dn3PuIw4RPITx4hrAgIPqd0Yr+S4w1DhxjvBCpM6anXJ4EHGU4
7SkFOs8c4GyoWx9XTI9bt5aYdtkqbVd+h4ThYCYxcDs0ZciJonYTZ5zV66+ZTCDfL5bDSwyrDlar
N7jeJC8oWlGG/8y0WTLdMPfPdmSormV0ZOMMrp3oUqN8Jql1kSJXXfD1K0yBP1uoeCwFvYa84lC1
vWCNIdumGkN2MjWG7HJ7ZjLKR1Y/MmQ4v5sq50+ms+BKfzdfLMM/yXfZJZGyu752ZQr6kKspLa+u
dmJFnTqxGkP2zzWG7J/bSevE9VqneSEW4ZNwWo0wb6V1vorlnn+vipJHOvrA37x9955ImCv99Ye/
//Djf/CXUquq8yBNN+s8mNV1DXEcczAXifXm549X1jvuJynekNuJqXPtjzi4px617Bb1AsLx/u5T
sg0iHVZrbR5GrHXEK/qC2Vr0hRYRO0tbJbNwHhJQcYfeLIgCArCcmFV0/7c7n/9xEoYpp/FE9bIE
fVBwl3ZgwIpFU6ZX1ZU1t2OnJvElkFeEJLtfgsRUm0YQsHtDYBBa7IdNHZt2hzGRTVRZ8KNjB98m
n7saEVPVCZcI64Y+JN62b9LSx2AoeBm3GhQxtp5o3LFrTbsFPcl002hRJIldPawiOvO3UAv21iY6
Rx6uaRogw4lgukyAaQyWqfqgxjmga55jUUvOonvjtCoyhskgpnG/fHlDzZ6I/ZK/Dqnv9egv5wmR
RrRTY54QuyieHU1H47E91UDB57gJR7ou0EY9LlgpV5CVKow9id+1zwqT704o2d8NDNOKorBTD6je
U9UPCFLphsxr211WdURUS1JtjyBaqdtmAKr0EcLMqGUze7bjiGe0Lx41ajd1TYRdW450arYBUQtH
+1Lh3hwAk2QTTwNhn2XcsqVuDyy3WrY9b82T+nMI5uviX3cuyJQ3eoQNJMPruMpex/y7cBYkgiHT
nmmh/ivw98zSrc5+dlzUiwPQJKSiSTTcyRtZI753KdLWNCTR8j4sRUzLcFRdV0eTjFPNMT4XZKOR
VadftkREldzi9W0NnV0zRwwf3bg2r3OaWMAee0PeVoe1uqY5zAUMYMWfH5u1MxCQ/uRZhH5hhGV3
F6Bn23EHViDncs3L0GzOdjE2cpwzEJ2hWPOgGtX3W3fNXngwictJI9+JfodXWVb9NufwFBrDr4l0
7zx3s4W78GaaetjwxR2g3V9g1dhZ6xOx9POAVwyKkUFPnjLXeqKNfn6NUTsHyzozwY9AUpxhTbvH
oJUyGW+aFZOowSIo5wwqIzJQ92PtJ+Av/lj9BaRiSfJ+wbPIdftZ9KmYJ85SK/cTLmfhlEXCjssr
8Af6YVlgYRq67u6KLI5DJZZrI1eWycBNhU0WEGhR/NieRJmzpkceRIdL55GpK4dWVZOvpmX3LZE+
GxNUcIE9nAIs2fFL8MhfaOSVtowyzQ8yhF04NIHRudkMD2MaluN9p1pf7PgXPJD6x5s/3v7x7o/3
qhwFPZGmq4t2oEjJDjezzXqdpMDTEXLGQoFdfSmqbCOKhtesK9mtdR0F8SJf3iJ9HLaymDiLHRvb
HTvyaYfwtx1qrdNk8UcYz4KHlytjc5zSio0uM4W3MfigiAHzADDPVuWqr5RJwuoR6Ltx3OBgED2N
Lys/jPWX+TEjcjzLNvpkWdHn7moO5kRnpLkBDMRlVQOfAy3M3UCdCpiAcFvLrQgCopYjZTNlJxaK
1nGSU7SeJTGYF+24ku96mj6uc/0leSkjQ0WtE6yXdq2OZlfBKkkfC3Jdp5uY2Mlg4pGycvNt/k07
tN5WA83CbJrEcTDN5XSI2R9X6qcB1C8A22hkwGAJsHQIOKVB7XgIOO3yYxjPW37esvQtZ39tCJEg
XQcnw3umLuHhxM4FHu5i98kD+2IE01YyeV0sGPPy7ugpbbm0nzskbLV5ZlM32DM2PG9ZCrI1dp89
X9+wWx5d0kFPV8pW+pn4Wfo9b/l5y185Wxo23i78k6IctOBSWC+5lFHNRMIKxG/TgIvZyOO6FHlV
TWdgEV/d164zTWdHlNr9MVI57Uqmv6vNU38VwLWHVo/bbLCmqHLHUkvFFefqmYV4DX718nWakP/3
kLHONintwZQGd34UzlgHMZjmPH1wVOhtko6T0nmAg4Y1WFrHZhYmWp4SuZfRBfkHYDClUZaHqWzC
gwqq4bBYz+ZEuKV3tH9QppF3cDIdkidbyhZ68EKWfVZAKxpfUdwf2tkuEnSCkyS+hbSA1xu6cU4S
L7fXVGBuey8yrqWBY2uxrY/iSCpkSEsAHSXo0aGU2jNtnR8lZODDZV3NNuPKwBK5XsnUWCk0ATnV
pcI8CyJQhFktBYuY4oSrilI/0BO+WmcbipKkkFQaQlA4p0mUVdMdjWbDti+Wobm9ElBOks3aTzNB
/gmyLL2rQnmYPbSvYkMphXajfistyLI8lci8RVjOwSbhepKsTyRMItuRcjpRcZUcJYJItnUUHD2+
owHIQcXum3/V7oPJXZ5rrEqvbDsMqm6ea0m9GlFuooGQIYE7SUjzBs9SPHeZJnkeEauMZXNSlsSy
r4/8gMReuy5/9daj/+Np2eSWo5A3JacWXiU90zVlcJCtvokFRqMhl7b31jvWbR1pCvXzWs9rnWYs
qMpYbAsb9jMAn9d6XkuKdc1N65Muc/lO4ucbvqy1jhc6iTLiqBsyvDNjM/eFrsJsuvdcguJrP8vo
pJ5rP6KaNH0c+dtKGbXh2siWGhdhce5Ay4KomC0Ht09EI+ECShyuFdQV6Lvo8pC3CaGOkOn3IJOu
6TViy1k0dMT++oD0vP/n/T/v/wkwua0QuA/zpcYckLw3MxRb0b3nm37e/9nFsRBnRQLaGpt3/hmp
nvffZ/8jDyE8o8fz/p/3P3q/58p/0OhUZbgRZZeYNn8ubSAX0r0TnsRPGQqdGR4yJekED+wowsGg
UlYpij86jv064RJKyS2XTX5mJciqzYg99H98/73MG3lFkG0T3LqWZXvIs5Hu2jIuafg0Eda9cFvi
BKaN6gYae15Id7To0MJ1Wo4fo01pGUcEZiXpY87XgHjBIR4IU4Ssryxpp2Wy6wEU5YshAWeCyNbw
5FyVsK7RJAA1TLs9Y91LMqywWNa5DR7VZRhOm7V2q/zJW0dr6xSanmV6btMztJoEXjSyqpwwy/08
4DPAGStZJhUqc9zhcjKk3h4bmccOCHTA7SWmYv8uXBDdjih6/r3/qN0vaRVq0dsvp1eQa2GsUdFC
NphBCGR6dn/B0hpjZZBg28OLSlp6aeUNqEgK0s7TIJ4uTykJZr/E8b6Uu1tbDeUWQKCU+9L3p1Vo
W4Y7ctIdubulkKTJfs7FIsihSby6DL5BF2Kt32nFPM+pPzJr/6hspnf+Akf7ZkdtXwN1Co6EouIw
W97m6SY4lj2m04cXkVdBXku+VWD+wZBbmgqWlK70wsbINpPt/iAkMvUBkUi0MfkI1QIEtoNkjXzO
g4e8OvIZEUpFQ6CV6NCSUawcfUKbzNISZNbCuKjhIMvH04By1Mmj9mfWo8tv42wn2OOFvBF7OYZ1
Qgxcb3FT4AfHC/JBlIAFSxjp3ohzvI+ZXKFrbY1sqixs4vCvTfDj7BZfv2U/LgrfbmOqsyRp8B15
wf7wu3Ua3hEi/G61Yfy/8AmT9/6DRhjnbaX+1VO8ZTSiLY+BpdSZaI5lPSPQOBGoiTr/8iXQi2mn
0SNdv47Xy6O83E6tOEsAMmw+qCkHh7u6EjzKwFqlY7nbcDupC3ahS74iwaX1mlzlqVY7towM3iKE
qJWoS2OJcrK0Kz5g4FgUjpsITFA2HEnRGuYjuUtmoFZhOMpB2Ks2tXqUqpjHOrbtXi34ZQ6lhFF6
p5NrwcM6TPntI1Ck2bgD6VTn+GUrP4q6T/I7hc17J4LLak3dsLqfo1QMwtVCPGbRQTKk8yZN6SDq
PAQjckhVi5qyvPr4pNsYDTf+tlCeJps4l8/VGXsQBvZNJAMVeXDtAENYrEZZ/c5J2DIr3s+CI/AW
aSbVE5QP4qheERGEj3ZAkwNXwjoKc20ZPGjkfZiH1GFRsZtcj+i7TVQHq4d2Z7rYRNizrrvoaNYx
E88yf0FBOU0TIiJmCdMe+MeEFd5RwpuFGQH7FG5hiR1X+rKsoSik7DtWrQtbuMoeZKH10mAahHeC
mKje4XiEU7EvGnVGa1kczufwuEN0SbhCc7tMHWl+RGzAmEjIO25iFAPtDpgHIpc13iX8Tb6kZDwt
lbzC6YuOf5IxwZPsfoPjT5KGBK/gXi+oV8zs5NDY/ZYgU39Nd5kVXUF271lSQRTGgRbNX5Kf7GbJ
Uj/oFf5APytHyRpYPEe2WREehP57rJnweeb/pGuXt8koA5LmDZO8oFt988tPWnIXpCkxOUttESJp
y2zFReoRZi9rbUPPSH7toNLvVfnm1tDREf5qXThng44wcD+Yrjf51ybJadBv6acZGO7CRldusgPe
wd3hqmg1XLlLGOASHC2oDvF7FqRnxA6jI3bQ+yLEHM/8dKatEnLQbTIO4yxZ/hgF2TII8j2SXEdU
GFKmQ9PTyCdBnAlMest0pbPcIxiJpiF7vRkRO/zxuelSN/MkAawwA58XIXCHWGsfZQETzughF1+/
pxZwkN1+3gTfXZGnm+QLWYh8pUvRTzy6GKaf//2nz7J0i/OgyJHgqPIFxz4vGhgHaGB04wvnpMBu
DAlmP7o6LjAy6nc69AgYFVW9++Wnt1zZ+8iH6zJrElSaXU8OblGUyio4VWguTSWcVBTb05pEUsaU
fLH4pBGT0YbPdTYMHuA6QOAbWDowhlbQm6BCPQpIYzhYov6pblMCvuN6YwBKvQ52bqDIJUxe4n1g
oIMM0hjDxdRrRRdxMe2Uc9OxHMszmyrneiPl/EyXJ0W3EfFZAI2rfqbBWK5EfFmGNIvj8Wa72J/U
kz3d0AgFayzGtjIJ5knKSRz0OStlIdzFR3QsqmuFMQukizmJ4UjX5sG1T0rc/nqG0Ubp4vvd3tiU
/A79Sz+CU6hsV5eDLAQxVjT9dBXmmk52SGhkBhe+4K7Ows16HaRTGrjbxj9AH6yuS7+AOgbEIb5J
owNgt9L+pLEIyTvt6Crc4ccufajYQe6ni0I/f3XsRW40R62eZCEUqVIokh7cMSSaAuUvbtQjRLu7
V7sxgTDznHMBpxG1SPCjSrw/LMPGrNmN2UoSEdDB3Td1V77MwfUyxxwLidUjzBhITAaaNIZIB4Q1
JXRAGBsbUe2HNzrbv6OST/VgepZPVcSqt4al6Z3dKN5QIKKMzs6CjgLzKXlazIZIj482cEaWUI/g
FyNPd60lyIpUg3n5AJq2dhfjmWZs0Rr7m9Jzwat2ae+A7iN0rT6dacpTigeKbuEgaB9h6k4fSBy1
GqKfsW2GcR6kBEi3+nW4WqBb/IC1RRoEMZsYTz7Ct6IOYibCKu69aQmF4vvo1zftaHNlC5EkvvFj
QkSpNvGzcApn1DnnPzzYwonnfvc6/GEm/jSZAc1MHAt1MJcKrXjnQp0F6yCmWkJ1BcuTdIhsMyXf
MvJMuGKjSzp3FVVYvUJ2MlvWtN3BEEfKSAu5W5G2D/Cm+VxnpoAWt3IyeVnHqE1qLLjsgnbSmy7D
aLa/NhiKwLIok1mWu3rOskIMW8cFYrby4gxTx57tGG1z6I4qdo/qcmVl2H36r79/SGhFBwVPWYwL
3IzbRYURcoHF5AvcXcvsndMLHShIX2Z3x0LQwn0EfzKfs2x6n/FOwcweUxndCgCIrC5hrHY86/Dk
8jlXr90IdYHD3xNXz3lGZ7faNJxhbR0+BLD/1NQ9a5zQECrrneoutso6y+aMfMK2SjGniSrPiZjR
3ZECp6J42ab9VWC1kHufSBY0u9SVmLqpEYNdy5bJhugJ216hN5UC1NHgiVTz4oJQuaGIOoElnmuc
SVLJVPfPoe+eSyQ0bsovlI6wXMQeevpAeN7v834vXN49X94pzQj0hBrOVwWQGpUAtpJd5xnBR3ef
SR7Oi0hadsN7fkSEOwVxQH2GfraEs3fN56sc8X73L7WmDzvGvShSSo93kQppwMWCJnafdcgR73eL
E7TzsZ89xlMANS7JPfa1XOGRc52RYNEbDOhR57pfo+63SERTr4wuMdpxeeMBTSCjc0Jm4ZR+5KeP
YLSoSzHH5bm6xcRRzbnAti51BcDtaMolcDAcLMs4SPJlkK79RSAYeqM6o89zXdfwesZky/apEoKx
u8BizNC1HP+l0ShmKujgZJAHyiFp0EPbBWMhChSdSDQfrlETUvvkuuWCtFtatvane1vYJgYAVKSb
7VcHqWhOsORlns+rKWeNqve6HDBOYuZF4rNM+e8dO5QcZYtzrr37oLIVgf93qP00gU4jb4R9SiXI
NhPm/RBlU5iNksPGfegDLrL/jixDmCzV9oOUEAZtq8IbTYvHgzpGB3jA5gVgzzaKx/U5HnikLiW6
FybDamFWgAmW712YrNjJyHqoRK/Y699/+3hbr1w0GuFXe7RsmdzDuZKG1+tcTDjRXrcEyeZBmsIz
ATHqwDLL5uyr5C4ohv/V9Ia0jT5SopD4ZJU8oG5D+Bq60HwrArEMl5CIbjWmEEtEIWxWhgQKEWtH
O1iJBi/aVl+0vQ/jGe2aT7BXo00GohDmxq6nS6LOKj5ryyAijBOaPuG5agBKbUc+aOsYBdWtt4ll
rdgerq8qQzfMSzho2xUfHh76Lwoq7tlmvU7SXPOPzHiqK2ED4adwtglUFmLr/aVXnvDGw+L5BJbT
R7TwIvVZEAU5LN4tz5NJZQfn0cAUFmzbclBi/2zlmB7Qu2aoW08gfiQdsVqP1LRQ6mkpAseq8nam
cFMRjUY1fQsh0zLsPibcUZf7/Q3td7kvenjttrZtY8/OdUM/KrvY02lAlXlAnmdgt+99RcHCnz7e
zJLNhKjRImvAdnF/RkdbrfsMA8N4Q66LYEfMZ3qxPGuyfEmwGWwqdClvPOvwAdPrO3ygyd2J3Z4E
beTwOn51xT02ukF4upTtmufbj0AcdJGx62hDVqYDVwKfyJs7t5jIoCWTP4Op4DKwaY5L8JSn2B8g
A5+nRoIbXTzAIB6fcryxKvxCuwG3YjuqzXDTICzXdJzW0vfX1F+sfJkeKjlUgWEX5hn3I6BSbFrj
Ip7Llvf7jfHaExruUg64q6bavuL9BoAGlpblIuknZT9+1JI1S/2bJTHMRL4iHgJdCevMAbvSegnK
pCzqKmRKTbkptuShOUfuEzEbDyF16i3c9dSor0VvIKnbAFS3PNVY7dm2Z7recal3MXIZVWYuu92R
aRHkrOsUbwa84cJkRu45TR4zjf8WKNf6h0sO8QrEJWsQFReeIGh07tPRrnudqkOJ0ig8a+yacyFc
RFLF6UB//Gb26G8ZUFf5rqNKOWcmmHVsqVJPX3BbA0MSCQkDj5btybgQrmEGxO6rJsYo54a24boY
Y0fADXUJsnvvsshdFeg3T5OVFq/XW26YE4NuJc3xeiLD7hUtgNRNhAzbNsxO+XZPSslu6gH1sClJ
/RCE2PXLR/dTwoQ7KGCvk6WrXFAks0xvnDKLNZhLN2s69rKG0xuupQxooNfBsmRaMHTQPVGKgxnc
oF/h0UQODB33OZ6sPngDIlxDiBnwHJ4OkdUsmG7SMH/crqxl92E+XfJZ7OEddW1O0uQ+E2QKudhU
eEoRXiBjXNe2heJx+SsxtrQtZMnJGoG0Sxwe2EEJvINNCEFqSFlTKqE1ev4QAWTHcIi4RiJZjWS4
lcRq4gOQaOjKyge5WwDP7yTHwOezvqgvKwDCWOrzceX5lswk/mrzONOy5AgmUR/bl4h3smVdbDWi
dT+Q/yrdbOkbY/+NKehzazjINaWC3OhUNWyrrz4C817ZJKiMwJbob37GBkMJhlxISE7aZAJvMNYb
6bdO08wdtlCtFm+6HRbcsl3uK2RWZLEIMcdoL4BtW2/Q2+EqPGOf9CRHoT7gnJRc+6Djlj8xIm6X
eb7+/oa7rZZJln/vEvMa+nNWOi2Mv9jKQI67e7S6Lnghd3xE9lnR6qTUs8AIhi7zoo5WrMk3MF1D
/bpjvTa7bbtgDdGpRNWx7whZ7Y/SNLMU7mxhmz2At04Toj5kGdFXN1SxgHtnIFPK/VQWE9YxSFlO
VATdgY55cxHalIL5Smc0o75I5QGtbFfOCcD2kR1ZUVkA17ALCyb2gyt1lR6Fd2JICXtRNwqsnb6B
A9UGvGoHK1hI1IJgfGjV5Sj9l2IVakIZajieJ+kkewsB5Ui6HMdqGqyjog6X90Auoi2CDB6nNsPh
tJZZqyYiHUsHnbjQo2EMZZibctrNJTwxMtmwPTlrbif+1g7fNQysBJCvti1xWQlIf1FaYzky4zut
txxdUzW+mN24UzVSDgSEtGKQCiiyOojb6hxeXiMmxWpsOvW0DQ7jehy2usOdHVTjUXser6d3LEho
Nt0eiEsz3mjog+BqtiHK7CZNKbOGlAMbdz9QvPbXIVWk1kmcBdoyoEMqYLjpXRR0ABXCOE6m1ANx
R1s3gfkNXbiaOIkEA+p5F2OwXIHhMkOAMIKTLS3UNWFISiqXGKdimnWUkkuma6SbKMhqGSHClnke
fkG294nmSh11d+PcooVmcnov2+Mp30vzR/MJdXK8fYpWgHAJVvXcdsv8+ssnkJpnm9Wa23cVf4jT
7xx3PnUWpIU3Kb9PNIqaGcyYkJxb2VuVaHq5IB2VVlz1QzB/EmhEktBEptyHuh00jYgKeGG+DNOZ
Rg2MR3Ka5EvIG9ytqSkehdNHeJx2B+bLH54dEHQW5G/5x8BECQfJWKQ404aWDdJ2eoR3/LUJ0sf5
JmZ9BwuNtdhGJfO1ze1VUf4UcGs8Bohm3bZYfBDwPkVCOGYkXB/kfJFOSGWKgrAsAxu6IXfNrUKc
J+XnwtU9/UzWAORD7y9M+6V8tILxDq4cqYJiwsr+KG1IhzaJAS0Lj4/Gdp/n2PApkdcHr2q6rhad
oqg3mdv0qwVz/G77zVITeBs+YRGAoiNr8ZcHgQL+DMZz/lxX8GakDKc8CPXjsYZ6PjGlUGVaRxMj
1+149xNC4V+CGSvMopVM4uFKhonrZaA7HBz7npYVVtagPXKQPsxZLxygs2S6WVEHwCxZ+TDeYN0y
FO6gzuY1DLfD0iqlojI4CNxjvVjHTijRLFPWFUzUPNDrsc5B1wNgRXDCo6kjml7agnyGNQgufHFi
L3xIEr54Jbp/3oN3RzR/kmzyN5Eff9l+xiNnDznhoqEP6nlOF/ei6nyQLifcTRBMmfATnBdZjfJD
XOGBp0s/XlDFjsdolmGQ+ul0+UgpOhGWzJq2I+fce87p/WFR9BeI+Ce/oZUwENSDDwL+iKh7RIaA
zNRplKrffw/35GdB3U4M5FodU1+OsJ5nwhT5L1VPOO5w4LPn2rvCjJ+iZQ8PGcL6JXIHvOMoPnHL
3hB7gWeVOo7iqzcdw7MtS9wPgbb86NPKowtgioJU2gEF7mPsWE8MLHxz2WayFYAB7bpSBHkFie2u
BCDwYKuWh0SFrHIepCu7YSJ1Jn4WaLm/EJhFqIvHQFpksdOpKDuBT6P3kd/TKFxPEj+d7V6xiGxN
KxXH7GLbKUpqdIdIaux8YZHALle1KszSvD5IWSS4fSre/8piJjeTKJlQp3ymrfx8uiQadTSH6/ol
MfI9vs0W29cr4bwRU8Whp1+0VfgQzMq8P6Jkz4JMu/fTWFD+2WyWYR+BYnlEd3Z065RA6dzt1j2d
F3nv79LsyMXEM8EoMdt2xwyNDptr0of3qAlv/pDvmvB69H/Xedk+9WYd+WFcmWemG9Kxea9q8QCj
eQgmW8O9sVUrjY6FTI+Y4o20o9srjD8FucY9FuSNTC0Shhrv6F5Y2AIoIdQoNt/1uuL1Uiu2QTdQ
cWR08HWqSbsUHdDUESGQBeHfey8BF7qJkJSj9Kkucbun4bLYf/8lT4Pt1Sac3W6yIKXM5shT22fB
f36gWP4Lb/t881C22ivaQLPoB21EBOb+OtLW3UFauIOqHm4ooPxkNaFNr7ctW1n6SAgnbJmOSg7A
srjKwudq3zOs7M4524GHQCF7rEbByYtl01W1LJ1qvJE4N5NropTNZqP3koPkOQ45ba0cXG0Y7O78
KJz5eTCA9BOAqojudgeVIDxfZhcws7sccFUVFNjo4tQDcwCw3ByAk1C8DyYZhV1ei26NTHxPBMOi
lHMexmHGtIaaPrDNpp94pw22B7Liu/c///j+3baP8q7vcBG6Fjo1DKORzepJAHsd6nYBOxBcjcLJ
feqv/wQyAJHVqLeJ4Gq3aWqrIF8mcKUGchq1fusOyodVRIPzZZ/hOjRuJJmEZz3ODShPzUq94KMf
rsfrWU4syjOnG6xKfkQ0gSNuZFRUrkaLNj3pbs1X5c+C2W2eboIulRnS7ryOhrpoI+0GZ7qOYequ
fv16wUfadGu/PAhy4KeKHLNg7pPFGXKEfBZaXW7jkU4wCOyNrwj2NQRpNOrw53W1TA5EO8GBIM21
uR9GgJmiD48DThcc6LDoCSRASL52w9cL7wJa6kB7EWo63AkWIwkKB3MSxsmuWnSa+tkS9n9b8slO
sPwpdhslizDuqMS1yJDjjeg7kNkwcs+TotQKchQB48ztg2/ct0YTGbQ8DReLIM0YgsPpkKbeQ8OM
k2wzXbJy1MMyv+Z2oODJvIvHdo48nPylK2TLwXSZlMkxREzQ8drZMtlEsz/STXwbJ9d/nSrkPLVC
kWH0Z3Y9zda3TPZfYf3bK+MN+bZbmbx5QWfYv+A/oP/Yi0qmo90D2tRZUDLBOpg3ixH2ZsO4e0Pu
PvwBsSE7RsEfBuEOY0NDId75vi8V9dojBdzyGWHVSOGZtmViITbImLDkDpuR6wmX2yqjOzWBzh9g
GUk0dAKxBMv6KvD/SnckkwB4zZUbAMwAZCu/5FdIxjWPjtB6MyET7oTiqLgQkNqwpWyp6p1LX2yV
bLKA6KegKmp3sfFaLFc9n/QFxTUDBkKK6cfVTdf1XJFVw8JfRfd9IBLGPip+1dZl5Zjv8bUg8h9Z
mg8LR71i74mStcoWt8Y17dB0W0W/swmWxyBTKFmM11vhIlmO1GJkBf874WT741dHGg/Bqa3u7cDb
wFfcJ9V0sLq1KnfZe7XH2F+F07JbXfmW9QRk3XrJTuAERaJzthMT3DsIaj8nBuIhw+x1yCBNk9TU
TZrsHk6b+N6eHptuooSWcDo0MKhTR4Gpd0ae/D2g7kvmyFuUY3QFZz5ZeACGuE3Cqum1Z/U0H1Vh
EATPRSJMyHAd1aaKizzbsm0BDdstiPhCaLi276WfZeHiZAtXV82q9U03TSQH20qnqEi9x+oZY4WA
xb4QUc+HVtwR3e6FSSl7pEUkL+hP8M5bXeGW8p1Bs806okMyiVJSMjU4a86RvjSl2G2jJRayWSdp
TnXqR2JbzuBELF3tPmDishVzPFN3LGQjt+n8ed0r5s+fz4nOgFY20SGXt19WXzMppFHdSBMGzAV+
QPtGvmKvf//t422SL4N0LeiBgjxbKRTg5AZ8iUojOxZnVxkRAPmPxeCwOipxesrWeZEEqvkx4ce0
lbfY2aMPd+Kay7WROXZ9TjFQ2zE5z3Bt10VNmRyuZ3JD8bg9pPjMXfh1VGBj4ykQfHnSukRKr5/y
N0/Se1rcTYfiTAl6BpGg/Zp8860YGZBOD6RWqYlMHrVCNQMlmIFkSbAKAAorlqG6H8aikUqu6g2A
7L0Ls2s03APu+YCQ1U/T482mCjNm6+0TTdY+cn1ti9farNm6Ho63GbKGWvmaf36LjkryUJerVdPY
wBtkWotkbpGRrQhm1Ji6BBxmvUNOtBdwe+lEogLHvcreh3nSrbK3SeZeQquBGJiLLh9AVN5BX7F+
In/OxumVWGsL3uYCHlJkqyS12o6sCp1BPEOcddMBPV4SmNiumzcs+XTHksQqq+uJxiZ6ylY8lfLe
h1MdlwPPgpgqb7RpZPGTMGZlmrw4FM57NMZ99Ke6VmNWUGODdGIFz5f3vNbzWoPzanHbDMq1oZYZ
7jNMn4VAIQS2C9dIA2zr4z5t93byzbRWVtfYcRKjd6YuYnUNxE8ZxnuhVdqvopimBDvNdLVK5yrI
fdrfkyqck2QGpnI5rjcQN91tp4ys1+0Ln5hw0dooLcshabbZedLAELXlPc+4/uhnOQ0mh/MwmNVY
9C5fklv0Eix3sdEnMPkMWY4iQZNZR1dgrhd9+qnvI8vTzZTcQ53l3qz1pAwqXPus1W/GfoPNseH7
kpYg1kRsCI1tR9F651PfAIbT5gqQK+cKek2nl4D7tcqJcz7cZxo25DXWLTlsB073te0+nLO4THA0
g2nKxBcBnWL70pAyLGV9RhQ3YTdQR2VJYebHs0lC+7fSmDI4h8qWgHPF6Jh8GcyL7gt/+nd+kXA8
S0B09BTUUp4em6f3MWPzZF3QOoInObtyHGAl187IOgJqQJbUlQQHcmxFV1SXpOVgRYvON1HExg4T
FI1mUxZsr0GVJrkjWD+JKliQNtDn6RCqiKMJSOpK8IGMJokhx6s0urXmF4acIUDaUFa0Putif+Tj
YipumYP0Js1Gjtdv2EMVmV6ThKYGeG/As3ibDLFqdUlGHxbZBu/BA7mSqUtwHkVIF//JmlCVfcEK
gV1nM9r4co+77yH5k/UqFFVtOvpQsK6zUUw5hGgKCHGAM+aP0YlGya5kdDKHkoKmNG7QGmspVCGk
tYaA5UCciGFOnZZo25d82obstlMh2emOOrRKg/ckwNZxYpTdhyI3a1ryV6QDgr5ty1IMzVKJWiQJ
7O5u1OGyAeYcnLVqWLtylNFNzD7xJ1Gwd31VM94cCKx7dr0geRd7lhL4bgdnZHmgCtjyr/SoMwh5
DKzSe0NhS0eO1ojEh+CWdTKhi120bQuYsxb0Ey5iy8FpwcM0YG5duEOD5Sk77b7qpN0v6cy9aZTQ
MWLFJuHyeluSnvM0qO/JkEiJpWx2YDmKi8bzi3mWYeynFFvJ55kQWz29+8I7APK13vm5/zIL84dK
SamnxLBoZk8Ynttj7WbjKU5LQMNw+ihRLM0DTndWYF4cgjbP03CyyeuBbMmhRH5OofOmw1FZmoy2
P9GenZgnxCSLu8oajmt4/Zcp8nICqNDGM6UfZLU2K7XU2DXN/svw96zFMWBeuoMhX52MN92hdpHE
Gt0A3CXdUbuLOgi48pWOQ55W7wD0FHo4jnhrtSfScffoSljFUQ2bOoddl0m6jVoHYtY6EHeYka3m
KuKkYR/vAe6HM60TpQm2Y4+RPQ7vqum9Yk1qovDi5OcuiVJoUBcdFyiDzxO6tQUrUp7T8sOabqeo
UQ14Q+DUggROY5WFd6fOLohkY4yknb4taoAbMk3Ft1H2pppGIZ1xCCsI7kBA6Viq0QMAIBba+Eme
N4xZHzu49YQu3dakifPczBQMXzQHgHJ5ZnBsbhf2L71cuuNlHjeVo46UOdEh4EpUcwgKFm+pCn0T
DwcZKmtPpQlb2DsHhHZbA2CkWiVCugwlTMKtiBixZ3lKVTT111F6HDfxdiIt0z5Y46w8KTtg0L5y
21G1gtGmvayN+rtpk0/fyWKvOl7ZiZm7d3/eMdWFtngKBsqHUM+E4KjiRK/cmtaXIlRYXKyUTtoB
pMtOqmV3YN1X8Wtw4r43RqN4ePdqqxXqWkIJL2uAllAN+OjKZ31dy6nsHRhqH2GnaDjgaNZresd+
ltMgamUEiNNHnZr5uf/7bx/3jYl5mqw0+jnzW5JzEwM/4O3XGCLUGdGO6XRiSuU2DrwK+4tu98Nb
SyVpTXta1ClVZ7sX9tyfd8odcx8+5BQMx4214VlfRi9f5X5lTKbdpwmR1QUQ0qDIdgPn0DJEtJDE
k+9x63A2i8puPPuAAJGgl6u/0kZMe/fLTz/S4ivqWRIu6iFPyclzP10E+ckzY2RLYjmyuqj1Q7GT
Q28HR+t+HoR9uIY7NK6gFpfm0AXjgdks79nG3DogvrvWpSBcI4a6JNIVZqdYBt6lAWuOXzQQhR3S
uiWXb1GlCE6EcE0JZ9p2QxWhiNuzHKFLew4lVEoZsIguLc9RjJrwjF/nEhxGg/V/6Y9m8zCltWV+
mj8WKMYNX+0hIyLhASqalYrcovVfkvWPWa9uD6XkMqf+TKtRdQ27FyIukq09x1qVa6K5C46lK6Kz
E4LONjx1XKyqaphunxy8+2WYB1G4V3kKHsm1JXEPZnyTuyuvkSoVsAmuS8m9A87Xo+1CiyMy+T0j
Zpe2icnr6ZIm4sJ6miNfivPhfg90xk6Yl9T6+uPHX/4Bz9CQU+wYrNb541HHiYb9mk/SQ74M09kh
u2NpMGwKGj2dkOV4DlapCGebSVkAr0XBnWiegG1I134LhaP9fffL46iwRralwvcrDuraqF/+RjE2
jLMNv4ADHWRJLmAVZhmzhXYZHXDTXauhHOTTLM/GlJmxuZ/9DtfS2HJaKwDLSaw0b0XJ1HlILldY
iIJdfRhaJphU/RRuxuB5A/FvsuX/BU+3cgfnLcK9GPoFkRh1ifr5JhUOAzF1iRS2v5qIwJqcCfVG
b1gzbxRFFi2+S6OlWzh4R5CH/FbZtYyr0Qy7dr4Usp2ZQBG0GnUHQD2Yjshga1SEglo7aAF5WSM2
UaOYOmqG5jCSG64EAO9Z5WJQQ7YpNmsZBurAtuBq6F6nBNj0khgUx3wRdvi4PW5QyESELMTpBM9h
+C/sUaIKXH6gvK2rfUSxSs64J+5hB2ijcv4uuMqTF47FK50wCTYz6cMMHpbp1mdfl0mDDcccWBLQ
qoZFkL/e1iTd+dFG0IQRW2rlAWxDOlJoGLwCASFbrrIla7QAHZlSlu3TfrLm9uoLY/KU6qrsIsH4
womcQTSwciqbgmrVKIzUoRPuZTC2u+040dbsFVwX7SkQE0eVcSf8v8hpVBjeRtXYZLngWm3DHoJL
vFLFJpqjU3/ewWmYKPp06kEa/LURROiQbrUDKucWZ9JtYCop+3sQrkAI5kStq2npZ+BW2Z68h1mW
1wG3qwMi19GGJm1XkgRs3ZNLpnwCGOy3Mjuste/8JBjLUvqK5EVB2yk6pl62McVCXsVwM1FMGzUL
qYqWp/EZav8yxvsfnz6zDKafkxktTZ8SdP6i+bPZezpK7WPxmwJvjSXx9D1zS06edW9Vakn+g5gB
bzZ5LnB86uem0J8/yZM/dcDg6WtvmXHdGRVM3EFd57kHXIWkY0vofOJllLFiTKoZgLY9MuwLcF8A
is2+g/vAFoadUMiRzCvLXCDxdBLHsM6N8wTvBOAwlbK7bJmkOdmigM15qnwRjNUf3oyY53u2OowU
J3HvnMbTpR/DqR/I8QxFchAATk2Np9XLpd6FO9ZhjtlLz5RFUAJB4nb0AzfPUSrMtrosOdezZdH1
P3/6+ANR2n7jZkYzBQab3jlICvQB6r2iAnVaziFkBJmtgyFq2NoB6RnmAOZaTY8X05QsjIOYMLVU
SBWWYSLFtMk3EtRpQM3yxzvy0g7Uani2Ghmzdxvi5H67DwocukAOZnuto8ejUKipm/9mWPY5CLLO
n+n2is42oML4REN3NCSrPuVydA1DkeCqV0UNyZ5OntRMtClBcMJxzoGHJz1Vnm4PxpvqLsRwjXPD
R6DeeaY0zSqMaYLYHWsTnAmTGhxbMmbSNwEvvIKFsnd20AvMVYyU69Zb+X0q/99zTbmUAmEEz82Q
z7brHIUHCMI9KnUFv97lb+NUY8VgukzKPuPMf7aOXnFf/C19+72/pjkP3L/9oN0Hky9hYVDHQZ5N
/XXwXZQswjmt/glmtGXA7a+vP336H6wjIx0jVdN/EXfx7fPN7Ud5V0QH1/jHtMx9QTTBij/YRF4n
4mqFy4L8xF5iZ1C3tzQGB8sXjAxpHrlS12oTejB7sbUT6mCjCgPsIfUKcY1RasnRQCv+AnoXcP8n
BfI9gwvJVCmdhKvEwX0dgzYdU51i2QHRDc8YAs8363WQTv0MBIrbpHFCp+7DBus+jLp0H+7CWWpN
K1NiNjZdmxUDCRJampUwdUo+ZHD3s8d4Wg6hA/tvSFbWaf01T5rR1ilRSVmWH+v+I0jYwQNgNXhy
xx6MvmsNxxMNjzupouJbqGF52LTOgPfkwkQ/g6kTG5elOX94/eNHpjjvRLpYd1YYaj7lyPKcPte/
Ch+C2dtihgTrPEtUFj/+om0nlJ+oFXWwLp8TJXdBmoYi29xQmvx1IvPLMI3hqQ0U6h1DDI1acZQX
IHSnN5tj08ZcrGb5WR3U8+NsSfZey8LVJvLzJGU9MTZx+Ncm+HF2a9u6i5FrXH/0CSdYJbNwHgaz
28+b4DtC6sgkX8hy5CtdkH7iMUVJJy///tPnijkxGF5w3nti1h62DdVkUjuMBUtnC6BRg3t5ZA7Y
357Tbldnss8Ta6SbNUpq6IhfJ0ROs6ZD7TCLJ6hrsyTIiOGca/58TjFN6JZETh/84qWEP7A+xcWb
omsxz1kR5K4ZlisL1wjpTMrIlVi1c2x73AseVX0cwHUvnzgNaQ8rUStopJsKVMMFVfVTbfK4po0c
aR0gkQQC8nUcTx028R4fYB95S8G518Rm0WgmZhCT1eF6NbMXBR/g1S4E21RhNHSFhsAiYX2OqDnA
QVH1y+KW6FapbKrfQebfBeXa1TInTbURJFzZMj3pEvmX+/jXwk59F3ABkoBeMM/r4n0sGpiQIxbJ
g39mx+1ZtUlAI2yaaAIPdm0lYrNq/paCtF4tQ4aC0pWC6MtBzAVJhnBWNJZ8DycvQP8qqc1yBsK7
ZrGOZu3W29w77eap6XQechLPMsGwU9WoTpvLi1DdtiyllsFeMYDIM4eMi8L90/eNa+/b1IfGeXh+
g3cGHRajs/Ea25Fsa5eNw0664rDhStcji2uuNVP6lV+e0NcFngZsK8pehaAt9LuZuq6ap5Ifafsd
d+CySX0Y3ioOgUnsF1DPbE5mkjquLGQUs5tXPcsbR6NWnSA+VrYLk580jGMGObvaIlGpzlztx2rq
matgirJateX49KIWWsp5nTC0gE01EF+nSZ6IekM6hsyuWpUl61JWdL3TyuJ+aUUZfFDTJM3tW+7n
T4KX63hRHfnaz/FfbRvDu+I8AMpHj3XCLIlot+F/JGk0u/GjLZcvwu6CsViu3blKeneiZURHY/EK
acLnk8UfZOng4eXK2LjVKgWpQq6mRUvLIUCeKxlnqZcWji+fz4b39F4tKPauvNqMQkPAiu6J0XPN
blqYfH505U3mLCHblIzx1GT/RCsz4mmAX+aVwXCGY6M+Prt1kuU/kXMRSO8ZFQGxWbV4QwhdrNS6
uqtI8GwE82bcIZR5WH+3FXFPLu4E3FNme9Bt2vd8E7P2x4y+kvVmrW3lnzh8aOqKrTly5zWNABzv
q3SKekghMzEAZqJbrmmeT4SeMh31XjGZA04XRIQWCN4l6Uyg8blYkjQrJlHA4Q1LGl+ZJLPHE/pY
P1NhH377Fb3Tu2rQkLZ67sIv4DXop9qKf6xFddnjBj6DCqJIJiVx9MgJhxv8wOrIluZQDGP2ORHG
m1mYaHxC0snotN1F424McAx6by9UFsDUKrawDUOyXb8NTZz0Uxu9KrH2aTiM7/wonJXNyOkYrftM
Cx6mwVo4gsFw3cuKQzbGZwPOkrLl+0MPPYWMf+YJ8xbCTdZ0NdodiHI1SbKmPPpieUyce93TT7Rp
tmZ7eliCogNbpq6UkxevabiATZOB+0AbtiWjJWX5yToFhonjhuOnO3glmD2REqx7pPjWwLBwDKnH
TaDB423jyk1Pu99fPYzplIVicv2xYgvnlFmSeOyeWs14TZaHUWnCi613x8MSGobGiUbtt2DXPe10
C1FsqqQzuHRVH6yHojytd/9e9xVgerMC9Vf3pEqvDrfrdAR1T5fcyamQGGF12hRcZtarvrKBNBOU
MViSUGB7+RyogPGBvkqnjKE23gjZYXCKGjpH2g4eQFEU9yTDEuU4LZuomYqEXDmtL9QE/vYlRqHr
b2JeBELY4IQOMcyIou0vYMe9Mp8F1W6Zy4I3FalJ9dNVuBmr2Shtm1K6SF2yBtNOZfXa2+PZ4Yr5
xRJ/pu33sd3E7KOlH88iGMkdrDJauKC0xbT/bL3HT19R8r6VjE+dTMejOd+rtSlxGsShAOcF8sGd
aG7oGbSm4ESShSUZoFi3/w0PWsqiCtmwM2RFjJIjaJKUxEash/DAaA1zIAuZCtAMebhtHOvyspqV
4IVrqbgPGzmOrMDMFseYtnyEaMw8TQVMFveqrzipce06twt9Pj0rgWuM0BO5ejJ7r1TXrJUjSJ4M
LXq3zQiSpckjrND08S0RRfI1MbqI0Xvjx4TYUiYtyXVq9+Tnu5Nj2PfjKVeqwzgK42BPnMMZuE1I
DatQrU+mftv1aZT49MUcscPd5WzigDWmmR32368kgjfyWmBFDA6fzxuCG/A13tupxmmMke31WKuf
58Vp1OEXnzOzAHdh3RuRtLJ6rNiUl5U8hZkmPONvuvR7zDzCjXj5LJy9jQI/5e0Xf2F9UgR+W08e
y6iHBLPRupf/416svZ6nY9fqBIXmfrfa/DvX0xVSfRizLjnMlKgG75Ddh/DgFJcpa4NbVzDnXig3
P6aybO3n0+V7kd8BmR4+Hz9HrlyWGtPXRIDlMAu3G7UW7UrGcE5BN32np1vnZDBMb9TSoyGOlWaP
SOszrD5iQxx9Z1kGoBFgdgJ6TX3QNlJQ48kwLeMyWUbfcJghH5VOZLEiU/pxMz+eTZIH3smwqKJl
MoIGwksfPv3TNIm6lz12vYJid8zrU7y+PdjpFdaL9yz/hOnv1YBWhx0S/YkqzFPydJrDnGk+FZ/k
XcAcftMkZY0PCtMcbi8gmcsXTfUIn/+1dED8ModDeDrufuT9noiNDq8lm5xqUWK3seGcBW/hYSJo
SNDwqTvimR0GUqPegrhSo+cOii+8NUiNmHYde8j95MswrXMNu5YSTl+TAY3NczJVKQw0i27WtJte
4a3O/DkV4+KZtMjxhrb6YVt/KBlbG463XFm2X32uzRQupm0W6GuG8gzUgj5ArqlERNYSF/Z6ufKO
teWa0nlPLXPfhSGEfN0xvW6ku+coFBFxXc6hLg17/PiR1u4dT000jWGoFE41RKocMzI6YjaD6yJK
Jn6k3flp6E8igb2hO32xZ4ssDI3KSoxDa8rQcRc7jj+RO+637YCDhzDLj5HF8JQhC2+SUsvKzc5A
nAcpMb4MHcEDCSVcznYFTtWVi0H9DOwqg+ZBanJNdMxCWBcytk297/lijm5acU4gb8F21WJG9wzA
ZlTMs1BOeA30PofsUgkwnOoOXKnnSHaC1bnbehK2IY+wFTdO6UYDLdxIWCI3MwTczFDqLhSbVXmy
bTVBrkSZy+oEi6gxN7saeIOx2mOs3m/EV4iUHYBpHDdewFXbjiFZntEgSANp5hqy2VJhD+RLnyhX
QUrsglVWhQUIBH2Q+PpekOb33z6CRK9QMWvgCdQd6Wr8rre9WEJauiU7THOM+nVTwAzbHgETlMHw
hIUAp/P/kYM7Cu+7IA3nROPPIi2IqeU0A2JDveKtLbw34ks2kCKdr+gNecjx6ChZ2PHvSZNj+9mX
smNkYL7tLIgCws+omQlcMXaR/DueEG0Aro7vkojTIG/9KItYMArZVCS5ufFOuNU2tbmREEf9OPcp
ucH7dojlBrIMSXfBQtu/wvilqVEXVJbsH2/qbnFTzqRkSJeF/xJgt62fRSZ9YtqJZFG0P2Y5oGO6
ivstqhZ6CC2MDYUKywnXo46VcHLZMTC5jgTpTIarw/Sis4IUVws6JQ8eCG3Kt1XgUiS7F8bvFP0o
jL/QAtwQPpBlSBYkRYZ+0Z273upxTEsSXR+eFy4msqSrX/wSq2miFnLQwP49uZJpTzAVF7nXQEfQ
tMm5gBMPeo2HHDberCa0+5V0p4+Y6tnpJGatEeXhaKb8W6ZLfKTjo6TEjw6XWKRBEH/6a0OkxEvy
k0oQRzYvTsM7WiE+oW3hBFoRsjplAbRTu2QHqOXFBNo6nOAMA1saUTXJLTCQrazOq766C6Mnpy0d
QaJQnqi2tI5eZctkE83+SDfx7WOQXf91S71939/cbDfxvavregsjgZeg/JmxUe7lbKHVQjTKvVmX
lAb3zfqVsJlZRXhEWIZkdGnRuAqz6TEnZaWC3Chh72/R9Spb3P76+tOn6xk56y2qTEhTpQrTCdG1
3lK7X34xxHkJ/U4JmBt57eX5rwrLs9Y36xgdAM1ueEJMR4o3WZBrfhT6maDnoLxCtj0Fzg/BmF4X
hSYWaojUxUjonr3+/bePt6e1cKyjr1PxOKL5Km5Qyi8+uZ0nycRPKz4/T/Gyrmt5f6DBl/3x0y9/
YB3j76g0jQKCRd/dBWlG8O1Wl+Hnaw0D7SwwgKGPLMUrb/I5kaeV4TW6PK5UqDQnggRmF39j25P+
IeWcrRHqW3QWWib3ep6F0Vmg/L2Uw55bAW/NOkGAI0umI2GRiGZGGJYl2biiQR5tq4BT9eKv2yvj
Lf2E4DP97PaF0K640lHN87dPvXlxZbyvKGKOvJOwpOyt+VIJBMsPGTCvQn0VeZfi6rbIqElDxg4r
a5DkRqr5HRF0BO5IRmeXdrZ3cdWMQKQY2tugBzO3WTSOUNy3V8Yb8m33K0Lr2/SGybDgvRngGjWV
IctDIFXWtlQoTGK3lunYchzuyYplof65XlSSXm0k3aEiLjYzsaEuB2vpr1kfApgzSvPoUgcG68E2
VI3KlvGfmIxjmyq9RZQdnK7is6QGN8r8FBq4hTUTUyJB0hyg027mjn6izWQSBdqM0LwmLszDti4n
ptivB/RY3dXnzY9j91jwg5oqNWQjeSkbNHnzVJVJf0fV4aFqq6qQ1zGoyNPKtHBWRJyDeEbJbbsJ
0JFpIaWGRymomqhXJ4wNwNDo6Z8k77QNefwsmGca22bVS2n0kjYnjlRr3yCVhfK8NVyZkVUNOlHV
tUjgESmq/eRwnw3GyX4kS/oWCY7kFHX9WbLOf05mhP2mfrYEm1zormzNrrZdX7++S7DuU2Sm1Cf2
d/bVT/2Y6Bva2qcdvOKy5ek0DWirCD8SWyGuxIpgQuTp34MsJ8d9L9QMkOfZKqM6Sb4M0rXI5vLs
Yaw+fttwP0IpDJWSDsBH+xXO1wQ74bQ/R7WeDnf8dy9P9SNnvCGGK82SJkS65OgSESFOdYcsEjA+
3KsOZNgsG5jtlXkQtc6+LkFrCtA9M2EPtJHPNDJwpS7SXtGIQAlcpqbrKepX7rHNsC4A689muyHz
YR6s4EYFthzCSDb5adowLGuAI75CMg55gkgelmmDBPpe7i2ItW9EfYNNScjDNC3miG6EPpaupttN
XYNebBpeR+5DO67wqE+1P6tlDgLBKnZ2SXY6ZKXbY5EXx445Y1zhM71P+KzXnWvz+xkAIGz3fCwG
HmpgBSlXFV297KnHBxFI01whpE6DdeRPg6ZC5VCY8m2CS+uHS1NfK5EgBw0e+Cte876gLX+oBqjd
L8OoHP5a/BU0tBFj62wpqsQYl5yh2j5kJj9hlXpmMIxrRkdK2qTRozZJCX5lGhtrIVAFLUsfApsB
/eEy29ucYLJN7rSL3XYomxiN0I7hNKb91+3/7/8vgVV2GYmtAIBpQO7wUVOXi3HS3i6HzGfUU+tv
ImH0WGZNRDH35lRJviRaba6LGh0VhHKSDoF0CHfvQkaX0OLDKqLcPw3+2hDUvClU+DLhnyDUOiHW
BLcPJwncbgqhXg4bIQc3pHLwkKApoY11zkfG7aTWqytsX2EDOZZLRFZVNVWMIVVObgzASQWwRXJN
wSyIiNAQlEARZVmpn6+up6+DVTaHXxEmF66jrbHIjMRqhMiyeiPXl2C2RShx3oPbw3iL7gLCdKZJ
EYykiV53sA/ccD0VXECEqP1M+qO5HXtW/RZnhbZ9v07MA6dKgmKRcKPP4Sqg/rD5JhZSqI06alab
fO4ytxvcJcXt52FbBbm/bd9aU9SP5AiKq3foyjWv3ulXb3T21WNf3zDR8cG5em9dvfdur96/vXr/
nryqDJiUThTTZbAKamnR6JLNBcbC9mENe747nO8+mPjpdEk2XwiNYnpnlj9GQbYMiKwUxmwN56Lr
SfeP66/XLLGEN3aG0+XsdsPW9iC7OyurKFrSsXo7AAP+IDk9wYuz7THUJse0XJl9Kc6xh1N8lmfP
gVeMsTx2WNPtoEs71T18KiNTrBlQbVYSsQfMXksdDvcEFgWcmUZP7F35cTinq4HoUv60oqpLwdrB
1m4J44pp0hvK1bRLQzd7Nb9V8Oy2UMIS9LW2axpnWNNU7zaqdVvTtPI05JlHt3M/yoLrE2llW8l3
/dftFf6wfTp7XeY2LtdXxodNGl0Z76gr5Mp4TX5M/m3/mHxCHeLko3L35CW4/6M1RAo9HoA/vrLO
gCG2siKvrYBjvXOLcQ1Z4y5xri0vHe2efiUH32QC29Q0zxDO7JyYC4YxUSdcmZPLupkXmrVG3xUh
sDL4BY+jx7IVariDhX3BdgNkCKqu9zhu0Qnrro5iqwHU1B1nEGuh+9qGVAgrTGs9Zd8jz2t/3BV5
oH9zF86ChHmCiTwuXYiCPr71WGQoLuc5//NBCwDS/JuqtIZCddlo3whz21CZVa2d6odpdMKGRo0c
2fqn2jh2kxWDarbb7V2iZmtUNIdFRJ6hv8Rsps2vRPGLsjf+7HW6yOAupn2o7nQirEDZFCcaN5pb
YTTz4NS1mTB6HPtkvCwLork24UElTTDay+u1g31xW8yVe1hFLx+A8JzRF412ld0xnUDix9N9NU6Y
ac3GsjVSfxutTj79EhItmP6Qr7j00xjss4qMRmG604z9gUOYANiG/YASD7eI/qCn+oNOQjyE9SpJ
g5syuJQ1o2vTdbuxfkWZoN3tJ3s4GG/iEPTm264x8CaqKO0h6xJqamQBIQ8jKHprWx3EA9MAj0uQ
tSxcbYgBkbA5Vq8I1P/aBD/Obm1bdzFyjeuPPmExK6Jpz8Ngdvt5E3xHdQWTfCHLka90QfqJR5dE
RPDrf//pcyWfrgcb2jdUqSjZDcCMAv9LbUtcZGBbpnRZE40qFEVIPaODotKwUgeZnmvLUwhO93jA
Uo7SKSvRaGdkH9xLXcqK5/VcNozjZEqLkO9CIoJW8CKdeENGNaScuUGzm+XjJLzxoyBltWiHZc8Q
2nVZU1GhmNE/X1W2Ntola31rzMjoq1ykqVNVuFuaegtPCOXgMcH/20PX+svV2rym/VVu2Z/dkLcH
+qndxUbfF2lEUv5Iy7bxux8+/wSOv3NNXSIjhjNvPV0S8U2K2TTZ0v9SU+tvO/pwxhOWbzw1iYY0
KYq1+lvog5tWxvQo/CQ0olzd0G2JK6QBm01TZX6W7Z7DBSGuzCXm4znsutPMBCHP6EJ6ZzYCqpPi
WXHIJo1OCR7IEjePIdO0Q7fSXR1XBXbcVCtTxXSRaRFzpZ2pYmCRqdJPS6y5ocJXIuv5UAWmZUp2
+Fhw9xeJkpYYI7tBBftzIWBHLXJ62UHqe7K0F7dZyY2bJx+caA/c3qvFUpRzf0Ghwaf3dTLAr/mg
WG1Omxax375l8QTjLZczV8Z7Ztr8+yeevEjb/7wld/02mQX/rj9Y7nfki8G+fPPN/yR/drP9u05t
UTshYbBawwVRZkffT4M1Y9beYRqGoI3nYnUOFDbGPBUYl10ofd/rUJatFOkb6b2fsoqzVFA/5xmt
+K9AeLVD4AMAXDcQfM2oCKCEK2x3pQURKXQUsIprvd2vxGruhKoZG4CCsAvF/13c0ckO8Jgw9tNH
TdRY1TPw5enQXe2dnYitCbnaF6aoKtD1RUTcaoi3Gp4kdI0Y3SfKgrdJ5PK2/Qad90SrzVmCR5Df
J+kXuADNkEa1afIliDVa7wZqfq5KzU+m9larvFntXAu//vIJILZTF1VlOZ3c2HItZCSJWo78r582
k1MuWAtLMz0RPL7u8uQJTIKbOdEIg9nrVbKJc82fEwLRplGSMctssslA48BwDVeOll70hhY3hDZM
SwL5MOqPiXZH1gwAeJpPJmGmje/xNCEhbNtIzk3vzVRYLzV+72VGybRkngHnuTf//PTphtrE0y1b
DY52NgL3X2/m1hVX5XnVJDm8Wjl+GjUfdS0pKg1huDQvVCNWTZxTFTSFp2oY1jn0c8nxCOkqL5Sn
OhIjPDs8jWkaKq3wXhGQQkXbs5S2fpvChKrH2OtpsiIcfHab5X66yzDQiq5DdOZvf94IyuYk+RJS
PeBPcRsas1/WURPrR5rJo+BKCOwrF3JNW3fcThZ/FH3fgbFI2ig2vwgaYROyJOmadNdBSpQSpl5O
6XABsg2ysp8lgjnNeBSAmkaBn6oivDFaBeVN7W0KvLNquiZ2vZEmT+27RadUIeZdReEZO4YU9WPX
ySomvDsWNXxwDV25NQd3lre72D0FblAcrC1Mw24nw6aCerQPd9lKD2oA68hYhH/CzxPMDqYzfklC
V0srrMlQs+zxOlhW6G8ahZS9CbEBoY75AH0DraCacc2zQvnPSs8cTeyldQdUdyY8OLy7vcL4E5Fi
b9mvkTfkp4VOQX+0W+QzWZ3/0u2H1z9+5L95U3XWGfrloOzxIvUIi6QdjAi/9JE7bVnDV/r2ljb1
8j6wZl+8zZfLvmL21WKfHzf6sHQZOyL89iQRNRtipsZioQOlJPeIVhQ3BGmTJoQetiHQCEEXQ9Z8
URMHaQKNqx2TgDYc1JJ1AKuJnU47Zr1r64BN4lWQZXQ+pzA117EspRYYMTo1npTMW+fB5piuWPME
YFFRCx3LVRzVRNdv2Y+L1K3blf+gkQ3d6hICljX438BUMnAXNDjqX/zPnz7+QN7+xt++f6C5A6Jy
I1d3eq+3X28yD+Mwp0wmWR9x8FEkeyIw2VNejElOemMzpsI/gBv7GpIyDrMoud/ac1QkzoLIf7zF
ll5pr6uecxQHrpaa6U4PLb5QO2bJdMMcB9uZsPyiQfi6/XLM9qZRM9063axpW4jJ49Z9ARdvGJJh
vDVsifZVpvXBKawGUna98Caql+zq1gi0P0UO629l+KqPMDpc0bKNT+IZxGavLj6NT1uJRZpSpapw
yjhCyLpgReKUbsd9U1FI3WvEYKQqPdyvwjItiT6OQ6yq3K7ldEn8rWUVcbKnM1LO/BhPiREhShBs
IcybHVKbhcwdF+e/MEEPFFwZXfHsoRgVkDANLdOIiQuyft0cQHOSAY6uqUHNluY/RJB0QFKZCpHM
ZXMkLQ7u60v2MbKVSUcR8led6UZ3LNzTZQ/xEfJkWopvFwNn65K80u5o8lqK7cwBQ1ZeRjHdYpeJ
8WemHU4xLFwrokgIlnNrdHDZQ0hjIPlx8pMpi+sf6/3khJuYdVmtaZRg2uqQ8jHO/Yf3aZpAlocl
+TLLeWd6MTEQrhs3ZPgleH+GP1b++mX+kFfqxqT1uFoE+U9+TtPE3n769NsmCuB8JUc3FcES18LS
xDJbe1QPW5O9b0hPyTvy6VJxn8RToi9+ueUZeeibSgmBZ8uyZXfNWigAyOHF3k7LwbLldcElqH+N
8EJy74spLK0dS65p9UvMuQNkN+u4F3DX4QNR0hbJy0U4P+a4hj2sOVzfnpFayBWr9qDf4nazRb9F
YlA33k9Ns0VkW3KoaObnvkaU40wTlUxghWImEAiYLg079qmT6K7FGI5d8iJnmnATWh2r4/vSegGp
smzyZZrcQ/aMfJsSWIrn4UlC5mSl3afUE//7bx9lyj1xlkB1yVdK6nCQq0hysKLaIJ4yO2vtpyK3
UqeqO5hGGJpqRQyzbiyPaUnwB8Z3fhTOKI8TlWlJxr0wjoNUVJNgerraIAVhZtUghURdb69X+sE9
gqIDDWUfNUVjx7KVMYDDe+dsIFwt6CDsdHr7wp8km/z7SeTHX16Qz4hRSYUf+bwxg3gB84V+l8uA
ePImzV4ttEAy2VosYRyFcY1H28SmJJLZKgOgxxjLxA0/JsiRUq6jAUdmxglHE4IkNC0snF0Z764w
5n/3MYy/8DQv6ufgP7nCBv+osG2K36fYc4Vd/Qp79MfG+7f8h29v/Cq6mAo6oUnubs7CTaNUn5uI
UzgiIyGsVTeowcCmGtF8/wUkFNO2xp09UUQZlql4brXleBKtmu3tAC56bF2U+D12IDMIVh3iMmoF
BY/uVzfR1zbaygg+t0JOnEfMOXhSlJYnCblPwYwU1CXZdEcDm5iWglCfeeDP4NQZ1MnirtR+snZM
Vbeq1pv78W/civw5yT8via4HW/KeroQVwmzQ7HMtd7TnS82VOJLzUDcxDZlsfwHO8GllHldiTYen
2navBmWW3cOrlC/DTKM14rxBFNcoWJ8oFqgBqtQt63L1nm9H4TM8oI11tGFD12pM9y7lM0c6Qs7n
5x59rBUfa8SgSnN4defEkPjuQpefHM4bN6REUodeud44+9O/8ws8FfjUTMM7p9l0KzCa6Oe7zX/f
wg2nxooS4PZ+S+PDNFrOt76qnsmCsZLM0+Uvg9V2mGS1igFhs9EMHbP2VsiKdARbdqPDSWVIb+S4
b74IKxTt2NLFbMGp12l4R7N6Jmlyz5Lm8mSxoCUiNSwcET35gqUm+Sn5N6jsNHsyd82niU5wKku9
QFO7skSMxzSpdB3BzXIbJVG2XkrzoVSPPgTWPDUVblJj60rOOZFzTrENIciztaSeBjaGsCt1EQhU
htQVpsAKUgFlwIa8gQcSHYIybLlnFMlHZF4SOxzN+rW6Phwwd8Z8n03CcgfHUxOcx1K57Ey7XwYx
bb4d0H1pa1Y1KhpKjWxPqkpqwqqg22ERMAa3O422DKK1oKeZjaXLZ7lpXro3njSvBtQRrCYEr2ii
JC/HzQnKTzaEOkBxayKpCooppHp7mGVMWeSZrMjCGSXRcv6FePKD7coVxHDJq9SLAmeIeJ6rVNZ2
92iNZmUYWfbWhnmqKRX9LSH6SxXhDogjplT13OFH8bMw6+8XAS9nFswjqtRylKB0rU3CXEviZD6H
86flSllX4F1y5bD7Tq2MTsgI3sWI/RJrVDQLbitR1XnImiD50cvsfk5+i3mXuHCjwxyy7NaP7v3H
jOhQVKHiDwP0Kal+AFcmNo0pl5x7uOg/3RuLq+uA4xZHKVKxi4y3bYQdNiGbFbyb8ttlADs/MuFP
Z0W3lEjgKrzpgRI+V+bCrn36NhcEnrHrqlU6YZVTppsR6QKHttxFhBLXUEpBoCZoy1QmEDw3wHGk
rsHARx4siTWLV4JL75ClhMhqiQsjLPWesGQYCrCQSG4af22Ssu/gyxWq38qVomqspqPLgOcfYqXm
k6otiPEcdnYbniXZbdhPUxbpybTI7nvafu+G/sKVMZn4WWCb3/36w89/TlfR/eydtZz8/b8eZ28X
D//5+f5uin9+9P/5Rv91cXt7SlVWw8SyINcm85Bq8qCKoCNVvCVfhinTUPLHcnIU7Pmw5Sspu5Gm
cL6f+0zSUnCNkRqr2I4TjZBFEGeC+IOne7LWZLYHKzKhSbezR9ocEtZFLaeDAixsAw5kw2DD8WTR
Dz3sX1F9Fd347VzeCJbyy2WaEJTcIsUWnkxg61fGm9ELaH4jsHPRU0rEqlZukfBgwEWPtiwqLvEC
btjnmGfXB45kyKE2wKaXvuDeZ4rtbGrpC6LjEIDyQNkDvcQvYc6ZSRzk2dRfBy/KIsITrZjBg8w2
q9Ujc8jp1osT6oQr66LKlo60wSMfb8rHeIPI6ZiebGG+l7cqqPxt1jmqBQ+GjUz9mcv0Q5/TkbYu
VeL7AzVoV4I8p9mQrISP9josP7o19WtGtC9f3lSnDlc6ZVj6xbiUh/QWo6MTE4ZXGRF6WM3eqd6s
JWKJGRJCbitBcqoQpmaaApZmSD1kkfbm4y9v//P9O1CpbceJ+hxJvwTYCfgcgeLLB6DC1jmzYgHI
s0PVgqkHlYKHsr/zS97f+ZtT8l+Cg1xuZa/Zo0IIqHew7A4H5Cj6ryBNtCiIF8RsJUgqGHxodn28
nDLKhiyQSHJ+kkyQmaDL1sdiOqla7FmxZHLBbQlvLTuUEM8vyhF5aHurqEz8LJzSRlBs1rUWU6+K
MOcdO7q0fVRqmadpQF0c1XbFnhLGuSuDBzioY58nrEs01kk4mwXUtfUYBdkyCMj+sqg/LzpPpcso
ovxl17iidwutXINz4PQzi81DtjOUMX6l603scRXG+MEVfU79OJvTSmzCjNidsaJpgUGMXITGTgXb
f7vCr9FUeUEICPtj+7jyZ0HOp85nfjybJA+lIaNxKQQ3mcUS/dnVOfBcF3d6pY2wQv5dBf/RKXiz
ZdS+hHQVZvulqiEdGK9RW5OgX8UfZHfJR2YrUA6zHSdJO5AtucgphtoRsguimTYL5v4mymHPZbvU
Ct5Q5eh0jXYBNVzplW17Lrqnwftz0n2Li2ehrjfhAsyvtnEvSVwO8PEjuL8hwmdErHObzaNzwZ8U
+dYwYRoTLuXU1ZPB+9/fav/xK0wI3jlRVVIIgrD4h4Ldwc3TkNczIhDGcTKlJH9Hs61XHKziMQHI
QIr9LBrh2jE0oszukjHQFqF+/PSLhnWMRVhlnBOrDFM9AD4tw3n+x3/8+Ak+vnXO4w9w/1TvJXpC
8RMQBl4fu2aWEjtylibr3Qig2qoez7sUVwLXqIg5kZxJj5KLbGbfmvDtTYPhYuc8voyKPOHqzBXG
RTkya1fEvf1X2CmFQ5F6SD6pLV12HfUESj2hqyBfJmB2kt0lWb4ryrz6o/joj9vfP3/Q3OM7Rq50
JQCLlADlcE/ioDg5BPZ+1vqWJ/IuidStBKbvtWzbIVmlc6W4uU+yBUk3SROEoXu886NN0H00qiro
2peR6L8TdFe6Ow7n+ZZ4Muq342M1a1QKbMtRIikyUW398GYhO9Cz5BJOXXaqa9jnVFDRuYU6PhDq
TinUnXMJdQquLGaaLoHojL8OBZ2JsY2kC0w4g7RXuj9DxOSOZZOskpxPrqV6fI3VbNmmarO5bGAK
ONP1sdsQL+hUxBeD8lNLcN6A+edoauKqDHJR2RmLsruMRl4J64jjAPytduFqVahteudmNsaW2VCr
4e3/c7/084DQxf971BGpPc9plOEtusF5EMz4EDLag6kgUngKkdcHU/ayAgJYGlmNWq1bDRgaRQp/
Kuqr1e8cyrQn2kiA/RMHX051I+BPOIjVjIJLtHCOW3BOaKNSJCGK86Qr3r9Wuwt9bRu5YW3KBIqf
IwfbTy1ezRByO9DzXhvnSfByHS8qwxt1KcfJNsJQt92o15PVIEuOTorNlv6XgCqREc2WC7SUfJas
YsHaSLfqXUSWKgZ/xGu4Mkk/pS1Y2Oe3cNSK/Jx7Zm4feGAqjNebvIyKZZvJKswPf8DCZw/kBbNK
b1/8GgV+FhR/Qb49ku2Tb7/++PNLGuu6jpM8nD++I8rCLaIc5/413w86Fsq6Jf3ihM0SvF7Siqab
sZZBfko72WW0r0ZGq5Ly8E7QItWUJ1T4fdKJQ5NNnoukiz5G6XIgVI7q7j8MVNZnNRiIVqQUFhk1
WSIYmWI40jGWJYxOHnflj1nNhBDH6iMdwtVCYwmc23En/izjHgmxK8LwXGVnXvkPPCcZtjRNrG7l
MFvRma3aOk3yZJpEtZNybLsn1JlTj67NipvSjAiYYPqFfZJpeSIcZ2+6eExUDVmFx0S99vPlaAg7
DWbkQQ9I1490kyJu555NeIM8fU+KMwnMf0SAvPuLbTJK8OCzBHMilW5gsfth90cV0dtoyERr8cQ0
BhiPPXWknKRBGRGuIWJd7yOReczj7adPp8xVjEzFR20kKPqpO/y0/+Hf+Xz+1kkbvVlC2+j41JXx
4a9NkD5eGe8y1hD6nGZrGxxoIrV0Qx8Bd9uxhGPmVpoX8nmb3hv1ww+89PmUa6pRFm23e46T00zN
sWW5rlhdbJCT6/ozEHuw9P5Mhadj7wFWu1+GeUC9MbB7zjOVwpgQecxPXMdNLVfpHgRqJ/Iukqli
gw/nGoUPUIB1cNakbqm85s16kRIMq8Uz3PuomyxImygqyPHQeeQDzGuuw/gHAhjC37mcKH6Lywr2
rszGPmyt9l11uIN+GLYoE7D3HtlpmkNHuL+CAK8KzdZpsA7iGTEzaRkcbFZbtiShQQvtWL82Wv9K
8DoNwEbatm3LQ7RNHkZhHgbAZDvkYfOifGA8hPLhApTO+zSJF030kf6smvdnWSdEH0hPGlumrss6
M9E8kzh6JApB8iUMqrViqJ8cEnNNCs49AqJoFfuTiAB/S18lU5xwvzubdfniRDk0uOB2GaZWVxiT
fUn6RkE9kv1Nsjkj6wlAsVicd+Lolwp3lfazYtWErl78GXm5+0Py5sTtXQvJ81ANucIuMGWKfErn
TF3ht3TI1PabR//RbLAPwolTXWyQE8hZdPg63Tit2cCpUaLoGKwRUOKULTyIZZBtJqVHB8yX9JAS
ydNQX2+CL2KiCPd195PNigC8N2UDfAeFI9BXL9vASBXRxRT+S4LkOZCk6tim9ENPg/Au0Pw09R8n
G5rrCaIatmWj2gVp7A35Sr4MszDzr4w3lMPQ2B5Rq1YhQaEkHi2b2Q+KVVGhmo/qdAl6Ku0LZrXs
iNS0R5OgZbOLOsTaCWYQ7H/cNi/S/sx2s+yJbR7500CbBHPqxBcFfbHrfCWQB/Be9y798EUjLrBl
iml54z5dQ9v41TQK/LQSesH6uE8HuhqKfNATrgaz2RTeMx6uwnpWQe6TE83JqktN18jhk3gGp8fj
YXl9C9tOuEpjHlPNyjcsRcoVUfAm3TuyjI3smXlA6PyO95tiPXThnm8GusDjiRUjdo0V3k3WburH
/uXXzz/+8vMn+dhrUVvcMi6ZEeExMaKnulYLBlvb4tzQTYk6Eht1Dmq8Or5wpY8dTWBIIFOaMVdO
c6R8I4w3vihTw5NAR4JDSjKUFLqn9jwru7yjoxDxzT8/fbo5DBOTN2vy7cc5L2mgHquAVTkQfsaK
JrLMX9AP/Jg1FUvIl12KHJt8S5/8DfuTIObf6FeydVoe8frTp/fvXtIl15B317hQRwj5Cfvik/+4
w1WnHhEKvjUxdrPROkQyWup80h3W36JhJb/aNPWzJdwwVwWp8hIfqCRVnfpUAWj1EhHuYP/G/l24
4H36qt2hNbDZCrZkc1zWaaBsoS7IHjKk+4r3PO1RGH+Bu7oMVCJpw0lqTr8bJcyaaIZBmvK5D3A3
L4R1TzH134XBPcwB3MEIhu2hSjQYe5KReeVnX7bTULjnIyPLC3igY6iAvdBW7hINbwNw2LrzDNlA
3osssaYk/pSoM3AVqbRqQYEGpU0JWX/RiOKi8UxqUZZJEK3C2S0PmH4kDIfrTv7fwtmV8W738d9o
Cgn5ZMeeiE5QBr11Fsp+z9Qeouz4VWXHcLAkKVDhHtoyiIhiA4TUkI690WeH1Y0pPmueWF/oe44p
SZHiINSmBBuDSBhDcbFsgVG49dvXiDdrkt4W3kJI264npbmesCkQRFoIGcqYdjPAA7qmLLN0Tx+j
SpiWxIydwqlcllw0n5FP0uRxOxLrc/AA9zttpHzatQsviPJ1OIKId3Cw2j+Zt5ZK1mzjSXRHtAza
60VQO9Zh6wINktUy34cEK0BlzmvUuc9uSYp7i4rJ0rTqncctAPhq7Wd5IAWMx6h36JVmLdyYFZDR
yclpXraUo60QVj5cddaoi4jdnvGmgYjX257RELSt/fJ7EGC9RHnqc3b73SORPNF3D9o6JTrWd0Ry
f/fdd4/83TWvpYfbbxy3idAdydCq8E0Ot5r0U6uR5mvXCwzaGoNy4fUCHLHRFvOVPHksl242Mikb
MrzNRDwk1baHoovC3XT73Xe//v75O7LhVvBwvYb7JA8/1x517zIJtcseABc/ViA3xSosci+YKzJP
r7baRHlIk8vm/iqMHrU5wcq5P4VzSxqNkGwnuonGXrpIM83PHuMpuLJj4nPgVMe44vA984XG+OBl
J02F2dYxTvvMnJid2C49gTNUqggehRWaBlVHSLFnB+M175sIyq5D+XS4aN3fTcnmCSqGBMlv83QT
9L8qgfZBzkBzViaRD8cmkN5Fvz3XnVzOdZxPqBcSjs6YfR8FlJv+TGMINNKLgBGwzRLf1PMFGVbC
iBnrALkVFc+XuOKHZgIUv3n7gidFAIVw/07L4L6j1W/syzdsTvlb+keCqAGyO2hJwhHGBwM0q71Q
kYMuCmm68q0R8SLl4KYdGmgv0++pQ4HsZ/Z/fbUXcDZ2OU8SAoKJZJjJ8nJU97z9hPz2PAoXy5yJ
8GLnZ6Plby+ObiUBnxtu54Z+3e+U3sJypGiH9KtLJfCndl8dKQuuMkqnJ7uZ2I4tVSPHLx+gIJju
DmWTHbUeFz6kGnnsCPoWKzD31yWZXicU9GRCu2mJBtC7Onr2X1+sQxkibgNOQnU9pa5kuHpDv6iL
rTIvNb6kp+EhPRu0Wugop/fYVBKN8Ub7WstPGzryNN3L4QtcLJAVio58fvyo0WEsYM5Tl2DqURJG
lj9GQbYMAqhXjWc+ydjw01EiRhY1PVfTOLtPYwGIeItWAk+Swzyr3Yy/pgEzqkr+SsfMUpylNe3J
DE66cryeHgPWKohVjohYumn3Y7lJzIC2+6SsnAVr6Rw8QgHydeNnvcG27yU7+lEx+In7vPgAU0HH
R4Sk5Urz9ID8IX91Hl+oZPfL4diwQ2plE4eFwx3RUJiuhB/OgijIgyJwOttQyU2W82ePWe7nRHXw
aUUGyw5fEOyb0/bN3PVJPZ53PtzZEhlfOe2r1Vhq6R9QZyyjN6tvhCb8py2RpVkTWlt9LsSRq1Wc
CcF/sRyh+WIdbQj0X5SzNl/46zXRbjm7LMMPrIeIFgc5GzRdjC5Y+wRe28cQAIXBi908zi6NwGeb
1erxZXY/p8+5KQYkFNutZF5g27zQxGOhplPMY4dHZ+FnV/nXqhN1bwEg4jtxctDFYasyBCkdta7x
gfJgXZOhu9KjRHSuwul+9M8ulmeVZCwqSRcz5NnfNyZ/31k68HeXDqJaGRc70sUAGE718Fn8mEqq
dosulpCUQZZq8hI2mTa7VD01R6Ft+pM29adL6jVkHWG44J881g3tdDxLGpKVHTePVQ2ggYOD+gWG
abOIPFittXlIAE592vQFM1e2wHhLYfHjHijePP7AAVFNzNFUFa7ya6q7oAF336qcdZCdY/MZ8GfZ
ueE23fovn1p7NTpNEqpyP9qeLEip62D9OqONSFiIZM+1X63/MZAtaam9+o3DRcnbyvyEczJ3XmYO
M3cTjUmba9eB6hzDCtvJOd5vFBJvvSqHYEO6WJs1V2MFRXyAEag4uvpZpOtPHBMhNimHJoOHMGM9
YfI0CLSAJygWnU6rvMC0LkG21ABt5LJFuPPLEOq9Af/Pn95//uGXdyPbvTGoMKpxayPblSWLed9Q
1a7SLVvPCYynTRym2DMGYrSfCzir4627bRVdWouMuCpf9exhybvEsY7gGYyL9tonNnsHQgke5Y8v
k8Vdh74nTTBk5efLVQQp3b3UnVoiLFQssHhJZV4BPJGpVfcvFYHgOiWw6ZjYRrXxB4MKZJhzI/ER
n2uGs6wUBjBs5+pKYtZgrNrFkrhJdreAWEkXnaERK4F5iH1WrnvURmMVzEL/hqel5Ms0yfMomPGO
w9NF+Kr86NbUr5lsefmyfpgOlyuWrtQYZTk1fBOg193oh5xrn6A+l6/rIJ5RyghX9DOGs8UPaKdQ
UXQDdUrgB1GWFbeyLJwq4tqGdP+CLMcCmCO5B9dC0QPpo2vHnlmcMf0oyKfLUm0CeRdCT0KYqKwx
kIS8bJ7HQ8cJaB0JFB4+gFE/Ulkn6826mCLhx7NJ8qDlyRpEL09CfiGEykBSuatspVc87y6Jq4aY
JNwoP9TKRuzTNcIW1GCrE73C6PKwhJmObtjjSLuskXInlW0+fr5TquQDaxBVZGKKtXBXOhXBFGQp
Q7JNPndBFLMVKiyww9x5EkJoDIkvB7ROrrnMNtJmj0RpJSb9PElX2sQnl0J2lT7CtSCGIxvrIJ3N
bdkHl8dCBbWkdMwNscdjuBLD6OkiKQtVQY7Zs3KmlNvbXNHC4vSzjDBMeGL8oWIYJYsw7ljUsl+F
y+3OqnB1mgxpR0dr8ez3g3FM1IVdvq3GqW18NE1D0rEgRf4I84ZbqQcpZVF98B3brnRnNFm0gZtg
ZOBrqdfN54PrkvMkkbAmjCYb6MZwrxK4ogAmCokG5wvGuiDz4oU4HW8aZv6V8YaKc6pz+llAZGYS
JfEo8iCUKNeX5L3enfoIJflQHp5bDiZWO06n4IF4QR4AqFnRlVTNwabE11dwWF0cRYS10/8IDqR+
nDG1kJlZe56wGaEGghWgH8Hqkh5N1zwQLo1WB9hZl8yqjotn1bCz2SfszLSgfX0V0Lf6sFJuWLJ8
AaL9Tx63TpowK18GszqnoGP2tDuoMjtNki8hrIubveKVo5EUoxqELdmz5UpycxeRtTU8R7BRnWl/
swI51mBeSFnD0IChsqDa5dkdWAWnzcNBuflb/iE4QVxx2J1if/Fn5OXuD8kbSPhdc+b5jvBOWEm5
wi6gptBRtURRucJvqZay/eax8bVvtxQIqCyOLZ1fgRO3HZAbt/Qu1DhJMv8u0H6FaVGTRPHTZUDL
TuFFDGm1lkQjX2zzgWoqWyW5MgsfWhhTHZC6aErxCnbQMa1zGK32GYxWW4KisKdHc1KnwldgY2Lz
AhYUI2zJ1cUFYY5rDSN6XdSqAOU0PynMzh7Q7t//uVoZWAwBBKWanIvdDn4jBBNz7gBLas8YgsVi
s2vIdZb6C2qXsMgxjRvQMLLA1aPLJUMwKGRaqo0gkAA9dDnGyUgCTY2ZDlFl5DKd/jQtzbd2QkXg
eir/pTI67U+STf49a5dWhpuLX6jooF2izR30M09XrC+BXcxNGfzkhAOw02Sy/YzAIE2TVGPD2uG0
iS7+705Gs/d07AFkXw6z3W50UK7riLGetvYxdERdH2uidAhGzbZbpAZbyha2lJy3S1LFjyb4brJb
spVrPiDytvxVQvBsl4V+phXA4nNDijf8Gg6yd1Ej7HMaYF+vjTBqs5wxyhRDKFNOCZJG3oSTSIel
Il1D1e1+GWwhAEdB3OFwHUvCdXxpuO50l/5wb2NXBkIa4+GChiTMMJ4KZgwfsRmvtHZO4KnZfpET
ZSviUpXrbUULtuzreL28RQf7sf8ND0c1TieqqYxXdloSTYM9d9kIV24liFpW6gpXndmSuANLCc+X
fs6OCfquTAPLkQxStSChDgRPuTmlGXkdzrj3CFM3yZUbF8Un9yPbQ7uT6tU/loJEKI95jOf+l0AL
7shu4EQUo59lL6vWz9Rd11WjQYEcwHblgvk+jGd0iOY6gPsUGoYs1soybji/r8brPd3pzzeLJgqL
hGa6I20Ts5oXUAP1sNkHjkV0noiF1dpPaXFNRi8uC+IszMM7OF+r15KD8YnsgFFcGR/KTp8DTfAZ
SqCMQJDUbHMvKW2TRtoqIUgWxNOE1gzAJUN2j/W3813ffPzl7X++f6flCStMiH7/7SPMhZpoOWZ9
2C6YaP56nd3oyGD98I/CdWbD0a1O4+lLtD8IudibfLW++eg/Jpv8M4/okV0VwT0gBZT+1XY0Zsm/
jmDS3qJvxid3LKzCMN2epsne1NyEVQbBFTTW5bGsUrcZhWKzrbJZsxWJFnvvP2byxcM+2h+uSEdo
c4R9xRc/pmWnaVlH+7XJs6DpfqYhW9bDMxHNcwqakxycy54fP/z2+qf3pezZ/dH3RVKbfYWNB2xd
GW+wi755AQQJHZWCJ78PpwF7xfYeYPmW4jHSzIK5v4ny7unnvWikWP0EkTRauD5z5FSSJ2qrep+B
+b7IomD+QhGjHYIRmZJuNU727xO8Tr1R9UJ/S8qVKq+YeK2TWsg9m9QaD3OHuSRgXFxhvMfi6VSm
myts6a9blFlhfMISQdiThtVM+wSF61FF10iJFdYaYAPKHFKOwikxBhoTxxe2job17Svd+5b8Av93
TuUbxmVa40ibYPjTHM7C9Rz5jLNGlzEt+ZcNFhi4IN/uEtwDAbtOYkF/D2Mcupp61mTZsjhuGkyD
8C7Q/DT1Hyeb+VzQfMI0rMHcsuMVs0YzMatExrrSeUUc3MG3bZqOZPSaRMlE0NTE6y9ka2xyc1hr
Fe4o66nmS+wmL5MrDaxN0OHU3FVXvNqblkrUgt31XhlvJn4W2OYVfjtbfXj88Yf/iKbGf2Wzt6+9
H//+293/Mv4r/+9/WPrH1Syavf+v7L//gaJJ/Nvb4Pfoy3++nT3+9z9/RpMf/u/4Pz/n5evNf6+i
x6nx2zv/71H232+tzQT/Fv3X6kM2+8fvi18/vdn+3v/652/6dBWFs3/+Fk0frfi///nbL/+LPP+/
30f6f/9DT/7D+C0K6LM/Wfh//eMB/fdnoiC9qyQGGNKImLfhZBMYQEsTYWlL7VBut2hNT4JmncvG
s/SfGR/Fu1ut/GSdHs0Ua9pftiXT32vExFIdZ8l9vEh9Ae9ybXngDdI7mmoZwtkfyNEt5XxSePiL
Y55PU8Fq7MZQoGA543d+BhFzfj6Lrl5K2w7d4Fxh5MjmecmargazPUM3ZGnAYKzE6GX2nxQiIAQd
NCAnv3C9F4awuMTMtC84RE4zW74SBjYeIXvM7wD5ug97cm0OIvKV/p98d8htlP1OZsl0QxHhJZ9I
wnqaVASpjlUTPyeO89O9J8vsyYJ4pvnznLZNjpIs0JJY28TC3uqdtPIunlxPWi3Nkjw3SSmM1xFt
W0VHnvCE9zzRaOIRhp3GSKEiACe8d1hRnGhmQmvYLWP7Nao+hSB5Rz3+66q/35F6FGammrr50s/C
7Cgl3exwoB1K7MhuDzmIFXPvpzOeKgY0r3N7YWG3JaUC1IJ9KT0zTiBlYhNn/jwQobxlYvn0DNKW
NLcy55f1IQtkGZ7U64JyRnnIULW8291fzyyhRoRHdpZSGQ816Mb9IVo0zyla5mh+9hhPBSEnWXYR
79ogQH/TkM9I6kCIBk9jcGWSgQv36tGRNMyotFXiOMLJrxKwd1wsq0INQhioM4byo0KndCTe4m5Z
cp8crkDzW8na7Y5b027i8BAv05CpGDW5zC5VDIrbgTnjmdT+7aHZfrYEm2EhfixEtrUY1E7hwSGI
z1p4PDb/aTufp3v/+5FF/43kOqNjEVW0JoTTk6RqhzTjgJjRqyDLaOWx2J+GTNyT6zREkv69Flpi
46UwtkY6cIE5MtLka6iomJL69zf/yVL3QDzVLyM0OOxl1hOiYFgS7k0NW2IQdjDAnjM+4LnnWu7E
XfExt6BbolH+n9tQDIgzzxr1NHZrB7p/JfrY0J0UXNUJamO4a/dUZ8ZZEmSsfW3wEGY5PDy7aaGC
O6h8aMwEihE0ecJn3GqstyKYcG3YYydWhV2LkIddsx23evf+4/vP73vC4Iw2BqQdXRdzPm/Jp0cG
B//126u3zi9N7I7a7Bzdbo/iR7S6WgeL4046jepIm1NOE3PDbuTgl4w0I4BdhygWtZhQoyrGxopH
q+xHy+2ztpB+wljL7haiMbWmY1wAfgyUdzlOOqey4V7gB29H3D+8f/1O4tWp1zVs2+iBLGdUmb89
k7Is+Yb7YS7s/3LQmE/0j//88Msvb17/dkYOJ5QhMP/uwMJOi8VX2WayCnM6+23f8XH7iX28mwpH
xSz5Nk9490LycvJYjI8r/+Y6Dx7yeRhEM3T7c3DPfjtdkW/0c/ouTei7TRaku1/Ft9eEX4fJIk02
a3Q7D1ZEkbtmtsEkecC3SXydBRF5evkLoc8X8tPAR7c/JSlVCeP65a7wW3qSZThlA+4YndMTBGz3
NOTKTkRFCP3GP843KX2XJ/QLn5hHm02+vC7P+4O/XgdxMIPaZ5qWfRHYKCDp9K5MGYOnjFgDSvae
olwBZIcxvesMMncQg+xIoSyG1d0tuFG1HTgH2GbcGNMr5tfBbF32hj2tYpU5vVjdgQf3dH8lhBql
MuzW+/T+9W9vfxgJqdIKr5puLc2GVJz7bDW4SHQvYtTTQxKFLX8sm37ClXP4QpXI8ThdD7lTTblA
S+1uTDQTrljfKqoECTpWtWQIqnLNZSAwlICNdLg8vwP51KfhwZ149aGlqYekHayaWgXnjzXLOeq4
ZnU5q1mzJHfQwPy5VmvQFp+lExf9QtddOqA2MbTyZK3VNCVtNEC6MaveniwKY3A5p8tyo/P+nTym
Z5uSVeetHkJF/l+0ZpjrJLes+vdoejNTeveU3Ipqa405jn+OtIF6xR1OrdYVqJigRumM3y0J1EGe
Q5EcGlPPG7Vn9nG2ydYC76djuGM/Tu1EiKZNQkZygkqLdLj3fQP5QllQEW2t5FliRTJNvCZT7fSR
B3bPEymEW5QwmcH6k7xir3//7eNttpmSn2VkHdDY85wxsXio7v2Aw5umQTh8TSk8+QXK1osdkZfg
HsnnjaSA64wrFUWx53NPFaimuTOdr6Lw3Xx4/ePHm0Otj3aSOZV5ghUo/3CfOEeCrGMddeD2mO7o
A5cdXCSzgGxu6ueCXi6urdS6AXVR3ZCk9a4WWhLzvMP6jHR99DerQgWoOpHUiX45DqunHzofXbQ+
DSItTmoD9hcSAgax9NThLMcat/tfUlrg+LKszxygU+bTYGMxaTe6mMimFwPNaFOmTYpELJDWvFps
mxHqiIXQ2d81zm8GFEtpR0bHCY8tM9PPg6zC1Qg9Cpp6eAp0K5+YnTEdwCtSsAxbRcymOKYgLuU6
MoMOJ4ZuOrql7oDVs3kIn90N9px2d0lpd6eSBOCaxS7G34n5u82mlbd9ZodaooGkfbKm1EEv90UY
R2EcFE95cc40GFEkqiZ3DHuegnuzkeNIqyzYTOozxHTd7TOdlHmH/HhGk1ui6KD8jf/bm0p6xNpz
gibJJj/6WCs+Jpd6zZ75gShD+kubv3md3+rXK/Ibnx/XwS3lOTfryK9k0mhnV/uq0r+i7701rl6b
exofV/Foa8ziJw6g3zmuvKPxdSo6nqXMBDoV6bB7qwt78jYll6aVykJVsezCIUAKyxPqI40X2tp/
FPXW7KSanEIxYilprz+9/fFHhmO4HNJUP1/Z6qPpspZHPHWNtnxiU9XqMjKtLno1CORNHIoGoSBD
l+ON3T9dEQ+YU0puclDXGqOYLciOPPU49TR48JmCM6Xa2gf+e+eUvYJLX/kZgXhNLghCrjX+etF9
zCpNeI2b8BrVg2ltr89VfNCOwtYgQQ9iBFBlngCc2OM+2GPW1i+RRW/itU90OZqyQTgnufggo9UN
vCkysWiyBLRfPUMOY5mmSZYBnIWNpi8RAFQvEZaygWOca7UHbCtSpg4FVlCk1zEV6W/FdA6d/Pe3
rUcM45srV78pO4dXvWFsHEclIVDe9vWe/rA6B8eRFjwPo4BVH8+TDZxjhB13EK5AZwIHKyJ+I5hK
TFdFYunR+asJ1ratYNX6S6hswjBVbGIVZgzwdPVjhLNc5XokXFrjqGXFpVUAJi7bkkRvKWprFDkH
o2d/39P2951dQMN0kUaan+dpONnkgWJbKqXhXS1P/TCifCaLBBP43EbdHu2j1KEwm+6BNlxRissI
OldHCRiujewx2k2lYrI/IIui9H5W3p4FNYravX1GR6/9r6jWYO3SuoRd7YzQgpbQAvGCUIoWmlqh
OwjnOTqGLRGBC+0EHvnnuWf3/0FC9fprUG8ZkgSrCRHxnPaZhzjZ5FF4RwuxpxqVdeQ9xxTRHSLL
lIgtdEmyXjAj4Ax9gSMcOap1q2YuOlPvxQbiGRHpBGOXhNGxQrcwDumhd54HLIhr6c+qzxNTfbyT
qk/BxKmRl4I1UMhtv86OB7ylNC4Y/m6Y7Z9cT+Gs0axG7KpU0G7W7noY2gyMGIKsFVilC5je/qH1
sUbBxEWv801QsEyT5EsIjxxG4y9z2yphRR/RY9Usf4yC4sNhe3K1QlDJqNmG64MOTmz1QinmH6FM
kU5ebNLVvN2p2vioYj+bhiGciIta7YFHCI7MGCYvtE1MY9szfu4wnkabWcD65GxhAMwCMaVhERE0
RD4QAU5WpDlX5ORLcvHZ0v8C0rWnu72ul6AtHHTxsHsmn/ALoiG/2FOZHZGq7FQisLU79lrFzd/j
KxdfvX5b0ZdtSVe9/VAL7uiFF2O3ISmqN6okOsE4KBZzRYDZjBlLX8gyjao4lMgE/MN2vR5rN1KZ
4WmKhhTdZxL5cBMBA3WlG3oCOszwwNdBccOVjxq0+JgyP3+ah3ch3GHfMqwOzE9ReBSE2EOekgOw
kYJawfA1ci+LDQuKLgg1Ez4f/LUJ7wDm6pqudPmirkAff6AZN96HkKqSn5L0zdB9nxpzga2pKFYa
LSQLo/8VpIkWBfGCKEjUtIJ7Mhm2EgzbxrwB7EI6MqUwmlPwpTHoGRF9cSioN3TModQo8K5t3VMD
fMJMQupEBSYaOoY8gS3Fhwe48PpoIwrgCYHR9mTyBUoqxLhYg0ITmzJVrA9Xb8i/dzJUrGcn1YU7
qVrhIUaufKU0T8Ppl0c4NG50pOU5QUtCwpqfcU85nFyBZNJvzaA8w+rKk/aSNviJXpIvVX++fiGP
1+7imbbKpK0icvUVQ/bAq7DGpNVCPUmkl2nKYeoNgIsdqye90idn3J/H6DbTZmHmTyJYd7M9d/zr
iTnGKpmF80eN+lnh5Gu7K9uYE3zR5v40YPk/hSZIFlqseOEE/RHofrIdpEaqnDgrTb46t0q6J4eO
60lo8fCLw1qST2zU1kuqA7wlGuzbZBb8u/5gud+RLwb78g1YQuzJO2e3EmIYX4jMZ7NKqWrDqn7A
NAMTyRP/1CPJY8fJauXD2Wl6f+8ydLSqLt+sG2Fjyi7rOGbw/A6Mm3pMf/n184+//PypJtG78CZS
CZEmEZ+qqZHfm0fhYkmMYFZeUdZ90QYu1MHOysi2v/SW/s7n4lfyh7xVwZdX26ZuyH0a7tgl+9E/
LuiPPhyF06qGke9QW8vyYA2XbjZK9zijZ5TbOMzxv1Pfaa1s92ZNXm0mMoj9rCzlmAbgPAHdGOQ2
sQSPPciFi0aBNOGbqgEzgTPM6yLA9vqpEfb+SEtyF6L+867VAZD7OjCdCpEHqzWLU9bxKZCR9kWj
+rJezZ8kKVHvknglEuCuO6jgaQ2goSRNy401dr8NvjOzs4eE0X+xo9mGzY0V2XU2wtJQl+riRF+O
KYFOs6xShIGGJZJqpxPch0H0aHRS70ApGCgcslUpnuhgDZiTego05jRYJXewDMRuKx94OyLcO2u1
VtKwetHYXtqFRoxgWpG5LReEvZ6eUmHPYSzW3pBjn80WB4zC62m0ycnf337HrPLpzip/2G/phfH/
8/9e/4UL6xzxjO5pZbyavJM9ANZ3i4cfm6kVVGGfSEvubEzwMK2b0pyIVMZACj2Le1tDIT6G51uM
PuFhazIedBw465yCJu4e3oeI51v98PmnjxqtFchD8QwKtYxeLY/PeBaCkL07EsIpI+AWPKWikfmq
94pVFgTACgkLSuZu+2mS0oBEBGdnuU5HMC8CIlN81l+oSAII44yYl0Q4TeC+ZXRYtVKzqkhfAdG2
i0DbS75N0qxgS1CCLVKJO/AAVCWoslfBB6fyeepYTt3lyRB3rJL2k4CHYzR6mVYrysYcD5WtyjSh
HOqxnPthxBKoxJ0UPRedR4evl/RQXG2nwdtX2PAc/h3pbvkCFS+QWb6w+QtTL757xXfUvmfv8AG3
/ZyFTbYkNmceaJv1jLVrqGsMjhtbLx2lDIRbh1zLYp2DDLkcuoy/hjF1yzPIgJKhS2gapFxecFIH
aqNX4v8e7uy6TLOpeocksQW/KBnf6nLkP/ncTG133vITGkuBJIQhV4d4RXEISlmzsBqeuEPXwo/j
Z4/xFC7KcnriEM+BIfjB14aLjBU72el5Ka2KbBmtfWeJoZuOGi1bjspNYSLXVx1NirukAIDLnJiK
5ThufwYaJyAP5bqWNgmIxkuLFP8l0LIRUhfQOIWeHVN9huE350j1q744p7LbhePCFZKmNF4rblJJ
G/2fE5OHKB1Z+/ky03TQWe86Euxl5nGnVMR8HoS4uIZEP8lovbMoLmh1KRZsiV/Een7kriU4l4rq
SGosHW1KbuQLk4U8bYHReLQKZ7d+TH4x/Ug0Om7R+H8LZ1fGu93Hf1sS9ZJ8wg2TB539z/aLt3Zh
0jw4duUTo/ykfOHg8hOv/EQvXxQW0YNRebI9LV9Yx8/Z/hV2yz8v/0ovfxl7xJSiQp4O2vOrZpXp
OD2ZOIvTMBQD+JZ1oTTdWPNnte4gSdmGhBQYplwRLYAYVAFrOKuJugh0qmPf8Y8gf8cc3b8Fkf/A
+DbR7ibhjFAtefH7bx8/EcIVOKYt0x6/ntyBebFk0yM7eutKzomiCzdlMmQ5psBJrULVlzcdUHwT
xUwK1u8z26zXLANDzo3scHHpr4OiLxYVYoKegt5obYnzTb79lk+1PafWuWc9/bXx0wAR42kdLypJ
IJ6p9xQ8HEMO0XSbdFWYuYLdXDNOwuEL7kwJP7lfhnnAFMLSol4G/iyAMdxFrSIZlwR2wMLrCHWB
lcEbRMHlKU2Pz7Nf23FH8QVXOaSy3Bx52i7S7SNfPnKPPyj0TM879u2XGihC+Mjbb7ndIwQGXWea
rB/33pYBgzot13ZGKy3aco5sTQRwUMc6kGkbg+i+m6je5a0sElsDDznR2fpL2aVKMAd1sXZNMBwj
XR53o2ZA7RBsWwnkd4cuEkYesnTOGD+LIrYB0TWLld2yJPxKq6YL1LfktqhRpMDLvz/+2TGrNeVz
2kOUr7Bdw9YvA+GnCTUh86BCsBKtJY1i9DQXONmQjVVfD5i6ZqtmwXw4bh0L1s1atmjo58CSg233
ZIvHJxCIj2wzYc4EYWMF03v2w9b4YXW9i0O2px92724HZvwQhvLPqoz/IsirBxM+PkRrlRl2FOP2
K7djjofeOpA5YmN8t8e8ruW265njKEnnYP8XQC0QvFWoLIOr6Tz/9AMjg2LRIV2kXYl3N4tBnAiF
PMPrwbgIrGbJVJv6cenREzeyxXYrBYp3bdyf2ZUvw3RGF9g2WqctiPwHGhoPhXUPyEBOv3WLtTZ5
GNEOsJQcWI/x+SaeUvXodhZQFH/L/7ACYMWLE372IUn44h3GCtRqfbWRpCRfBula0FPtRCSpFVMt
CnY2+fIY1+lnRf4dBcyGaILzJPk9q1iVWsPN1MeRe27E1BExZSRdyUlH4gUf+Ji90LFyRfN9wmko
Gz7NbJxWdPecDdLP+MDn5bDdMexcukS5gStsGROK0eBGLkzLkKtkAP4Hbfo4hetcsOmosb/8Fblt
yn3ACtVn1UKWHONXq6GqMDOfmCxj02N2FT5sCCYteIH7MNanwF206lJcOQavXBm/KgJ9NSaR3qTd
pgTkLnts7K8VJYswboVX+6sVGLVmokEjz2JXeoxSXZhxw9ZXzaBO0xLzTdY+56uJiGB1K3HC21fz
ltvCUjLbtGTftDBF2pTnoKU1HxtysFUB1rPewdkmffDwKVGgqHJsUYXWotqx5dBXVK21qGpsUb3W
crzBYqyNfW/qbtEcsemz06/IBbLc7yvs3hBD45+fPpFvJywNw7MUiGB40oIthx8lsUazybaVvcuQ
sqRHLSQsFCzJ0nX1wk8k+1yM1ajR+xWuGG72YspmxSDEK+RsHYlDBRL4WOpgT/ZRa5EMGOmEzfOp
AOo0gFZgqcnyxLo7FlldB6wRCKE6GXQ+FKcmhDYENxH2r8W6wqDsYXKwRqfkpFM/g/t/GIb64KZw
Q1XOo0kTqrztSmOx6tq94lzUilgUkxt5h9QkoxN5NNZ0Ryt+LmperzRU2wL6Koiy7h6AcW/Y63MP
lZna1HlSuRyiZMSLJndj67Y6Mm2W2otc77y3ooRZ1u+gTvQ69sWZoDtffhMTc2ucWlvTdX5otRr7
PxWboe6oUm6kZ2m3vOQrAjsCNAIyAk4CTPrW4J/cCEGIz2BzNGwDPQQfHlnWU+tE8UtAf3EC1JjD
02VQGHE7/kr3jj02//z06Uq3mMeGNliuDQ/rWN5hd46F73mH53In3xz3ZLMdJQrfOtoImkc6lq5Y
mziZpU6Eghz1ivUUKvsl7+la/PTi4Al2kRwNf03lRnp3ohWeKckXK5MLqMzJb+tq6xe0HpbzX2im
+BCJ4vXCP092wWTWsKcaUPUcaYuKiRGZqq2pk4noyMXj04pb5KFLYZ0UH4j8T1baJo20uyDNNhnB
0BVVB4W9uTFCuhp5mYZ3tLPpJE3ueRcroQB1FdgFlxV/HN44HJbHnyhpkMSjGPKX5HD8XqX742hh
A+6kfgn8SbnwGusddTTP68VYGqwDn8/bZb319rMn/WwJZyE5SDozrGkqCA9CsfBTu2+n43QDVadU
wAwkTBvodFq9N7sbRS7KnmdDZS6KUGG6DybZXxHsYDCeGjkiSeTYMUJUA2t0SayviV+gtt2OiYyB
GK5U//cT0yLGfUhrZKJz1FcpZvR0jnW8yJcN0wcM56lB2JTN888e9r3CBqucIToFuV1yyecs3Br3
5eOvgomgC5cHDblXTSwMq9InvAu3Mq50nRsaegMLAz118/tJKkpPhvprrIkkDij5Z5ogA9ZE+jMK
dV/YvXQx2VSCKI4ODUmvI9JHjQ/P+mg3QnuS3MRWwU0i8uIu4PpOzRA8y1PGPGq8d4Z+aX7nJuqg
fiHhgiYKRObPA9HURImIKZ4YZpn2JTWO+faoA51it4OChM2je3/11y3P4HzxeRmS7ejsi08nApNf
od/49l58c4whTr/MzscoyJZBkGuUHLW6xsNWl5yEJshPE3OCeJrM4DQm02h1AdWcMN7KI41uKQf4
/oaPBl8mWf497T8EJnxm2ScKmZfkhUzt725RNJdms+X4/DYC81WSF12nYVXPlRMC2q18sCTZ1THE
e/V2GQUzGL3OB3YRPDEj1XMuRY5fYQddYYv+n3x3row3rbsbmLolU/TVjLGxkRK+1t0RgDrzj9qG
9U6jUntUB1FaVFP2PNeEXUYNHV8a/zhLK1vUKMf4AOj0tHRa3i17d5yh5KhZtOzHxxYPHvLbD34Y
XXqblWYmxlkusQ6S6Hx2DTp9iYU3tLizum6BRpOxSlKQ9Vc/69KPoSkTpkBm9UEzNvMTboDQKHUQ
XXAh7zBM8fCiwxoBZCi84WkFn7Dh9lgPVNErqwJqeq9TDrpqK64YgmzRU31WbRqm04rNx67Xa8OS
O62KgWVN75zi/Dx33AXOp5UIftIsv20rtArFgrDH4ue3L7ibhnaDRt+8IErDW/qxQINwvHHLOKHr
hK1GdS42M5sqDK9YDyQ+kZT8o0rHDQVpdqyC5ETsJJv86GOt+JhIhWv2zA9Jequ/tPmb1/mtfr0i
v/GZ4gY90c06IsTRoV/OaIUouAHyOSg5zylxT5LIqZpaQ7KcTyZ/iqYzdpFFp6pTihmYjFtPktmj
uD/giVJ+1L2ujM323W0B7F6kwEposqxaucDvulL+o6u/ZnjEH3LOecXKdNj6wYaubTwp7BqDwnMe
xCbXnNTPN3bbKV1N77p2G3JR/az+wraCfUzW9LAOlHq0LUbaBLOyvwpjFmAYUkfntxIqKhBoKFzp
FrUV9NN2gtsbnkJKhCFb4zyxPbcnYhHdnWwhZ6lsPqH7MIqChQ/npuhIOukXna1nSZDFuTZ5XBP8
3WcAYKceU4GiXDep0jTQ0HcO+H1NQ/JVCy+6WUy55UXTGD0/WyBwMmNpPPL4pBSrQFTCWDlzLPoa
UNlKbGryPZpN/XQGd/VU6XqeRBvIYWb2iXJSmaPlKW1vzFRW3ncLvF7XcgYkIgHUa1mpLo++ymaG
dV2HsIsVURlLOhRR2QhuAWZu/dy2U39NryHjSuzRxvaU2VfTZBPnt/rxZVjOUBvgNHKLgB3IRof7
JP1Ce2slcUz7KxGBWseBbaN3DJWI1YAPsOF0QNEmE4UUB4b3/9wNfMvkQL+TJAAFrucoZPwFFqz8
L4H2sEyr5glu1E26meiFUUBDoPPCNtHw3KhOBAxCgjXs+dTUtEEMpgNVeGcs0QQNYilNCCf/fhL5
8ZcX1VDLJ5bA93KeJqu3xNx6m8yCf9cfLPc78sVgX7755oamlfmr9ZXxZpqsH8m3UyYXMvHgaCJJ
Ad8C+y6cBYm2TrKcYsN+k1LWSQnsYmQhTxU+Bnd+VIuI2G6DiHESB9lmuny5jhfH7WxxP99HRu+E
ph3z68nI/cwZCAX9p0zbU2Ae1vYg6WS6tGXf9MYAzxKSILc2RD1Lw38xeJfjVCB07O1s2JkihH28
zB/y2qDh64N9/cB7afeh/L1ZkruX2+GR4HLHEOhxz1saWa3NYxoxTFWEXs5E3b2oo3rDU4/IlR0B
WO30d1rubnhv0m+mBRlRHKmMgujYsPr5IDLC2KOI6z3+nHJ6uiON7Ci8o7YggcWSpuIuqDtbC9mm
5iH5NQxHtCxTotyrx37UZWhqR2EHduw7GsyLBjorTwlTRX31nkzDcdsI2VWYTQ+mIK+YX+vP9aLi
a7GRPRjm4HrMwQMt3bg0VM7Shkx6qcehYJuRU8+7D3dgDHT4geFuqod7RWLt3QAU2zuUGeZAhx8Y
7lY93K2Blh741LZ6bDvKvVunSc6yPbRyjyw4xjrI1/TcPfIl2wPBZODrcIYk/kUQBynV5KbZmjZC
TtJ815h6iFs1kX1+Z9Ch4SsIneudQufOQJjCsw/lE24Wbb3pQJaMXBNmFsz9TQQmViKnV0WD4OLh
GJ5KemOxq5cEqpWWGA2Oh71aXbnUw8ltocMhI9zQUsLByku7mYUpOkLSekZGaXPYTfARhsrBgMcA
BiwfDA1YRam6A6zCw8Mce+rnU1knZgS2WPkhYYJZRvg/HeVHc9NASaa7HVfYE8fAWnBZM/OodXHV
idlvnGwygVPUtZWgS7ha1KAMQq5CTpynfpyxEF6e0I0ATNk0uuIMd+OTOwIzXF052cyVq6OeEvhT
mA3xTfyf/+eZdqGQD21ifz7nuujkUeMJIzQqiRpwpua3HKRpktJLXh9TpmvLJMwyd/n33z4KXKgd
lvsz0ygP1vZ6AfFPgNA5Nhxv0HvCspTNPWrUJgEh92ATM6Y6C/0oWWgrKi1o6zI/nrKw/rZpizjL
y7KswYxBNspRRLnns5jqaxGbBMhPhsOP9FUOiOEA3UtlqIy54DUme/gH0rFl9F6Pt6Qgdjfc99VB
Mo2odRAT6z6gJTTxDE6Od1xHIieE8wdwfyO0vkZUS+4Iqw9ncOK04wwXhoC5wf7qiskEohJbPlum
LqMurNmWUH/ZBhT49GXgAbdQMK3u4Tbl7KrHQY3TsDYG3IJCZ4JoeRlhoXtj/76ptCcSOg6Icl7N
mkcy/HuNWWtF7TSPEhU4CIYD8Rlu2DqN49aAW+ilBJWZhry+l1kWcAM6PCiI7dMgtgfcwhmQzDkN
AWfALQwMAf+0DnUptkaf5bEEWbJP5vPIz4mRT/U1IwrugogYBllO33JlomwRXm4S1N4svXoPeEhI
8JKlYW/CkHUTe1Yg2cQu15sqcFyPTvJlkNbUBuCjjsq+aqXKB7WqgS/AbMANzCE3cQ4gWA2AYA25
iXMAwW4ABHvITZwDCE4DIDhDbkISECZh7KeP2oNGwxE0ZhjGcJKh68j072LLfjmpdA7DloQIQZp8
CWKNfMq71QsSvq0TgynU+oshH+E191K+S+LgFnEvctkN931zDzJ1HG//rJIuItUnxwG9BfID0KFI
jl915Uc0JElk9w+ffwKDPYbXnxJYn+6yfLTI4ec9V0A/D/b6ZMTcB5NFVPYET8mah/3Bi+SioivU
roYBLl3Ads+CWn9S9hvZXwuIPWPcqB4P9zo1fEh0nvgOgHtlhMd4G64WtI3JDSFZGvQsZoMgWudo
vD12iNdfEm5xSVnupwpuBzw1+bBMYdyViME1vV6jXtG4IXtZE16X8+b5R7XdQH2m1nthJdTfkQ6K
5A8tTk621jBO9CEfAVpxEacR6zfOM20aBX5a04TbbZTRiJVTex3eH0rq3d/wX5IlvMmbNfn24/wK
64/Jhg4XCuiIoZxPHloFWUaQhY4fimfka5yQL//h3/mf+API52zdb9ifBDH/Rr/SVvpY//X1p0/v
372kS66rqgJuVH8mgZNgWNe0L52TlB58uODNkHk+2n7mEVC/bLcna1j6mXZAvXAjJUvxWZqONxz7
GsWdPIFFTISfBrSGOMgTQi3737yRHqRW22D1O7J0DeFxjOOUx44XP5gyg5soM/hrVWaexcdXKT66
EJIB67Dms/Aal/C6OOKRJVKOLZTlJv7CBtkni5Q2xGLSctts/iObVg27PRyZxyv3wYtOAtD50McM
PYMlM40S1k1dlPlrmt6INQKjiUZgfPXujUMdU9Rh2PHQMOJHUE6FZFLqHlqLB4oiz7owauWtGSks
mQNfPEPGkgnNMJ6HcZjTHJRkfcT0mg6vRk9vJtSQ4Hte66LXGkwimk0kovlsIz9R9CqkEGWgTF3O
E1DSP8NuPGzgFEVb8Hgl9AzV57WexFrTJPkimGaDzJZ4/usvn+oOswhy1iGPL8l0TeZxr7TZlMaD
7/xoE/wyhzuhYcWH63WovqshfcRqktVETbK+QjVJFgHJuv1TF2mrSsc4aAV82Haczx5cTYKZoPs4
0t1WWU5iN4ZwE3WtYIRNmaQvy1K68BmPOuya4+VndhN+Zj+bfSdIGx54g6xheJkD8jLb7q+LFPm+
WvAwDdgoIoJ2NQVkno16ZmKVC4rXQDbqXSBnpDONVykedDyoFCkCDausDtRcbdIyTzbx7LDknc9I
8OTzJ/JzKnkPRZEQvIZty99CnKjlkgW2EspYEw5BbIKT2bfWFtJyhd6JkxZyrxsGFbgaxsQ2CGda
0WNX2FrX0M0LkOsAD6DZ4JssT1blhcKz0I0zH0/ustNlwOb4cpMWiA+7/bAmDdZ+SgteCH8jyDNN
oijMBJIL64Y1Yp3FaaKzOE9EZ/m6UPwJnVaFGOhCLS5s6KoQt6L0U6tRI9UWujfHIY12BSPUBws/
15ESoj+vMNq5TIrBrqDPBCP5KtvRyqIVFXOIV/z17T/+k071PLr3itQ67xXIpCdRqo1l6M9Xff6r
HmDxC7gFw5GWBNWIxToXRt9EJod+OScu8h+LRCVwvIVlj1jhdpso3O5X4yQ0misqFXcA2F2/0Vxu
Q3z52rv3P//4/h0dHBAu6NSAaTHmVOAZOG601WhBjs1740aC9C7QGHYzujnMvSP/+B8Uzb9vooQY
nqwL4GptXuc0h4797Q19ywjjl/mc0OIt0un/+EfvNik7ya2tX7Mc6k/hvwjy6dg8SnjHHc4Dtj4V
mclEIsOKJkY9L68pEXqi2os6fcA4yX1PoI/m57k//QKHqxo1yqkHexbEM421/GFj20HeqHdc5bDH
AO0rP1368ULgVe5ymEZEmAg6X7p9EGcvspoGQYwtwkr1o8nUzCPvWAoRhBytFkGQ6bRZXaYz+YSq
YKhz7p5vZSl8SIkG4TXRILyvVYNoykZiQczG9KzzktmYl23P0iiY69maZV06la+C3NcIWfPh3eXY
7j8JGRRj5DZpBKOaJ//OTzmGsf5Vovf5hNewd6uGXxKc3sNn0EeM9Ge22YJtUthGvwrsIIlaOnW5
ixV1jNBXdmt94MrIL9OIoqX5U5rDA95do/Yg7dweu/6KVB1cwQvbttHfcBecE2Bvro1sNdwmTuIs
J/qkn85+rfFhOpJw98QEdWQZSA32dlq4D/6ybDAQlKanTgsErrNWIfT0TnsRW13UIqIWFzOIqK72
N6ankfsI766Md1cYFyobefW3wsXGP9evjDd/I8obebeTflfGa2bUXGF3lkw3K/LbL3lu1BX2yB8B
HXQNrzdlmrrJLrHC1cyupFjHc8in8yhcLHNtEYDMxsNNie+XXz//+MvPn1ok2O2tDPAdU6XO/sBz
+bSE5WeCUUOzUcqkmAjDeL3JNeqz1ZJNHoV3QaYtpixpks7wYRlogu7TCFmufLmpGuIivrD282Wd
ES4VoYkADdNgmp+a/4ltXaETuDzyCT+f3vvs+x1n+MG5XEmjW/pr39/cbFf43tV1Xfz3VAEgByo7
YBaCinZ+Pao24kOUh9g6U52pb+F750bGBvaIk7VBaE2WumMMemyMbwYBPLn1NOuKOJSZ5A95h0LF
LryEFllPk0gaL+E4kYXxLHigivBq5uc+zJMdLIlVZbTAk+j5YTDbsinWWwRud4uwLcdT2bETbD9O
WFxYPSe0cc+bY6UIxIBis8kJ7wqYKwNm/HhwtfNI26ionwQXHmGFEqH+pl5rECGkW3KUL7LcXlij
cJLSuAgU0Tc9NTxD3Kfd7q7iAUCFQWkr9Lvzk9VHmx3ZJ3z1eRlmfyP//L8xXytw4G4rHvrRafrU
msnpIAX1c89EavAlC/x0CqaAOCdGafS6TL5s/WW6qiUQrKfabscrjfws11bJLJzTldZ+monm7aAO
xB/7d+GCAY/GMZMoynKfnItPZ9jx4K3RR5jwglrxWsicbGRPggbzxP4yzxgXruWa17Mw8ydRsPcr
gpECNzToelM78sexFSIUHAS0JVmZhQD9R9kIzgd1QkvvcMI95/0+/jIFmaiHwe1PSXyF315hHSPy
5efkjr7UdZd809GV8Vo3yBfDIG///tPnSuKagg19Jlcx8x/HtSkISp4zhu1oZDPaWGCjfQgmI9mM
bijfjASeLZBRniyVNeZxtaO4vrj4F1t9s8XCOE6m9JB3IWHooCLZ5XjNL97QfvJTpfcOgTqZ/Emd
D6y3B3PRls6n6dIHb9k1u+rrbK5eSkvXp/R+A6LNiq0CQx/rKpAg5EMZ6wJoGJsSjZDD9Wr1Vdys
5xIIylItFk+3kuGQIYfxN1FeahPcXT/zs+Uk8VPw3ixs9T0S9cP4rAidqE511fatbu3I7J/7YbRJ
A0EGslwPSDO19jS5XxNy8R/Jz1La+Sic8dA0a/J7u6MmruzypxH+FM5uX/A3L2hiIk2of7GONgRp
6HuWM//CX6+jkEP/hpi0weRLmLO8ei0O8mzqr4MXRQ6kT7j89jGr5C4M6FNYX7HbF7BntB5As81q
9fgyu59f6RZ91A1fiEGh2D173W/zWM/SqdQNFtdVtRksXZKfhvvERJEhQ8d96YzB6CGjroRHYjBl
yyDIoTmkRt+geDHNneAqr4MQHso0e7vzTpwu69ZnvIu0jjdRjag23L7XxzxP2dqvtJTpGF84AqRP
iWbDol5wh/RWK4Cd3IrRcnuyBejcJyvsSljmp//6+7siU6GmF5Ctd81SYLH0UjPP8pRW54XxgmDf
X5skhxeT4MEubknjifDaLInhPkqmBHWAKDM0/FcwJ9A75Ll9vYDBak00p+xuAUThTVdigI/HJ2gt
DZBD2pVAyRd66wd8pzbpuXdKruxj+LMgCvx4NgnyZUpMvZfTrNpUylBClpyLwgaBNw617JCvX6xO
dqXrTbSe8+lk7TcoVyer532gPed1je2siJEVrim72ExWIdzvxJWZ2sBPQzBaLAZtazxsnKsPR3Jv
TSsFGSXTgR370q+qRTieGi0PVI2wBMM7mX5ksb0PwpaFpiEVIQ4W1ERpHoZhd0TxONEO3Wyg/m8q
cONJds/tSy4iJ6dF68NkRQSKT97dBbRFoHiIVbPZQifRg8tL7h6h/Sbgvouo823F2iafu2WtJbPY
oEIbs78ZAFA0QMFWV7/SPsnOmGJ2t9BmVGrT0pDwX8TGDhaEeXCriqm0x6c0JPDeIJ4mM9oLgI8F
oi5zOLh6qt/pUIrO03c5jdvf1EyxkdTlg941YWYRYyrMs1D0rhCObbGaFGFgr/OgrcNOH9smH9th
WUeNPl7nt2g3YMusDBvoGYHa6+hLwMRqHcAcLalaBq1bC2ORQdTs7s3Td18cjq7mR6EPZ/ubGEnU
Nrjnh3yaPrKr/++rD2/TcLo8FpW112ZKChzKZba7u6Pstin77MUpgG7LrRFjjFe1izB/z1N2rjD+
8PrHj9/TfgrrdRDP3i7DaMa6KvyN/JcGRDwE28/wN/9zW5g0SWaPL8kaQfrD558+3rJs0rdryqep
l+b2xTyhfC+g5R/fT5Jo9j+nSZSk36dUEBjvP/BgUdGvgegQjTZQNHMga/3Pm+NEdcuyexAvBcyx
Qwb3y+S52LmH0vG4F09tRqW8VAHLWapgONQ1dbrVguUgSUKjaBheGCDi2mrHM/qyhsMW5SdXbFZm
OC68KcG6d4O7+A7ctbNRqYvZ0iaBCyx0vdMVSrJIBJgtwTShXo7bFxUxc1TO+s2LE1o4tmy50q/M
KqceLdDR6FqyeUf3SvoGWL0K8mUya2ZXIGS3guYxW0WGQuK/eqdfeR+u3qErV6ev37xnXzH7au19
/pp91bt4PZvAk0hOnosTPJAf0wTBjJlwcKjZPDP1flWeBCGXMPpS0xawRPGkeWVpOKFXz1RbyPmH
vZ5cifVR3OIar4Bc5bd7AL/CH/w8IUB98wDkZw2x/J9ZElciq0MsnGYZfGw8yLG3MqvqJlWyPNXR
ybpTGjXSVn4czqvFTaqOXqxd6byi9qQHMW+GV0jpgsF0BV+pqfagQlQabF30ElfqnQZbGp1vaaO6
9JhVF6VggTFQLTNj3Q3OgPmQq8M0JCtp27b3vPQaY6KiJDHVsW6b90A98FvxHg+2RCWGaX8aMeRn
ZEc1KXmGpz99pZ6GXLOlP0vuy/rFdc5KCJqFYxzc3x3AriMKszyIyX0spoKpNN7I7DMeo86g5FFk
SYIKt1vg8hFHEgaUEVhxgMk27fPYcrXUyo02/oEkLiPh2srpoqD3DBvIlIiH/wrSRIuCeJEvj5q9
dHRjCy9hL1inI5BXWo4E2OWprzF7OcgF/QWQ67S7pB65H/1PRMt9ghnvLAgmXRyVzrHpAU4vnKhv
axglizA+0ddwFJvozM3SYLGJ6AC3loJMqqxvcH5cf/6JP6MOozPsYixCtj8Mla9vfOXrm72wp5Ga
kK39eNvGaSvraZpTJX6Cvrky3tzcAP2ajmpQBqItc3y3I4XDZrRGI3kgck1sOjmGqUj7wLD20V9z
42uwjISpH0+DiEnuiWAOKNbNPsEwsIb7GLD13dkMSyI67R0+T4rzw/fqSAL0JubJHxTA4sHfCPe1
/LfAJUrNMk3iZJMJ+4I5SKYScJSZEsbFmeEW0LacdAUa3WpyVEPv7/WjEbUZTYdI6UqlOQxPpPJk
Ku104d2sQ0Bz10YghypCyFCAyDuyJeh1Og8H6YaUa38dRb8V/aR+EF87tqTyKIQtBPMIR5GsMeAK
yiaizToFwkP4weP4GlU7169EqXLbflkwtREbltdqoR/ev37XoIHtHzwBY9fDtpaii9+mv3xN84Nu
CYs6KC9HjTwajXd5uGQH38nw8MAdyu2fMjyMA3gYLXdZz21qwWGMEhzOATicQdHjbO7hKr++rsro
K4xhMX0VYBpm8V1NI3bj9TTa5GTl24eHB975l2bWFE8iP96f+ddptGc98oXxPPkl/jVNFgQc2fs7
gTe+oU5sNRR4hcZQ49pt1Kvk1NFYjGEpFHaep/c7U6keFQPoeZtc3s0VriiVcSiCK0XtJWuYB/fD
MkypJ+MTDCgKw42068eUWn1136wcLUnpqkv2Gvnw5Z/ZKyCftcuVnAJU0dkQHryDHbs3EtTXIWjJ
XZCm4SzIgoc14fIZnKuuK6Jn3D2s3Rb1q0YYdj1ib8iDMBUESz+NaWsgoDWIhQa/yz+zShMfWyoK
sws96nh5IkGfxmr7woEalORW07wIvoYx3BwCGQ5Sfd7uXRqPlv0z4+m5O060j1DVq7Qtx5W8Shqs
qTuxshahFHwZXLvCsttdxAm/TlF2Cw3ZMj1FLNKAWSSWQEQLWogGx7BtiZYKX2j7ATMfWACg3v+/
yYJU+bpcyqpfNyQXTCdc5zRXOZjV70AKl+I9BUEHkX7IN/h+BzwycNnn2kMXpgbGRqqgr59iiC8R
546WL/wBmi+aAeG4ri1rFdCLLoVqyHpa8ED0xdgnLwi48seXDxDdnJiN3VsIbut7WAGeZNsFj+si
hrpkoVw1pbkSQJzKIm3bjWg7sg3oIutIUFDUAG8fqyJtw5o3AkfKqt0+zJEdqc3wvEMi29OSeaLr
4Q2293GrP+x5RyXsnfT3c7DyfbIrf+EX3gseauHc0iZXfqaWlyeQuUrPdBkSsKfr7t37j+8/v1d2
14ofLwQ+SybmPfmEmVHNRi0NdhYw6vP88H/854dffnnz+rdxLdCMN3AZ2C7KVlGb7HGBq5FEgkSQ
3Y4xfXr/+re3P4xAA4QUPyQp7FfW6GkB61OgTZMVE+iC8J+NxwTCQW/oCNGOrNh6w8ORjBnixauY
IiEWUjofouSe6EZTH54ciB2sX7TBMMr9jAC3QV7qXpItXTlQ1qmX6L4qlvyYn1GX3y+tLhNVrIfH
f00if3l9VGtN3pRZLpVMVBeNGCNFI0OR3dJ1NCD2NRGtcCTeNCUhPQccvMiJCRbNH290nu/Sg4Zk
oSrYy840zkwKJ4bEx7SMmVb3pNRpoWVEGFeVdbtRW7Yn4ntu31sdjDU4BlLInUXMGH9zU5ldPlpf
7uX2ZlUKL7uHEIBzDRqpVfYwZ5Lvgb38ZyvxwI358XWM0Zaitl4Z01l4d2UEW70V6BRk0F7W/0PT
uqivtko3YQcWUNjssIfFbNRSf6AjKX24Ij/hU1pAiX+r1+PVs4NaC7ZJK58rbF9h4wHP+QvTqXT3
dcd0Ca3ZhiCP226/6tGJdgFRLVsmm6im4t3FXu/ldriwt3BNjyu9/5JxcB+FMe3jvtdwPISLY1vy
4Z5Nwhp5TmWudh5Cbk7FGqFeOrK2Qrxmfyyg0zPLFhnH4te2+yvgR8ARLIUctXxCkMxs9YZfEvNG
DYGoKM0xXWmLrIsKOF58sG05LegH5so7XVrUZNMhe6IGZNg90R50JCKRElOFkJAa9IuSGO7kfyID
2FbiZSHHvMKWgZ+/9PvyTaW00FWDPnHCBpVnRBOYaFnkZ0s26Bj22bqmIpTaboPjFmuyf6V7N63F
2DX7U/6AiorhqAUhnHHkDAMy1EXoVyCE1UCIbbQmxUE9SxfF6spAHeHYxw3JXV0pMGCzwjbODgxM
geF0AYbTGRiw7uTUY4YzADAMBgz2AwdAEUMJVOBIoq4QGH2UnU6NfNsApWYepnQMYfMCtaL7xV+3
fTlqIy9Bo13S4tWyxoNOx5pTo2oSJdMvYGC4UW2wo6g3yMndXgcxa3i++1jjf3OLrvdLZo33LdxQ
xtub7Z+xSY/G+x/nBKcfkw2tvQ3YLMdlmJFvK2Lg+IvgOzoZKCFf/sO/8z+VVbp8yW/oD/2YDgj2
ac72ZkVHRyZz9pCADX6kGyYvJkGU3H/HP4+3P6bQId9+ff3p0/t3L8vBkBWtrg9+FBW7n4r3vyZR
ON1PHVgktJ8guzdh8XOjYd6OKL311A4y/y4o16ZJXT1QpoPPryvc9iEGuBF0rKsiavJJ5E9rGpp4
ege341FYmaKpdu+H+UFYWehSYWOY6cila/o3NGyMGoSKu/jXJOyT/FS4zWpSXRe3SZdN1ro4hPsV
+T9a415lN0GalnPYQHdSo450jpLqnhbSXIgJ/pR8zTRK5mQjGm/ROwviMJhBzllL8mFpuirzrfPx
dqA7v4t4rlwjQ8B2/jpb1rp02E2xJDu0MHKBvEadPIZTRao89pr9eeU3C01lJwwIhRZ6y/Z98bBP
9Flfme5iYm9Q3aWt/nBSltJuXSPVfU7uXVNExkwywGSMnOFULrnAQs0i0E3FSxjPaU8m6nlP1kcK
YtOag+e1LnqtRogJqjj2MyY+r3Whaz2F9ORntHhea/xrwcqZyJpEtgSpAi9Jm1+VqVtwRkazApjR
yWoZpmQTA/FrsggN070QVFBufQomcowWPMPZtmqs2XGgjWSEQXrL6MyzOH5eq7Us3POkvAkXFsv+
gnNTJDitn2/tea3ntVQbDnvt48Hok+tIWKhszN8ob/tUkp8qnV3M3K5ZlmuQ39LPQTX95p+frlz0
6dPNoTJ+7NGTAEvavpX1GWZTDoRmnmPY6li+lt+H04ANOQhiOtNIQ/YkzLVNHNJ3cAcNu/fZ5fcn
2NNS7xaCrg3IMc+8c1fcWSFcEWOOR2L4vIlEOLnStHD7tY6xj3UQ1YIHn6y98vPpMoQLCnCj64YO
Ru3Ul/x0L2dJkL2Mk/xl8BBm+ctFOK9MG3CHWqaOI7kNeToIvpoWlIZu6W0Wrs60KD8hmwESutCp
LIrmz08yKGOs0ZzxZugNJ4Gg3igtTAXxI8IOtCikzixqoPHLu/32+I7OsIcrrH/LSvH1MWxG98YA
E/q3V8brK/yB/Nt2gSOf0D5w47izS98iRzn6T/dGg3vKgVrlRyyiRdTZKLwLMm0xZZKXqrdsOrZA
IiLUKFNOIVHc39/jlw0gpEb31mYBoCnS2oomuvVG17GFrdMq9lnIZqz0PGJeMx83KywJ5wK2OObN
qdhZZyMV1LDd4ZnyqHEJEvvGh9FvEX+QJ+p5rnQarJK7oJxazCS7Brq6yd+PDRiy4KF2l4a0K9uz
sFtenuEaYwOLJQcwajkC+TZ+BHtL7eSBkAysOB0et+gGthD5+Mvb1x9/+OXT5z6CxlFbH0aWllUh
phCSUkS2o7SCrQrIjjVsl89gtXNdz4lAV81dieJgg3s3v5Wqou9lSaVBEGNLf7D0l+t4cRDMNLtE
QXp7jiqiwXKswbfx4tsXo3D84W+rDSvOsZNvZYnsvvs4UC3GtyNljs51QPZEZwaGi5i2Ypwn6Uqb
h0E002JhlMo8C56M3Z3+LddAR+/111tt8RxckjaFvABIHuwvePBX6yh4GQf5CLZGIdhzGzzt90gd
BNkFnVm5zzOqWQ/WGUyjC/BhHT6efLBdgLxunTxwaQd8vqDGQpolk9NBKsGC9pIg+4yCGXd4w41l
W6WRKM2og93yzTLsmgQAHa+3jVtYtQWUwUaEtm1LXga0njHq7/ioL6IknJuJKbC1i6suOgMnjduy
MtR4f21tmiaE6IvPiCnOMyfhdqV6Z2Ik0Mw2k1WYa5NNniexaLiXrJukBEdAGBOG9nKaZcfJahaS
kqwGdsbhfPPoRwcwB6S9MxQSVxLQDFOXoOPQC+bNwmOi0SR5OCe8N4khxcZBqjFYhMCd0juLk/JR
mrSMzZ9QcE4iP/4CVxkh8wkg19EFiwDQLem+8+0yPKthUEjC/W5nbRL5C2KR44xGUzihGGD9yvUW
W/2g7KQlPTuoBln2oVmj6Dmm1xCoJyYWjJZqDtDqHGQj5oqGdB3Gn81Y7/MgIzcw/cJewyUPRl+K
ZSn9ZeduYEiF9ZTxKsuDNQaObThy1zAg0CJX4syXWXLPw2bsPtn8S2Z1hoRqGNO6xdfs01tU9WRh
SzL1ZNTqaKQT90BgENIm2CK1f1CSPAfWVhQmd/UgEtPryRfksFjRTZGPNhHUzdY0bcWoKGTjyOp8
vnmQpgHcp856cvixu0x+7JrLRJ4iTW9PQBbt4vecOXd++rdJsthkV8a7myvr7c2V8YYpcFfY1a+w
R97WKnCOQgw8oYCbZnccpG1st0O/gMvAnrJnY8/sYAOPVFdorprNkg1trsOUJ2naWTtUEnMzu+dt
r4Lc58pEMTWv+9jBS1ISi5u2YHHfycV2XAa8W+GQkizGAWRhzP2SqH40+kAjBLQrHiidsCPF10Jn
NuYPx1FIs98d8BJ0ptQGD4Qocza4MUlnAlGLHCSzhPYAgOGaEj5tbM2KUcE2Bqi/KsuPzM9fdTUi
Wwly7EWT4Dr/E5PbBhHjGA8gxofpo97+hujP4Q7qVpfEmOYSjo3KFMZSuoi3PRDvDYDdc3hDpzTU
cMUdUZOjMlGXbSazZOWHMQhtxzH74RQRZFSsbs0gJuBA0FqWJNAerylNWWgJX1VlLdC6LHPYhyWe
o6PzMzNdH4CZNafyjABtID324J7qqQ3ZTZQtdCxQiSkarv10X6BvP2PZ1dokmCdpoE2STTzz00fA
nrGNLj7dbku/olzvFlUUzf4QvyPmeTgLaBZ4/rgOSvuNkMc0CO+CGe9QT/OpaLf6ZTjP/wwFUsZx
+4CjSD8IFzE9PMvkB710huFIdJZQZ0/RIZF3Pywz4a/wB3pIQnJF4IfQ5O+fP2judfHrt1eucWVb
9KvlstfH4wf780tmvU2iZFLuUWN3JHQNYNN0+txBlifrAvRgCy6s6kSs6zagy+JOuYEdk6+OBZ5h
nW9tpJ917fNr8o5a4feULut5bTnKTrmy0JTx8NcJa+uZEQ4rdgZYdT/T+Pubmy2MvwdqGNpKwhaC
X6TJIM8xzij5zfOt3TJWLHvtMyddVXhw52EENzfLKx3VqQzozKB+Xvt57VoCewqzizxFKonZau2G
6t9dEm3yYNa9QZN3RuTxziITPGUSeIBV2ylBHVAOUoIO9J9ZMt2sBC3PWafGZlBQKY/3ieJIGm93
f08eEfz7Fcb0R+TbYfIzS5LO0imt7yfLEJ5DXvARQWLh3Ejxb0fhZKdhHsJhBlPX+9PYmqglhxcM
ZB1g89yXegCHHgrWFbb91Zq6SJP14wn/DGo0irXlfT6sadyIhlvnCaXsrHt5o4ybNXT5HALEVc8+
OwrBoL8ufqX6Y8FYsRf//PTpxTfHvjxvKFK0pONkGGfhjNi1dwv6FsMVNI4cPGHR6G2YCEw8Nq1z
YwoEkOspESnkORQhZuEdFwUh+fZAWUhYiAb+kwJt7hb80/35cv9D067/wreaRt9i+wobD7p/ZUwK
tzH7ALvkgy7D6274kpUolzEQbjYq7O2DmwaIm9jujZsp7UxN47jiOJUugQT2k4z5gtuPmG7HPkIH
Rano3/Dh9W2yIEVDrM1O7Q6y9iyY+5sor19cGcDxaYDjIdYWAFzF2nFwrxDmfEVB7oP7TEXPVPQ0
qEghwP3ZI8timS79eBEwP5o/ofMuIQGIGtWvHy15b0yPemKWfREqOQ2ubui2xBWK0Z3VmTeW7Y5L
9zMqut+RMYAOlTCR5kd1Pv4HelOtTZepbrDc7mRxVxnO1L8VS8aqGPbzuwGjRVesGMJk4UknRFCm
kce1X6hSEAA+2jXNjo/eo4OywFyYfi8DTkXm75S8or4aP8q2jVx//+0jHC/1LIkoXhTVbFiVMOPL
xBpL0d7nR05bQEhRMhl2E4w6nCE2gVttoicS7PUYgJszmW4HpKsW3DIxvEmj0h2+7TvG3OF18nwd
Pb487PLctBT4mNrIVvx9fhikd4F2R5hTwlXtg6AX+cf/oDClyY7jBS+9Wa3Na5bLyf72hr5lka1f
5nPaxIOWt+s6/+jdpqh9t/Xr6XITf/kU/isgv4HNAzjb/2Yb+sgk6r4Dt+ogwXP2bxi/CPakS6U4
8FONjYWF3bruE8MvVzeRjboeim2EzlcUjmLVdUMtm8D4psICzkwvRzjUwj/NQlQHb7VtA8BPN99U
gSsf/2vrqrqYKY1kTG3JMPZQFwfo2IRN+10540PtA/SoRFeudB0wkY6Lq1QiEYi2yHkK+NOEfNmE
7NqKOqNVGK81DFQgXfVQnePHIrxseBumLpaC5NLTR1FrOYSadA6HH3+UkXWkOAg0gyMxj1st/hQ4
1WlKsM95IcjDjVwD6nZgI8fB7TdwAuzbXIK6oga7ia1aR2u192p1oLRG8oW5yHhrFVBNwZ7RfuXW
HLbmD5RIoD4bbscWKhxIBV9ohKDIdBTiEIw8lq2GGGs1ehvjAVD2AtBSzW0TjWS9EnUowm5P2BOj
X8uD1VqbhxGPZ9EXTAQcJV7X7+4P6h/fZO0TrZuqDLTT/a2hO9edUKQWsMfNAB0pd9l8cXK21cqP
Z7cSYDjqC64jsuf7/ToI2Bjggo2RXfAo9JVaGY5M66tiM6PFwgY3CepgpvHM0s7F0vAAyISfZZZC
ZnHsEdlvzT9NNjFr6DT11zQcFsxerpK79vNX2zGo0eLUMahUgecZd09v7t37j+8/v39Wqb9y+YMG
uGA0EjUWbntoXwbLHxPCn4B1fUdN/asyFoaiL/VOVBVUOeKgagstpX2Ac3QU3enMBjJ1y/raVKLR
UvSzSvQcJng2yZ/DBM9hgoEctM1sGmUZRrKTi57R76sOD2T+PMBw+iq+wIhYA7IDD//qr6LO8ubz
Msz+Rv75f6M//VtR/FbNgn9KFu1FhywaILgBI7h1WdzyRL2mrILaJ8SUh8JZVbzJaMibrow3lYYZ
SOKuyGIFTmlxUsxGrpQDG0bvYUBsuBn1P6z9RVBMIKIfFwcFZmRYXgeM3q+hntGpncVEK75W/hgF
2TII4KFmpv6sYqkLqoKTAWfBZLPQJsnskQ3/XqS0DVgV/zxbiewwQdnRsq5iXGE3VezK1OYpQZ6S
adFGZ6vFrh8m2Hr0Zp4kfJhdtf+Y3h+DjigaaGTYQQkgWz5uiIHssz3m4h3KyMWeazwHYEcWILrY
RtwnxT3E0T1dVyI+4A4m5oWT+SGX5TpUnymtz6Ff9ZQNicaDm5NjLp6iiXS6uycRgRhdtOz9Sj3W
7IJwLzqd+EHQcdx7dpY+x1PrpUVMMIngbwAPv/V602BK8CFZ7ZYBDFzkPmPpUPZmg+vAupqaPUGz
K6cr/ga0ZTY5zT2rSCc8Pk9YOQfciG6s5ZhyQ20FURMJxEcywvZoY1cYoOkYjnR5yZxgyJ6EubaJ
Q8o84WiN4fZG/7JLd7iz4o95njn+ClmO/3yCM61d8qfUtbcO990AD1A9jG13XMzv0Gof3vW+CzRc
UR8o7S/j0x6iIIdwkasoHE00Q4prh5hXnWS6bRN1tdF1bGGLfLOMm9pGPC4egEjgju+N6BOd4N6E
RIigIOzbj6dBJG6vi3SrZ7+JfJkmeR4RRZY1Otta4Ef9WVnPjeJXbz36v+u81oa2HOzUhweQEsRh
6GFM+XfH4N/t4ruDi/de8V4vvpvF3wXFz1HxvXiObR3+ffn72C2+z/l3q3hvGfvfsY31w9/D3uE+
y8/b7/eYeTbg0OgI8MuQaiKPx2Yb4w0do6eoJ2WZcOIJlk5ZME3ZnoSFiNELe4Foq8L2zx+CZk1P
d7wz0Gx1jM0VJyZOQtuvhIw2ujXjXxH76rKvDvtq7n4nMNknmH312Cf8tcVe+9rVxp0F5I8dn/7Y
mutz8glC/tXGdvCUfLWMCfkczScvagUNwmgAerBASdOk/+RJNC0viw9RKdG26qYxvXHibNFtSg3S
Nk6YE13Z9VeI3YOiWGWxVbCaEF184s+IUptl90k6g0fmmEMQrpZt0jRZ+HlAdhN2H4PeGMYgAHiI
TJv7YbQhv3rgg2Eekw5eDtkbqm9+TsOY59+F9ryH5z08Y2Wxh9GJXIjZXgt9Ce9cg4jRd+/Q+3pX
QhOT6pn+VIsp0Bs/hASHp/rJ0FRYG9cgJovQMlTRuEmJSre2CnJ/5uc+uJjleRIveBEQCOZzzQX0
vEbB+van0ggOfSGKZcVlrsw8uDA/1BD+J0sNSfrTfONHGuMGYKMp3ZGMvDyylWkIWwjAYRlCgYch
Sw4gCLlgexSCtnIBR4L15ttvb/Tv9Jtvv/v2RgOniVWSnNVgytSPIprBC08lN4zhvRimrte1q6Yx
WEtvBw3FI5qPh6ptojxc++k+iWw/Y1Ka4dSdH93q1+FqgW7xA9YW1Nf6ch0v6Ef46KN7P8xvjQoc
vFHg+iEKSe8dUcRtFKE/JVBNR2Bk1XMGwjK5El4qmY0CwfYvaTvA8bsDTMP6w+0LdF3MZ0QvWqAe
+WKgE/iH3IFQwWiipOPOiA5KTcetFZoIKw+AYRkTy+u5IR4WWXEdsp7CTYrCB+iJT6Gn3h5rTuhX
YG5Dk/HsXbBz7sfTxzoT0rCN/mi051qnrXTZJftZP7urQUIvEeCcLxM8KrP1/Wk4M+gcsGCaBzMm
4+mv0Gz8W1RhCWajJIlm90uRTVsn680atqEbpYLgU5kyKz/7AmKQhUZBpVWEO56/xszJBoq5o4hh
hzFREMOZNo0SmjklmoxrImuEuoOn66YMlsSHzhJriuwj05JYC9I0gbME3EYWEhYDgk4WJxIshhOH
TGTKOE8B0jCeh3GY00nkybq3zBx8rR29FwMfa9JDTNse7WGaSgko+NoV2XaP52g3XQbTL3vIp2Cc
19eClSrg23g611cC5GfkUTBY7fk+n9d6WmuNQccXadBbo/wK67QfAh8sPmGuo96+y4plji5AlTs2
WA+UOg10jppuB5/lUyhkr4dfpQ8HBSgieHvcVcIy5JlHkyiZaFn4rwD22ThqDdRNGtU6jQy7wwaO
rM9kcVdxVBiOaXc1XTaTVZhrNG4ZxtT/g+wJXFxl2L1RgusQfCbw2k/9FdMiCKd5j69c8+o1vnpv
Xbnvrtxjv4+rY3k4EqzW+aPmp6n/ONnMBQ0XsCHVWPtXkCZaFMSLfHlUStiH2IDLi+RdXsuKSFMC
zxgJgtT5fT3dkA7K/KEiLB3Zi2BgFVf2IoacRWDkNjDMmZAp1bJgBzGHgJYJsAILXzwRHWLdAzBe
Vz7aDbGKBeCEo0tchUVfaH0/LQzOAsEg71EZFBWNB7Qb0BWqDxwY8nhEJJFHnJWwmlwD39nJyd0m
NvsBmLl/T+iHMiXwn1kSM5soDfzZI83gDQSRDr2Dl7vJtcq4wUYRUBYerA16WkgmK2NGBIVvl2ZK
IzqgED0j9eiZrYNp6Ee7Bg5gyiCydTRi7BRiyJLQHD1SdR2Zzv84yTU/m4a08wVN0AeWs6RhhVh1
1PufKQsIo2LmpCa2J+2WGn0vXBiDhiASTUeparT56gthq5srHdfsjnxIONkL7rSsqUT1lOXLMASG
UtdciagbyUHds3IXRiOs1OIuDIo+8IJaEkupqsT2QLRWMPvP1DuznLuyJc4siPzHYMackFocLJI8
ZB3EYc+xM3bUPBc11OIPyGAN/WIPRpVdUZ8eF5tj4ueH9LOLH/Go0bfffktZcSWAtG2yTf/8++8K
q/Cbmxua3kk+PsHCPVsOnDfxLJiHccDjLaKGc56HB2FBBsyCvKHydrRxLgTfXkr0bcpRZ8l0sxJl
pumuPdSZDBkyMWdFrFzfvvOjDSzoLd0ZIwcwZHAA8gv/QyP/a8YHkK5LgfrMjxdBmmwyrbR1wP6W
jbKejd58AI4Ueu3XPtE+pTwrVGnRf7UsXK1pT8P9jqizIA4Jsw3uCMFmXKkVKX6G3kh+y9gDuDx2
67Oxdwv/8uvnH3/5+VPL+NjpKWHGechYZJRVSRXjLv02e9BHspmQ22QDfWCvJuqNMfUZFAxbk3jl
wx1wHdeStgF6f8REjgNi006zrJIjMeRRq7Nr3FFh7jFewNjbpX8u9yg0EETYVYr6hFeFeRgIKpHN
ARiliE9jbA2wPCyPPTQmNDy4o1ZerZMI+OoK2/5qfWW8mSbrR/LtpI/L8JTiY5zUsGFkjelaDrYK
XEsPtnCKJ6hVF6m5WhPhQ0qocp0mi5QWHInp0rB1Y1QIcACnlu5mfSB3c3c0SIPIz8M72uZ9GcB9
0GmvihFdCLTj/Wv5G7mUK+Pd3oVcGa/lUWUHwjia+0hVpHQ7F2HiZyFswlh2r6UOA6kHiwroTimi
Zf4q0Gjfe/4pixHAHit7TNgm3DbECQpxu/IfJ8Hftl6Bv7E/+lvGst1P0rtuDXMN8KBHc5SwFwL8
cEDFKdi6TU93wpHHRVpGywWOBRpNt/cjQm/HSxuua+tNtHyz89VuKKxXYeznRPHVBbUF9a0czGEv
GNqxbOvrlcAXuPU0TiJ/WdF/jQFvCo4dnrBOznpTWJGdbIz+ruAgi2uN964MyXd16ooKquukxna+
JViRcEd0KwrM+hdSvEodYJ4v0yBgnr5sl7FLcO1ku1LDcxpeSS8JXGnM75jYtBuufNof32pxjEeB
hM2v7LhbC51zVLQAbdJMUW+Pcsd+g5XPLO5N/CXTtjmSosmWXqPu+V2QPPXDiA1zTlY0QgxLadsZ
x/WCm90PpoprcYusCd2X1FAQmf0zf+8WrLzzsLqTFzKZw1w3LOgb1b2ZnRK6di2rIMaJjI4L76HX
ahLMCM2/JHsBoDpGNDbaVZXTn+s+zwFojdM3N5p2UqAOhHzw1Cnd6I18rDg82eRReEcEwWLKlqfh
umnqZ0tR929keR1Xplybzlkh2LGEw/RN5IVVi9cHa1QYhjdKxDbhzsU3N+Q/WWwYd4Qs8xRqd1nZ
cQ7MInSc9k/vAigLzs2s1+ytM92q1ULqPtyiby/k/5IVBNwozUEC7mi/Yx27cIyxA3G0y3/I70PY
LHVcXdraMrI8JJyyOuegUcdAiPls4qk/XQY+zcgo7jcN1oEv0IscG42SE+yhXkXbvgrwlatf+a4s
Rt9VhE6O8aVR2h70pKm0JwXSnjST9qS5tCctpD1pKe1Je/XiFdoDnSkd1wml7fhPaU/6Iu1JkYwn
deE03bM3oGOspAEklvakv6Q9KZFHNNKetJb2pEzak3JpT9pIe9KDtCfdS3vSnQImvPQZbcdxMGVl
ft2qpqE1HqXt9l/SnoSkPcmQ9iQs7UmmtCdZ0p7kSHuSLe1JurQnudKe5El70hjV7MUIFfb5CFX/
TUydYPsaMVgn2Ki3H/j8NDrRBwd5Xn8XKbNsOzQasqxRWtftogI331L3lTy/qoy7jiTedT0ERWH4
M6JUX/CJuq8Ynqtf9rmiJ3Qu3uadFkgGac/oEz4zFzr04/m+z3kN/YX91+v91xIn9GFZroS7hebH
5CpyQTvjrl6D+zCKNNYRofQPp0G+SeOMF08ksVaXeG7pqDd2b7Pp80SjfmpWidqtizd8QDqCVZsl
uZblCTjeybKcfg9nQ5jzJflyTy4OvCHbMs5DCUeIU5DC3YLOBlxFcfb9AxHPX7a5bPf39y/vjZdJ
urghIs27YT8tstUKGpmG6TQKyN+nt0jXyfeb4sd8GfKBnxO6mWzy4Gfa9Y094vtlGszJj1hvg4zs
4c2f/p1f0s3rXWWxPgkWYXyrZ+QlQctbciX05Zzg6e08DYJ/BbsVb/wy6k/OQ5SHOMnD+eO7JA5u
0fVss1q/jwKqdLx5/BREBMWS9LbY5HEsAlvy6LRegJs6OhsiQGxxymAX0BdlbuM/P4bxf7ILu33B
Cr9Za3j6F9+VQ3lf8D/ZMj7+hj2pU6//Bqfep7VS+FABnJFX0UzjTeSyAG6dQxhxZw5JSZoPiJuR
/8S2hKU3US/t0yclLzWC71T4Th7pXHttEi4sOBjaQb6Mf95AHX3YiuijBuhgI9sXVxPzypq/+OYo
lZr3672lf3zAjyo92yxVyBIlxNziFUtg8bRlnch5t49SeU8mNIs3oPEGGNA2dKdRSlYnEGR/hlnn
7reG3bCXChFPUZBl5OeAq3csWLwFhQCL3XkNFhPNfp7/QZ4wGCqv0yTn7nNq67AJNYI51CfkaDsk
PgZxp8q+HkcEM5Q9JGnVzqgk3uqhrsU7gPOuQrdYzrBz8mZNvv1ItcbHZENrLgKq++XLkCqEK0J5
xDCl2mY8I1/jhHz5D6JTfirVGL7uN+xPgph/o1/Jicm3X19/+vT+3Uu65BpIdLJMtRcO5ih7hj3C
CzdOXbjxfOGnoQjmBbvmGCncPHXh5ld44UdSpBi7/ql4/2sShdPHg57WcZBtpssjzYCFNBqFHJyn
NySs3g8kHg3Gzcj2MNsz3+6XYUS++mEu0opRk4I7V9wcYsOmMZNH1XSFMD1Za8xTn5aDUVyglfZw
QwCj12q7m+GLBTnlJuz17799vN1tBg6HOGNf3GsOZxi8eq9FxnLCRTLxp1/gJiZI1iK1eNpozlGj
ZfiERngRWbd14mIcx5W0EOXgrLLzIEW76XC1RvDKNhOGcP2g5j49SdWZbBOigaRrorXAVGv3Wjv3
UzreaBL58RfmByVWvqiLqa234xBcvYERUbCsxj2ygO/DaKRbtToo6HA1LFm0BhxReDps9C+U3uMn
eyXTUM420mWAkiEod2IX5wJdKp5ceFZWpZxA0Nu+A8YcF5/T2VCaP6fOrzjI75P0ixakaZLCiT9G
B8Du6ffFAlm42kQ+saZYUJ7ZWkc8S7ita5oSQ9jj7YzoqTxrtD+rkrvDtZ8vb28OxI/zb42atjxv
63lbz9t63tbztp639byt52313lY7PXOdrDfr7vmzzzc12E0FscD1YI1FPZemmwP2yiYrlhYO/UIu
Qv2X2qzX5PnBTCM/0IrYhZY/rmHfJvaw09HdLtWfX2PWNu3DjGXh76kezM0GK3tQeSR9GlQsqPji
qT8u37rKHoD5DqeXt/SGV1TnSDfar9PlmCyRnSYp/u///evH3z/97/8NHNnpdeQTzsGTOISbtFRq
DPI6z77ZG+QnuotQPlqyNbj/h4sGund/vY7CaeH8Tvy1+PoNeWCR0N6l8UWfduMPBOl5ktxM/LSG
viyV9NXf+V6z9iYLUvLoOAc4NTJ7Hmw/t9mfzTJtGWZEaXnUwjxYgblh2NGHuVOEjZs3r39TdqcN
jv4KyTh80zXhAQuu4gUrZ+y0ZEei/YMQLSHcf9VcsjfYZrQxbabcRNs9ZQF55gzaGD7aWNGp72jk
B9NVulVBSTr5lfN+TBdxhdG4tmMq2Q43CFZRnnwJ4vBfRIOaJay0hZVZVs0os0mE3kJyzmxJwghJ
23HejGs778a1nbej2g62xrUd5+R2mri+ZG3H1scFHWNc27HHdFnfyoENluS3gWwDY5j1uUNlHS/O
tX7MstIrmbzDrM4wUx8NMjAB/WZc23k3qu1gd1zb8Ua1HeOtEiYrPSgg7bzv5ZzXaHpeDJ0XdVzh
IYto2GOmhau1IHBk4P7bP1pG26QhMMy+UZeTLitl1cHPuPdKcULrcuZhFPg0a/jYM2t2gFpHHPy/
5DAAQxI/ejuq7RhvxrWd16PajjWuy8JYCTPtEYMYEeZ8ULKdJ1BmIQ3CkvTME7PN7hbaNGXjDLTJ
o/awTDU2LZa8DWNt5mfLSeKnYAAOG6bbe/2DEVv0NoFhULiR9KpfZ7Pmvd5iFrvdjsljU/K0bWen
DM5VadLtzmo8KpBVmdCCZqgwQt5B2Td2PrAoHw92JlPymdrdHXIu9O5o97riiCdyqej0ocu8y+Mz
imL95IjmEzli9hhPy66EcJoactA4z3pioUWQv8wfcrXgZKVWNWytSeuJ0eHJ4dBWQWHX5RHA8Sxa
6FyGY1/cuUqFkiXUFsSdpDO4nBNh1EFL253oz0yjahEBJjDWCpmea0t5Oi24rTweo9r2npbKGcW9
7yoN6azeJNqwNjDJOkh9nqqiw11r2krRem22dnktZNld4C5sR+Iu2N0ebgVg0Y5SYIMtHi3XGAjY
Vg2wHWwrPboN3/BQR7fr8EwCttet7YCLmvZAR3fqbt3QlR4dHPDoOPpAR3drjm45ahmrBzeiNgc6
uld367ZSNofAximmOxDCI7326P39RM0S45M7ohOFM9gWdyXQHfVPJTEfggI3JO+Pa9QvF8TTZCbs
/+9iibd6sNwDADUl+rHmZ3TCg+YC2pfryYDhPpp8/PRrofO9Z9ry4bui1/XKz6dLWIWWwLaOdsTd
gGngzx4/sVo5vol3Ybam23gvMsSw7VoD7eXnJD+5HYKKjvTtzGZsvY9hlrOeMUlc3hdMDob0LUyX
wfSLRksrGVR4NeOcGFsmUZ7LNumTZPYIN5iV6pbm9YyVhasdEDU1UKDdKQEwwMVH7TjsD+9fv6ts
Ik7y9w9htf+SmiPy+AcNemjBap0/ws4PU6YGwdY5iLxA7ZCk88BpGs0pSr+Oot+CbJ3EWfADazwK
H9ntf2Rq/f0KFA7xjAAk+4AEMSfhbEbUkVVACGVG7PuHabBmRifINxr56qw2W+BTfWhmOXO9zrTs
bgEElJBr91/6KFQZEoQCljJdV/Uh4Y59jZhy+xM+gLWudvu1tj1n9xzIaRDE2NIfLP1lNf/Sc6Sj
C433MtazCh8Iskz9DJ5D5MmEZYM9AL3nuoD41OEz1hiZ5gydoFRs6hIBMEuCjGBvQIVMpYJUl37M
TZSHa3JEaiiBp2tmFLdaNE628iUK4kW+PKlDuTJRLE7e8tU/ssWPVHyrGNyk7sxMpoKuL1vFKWnK
xks/C7MOyRqtjri7RG52F4bLv4I0Ke4ZjnE0krVNjz0J6fwRrkAAnMK1TdexhlsPmTZyGlnd7UBN
4cs1Na5NgJ4lu1fw43JTjNqDkgOxzO0B0dTUdZVLU8mmhQSJ4izMwzu4nB3LV5dKn9RW0O5zqaL3
P2hGurryrRS1HsywE/b0NC1P+UbqFSDPlH4rzBHFyz8hj2VLjnnC64WwhQSOJdnnKjnlZ0LeJ7Qq
UwJUz3rG33/7CLvIDCzxYGVDkD8Kq5L1vNqk0S0fwnXoMW1aTd57cWp+zZNNPDuKp8regGid5v1W
mq7UKkCP+qNu00TYimWrCp3/+dPHkxQr3QrLgrx4ySURVaNjUcwWD7I8G2YKx5FkMqx1GpL75stC
KGbIF3ss946csEFiErZsp78Igta/yzSfveBzPWkkb+6H0SaF79ysHQg3+g3s7ttnAxoYoadJxLvb
cX0UvHyFizLdgx6Z4EJMmymuowDew2kEsLvgH2t0BcdImzSrt+zGnpZ7njJNIxfaLIh8Frd4RXh8
ylr43FrX7NNbS6+MfVVy+Pa4J3kXLCNqusnyZLXlPaDWpBsSL+JoQWiupopzsgno8wge2YzMRmHs
Vqtu4syfB9qJboAdUKuqkW01sWLEd5RM/WhJKPt7V3d18VVsoxQdFbdL2djROns+qq3Cw0gSbq3n
WhKxf98/Vk1wUHM2uN8Z7oV6l+svcmXm9gQPa4LosPhqlLjrDtVrErv1Zew9W5I9vRFRlvfEjmR8
ryMJuF/oiJBNdDpZqvEeemN8daUngJOGoZKIVT6dXIfx9OjJfHpHsmWwCKJLJTF/A+dmudJ2IoNR
9DrzwWErZUMG9tpv4ClwKlcpL3GeHuF5Tw4HkN7wSNRKPDzS3Ce7ZwiS7f9ZEMf+yz/Xi93+2O9c
4Q9/roPFdv/INAxndzRbr3SX9k4b3sb3SIa6lN+HUziTCmFpW5BgHyCk5LLWMXBZ9MPyriwLe3V3
hZCnn7bAjeb7vyD6wZKvZEZR8eSNmJZu1d2I5dpN5Hfj3V/Q1GBTpVBDTy85x7QGtVeCWejvPz5I
7wLtLpwFCUAi5B//gyLcSqAcL5iv+OVqbV6zkCv72xv6lgHml/k8C4h40en/+EfvNkX0wNav2Yjf
T+G/AvIb2DyAlv1v5CO9SZLDRR3KwLb+f/x/UEsDBBQAAgAIAMpmjkYWa3zMjA8AAN21AAANABwA
ZXJyb3JfbG9nLnR4dFVUCQADbHAtVY9vLVV1eAsAAQT1AQAABFAAAADtXf9T47YS/71/hefmpcBc
lThOwpe0vA4FWnilHHOhvZu5u2EUW3F02JIrKZD0zfvf30p2vl4MDuSS4PMwxLFjyfqsVqtdaXf9
4bpHrKNIWNW6VXWaDbtZO7Acu9r4ZH24x4J9ss4ZVU2rRaSknFnH2O0Si0qLcWW5nHWo3xPEsz50
KdO3tS6SO82Nn7778ED9UAV1ySf4Wd9bccrwt2tt/8lof8e6OruqNMr1cs22Qu7dSBkMb3gTEQbP
qdjlg/L+P3iyFQhZgsheSJkPDRQhDiweEYEVNEh+0Ranae8O20KE4AKObkAJU/DzXtmGv+on61ca
EMvjJIZM+lQCzspfPOiFRFZOsMKV03etyjvS/p2qygUe8J66JlLJSlepqKLMVxxFrgGpK0JQETIV
lUPMaAfumNe2gxW1baZJEfN/ACp2iCCiaen7mpXK6JnNfdu2x3Dqdh0BxXlPuATdU9VFMuD3KMSU
ja6Xo260Tnyjxg4b9AVk1V9rB7iY3WFZibo0oFGFhtiHsm3s3vqC95iXqUem64jrlcTtCaoGZU/g
+3NdbTm+rdxVYVCwXO7wVe0NH1LrbCBuc6GQuYo48/g9Czj2YKZAQyGMgPQPSeRqdVPIiz72Pftj
/6ADx+rH/r4dn7dJcnSSY2Pmd5wc7ezs6A4EDQLqIhAlaXJjnYS5Pjtv3fx6fnF6c/LmtHVz+eb6
5vT9eet6Uzsytb2fZfZOmeALXQJUH0TuAIBEHgmIArkB8wBBAlOpGVzRkAhULbrvJXefszndtxQi
ZIH+AiBvFJ++8FZ+g+zzDMgvfHA4j7dSuoJGytpa2KCSckrGBnhAvGMq3MBozlsGdEfbVhYXVo/h
NlBDcUsqrB63tKBy3v5MXIU6VKGkdkRDH8m7dJZzVmVMTmF3Y9DQsGfiAr0zgp+ItzDAZnNZ0BJ9
fQJeh3NtaTyKbVjSFVxKxAX1wZh6f/YW7KsguIAf35K/e/CMtffeo5p/dmnRwUGgFxEKTAWmp2Lq
cEGoz9CojUOBPmvu67YvAHm22gL62qAPRaOk/5CJmSOzSI3LRYLoC8gsXiJzDTn9AlwBrgBXgCvA
FeAKcAW4FwSutiJw8VKOQTRjS9xArTfZbIn5lYjYpgVVlcWqKtyEJm5FBtraKZDr7i3AFeAKcAW4
AlwBrgBXgPuGwBXICmQFsgJZgaxAViArkBXIVoKs/vI8IMJeoOjjO+L1FffZGBgJIzXI4qo3LDru
MB+ph/yKGivCpINKPCqQ7PJe4C3QSSGVbgW71HNQRPskyAOSVAy7a3Q3SbifYagnwi7Ry/ameu0B
Prwv+5jiLKCMjAYV0s584iGX2M3CTtQ9FwUxXgoxLonPFTVhtk3Lg4HG74iOx+0AkbbljhVi5XZ1
UG6yJ7U4pczonQjmgnFcq8heFOmgLqwj7KztS6CL5WqxYLWJxZI2EW+nnF041FLJsLfi6We0bYeZ
QtWFpx4TNJhcTAsX3F8nJOerQDpYOSTZc7uaz8uuzK4gCBLCEEEwKGAOU4L6PhESRVhIkroj66zK
r38YN1zph4G+nAzaR8GNygVms5mISUd0jfQdVd33f1ycQelHHK6zYP1TEot3rB6jjMJAD0At9qw7
HEBd/zq9/Ou/r86ur69u3rw9/+388tX/LMp0pgAXBAIzgsraLu9o93+ptPSzsHo6nWKH8jOCvSnM
EVSsEm/zsutTSwtea7+cnZBTFSdu611zhjpcIJ+kE9BZNbNQyQMtbd9xEXgVzAZ6UGSHOl384QiX
lYGLTPgdFkBoNG3dPLFVV2dX1jssgGX9pgWsCxxxu125w6LS4QF0q6zssYrcdVyn2m3Uo0b9IHAj
1rizq07oAr1sn1WuK4jhO+obLk5swtjaYKhngppRFzMvSCRJWYPQURI7TeuSW1pcmXlZ8z4o0sRV
XAz06FiUOONGTAfb6DCsKBHRFowzw/X1RzlhorpHMc2j/qpM+nvS9oNKFWp0JuUbZx2dcIRlUMWm
a8DelTas5C/YOxK+zBk+Rfom84Rzcnb9x0X+wLV67Y3CB4aCliJjbENjAVSux7F9UTq+AkJG69kt
E44ny5/lOiFOyImI9hcRKxNSE4wTI/qQBJPI6wWgigksuxvTf6pLJdJSOp52Zhc7sqxFDatKujA+
xF14ydV1F8quHe60glnRge5wm/mxC7MkkTKTVp1SzfRllFxGJhFIeiCjU1+W6vn+5vq0dX1zdnp0
cvq2+lVU0BnkIJwQGPqyYtv1eOFxpHbWy4uScbKy5xBruWrmU6KvxoWJ0msgYEqCMtHmffjWETgk
CLuuZrY0lKta3JzMVkP0osYijTGBtldgWWLVE8QiOrq5M4yhjq0G2bRipAj4UAkeoDaW1NWGBOpg
GhhfYQnSXpuzPl2YYxKRk/kZafTeXY/80fZUlnDimWJxZqFERntwRfCBXpiLOJPkmvTVc3Au32Iw
Ro3L+S0lL9VAmIWwYbSdjDLvCB4iDUhuMLHlNLXr9dqX1H4A1OaS/2Uz+CyQzaKz1BNnDsg8i2Me
lTMs/h8ppfeJTR4RIu7IGPPi81J2jaYv5VHPo/CYyf1qt8sRZYoIhYE6wc+61sO5hWis/1CmE3/o
rsVBwO8T7fj7vw9LteP4lpJjS+Eebs1vz1apdgq3JtXByTwi7q8n+2IYkcezn4RgEOLKHfUIj+Oi
0BxFc8NAveDmLC8pzMMjYc6+WcBdHHQ5PGvJIyn0EWcx7/z2y+/IBQs2HkX6myTqEK4mIyr0k+EE
hyr8J+UOS8d7bz7jOxwr7U0cwHO3Pe4CQZgqe1wnAd1ZcHStitQf+27tYx/X10NxbXJAIW+C7LOk
Pq6VjuoTxI6pW3L2hr/sbSpp7WXSFCyUDu4FMHKZyz2iSTyk1OuYJR0b/l+PeNJxKqV9u1Kq/ZLC
j46zZoGfYoaOCRBSaTIpZtqSerS2mXUls0ynRaHJKJayOporFso+LLWtf9Q6Pj8349KZHpjLZrdV
7f0bZxFdCdSxgO8ZCdvEO9bLzA/sYh2sXYoT52N/H/6xu0qpswV9vjXBBHtpnb+3oVTrfOy39b+3
CQNtzjh72QRekx6nBHVvB3PVCa22bU2rEi2zjF/WiyPH0AnHwOfbdr+x/wN81MzHzs6aRdc6N1w4
0xy2sZKvv1oW0zLRZPd3eRjixFAIegrKH/5gmM0dM1t/0kZwnA+fvv/bSZiuGk+I7rc+amOvVuM3
hPRWPEw0iiqaRErMG71jgu6WnNrBXnys2vvDL9XkS7U+/LIbf6nbyfEgOVYXHNbr36p57hZNzV4z
b31hJi9VWwEw7i3CzOy5085AMx8JQuodYgY3igvKbmOewq+pV6qdjC+/7kI74IoeloY7+tW4rSX7
QDe3VDsyDS45+5X3rVbJblRKzkGs1WrgehkNz+enWvWrE127i+iV20zvLBlRNF43i4DUREzvFBi3
itSIi9rKXVpH+MKoniN8M+7xfqhHMZYS+AyUmdiVzizNZtswN9XNqyQVqLMeoFDT0OrOBmpctCY8
FMB8EaBkDdzMxm0QGreTgRUpjua12qL7Lh3t6re907QuCPNV14qwfiowlBX2pNIRCz7coc9BFWOW
/ZSdkngVe4zRbEQgw71TmyTVRmOhFfEowAMkFQ5S47+y0OOp6dxnpq7JDGfxHsvzk7rPPGJqiI98
xYZb+n++vSjIUJBhOWRYThyZ3g3VLk1EdQUIsExGnJGHw5VRqQYBQbJL0kMKavXVqXzjXqWMcb20
D1LMBYPSNO4L3e/Vr0fnF6AwRxGo0sc61GR7x3ptxVE2yfmrnR9Hix1t7g3KUDMR2lQ4fPVTZBkC
HG51QCFG94T6XdVs88D70eUBF03o9a1//wrzoVbXdVuNv95Dj/tpoT1cdHJ6eX56MpyKwERBOKDp
b+qrrdzvTtM8Z5Dm2gFeLwwHZXnfWYY9kbxPA7BrA0LoV2oMw0moJ00Mj7FYD9tEJ4bXGhZYFU/Z
8h81e+GBuza/hSGDgBLU5V6sfiXMEgmu+NPk0NrhGNu5iz1+r+ccDSXSRuUgNwAF8XsBFk9C1sjz
OqcOehagL0vSj6BP5HOosHTtSK/06Klv2cqRlllQTiSphZH2iE8Fvr9KK1HHUJRjCVzWFZahwnLs
ruLTTjb1KBHgcUBavCdgmJ2zB63hAmeKERyHslohHgxfIK4w2LmXf15Y7QFgeorRm8ryM2ucxrMN
6dhkOWUM7z4606c+IbEJSB8D8YZJDhJJWBBtxUR7uRPHI0vta9ocHPeYiSTi/t2isPWK10BPKqAM
YwaSRS+om93ANKz1Vb0gusP5MxX8eIY2+3gSd0h9Yn315y+8/Jz59IJWGH+Xuav9BS0maPHgzsc7
ULos7fcAEgUEJYhDk3rhWTkdMrm0aFcWVN1tU4V6jCaOLbGA3NstP8mLe4KUZgaeqj01O019Tevv
2TPazRQ0uVyGiV1cHXkdpL+gOgu6Y5P3RyMD69oC+SMGi4orSUA8gVJMOtCBXrz710tf8t7QVuU6
dlcOmPuwH0k91yamuqcuWTt0M5bb2YZ8j5m0Y2YtJJFtgkR6o8vbDBxuTnCQnODwcoKjkxMcfk5w
dHOCg+YEx+ec4LjNCY4gJzjCnOBgOcHxd05w8JzgEDnBEeUEh8wJDpUTHL2c4OjnBMd9TnDc5QTH
ICc4/skJjlpOcFRzgsPJCY56TnA0coJjLyc4dnOCw84Jjv2c4DjICY5iX63Y/yj2B/O/r/YV9zl3
v55/+chlKfEnbyXnVzyg7mDmvQNxIPlzHc6XliNCxzDo8IQk06V+25L2PE2ym38fR/qfQLsPq9/f
4YB6ybt2DutxqH9Ms1LtdJF0L8eVUTE4ieBw3ik5NhBXO8QRnVdTO3DDAXpBYl9fwMyDT8bh4z/4
DsdJ+/V189wdU4Sw+KA/ddYAx746arVOT8r6kdF8L7qGnWffmORFB4+k92/U1hWpPnxRGNZx1Iv6
y/VloFDbvFLUvPIOmLvcnw+wvp5OhppOs6fknyk806Ug8NxbM/rQ2IfYhMvV099FsC7g+uIVDNyl
ABdBR6dhOQqCt0l8cez9nwq6sW7n8IUS4T2MfjJNIyJ9l0RaUD8H+na1tnNFhKmYM8sjjBKvCTQg
rs64s7zwKsaP4wkxzu6gU/JsWTqXDvGeSRTGUTLXosDUjTi7EtwXD7ywIgtpHk0/NAfShkL5ugw+
Tu35hHdDzFAgQ9KAxv43MElnC5WsNe3qN0CMh8J/gAS73wIJjF93fJJGiOq3wAsPOHjXm85If9e2
iks+WS7u+V1ltc5/uz59+8cPluz2lMlN4fF79t3/AVBLAwQKAAAAAACHZo5GAAAAAAAAAAAAAAAA
BQAcAGZhc3QvVVQJAAPuby1VdXAtVXV4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAB6Zo5GAAAAAAAA
AAAAAAAADAAcAGZhc3QvaW1hZ2VzL1VUCQAD128tVXVwLVV1eAsAAQT1AQAABFAAAABQSwMEFAAC
AAgAemaORiGPvTgyAAAAMwAAACwAHABmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gt
c3RkZXJyLnR4dFVUCQAD128tVddvLVV1eAsAAQT1AQAABFAAAABzy0ksSXVJTc5PSbVSSAHRmXnp
CqlFRflFVgqZecn5RUWpySUKKYkliQrJGanJ2XpcAFBLAwQKAAAAAACHZo5GAAAAAAAAAAAAAAAA
DgAcAGZhc3Qvb3ZlcmZsb3cvVVQJAAPuby1VdXAtVXV4CwABBPUBAAAEUAAAAFBLAwQUAAIACACH
Zo5G6v5GpOoAAAA2AQAANQAcAGZhc3Qvb3ZlcmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXIt
YmFjay1hY3R1YWwudHh0VVQJAAPuby1V7m8tVXV4CwABBPUBAAAEUAAAADVP0UrDQBB8z1fMo4Im
tjUVCiKCVQqi0OZd7i6b5PByW+42TePXe7H4sgszszOzr8+79w0q21MNHgSjsmJ9i4YDPIttphf2
BGFoglHOUZ1VFOVP0IkcN0WhhzbmI+lvKzmHtogdj18JzE1rn2z9uFityhX227f99nDYfX7gKizv
Hsr72zTX6+sUT2dRgRRqpjjHIlC0P4SxI49oAjunVYCNOCaGvORZVjFkLmK9UFBG7IncdIMThVQa
0inBxEPq7P/dSJkO3CSOoPmcojQ5HnNUCVCDcK/Emovr5STO2n7+frEsoad5pejsF1BLAwQUAAIA
CACHZo5GDIoFvV8BAABIAgAAMwAcAGZhc3Qvb3ZlcmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0
ZXItYmFjay1kaWZmLnR4dFVUCQAD7m8tVe5vLVV1eAsAAQT1AQAABFAAAAC9kNFu2zAMRd/9FXxc
4cpamiUFChRLh2RDsWEd4qB9LCibjoUoZiDRddKvL51sv7AXESApnnuvMQbsM4d+T8kuUdCuXkr7
Qu6nl7/lW+9DbdcUCBPZgCfuxQglMZFSHyTZBpNYfqPYBB5sy9G/cycYTKoih2CwEYrGYbUzdDxQ
JVQXcpQsz/P/CsdKegxn9GIBZgL55HoOi0Vm/jyUZZZ/f3j8dQcbv6calAMDevHdFhqO0LH45rTk
jkAYHEGFIVCd5RsVc95oRQ531rp+m4qB3M5LwXFrU8vDqzaLauu/+vp+Mp3OprBe/VivyvLx6Td8
ijefb2dfjL7z+ZXy6SgYCaFmSiMX1Kp/Jxha6uDiymEEn+CgE+qkyHLVwTDmAr5Tv+rUv1E4XYMG
o7pBWhTQ8FR29+8eYdUCNzojcHxUmCPNsICNNrAX3qP46nL18iWNu/sxgMnNDNxpLGd49gFQSwME
CgACAAAAh2aORu5wIMIFAAAABQAAADcAHABmYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xs
LWFmdGVyLWJhY2stZXhwZWN0ZWQudHh0VVQJAAPuby1V7m8tVXV4CwABBPUBAAAEUAAAAFBBU1MK
UEsDBBQAAgAIAIdmjkYYoxqfKAgAAOoaAAA7ABwAZmFzdC9vdmVyZmxvdy9ob3Jpem9udGFsLXNj
cm9sbC1hZnRlci1iYWNrLXByZXR0eS1kaWZmLmh0bWxVVAkAA+5vLVXuby1VdXgLAAEE9QEAAARQ
AAAAzVlbc+O2GX33r8DY07rNmKRkSY4lr53Z9aXNNE0zq53mMQOSoIg1SCgAaElu+9/74UaRFCn7
qdvsZCURt/PdzvnA/ZCrgt2dfMgJTuGjIAqjJMdCEnV7XqksuD6Hx1LtGLk7WTBaPl+gxQuVVJEU
/esEwX+KbFWQkoQLrCgvF6jkJbkxQzEXKRFBzJXixQKN11uUwneS3pz858Ru5zZJOONigc5Gk7kZ
C58oIw80y9x4jJPnleBVmQZ+anat/zQPsidIzmiKztI0tWMZL1WQ4YKy3QIVvORyjRMHsMBiRQHy
mBRoZB+tORhn7BCEgUUvxADKxx2kk8mkZ3+JSxlIImjWGJT0lZgzmocGjGRqgUbhzD9PqVwzDJvQ
EjzjEG5oqnJYPBr9weHDaUrLVb3SYnOh0d/a0XFwaZkDKFVPz/kLER2LZrPZzZCzCbFuCHVMfoKz
pFucMY7BDEFXuWpHTs+6B/Mx2OKP4uB6qsDEUcdkhWNGgoQw1rIyMPu2vLTJwbrAxFCn2kbg9R7Z
kiQ6doNJYxa3U6abLi5nvd8hoUbrrT3hcbuG8ML+YBq5QKH+6Fo4CE/SlMQ7/TcyUD8xnjz/goUK
wdRFRoVUQZJTlg46Vh+3hPUXxzYTpIDQXrxxnjvDu98mXBDrKa20m/msg2xRNMEswIyuoDYU7zFL
EJ3pf8Vlyoh3h9tHu1D/zokN6D6fk0pIHRoNu1uBOIboVD5icGadOLZ4DLxjKFp5fpgOK0F2N53E
DGdvxcu6GIWKv+nmMBO86Djb8aM+Q3v956qIiYBsIs3ssk898EMadVk7n7cI0JdLHw36Sp5Op710
04x+zTF6o5ktAVsGNeG7PHDp2ZciFm4rnSaOsBqGGxN7CceKxKBbjpDUWujq1DCdAz2buKzxhrRq
FRYFtlrNEPjT/AQ7BMHPgX5gAdECr0grMgt0WTs8Zlh7UU9MgBoAA0Bx31DX7n1UrqfzQe7NSLYn
AJ1WsGMtj41q7lmaZml7KQRbDk+fk/nNMU2vd3Is08ThqmJYrtP0YAOUEja8gszfRBN9h5bVes2F
AqUVLpPBqUVBSiXRdxGchyuVc+tvq8a6mYGsV5CniY+UWWDmDOh/PUeDwZASZrKnsyuf2JpuMGP3
HkHv7EurZQXeBh15L6AvcI8uR7XudI8Gvx89p67suqRbx/ThDPmaWNkMNiR+pipQQped9YQFjsJL
edMwY+qMPpMKq0p+qmLQ8FoPQ109vXD0EsU5i7Foj/ujM0ZMhe4HCv5aP63JaWLr2PVR+qvvFvT3
4ZZwiDmOtnL7tMjolth9HB+P2iaF2PQgtswOVXxDgQtEJ9XqPV8DWqZkCyR1xLS9EDYg9NnlyKgl
b9eOxUoN0xVsrzTBeTHfvgn0ag90bJPYi5D9ZcC677WCuZ814Lozax1NM4ELi7BTJ+02olEj9wNM
e+ibHfSafOO0njBoHKFnfocwXc2f9unlNHlg0DiiPVa3kelhe9xujt0e1n2HOTzYEqSeZ+0xHz0p
+KvOqDn6xWtk505y9b0ntEOYR4qkcduRBba9fJNzSy7g8c0Ayzj7dQsm+w63dvi6HvVNYTgmbIEz
qLCLg+X2udnECHIJpp6if6PTm5NaiBvy3V3NMHToPAvUbk16tzodROQmdq64OWGGIOtmFOtmdECj
zgoipW88Bv3cF5ZGdSwNUb9HCkFioCF6obyS9/UTaGZfSXnfEMs+nfctR1dimuKiuRyy1mSC53b3
22WiI5GJ18B3oXGpAT0OUbomWnLh2r6Bpq+ps3EFVVU2ecfre0pfFhlPnA95pTRfNMsvZpVREjcE
+ZIBFlCwsTekKZZmF+hhvuTEnhQ5pV0Bfm2D4kjBWGxnu1ST6IVizcnq7y4nAGws+AYCDp1AjmGt
a4qoCnUTVNsxnbkuvm5F3G/PDrqR1f+P2iLqX+l0e/yCpnDLsobpAEl/+e5RFOjDuMQv4HvwAOno
SvOmdyB1wTic2JZp//LDq39PDM4eHh4aJX12/fTwNHvq5SdoLvuz+PHxsQ/1ghRrYKhW8F2b1pkZ
wldA2qr8x/n16NrxVsIIFr+Z9sBfBfQTc23K9ZQPkXvr9kEmgq4hpiK5Pc2VWstFFOGveBuuOF/B
ojWVOnXNs4jRWEZff6+I2EXjcBpeuh8htJbhV3l6B/ua/e5Qe+eEpyTQMSQbmPcDRFoH83Z63VgC
oNyLwpinO/iAegDcWMrbc38T0O8L8/Fd9E+IJ3BW9IAVjh5/XUa/kvhvVLmPTxVlafQZdBdLEkGm
gDsDRYBh4fpeMSWjDOg20hwCPtpE0MHTV02qLAAsnEEGagYOdOgC6GQqzEK1VYBv3IbVeCt0fjhi
butDz/UtHtmLSmeKvsKg9tuf/TygltJPNNf/fU9xfjcGX8L4XWsWVHlzzh/LWK5veieCXJ/f/fJx
uXSjEBCA5T+GrYCyedsEN+ko/iPY+DsMNfifPv740wJ9oQU0XBB2tMFAAlAq+gZXckWz3QOQhua+
GDgPypSkXXP/h4ZcDhvyBfLVoNZVCUUZVysZWoULuVhFMueb3+BhmKzoDzS9HU8mswn6/PiXz4/L
5Y//+Bn9SVyOvp9NA/j76urP4BN/i0s5kdoXyL7MAtGC25lNfH3FoFIrlwQtCL+hZybDnvmGqKZH
4gVqqkNmbmD2+sN2F1rUIOescAIPQcqV3u8EJznimRVhvoWgQDfHN6FRbE34BQY9tLvaJVqASaGT
d3w5Q/FOf3zLIM3+L4N09X5UB8zWUE492ww35+4/jEiBJJh/4vovUEsDBAoAAAAAAINmjkYAAAAA
AAAAAAAAAAAJABwAZmFzdC94c2wvVVQJAAPmby1VdXAtVXV4CwABBPUBAAAEUAAAAFBLAwQUAAIA
CACDZo5Gcv1l8oUAAADpAAAAJQAcAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50
eHRVVAkAA+VvLVXlby1VdXgLAAEE9QEAAARQAAAArU4xDsJADNv7inygZGC7GSbYQHRO21SclLtU
uZzU/p6DfoHFsmzL9qRpjUIeNQObqQVYovAPAiK+VGrighdywuvwwIHHW3S8067Vn1y84ELFcSuC
xkWrTS2+va2fdTo1FSRmhjOwcOLsENOq5l1zwkEhQM00tlFXEKX5T+P9Uc/z90X3AVBLAwQUAAIA
CACDZo5GiR8h/pcAAADAAwAAJwAcAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJy
LnR4dFVUCQAD5W8tVeVvLVV1eAsAAQT1AQAABFAAAADtjzEOwjAMRfeewhcoHtgywwQbiM5u6opI
TlwljlRuT6BHYENdLNvf/vrPa1yCkAVNwDlrdjAH4W9xiPhQqZELnsgIz8MNBx4vwfBKL61252IF
ZyqGaxHMXLRm387bZP1IUx/iotn6msOh7UBCYjgCC0dOBpvaNcVtLTioicYWwBREafo1SNJS/fNj
0v5EOr/z7rx/xPsGUEsDBBQAAgAIAINmjkbPj2YOUAAAAKAAAAAkABwAZmFzdC94c2wveHNsdC1j
b250ZW50VHlwZS1zdGRlcnIudHh0VVQJAAPlby1V5W8tVXV4CwABBPUBAAAEUAAAAK3MsQ3AIAwF
0Z4p/gZR2myDwAhLNkaWiTJ+yA5prrtXTCdLDrYBcje/0FgIEB6EEySkNAK2Yq5IPO4sXLG7CM0c
StGt7ssslb+wp4fK8ZEvUEsDBBQAAgAIAINmjkaBSnetSwAAAKwAAAA0ABwAZmFzdC94c2wveHNs
dC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQAD5m8tVeZvLVV1eAsA
AQT1AQAABFAAAAC1zLENgDAMRNE+U9wKtGzjwAVZcmxkLOZHomAD6q/3t5inmpSGg5mRK4YaAVMn
FtA46YVbUqUbW3LnUNdXxMBh0cW+juJVbfvl+gBQSwMEFAACAAgAzmaORqirdat7AQAAjQIAABEA
HABmdWxsX3Jlc3VsdHMuanNvblVUCQADdHAtVXVwLVV1eAsAAQT1AQAABFAAAACtksFu1DAQhl8F
zQmkhNBWLCI9rbQBVV0oalJaTtGsd7yx1rEtewK7VH33jrMIIXHggi+ejP75v3hmlqtVf9u0d+uu
ffkITIkT1I8QLLL2cczxiCpfqBSlZDbGGj7mRCJLio13pRrQ7aicEkXjtH898GizIlLwkaGG2+aj
QNqrm89QAB2C1NFW8l+WbSsZVDyhVEDXPHTwJKcAjYmzh/9OUVv/I8eDj+and4y2TCp6a0vUTLHc
oNr/Df2wXl5/+wfv6lNzc9e9mPMzdqStwWzDUUx/B6VxQnHbMvHR0n9hCSztTQhZfL5YvC/ATWMf
aRdzm72TOZwVYJw8ME5h9tRoE510oxGR20H9pgCLRz9xPw+v35oosOqrt9NIqVohY9Xct9U9ba4N
V+tZ281zLkB6m1FQX5xcA6ZEAr5YnL0VeDAHsr98yeHG/vETA6Y+RGI+ShWrAWqOk+S1OWRhftO7
85OrtriXjZEv2RBxmnuEeXNSr03W5tKnV5fPUEsDBAoAAAAAAJBmjkYAAAAAAAAAAAAAAAAFABwA
aHR0cC9VVAkAA/9vLVV1cC1VdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAJtmjkYAAAAAAAAAAAAA
AAALABwAaHR0cC90ZXN0cy9VVAkAAxVwLVV1cC1VdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAJtm
jkYAAAAAAAAAAAAAAAAQABwAaHR0cC90ZXN0cy9taXNjL1VUCQADFXAtVXVwLVV1eAsAAQT1AQAA
BFAAAABQSwMEFAACAAgAm2aORhU1NZJ6AAAAvAAAACoAHABodHRwL3Rlc3RzL21pc2MveHNsdC1i
YWQtaW1wb3J0LXN0ZGVyci50eHRVVAkAAxVwLVUVcC1VdXgLAAEE9QEAAARQAAAAjY5BDsMgDATv
eYU/QCDtoRW/IcRVLBmMjJH6/BLlA9VeVjuH2SylEScjqYCqohE+xAinWYveb4/XGma2+A4h+EI9
e8UuQzN2/+1sbk+Ho9JEzQ2ldW7AVBGegIwFq8FNl0niXSHCqGmfGhNgScd/uip95PO6lywxLz9Q
SwMECgAAAAAAkmaORgAAAAAAAAAAAAAAABQAHABodHRwL3Rlc3RzL3NlY3VyaXR5L1VUCQADA3At
VXVwLVV1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAkGaORgAAAAAAAAAAAAAAACoAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAkAA/9vLVV1cC1VdXgLAAEE9QEA
AARQAAAAUEsDBBQAAgAIAJBmjkZjqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQAD/28tVf9vLVV1
eAsAAQT1AQAABFAAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsX
qQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP
2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAJBmjkZjqqxsggAAAKgAAABS
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0
ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQAD/28tVf9vLVV1eAsAAQT1AQAABFAAAAAt
jUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d
48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY5
0o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAJJmjkZgS2YQkQAAAPsBAABFABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1zdGRlcnIudHh0
VVQJAAMDcC1VA3AtVXV4CwABBPUBAAAEUAAAAO2OMQ6DMAxFd07hC4QEllaZYejSngEFUyKZJLKd
Cm5fOvQGHau/vq/3Qt5KpEljToDMmT0skRBW1eKt7fpL6851/uqcs4KhctTD7iJmGO+3cTC7kJlz
qBsmNV/gwfEZU7tvBBQTQg9I+CFA9CCUFVGb8+lfyHK6PeREB3StgwUnrYwCEyNILSWz4tyEf+iP
Q99QSwMEFAACAAgAVGaORuqKfEJhBQAABQ8AAAoAHABodHRwZC5jb25mVVQJAAOPby1VbHAtVXV4
CwABBPUBAAAEUAAAAK1XbW/bNhD+rl9BuDCwFZOcuHHnDYEB13GaLEmdWU4DLEkNWqIk1hLJkVQS
Z+t++4605RfJEQpsDmCTx+e5Ox6Px4tP5CORY841arRyJRuOc8mD+SlNCQh0Jlq3ZHZBdSvRWoRe
CmsN55qGrwEEDRuOH3BJPnAsX4Upg5gZBBic0IzwXKN3BwfOBSGin9JHgkbMucLP6/mY/JkTpRU6
3EYV1MOO41xR5gssiW+3BEDD35F0HF9jqXcAg5QSZtR2Dsy0MHNN5CChaWjMwcdEBYdXPMxhPzjX
ycs04UpPs6UkpTPyTIIWFjhISLsF4ukG5Sm+TacsSPOQ1HFXkBIx5fE04CyicR13gyrRE4JD2HYd
dwUpEZVK60iwXCJkcCp1DLNeomBFaz0z6yVKENM6BiyXCIzEXFOsKWd1xC1Y+eQyHJMMi9qjW2HK
+wuMvvotLiFlYkpxPc0ASiRJniTVtWewgpSIIhGdgrX6lMkwNyhDdJY36RPOCDps/+wdwN+h4xyf
UEkCzeUCtXqO0TESdmvonIWgS6FTnqb8yV9kl5TNFbrKU00/U/Kk0BBMDT6eA9LeAGXpfYMegSVJ
Q2JmS6USchXiA2s/hYQtNlAUSZ6ZFee4tfal5zj9ICBKmZpkXfYSja0EXDZChf5BjS/33g93Z8nD
3UQ//H13Ej7c+ephar5+bPRet3sCg41ZI/Ehg1S0sO4et6x+cOFGkQFmnNEAp9YJKHMnJMIQgclC
EKTJs26JFFPmnEHpYAC55HyeC4VGUWTKUHxJHkmKnrBkZnbKZYaheDcT1ExRM0dNje4bTXnfQM2e
Qs2Zmf01JhGRRH6jIDZzcEO6/RgqnxE1UMCzGWUk/C6NFp7xXfMbE8jtoeZNA5LQCnZR1jBeGm4g
OyjSyKcxwzqXNibO8XlUVJN1kgc9iGQh75UxtqoEyzPqh+ElZnEOBlCIkRfOK2KWIo+lFTFhyCOs
KtYgJhVxJJEXyapJSK6wioZj80jVZGJScY0eJFgqMHfuj9xut/OL20UeVXw5rHAp+EV1RfwV9vwV
71PZPmi33d+uYZmqCm0O25nLV2kXY+uKO6/umEHYWDVsjIOYV8QCAiH4qztuL82IaqgEbFfoPWJ3
Js0K/FQWU/2CvDSvyAOIUYCrh6TgkKqhUY/IU49VJYAOQH9QZcgcebJq9iVxJ7fIgx/9VI7ABxp3
irqLvGLmzWBQht6efzoZ3fruYbtzCOaFHZRBg+vu+/drfYGA2atBN6Zs2Dc+F5iL0XnXHRdq5px2
3UqS3Ax8OLcCkweqvQ9xtI04qiAmp5Dta4SOuo6F7N7z7fd5dd3NpwjwtaQcXraFuclw9eGag2a4
p6G9f3Bf4G5AnkNmQhZCPi1zBw7L5AnkBJw/nPXqbHbKzcpbW6exECnUcONE69mFrhJ5On5ZY4Ys
4CFlMXp2oVYKCY8M8v7Ysxq/UIG8+GWXfoZZmMIjAz2MqwJJTdrDGDI83XXDPheJzuA+KfNTVqBs
ZXWFiW9YYKogFrpYuVTZNqyuxtqXf1Nj94TC9vcu4MDZRHwfcIb19wBdxXMZEKtY7cuMkMrtjFg/
/bbtgL4bvj0brOWw8K9yyLAwjVIc244bug4O/yxwtrukEi71lAvCphqmsFwTtqLZWjk3Xk6HLIY3
17x2W8IBZyGC13T4+83Qn0yvhpOz0ck39GUy7g+G28CxUe69RS66O30oGf9Mpc5xajoI9PbX7tHR
u6Xhvf2aXfAvN94ct7b4oO6N8wb14UiIqwQJaEQDFJl2ZqE0yZCQXBPbunqAXDVSDalk8H/0S1u9
pOnOvLf33r1nuqIw4nL+XyxsNYb/AlBLAwQKAAAAAAC9Zo5GAAAAAAAAAAAAAAAABgAcAG1lZGlh
L1VUCQADVXAtVXVwLVV1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAvWaORgAAAAAAAAAAAAAAAAwA
HABtZWRpYS90cmFjay9VVAkAA1VwLVV1cC1VdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAL1mjkZp
lNGN8AAAAHcBAAAqABwAbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS1hY3R1YWwudHh0
VVQJAANVcC1VVXAtVXV4CwABBPUBAAAEUAAAAH2QQUvDQBCF7/sr3i1JwWCvQg/SpiBKFYkiiIfp
Zppdut0N2Yk1/95NvJQePA289/HmzWzvH57uUNsTNwiD4ExWrG9xCD18EHsYN8EzJGDP0OQcN0rV
HAViSBBldLObHOiBI2wEdZ2zKU+HvmctbixV9V7t6lyT7xyNYvowtKZQarHA2rA+wvq0llyaN3vy
DaSnpEYh4ahe33a59ZNeT/ISK3zbhkMp/COzFD9vvwpVfbxU67raIL+2S8e+FYPVCtkyK/D8eAFf
RpeOfDtQyzPK/l/2aFPTidPUiQ0+/tHXdctTaFIesmjCOf02S4f/AlBLAwQUAAIACAC9Zo5GDX/4
hJwBAAD+AgAAKAAcAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtZGlmZi50eHRVVAkA
A1VwLVVVcC1VdXgLAAEE9QEAAARQAAAAtVFda9swFH33r7hvsWvLXroVtkEhW+zC6EhH47V7la1b
W0SRjHW1Nv++104W6MPY00BICJ17viSEgOLBmbBHX5SSZFE9botHbG41nY6vQRtV3KNB6bEw8uAC
CUJPYkQfDPlij0rLgkbZ7o670FY00irh6WBQ4MuALaHK6YWiNE3/v6JsKUgz661WIJbZe0iX2QdY
raL05su375+h1swBTAzPUpO2HTy5Eawj/XQonUUgBw1CK41BFUEENesD9ZJglpje+Q3agB60BzkM
RjNj68aRw5pDHkH1UG3quJV24AzUjy50fTIb+pgtLyH9dHQE1a8f1bquSoi1nULUU6JlbqTtguwQ
rq9hgXaRwN3tX8E7bdUMbOVA2ll/gt//3LwF7p1iRlj43j1z7EUSiZPPnvWQr9PIb63Q5ZPvODkj
POIOVcJtiIuLYyFt4Lh2OrkrZ9zoGXx22CGt3X4I/PfbqbSYYaX2E21lcM+DST5Pzc7Hrokvr64y
+LMlxwz/INxwoCRvOFzHDVu1fkP4LoNpnak2JdzdQF1t60hEr1BLAwQUAAIACAC9Zo5GDPrk6jYB
AAAzAgAALAAcAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtZXhwZWN0ZWQudHh0VVQJ
AANVcC1VVXAtVXV4CwABBPUBAAAEUAAAAH1RQWrDMBC86xV7sxVSkxRyzMlxLwWnNG4plB5ka5FE
FMlY67b5fSUHQxpKQUgwOzuanWUNBgLSgiDQ2SKQB2EtdCMGMAFE31uDEjo/DNiRPReseq3qJu+E
6604kx78qDRnbLGAUmN3BOMMGWHje9cKJ4EGEdFAgjCw55c6Ny7hTYLXsIVPI9EXhN80QeF99cFZ
9fZUlU21g/y2XFh0ijRst5CtMw77xyvytXRhhVOjUDhR0f3LPZroNPE60ZPxLlzYt3aLk5dRD7Kg
/ZdxKuNzHDp+hnxquDhO6eR8rgfEI8pLTFPk3RgDdenFGK71Q7iyppBKf+pHQnlIW8kja2dCkqws
nmIfL6amyfKg2vx+s1nCfPHbUf/Sq+MkvGjjVCqu0Mnyl95qCenMSvUO9g/QVIeGsR9QSwMEFAAC
AAgAvWaORgZw1+XSCAAA1yIAADAAHABtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLXBy
ZXR0eS1kaWZmLmh0bWxVVAkAA1VwLVVVcC1VdXgLAAEE9QEAAARQAAAA1Vprc+O2Ff3uX4Gxp7G9
Y1KSJTmSvHYna8nTTlInE7tJv3VAEhSxBgmGAG1p2/73XhAARVKkrG3kzmR3bT7wOvd57uXsx0jG
7PboY0RwAJeYSIz8CGeCyJvTXIbO5BReC7lm5PZoxmjyfIFmL1RQSQL0ryMEfyRZSScgPs+wpDyZ
oYQn5LoY8ngWkMzxuJQ8nqFBukIB3JPg+ug/R3o7s4nPGc9m6KQ/nBZj7j1lZE7D0Ix72H9eZjxP
AsdODSfqb/UgfYLgjAboJAgCPRbyRDohjilbz1DMEy5S7BuAMc6WFCAPSIz6+lXKQbhCjowwkOiF
FICiQQPpcDhs2V/gRDiCZDSsDAr6hRRnVA91GAnlDPXdsX0fUJEyDJvQBDRjEL7SQEawuN//k8GH
g4Amy3KlxmZMo+7q1jFwaRIBKFlOj/gLyRoSjcfj6y5lE6LV4Cqb/ABnCbM4ZByDGBldRrJuOTXr
DsTHIIs9ioPqqQQR+w2RJfYYcXzCWE1Kp9i3pqXXCKRzChsqV3vNcLpB9kh8ZbtOpykW112m6S7G
Z63ewaH66UqfsFilYF7YH0QjF8hVl6aEnfAEDYi3Vr9RAfUT4/7zTziTLog6C2kmpONHlAWdilXH
PcL6i12bZSQG0168cZ45w6pfO5zjqSk1txtbrwNvkdTHzMGMLiE2JG8RKyPK0/+Ck4ARqw6zj1Kh
eo6INujGn/08E8o0CnYzArEH1smtxeDM0nF08BTwdqGo+fm2Oywzsr5uOKY7fsteWsXIlfxNNbth
xuOGsk1+VGcorT/ksUcy8CZS9S791gLfTqPGa6fTWgK04dKWBm0kj0aj1nRTtX6ZY9RGYx0COgzK
hG/8wLhnm4touDV3GpqEVRG8ELE14WiS6FTLjiSVZio6FUyjQJtNjNdYQWqxCoscHa3FEOizeAQ5
MoKfHfVCA6IxXpKaZWboslS4x7DSoproQ2oADADF3KGm3BurTEbTztwbknCTAJRbwY4lPVaiuWVp
EAb1pWBs0T19SqbXuzi93MlkmSoOExXddB0EWxuggLDuFWT6JpreB/SYpynPJDBtZjwZlBrHJJEC
fejBeTiXEdf61mysihnwegl+6ltLFQuKOR38X85RYDC4RDHZprMr69gq3WDG7iyC1tmXmstivHIa
9B5DXWBeXfZL3mkeDXrfeU4Z2WVI145pw+nylGjadF6J90ylIzMVdloTGjhyL8V1RYyREfpESCxz
8Sn3gMNLPnRV9LTCUUsk58zDWX3cHh0yUkToZiDmX8q3ZXIa6jg2dZS6tdWCuu8uCbsyx85SbuMW
IV0RvY/Jx/26SC4uahAdZtss/kohF2QNVyv3/OLQJCArSFI7RNsQYQVCm1wmGdXobWKyWKJgmoBt
pSY4z+OrN4FebYAOtBNbEtJPBVhzXzKYeSwBl5VZ7WgaZjjWCBtxUi8jKjFy15Fpt3WzhlqTvxqu
JwwKR6iZ9yCmq+n9xr0MJ3cMFoqoj5VlZLBdHteLY7OHVt+2D3eWBIHNs/qY72xSsK1Ovzr6ZDmy
0ZNcfWsT2jbMHUFS6XZEjHUtX825Cc/g9XVHljHyqxJMtB2u5bBx3W+bwrBH2AyHEGEXW8v1+2KT
gpATEPUY/RsdXx+VRFyh7+ZqhqFC56Ej1ylp3eq4E5GZ2GhxI8KKBFkWo1gVox0cdRITIWzh0ann
NrNUouOxSNT7UCFQDBREL5Tn4q58A8XsF5LcVciyjedtydGkmCq5qFwOXlt4gs3t5tl4okkiQ8uB
e6ExrgE1DpEqJmp0Ycq+jqKvyrNeDlGVVPOO5feAvsxC7hsd8lyqfFENP4/lBZOYIfCXELAAgw2s
IFWyLHaBGuYpIvqknmHaJeBXMkiOJIx5erZxNYFeKFY5Wf7N+ASA9TL+CgaHSiDCsNYURVS6qggq
5RiNTRVfliLm2WYHVciqn36dRO0nnWaNH9MAuiwtmDKQsM13C6NAHcYFfgHdgwZIg1eqnd4W1TkD
d6hLps3HD8v+LTY4mc/nlZA+mdzP78f3rfkJist2L14sFm2oZyROIUPVjG/KtMZMF24BaS3yF9NJ
f2Lyls8Izv5ZlAe2FVBvirYpUlM+9sxXt4/Cz2gKNs38m+NIylTMej38Ga/cJedLWJRSoVy3eNdj
1BO9z7/lJFv3Bu7IvTQPLpSW7mdxfAv7FvvdovrOPg+Io2xIXmHen8HSypg3o0llCYAyHwo9Hqzh
AvEAuLEQN6e2E1DfC6PBbe8XsCfkrN4cS9xb/PrY+5V431NpLp9yyoLez8C7WJAeeAqo05EEMiy0
7zmToheTgOIe8IP/rH9DweF4wFk6azlQvuSYuXIlAdSgjqXyKeh0e6Ro0bveq9YdgZc1xlXTgurf
e8wkyCSJnVV0+5sS4vT2m8QT6TXoDybd1qZCZFcnDlrnADuf3t5/99cfZuiJgkKU06FXDDEDnqUa
noRLGq7nEGMqVXiQIsCrSWA2A3OBCPZSFafifae3ZtjM/WpliQgaj7f19aauBnuo6bJbTU2Zfx+Y
yz3ADLvBPIEnm0ysnFUZBwyD/JwIRAXCacoomBM62gzclK3dw6If7oF+1I1+8cvi4enMx4lK4TKC
zLiMzn+PT5mLlx02TA/leZM91DXdoa5//LS4e1rM0RlNVIJ6Utlq4DKcLHPFzjc36JsTKPpIUlzO
0Y/fH9bc030STP+rBXiGDq8E7+O06GrfSYQOeA0ZdmTJn//+UEcfA58hA15EHNrupcb+f02O+jvX
22SymbdbTfskyR2kUw3vCPyTnH+VGfeGeXkAmMqiLzQg3FVp6Oz8naAOD6ZRQcgzCc7/mOQ72if+
voJ+/1BRNT6AD3yANk6xvp8DpyfqSnThL97Hb68O4bdl4oeGEzrpFDqw4FFVLGcAf657uAUjqis+
dwtpSkLIlt7Z5Xh8geyv8/+NGvYW+Nt3F/gBKOPc3XSDd1sC9y+Q+vfeok4OIerDHP14j54Wj0/v
A3J6AJAHKCrtpehIoRUs/j/LfwFQSwMECgAAAAAAomaORgAAAAAAAAAAAAAAAAkAHABwbGF0Zm9y
bS9VVAkAAyBwLVV1cC1VdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAKJmjkYAAAAAAAAAAAAAAAAN
ABwAcGxhdGZvcm0vbWFjL1VUCQADIHAtVXVwLVV1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAo2aO
RgAAAAAAAAAAAAAAABsAHABwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9VVAkAAyFwLVV1cC1V
dXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAKJmjkbvKjZY0AEAAJ4yAAA/ABwAcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1hY3R1YWwudHh0VVQJAAMg
cC1VIHAtVXV4CwABBPUBAAAEUAAAAO2bX2vbMBTF3/0pDn7pBiPQtGOwt9Bmo9CtgfhhUPqg2tex
hioV/Unibz852WCBPYyWscY9L7YRV1fH+nFky7KcFcSNQ+y8yAStSx6tXguC3k6KIshaLESvugir
reSiqtMBUUIMCGKkjtpZ1J2yK4F1Ube6VkNZyMk8HtxaQq51YxFSXUsI79C7hI02JtcXqHz0WgJc
i3IxWy5LPOQotZIc2Tpj3EYa3Pcoq/mywsXNl8X1vJqXOWcxhEM1jTRff2sYgz6fpPg0u7qGl5BM
DLf785VtZHt3W86+VbKNy6iiXOykV/2jlHcInUsmNyeYTlDlPtlAtrU87vIOMXPvnf+IlPO0uT+a
obF811AW7v577g28kbUyKSuxK5z8qfWTt3+h7FfPfvbKJqO8jv2BvNOXIe9S+/3Fgbjz/yuOVP8J
1TNSfRrVKb1KqvTqUVA9p1dJlV49Cqpn9Cqp0qtHQfU9vUqq9CpH4OdSnZLqCKmekuoIZzb06hip
0qtjfFuiV8dIlV59ItUP9Cqp0qsvaurAfyFeE1Wumo+RKtdXx0iVK3FjpMo1G3qVMxs+V0mVIzCp
8tvS88XtNmz83AfSJmP6hfJhn2y3Y6M42ONRFD8AUEsDBBQAAgAIAKJmjka+Mr+gpQIAAB5QAAA9
ABwAcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1k
aWZmLnR4dFVUCQADIHAtVSFwLVV1eAsAAQT1AQAABFAAAADtXFtP2zAUfu+vsHhhUxciChNoTy00
m9AKq5ZonYR4cOPT1pNrV76w9N/PSWGA1AdAeODsqFIT1c3xyXfxtU2SJCT9oYRbgkmH1NI0m+Tp
BKZfub05nDguWPodBFADqaBr5WxiwdhEg3HCmnQlqJ0pvUyXtExpWYIxfMoFt+vU+MtKy5VMygWV
c0icAc3lTCVQrXwJsD1b2U63232lNGhpHRVNEv0+SY4/HB+RbvPe73dI/RoP8pxQxoBdKMtnvKR1
IMINsdpBJ2nKb3K43BzPJIPq6nJn8LOAyuaWWjht6i3WK9i5qq/dWpTfpnmurh8V+fb7XzSVTlDt
7/VB+C3lvjbtbxr0U+IPud6cbI3+t/TCf4qA3Csda7jmypnoQJkozVAgQbGIVhs5SAuyBNRHcDyi
1ciIS9RHWCyi1cbY97dzTVcLFEh4QLAFeViaSYZQbE5OYM6l5HKOPW7c+ggIR7waCdmoxiiSkHjE
q5KhKt3S2wdFEhqOwBrJKt8EMlwz+1eQRLdAFBSNKJdEgiIS3QJAUDTinPLGKJBgvW6s7UecgEQ5
eg+KSOCRavfz4Gz0REDMQjnByBRIb48UCw2/CVQlrJr90fo7mdZKfyLOx5l5u7M6CaksoZKo6S9f
OXkH11Q4av24kOxuq333/WNS247nXX77byS/+4TcZXf4ytkhsYGIPUBin0tsDx2LxKJjIyL2EB2L
xKJjIyL2AB2LxKJjIyL2IzoWiUXHYlP8QsT2kNh2EruPxLZzuoOObSmx6NiWDp7QsS0lFh37bGKP
0LFILDr2DU4n8BcU/xmxuNHeUmJxP7alxOK2XUuJxd0ddCxOd7CPRWKxKUZiceXphbPbPMnOuObJ
eDMnRP0vG7OJ1jzKjnRIkeUFOf12Ph5lRdb5A1BLAwQUAAIACACiZo5GXxl5aq8BAACCHQAAQQAc
AHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhw
ZWN0ZWQudHh0VVQJAAMgcC1VIHAtVXV4CwABBPUBAAAEUAAAAO2ZyWrDMBCG736KweeSd0gTUwrZ
wIYWQg6qNbYFihS0JPbbd9w0IYEc2oMCAl1soxmNpI/fGi1aIbiTBtcZxAk02htoxBHBin6SZRaP
qABF2zlQQiEVVZ2w4NA6CxYl1k5oBXXHVIugtBONqNlYZimYgb0+oqVaawXW1zVa+wKD9nASUlJ9
BEZPI9CCbiDfTMsyhz15sRbJs9FS6hNy+Bogr4qygtl6uVkUVZFTzGx0B8Y58tVNwzD2z3g8mw1a
L53dnt/vimO/2+bTzwp7VzrmcPbT9Wo4YL4bqz40lZeRLmk8fwh8cX8zTHnJjHDDXfQHdmrMsNqh
+Uf4uTDnj4fBr9YVlSYaF+vG4FFobyMj8qENT9IIBiJSVZSoHKoakzKCwohUHQtK2UkZwUBEqooN
pdbWsEOXpBGWRpo1bqyF4okDfbxiKxTtpdqUXKNVRjgWsaoj4CwanzwCwohVH3Nd+z39NUkeIVmE
VUfR06TH0+nXM3hEdtoTEkWERxwhcUS2pw+JIsaNbHzSCJVg45wzYqQR4eI8JI4nrEV/7zobL+VI
3yK/3kpmd/eYWfYNUEsDBBQAAgAIAKNmjkbyefykMw4AAN0wAQBFABwAcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1wcmV0dHktZGlmZi5odG1sVVQJ
AAMhcC1VIXAtVXV4CwABBPUBAAAEUAAAAO2de3PbNhLA/8+n4MRz9V0nepMSJSe+SWyn17m05zl7
rp3pdG4gEpQYU4RKgn7k7r77LQiQBiVRdpOohuhtp+UDILDALn67hJf26zlfRMcvXs8p8eGwoJxY
3pwkKeVvDjMetNxDuJ3yu4gev5hEYXz1yppch2nIqW/954UF/3B6y1s+9VhCeMjiiRWzmB7lRVOW
+DRpTRnnbDGxestby4dz6h+9+N8L2ZxqxGMRSybWQXcwzsva78OInoZBoMqnxLuaJSyL/VZRNXDF
v3pHsoeURaFvHfi+L8sCFvNWQBZhdDexFixm6ZJ4SsAFSWYhiNyjC6srby0ZDC4fR0IjGNE1zQWa
91YkHQwGG9pPSZy2UpqEgVaYhp9o3ofeaSuiAZ9Y3bZT3PfDdBkRaCSMYWaUhDehz+fwcLf7JyUf
8f0wnpVPStmUasRZVTtK3DCeg1C8rD5n1zRZGZHjOEd1k02pnIa20MkH6CtVDwcRIzCMJJzNeVVz
otYJDJ/AWIquGEx9yGGI3ZUhczKNaMujUVQZZStvtzJLN3MYXSvXoTC1m4Qs7yW7oJ7QXa3R5A9X
TWbVXJTNFvMOBtVd3soezm6XoF5oH4ZGX1ltcVgdYa14aejT6Z34v5WL+i5i3tU5SXgbhjoJwiTl
LW8eRn7txIruLuD5V9saS+gCVPvqgf5UH8X0S4NrTUWVitk5hdWBtfDQI1GLROEM1gZnG4aVUGHp
fyOxH9FiOlQ7YgrF9ZxKhd7bs5clqVCNEHt1BZIpaCcrNAZ9loYjF08u3jYpKna+bg6zhN4drRhm
23lIX3KKrTZnD05zO0jYYmWyFR9FH2LWf8wWU5qANVHduuTdQvB1jCqrHY8rACyWyyYMFivZtu2N
uNG1XzJGNOTIJSCXQQl8ZQfKPDeZiBS3Yk4DBSxt4PkQNwJHOonaadkCqWUiVqcQU01gQRNlNcVA
KmsVHmrJ1ZoXwXzmlzCOhJKrlrghBQoXZEYrmplY/XLCpxERsygqeoAGkAFEUWfW6rjvteLa41r2
BjS4B4AwK2ixdI/aat7wqB/41UdB2Wl99TEdH23z6WVLijK6HGpV1Ltr319rwPJpVP8EHT8oTedb
6yJbLlnCwdMmypJhUhcLGvPU+rYD/ZGMz5mcb+mNRTADVs/BTr1CU/kDeZ0a/1/WEcIQMIm8coGz
YWHYAjckik4KCTbW7ktftiC3rRX3voC4QN3qd0u/s9o1zPvWfsqVXS7pSjeb5GyzJZVus3VDp1ch
b/FELDs5E1Jwq91Pj7Rh2GrQByknPEvfZVPw4aU/bIvVs1Ec8QhnLJqSpFpedB1ENF+h9wUL9qm8
W8JpINexiqPEaREtiPP6kLCOHFtDuXuzCMJbKttRPO5Wh9QmeQwil9m6F78JgQXJiqmVbX5qhbFP
bwFSW4Z27wg1ETaNS8Go4t5cRbFYiKkW7EbXBP1N2e2Dgg7vBe1JIy6ckLzKhVXnpQdTl6XAZWRW
6ToMErKQEq6sk2oYoa2RkxrSrs/NHcSa7Eb5ehpB4Agx8yMc03D8/t68lE+uKcwnolpWhpH+enhc
DY5VG3L61m24NiTwC87Kbt4WUChedbp66WXhI1feSYajAmjrYm5ZJNrbTrogMpbXmRuzBG4f1VBG
jV+EYOmmzuU4inXd3VQlIlMaTUgAK+zV2uPyft5I7pBjGOpL67/Wy6MXpSPW3Pfq0xGBCJ0FLX63
pBubelkrkaq48oo7p1EOyDIYJSIYrfFRBwuapkXgUTvPm9SirY6LHNSPcYXgYiAgug5Zlp6UdyCY
/UTjE81ZbvLzRcix6mJ05yJYDlabW0LBdnWtLFFBZFD4wEdJo0wDYhzKxZqouAsV9tUEfbqfnWaw
qmKdO4V/98PrScA8NYcs44IX+vKbRlnuSVQR2EsAsoAH6xUD0Z1l3grEMJdzKnvqKE87A/nFGDiz
OJRNZW1laql1HRLBZP6DsgkQdpqwG1A4RAJzAs+qoCjkbREEleOwHRXFl6GIui7oIAJZ8V+36kSL
LZ3VGH8R+vCWJQcmFJQWL98bPArEYSwl1zD3MAN0xa/ob3prrq7Vaw9kyHS/+VF4/w06ODg9PdWW
9IH7/vS9834jnyC43GzFZ2dnm6Se0MUSCFVRvgrTVmq24RQkraz8s7HbdRW3vIiS5N95eFC8Cog7
+WvTXFR53VG7bq9TLwmXoNPEe/NyzvkynXQ65CO5bc8Ym8FDyzAVppvf60ThNO18/C2jyV2n17bb
fXXRhtCy/TF9eQzt5u0dW9WWPebTltAhvYF6fwVNC2W+sV3tERBKbRROmX8HB1gPIDdJ0zeHxZuA
2C+c9447/wJ9ArM6p4STztlPF52f6PTvIVeHd1kY+Z1/gt8lKe2ApcB0tjgFwsLrexbxtAPmwyGm
X3QWxOsQzwNTD6dhBA6iI901SNfy5iSe0VYmUBcHrAUxTUaiNr/lIGmvKqC2P3S4XpK/t9fdF+/z
VjqHANtfqSJeZqzKPlC+Xwq+taiR7wDchxWHxy5MJ5QfV2rBQn+4Djjrw2NVAqoAMb5YmPEjhBn/
UcL0uo+QpqZSLs7524sLCxBB/R8ZDwMgVb4bGAIVk4yuCpsfdJG1NSmGlhevD+xx1iJfcB+0Fq3e
9qnpPWJqvomn6fJoi7bgdfv4HIYEh/wcpkteWWrV/SKP34vQ/tdfvvktY/zo7c8iShShAz3Jl9sl
BECy6FcrbybUmky1c+vtz9rVpXZOb7WLsm3tHnQjr0Rn+Z0L/fFIXsBqlgIw/dEf2LVeV53/Hkt9
tFb6T62VgoTfQRydRSQBPH6xanh1qqknL0U3+a3vtOJEOyexdgHC6NV0Ofgd6DoBVOvdJLtU08AU
NZ2GiTzZuZJOteIw2bZcfqy2u0s92AgxAyHmIMT2AWJDhFj9ctHHlO8U6FrcINlONDRCvBmINxfx
9jl4+4npz/m71NAYyWZCeNbvIr/M41e/h/wym1/9PvLL7MisP0CyGUg2G8n2OWSrdCB+IujtVEsO
0s2I6GyIDDOQYSNk2B4wzEWGGR6hjZFu5tFt0H32dKsoTUnwQd6DOdjNrPeQViZEXIM+MslAJg2Q
SU/AJBuZZHYENXCQVgbSaojvh5/zfnhOEjJLyHK+S92MkGlGxFkukstAco2RXKaSy+4iucyOxmzM
1zeQaTbm6z/Bu6ON6fdbrP9Mv9hlmoqN2fcmIgmz758CSZhMv2L98Tv96VkYx4UGZrvRACbLm0gj
TJbfg3QGGxPmTQioHMyXNxBhDubL7wHCHMyZf+IAzMGceBPphTnxxu66O5gJb0TYhYnwJoILE+HN
BRemvz91sIXp7QYya4jp7Z/FrFPmZYvq6+IutYTp8CaEXUPMhjcRYZgNvw8Iw+z5Jw7Ahpgd/2h6
nVUa3wCy3fsazJrfh19JOMQEeiMS6IeYQL9PcMPEesN/odcI0+uN4NoIk+j3iGsjTK7fg8SLESbj
m8E2zMbfJ7Zhlv4TZOmPMEvfDFZhrv4+sQpz+I3NxBhh5r4RRHMxdX+PiOZiSv8TRF8upuibkHfh
Yp7+PqEK8/f3YBPMxUx+I9CGmfz7hDbM8Df2vdLFDH8jgIZp/nsEtDGm/+9B7uwY0/+/EG35QVfG
aRgE7yLmXYFr4hbx/cMHlaUqbdXUFiVUtdXrbdFUGKfH7193xCE/f/v9B3n1+fQTT6dzlkW+1q41
pVa/bWl3LucJvdFv0FuPLrVrLua+vIpV1Zx94uQsSVgysbJY74YGMHDfClMrZjDXscWmH2WxUGgu
yJ/pNYkywrWnQr2fmfXNwWB8lOitrs9EXucvqs7vWohfV7f9Hel2GytrFdx7UMH6ldJ1vgzzFoRq
z7QapYKrWtVqSAWDpKVWw1J/NNUq5qPVmxYD123t+6oZmaPgwY4VvI7ZWvXaX0G9mk71Bfi1Fu3q
sM3UqY1AbiyQHQRys4E8NAfIA+OBXNVwVf/alZlLeYSYbiymXZMw3d9nTGtXJil4jHFz0+LmfheB
3FQg93sI5EYDud/HuPl5xM39AWK6sZi2TcK0jdsbX13BDsbNjYubhwjkxgJ5hEBuNpBdjJufSdw8
Rkw3FdODrkmYHuwE07pyytUtPpfKdyKquq4jtrH662FY3LSweNBH3jaWtwPk7V7z1sao93lEvQMH
KdxYCg9NorCz15sTBml1hLFw42JhFyncWAqPkcLNo7DdxQj5eUTINn6/11g2233cp9jnfQrboM/z
+vsWC1cNwxyd4ud5zeWtg7zda94a9PVd7wl5q7esL0/xB93yGsYrEj+uay5kXcxJa3ROmj3GqLdp
Ua+DH9c1FshOD4HcaCA7fQyLGxEWO/jtXHMpbOPP4Zr3czjHwVi4cbEwfjDXXAqPkMINpLCLAXAz
AmD8CK6x6B0a9RHcCLchvrqCexgLNy0WHuJXcs0F8gCB3Gwg2xgWNyIsHpryldxgryi8uk5hJlbB
bKzfHeIvkm82m/EzusZ9Rjd0EdPPDNNj/L3Fjf69xaMuYrppmB71ENPPC9OjPmbANTqaHuHfyWse
pm3E9DPDNH6et9ef542GSOHGUXiEFH5mFHYxRa55KXIj/It4jWOz20U2Py82uz2MkPc5Qnb7mCLX
tBQ5d4AUfmYUxj+D1+ztZBe/6msepoeI6WeGafzWr4EbGa6LbG4cm8fI5ufF5jF+DNjsEHqMHwP+
MZjOD7pmvYiS5N9BxIiYalm8rv/TMAjeRcy7Oqy5f04SbqVzklD/8CHTedBsxv3HmMyWzbHztxcX
Vpp5Hk3TIIuiOxAvlXPPk4z+LkN/WNrBY6Tdtu3zdcWxHyPOlj2Jy7OLS+vkHz+cfzi7PPsS+1k5
TJl/B2VzvoiOX/wfUEsDBBQAAgAIAJtmjkZ83ESLXwIAAJUQAAArABwAcHl3ZWJzb2NrZXQud3Mu
bG9nLTE0QXByMjAxNS0xMjUwNDAtZXJyLnR4dFVUCQADFnAtVZBvLVV1eAsAAQT1AQAABFAAAADt
ll1P2zAUhu/7K464odVCnM9mzd0+yjYxsalFcFEhy0lOqFU3zmyXrvv1c9MygoDdDNgmRbmIEtt6
Hx+fPMos8Pz4yIuO/Aj8II2DNIicyPcuYXbxZnL66fTDJVC6ZLyi1L3AbCrzBZoJfluhNh9ZVQhU
Kfiu90cXr4cuUzWDI8hlgRB5kQNL1JpdIRxzgVBJA6VcVUVvdp84dvxRYInHk8mXyUO8U1TXW87x
9xxrw2UFvIJaydxG8OoK1G4/UCq5TKF/6AdJw+UfOhCHURQMemeK5ZixfAH9pbRTFeZYGciZECCY
NoO0BzvUAzLdaINL8plniqkNOVZsiWupFpp83Zi5rNzy5g05R6UtjyaBmxDBM1I3M7ZPbXS33hw4
IHiFEI9Cp4VP9+zUzBWywkIAaBSlW/KK6/nNcH9/dyAX3IJTVhTKLh+8EHUYRg31Xapb2rsd9c5W
VD+G7DQrWuDnUqxss5D3zDAyvpgSe+4n3JAzKYUm01zx2miyxmzBTb0hZs5VUTNlNmQpC1pv7Ihu
qIk2Np8JWWELfTgMGnRKLbuh9Be0A78h3O7/pYo7jP2HCfdN0H8pkMT3Wqd8i7EubbibC6nx6Vl2
Z9eiCJJRQ9HktWohVs9Rinvxobf7QJu823i6nehq3DaY6F9zXM/Wihuksiw1mrT98CpblSUqqvkP
vBz0UClp7TUbK1VJCK3q3iq5QOsAXmPvISMOnWiY/G2Hhy2HS5XxosDqMdjXT6nvNN2LO44dsB3p
dfru9N3pu9P3f6Lv0HOSOHm+H9rhaNQZsTNiZ8TOiP+kEX8CUEsDBBQAAgAIAJtmjkbeXZ/PCAEA
AI8CAAArABwAcHl3ZWJzb2NrZXQud3MubG9nLTE0QXByMjAxNS0xMjUwNDAtb3V0LnR4dFVUCQAD
FnAtVZBvLVV1eAsAAQT1AQAABFAAAAC1kMFugkAQhu+b8A7ciRUKNSkJB8BSJIhQENEbrFtYgV3K
bkV9n75na9ujBxvTuU3mn3zfjJsk4Vi5U0RFVsR4wBxWmJRi2FNOIW2YAJZd2edbpIsDKhiFNeIC
sCkhCHJMiS7+zgUQIzhaoSL+zoxMCFHHdfEFEu91M1k8r9XpIR+zeytldIKTx7I0BPChC0AAwP1v
i3a+4+1s6KJMnjtB/XBSev8tSaRWPVtc3sm+ileYYTb0lJTn9gbZy4yGs8xvp1as7mea2WuceFIT
PuGVT42rYLc+pqhz7WhLFSpTOzo6B9Za9bsZExLVxpXX/oG2O1VyGLKt6254sFzjRZC6IVEcLxt+
aJ9QSwMEFAACAAgAzmaORndMSBKlJgAA3KQAAAwAHAByZXN1bHRzLmh0bWxVVAkAA3RwLVV0cC1V
dXgLAAEE9QEAAARQAAAAzX1rdxvJjeh3/Yo2naTJiA/JM5OdiBJ9HI0da9evY8mb5Gq0Ok2yKPao
yeZ2N/XIRP99AdT70U3S45xzZ7O2WV2FQqFQAAqFQh0/++nj6cU/Pr2O5tUiG+0dl9VjxkZ743z6
GP26F8F/i6S4SZdH0cGQfs7yZdWbJYs0ezyK3rLsjlXpJOlGZbIseyUr0plRr0z/yY6iw8NVNdx7
2uNQR9EfLci9jM2qo+j71cPQLK3ylSiEhvND0cSE+j1CdVsc9n9gC2qzsnsZ51WVL2AY/e9Ehao4
WuZVu1+wcp1VZa/I7ztRNRXN7udpxXrlKplAX8v8vkhWTa2OZmlRVr181qseVywMo1gkGYcxJRh2
m45oVLGHqlcVQM4ZtDiKsvyeFZOkZKKpqLZKptN0eQMjXj0oOlXzI7ZYVY9dxIj+5dY+EPVEee+e
jW/TqreGmYPZy9ikQkyXjFO2t8j/GfoGIPoTmAoGs4F/J+mSFZLeQOw5S2/mleytD4OVJJnkWV4c
RTdF8ujxSQn0yVjB2xj0FU3HyeT2psjXy2lPQCH6+tXTWZEsWDeyCxc3clbSKdAp+vHgQLKcRPdP
vMiBdzlNqqTHHlbJcsqmJ61ZkpWsdSWgTdNylSWPBmWeV3mejRNJj1VeplWawwqapQ9synskXn0h
+y949+o3sUCSpTfQiL5xnGZZnlQwiz3AhGXuzKoF5NOpuBkn7Rc//NCN9B8H/T93RP28mLKCM1KZ
Z+k0KlNY1oX5tVck03Rd6hXZ5/TojdewrJabZsggOwgDh+qHatw+JppPFJ3TZQbc1htn+eR2aEuo
6DtoeCAllSZ8wTIg3J1AZLIuSsRtymYJzLHg5nVRADfbXFrgdJlfw6PmFHLbWFV7OKUeQyRjGOVa
Eoh4oifkExZwwXgo1zZJT2CC5KaW9agOVblh03BdTj6OYgldrti0V6yXS+QrlhTZY2/ByjK5Ydbo
joi0fE6eTw9MXXAvpnGcZ9ONU6W49Tt7oXlSpAFGE5dIVvi+FrwjHMwvSkLIHsQwYS2gjsvkkgSq
8YWer3Aeyy3kk6wKxF2unV7UOALaTK4MRbcXUtpzCA+9cp5M83v+Qf7/8x9//HFoyXfSJ4LrctBH
KWiG/ovSFzfIc8NGNhXCqkHc1A07S8ZKbKn5FROLczVPp1O2NEm0ylNQMkWP3cHqK03NJAahVIwJ
WxBLGBbfSURruNVVQHWjkkIRe1uBJM96/8zzhce49eL+wFzVB5ZQ/POffm/z7+GBN/O6SNFOzi7w
gfsFFbcqridj/TADsv/FwTaC2mRKkMXRD1CHFNABKB3+v/5//NBpIKS2EI0B9mYZe4AeDcPEK/XR
GmeJqyUU4+YwTlCpgCZnvM3sHEa3X4JsACmaLkBqNvCDrYXCvUsleXDwe1tJfq9Nk5ruRoYAa1Qx
IT7kwEDHAf2I2yTlcQEvYHFQR0VScnX5XKgYUGtltd0SkPb3947Ro36Lof8gR452pCj7Xptq2xo3
ksPqMB1F8xfuBgf+73s0IPyGpWdGI1sPQ/sjOWH/IbW4nOgeLMtyUuQZ7QGOB2KnxXdcUQqG5XoJ
NgNY2dApFbZGqhZUmxTpqhrtpbOofZ8uYXn1EbPPoLpZ0RFyXP7uT9eL1avyAgR7G+iwdwfW6M11
WSXICLP1coLTE91k+TjJzrG03dnjI0Twz0RVuSPB/0RRdGKUkaUEPDG/QBIdRZdXXesbUPD28VNS
ljXf50n5tqpW4iuZ1V6FM2TMN0marUFf11XCcTbWWaRlCfP2mRv1PiaF/PDrk/2hnOfrbHqR39xk
jFCBOlWxdsDPoG8AXzNMYqC/pdX8vILVVQQqpAuWr6ua5porLFKqOk97+s+CVetiqaca+FjN9quf
frr+/Pr8y7uL83a6XK0rOeUWG8iND0w0VRK8KphPsmFUFhPYCK2z7FrU7/9S5ktiWKfqSGMAuimt
Xj/ArrGEn22ki8QBGRSYmj1Av1gO+ryszrDg46wd92OxVRHju6Qq5XpcViitULNQ4043cr5wmPvR
YefKpgZ+X4VxEZ2EsL08cMAskmoyZ+U57Y7zor3Mp2BbluKnuajwS19U7+xpxqO+zI9t1RoWrtWa
i+T3dpdhWMGq9ZBBm24F1q9nwjQJs0pww/RxdvG4YjVUAb0Kgo8+wqwTfN7qA/zTlD2I5gZCd5zl
rFAe+qtjueYiWCNbsAVIaYIpkXPQ6fMqp4DylNezIczy4nUymdOnd2lZdUEsLacZU4N9VYCB1F8V
eZWjs6cvGvRBl2eBVi5+uMbOaOfShqUngQ4G0Zuzv79/fRStSxYl62maR1VyUyI60asvP5195MLn
pVpjYBxKSXMmlhvA66dypb3T3+Waw2ZL6HioWMYD8uwk6h2aM4ZtUC4XycTtAYyIiWDPfl7cxB3e
emi1XRUMTAdoKoG8jNyGg36/P4ijoyiOdVvEE1qJ5vvUsxYGHt77kTngQdzP2PKmmouBP0UMFIkz
KpRLP4HKM6lnyaoedF5Vj5J6mmZWOyKYxbObAZsgxUDd8ZkgUOhJ7lcTCdzxgTdtex30V0ucDo4b
UpxvlYnGYFrGhtCQYGDq6JMeCkCN9qH0JTovk+qkeqhiS3bHx9P0LppAz+WJuwUfGd9oQzeKYRg0
Vpiq4wF8HR1jkewfSrkqivlkYwEqIafOiDeN7VVVoVYHupFeb3OecXTAtsi2+PaTrGg0Rlqix2M0
yXmVZAlfQYlTbxG5FHmXhLyin2JdGgc0b8CdvSbDIKEtdhtEIeycLY3KXVDv0uUtTLj4rpex/ton
FNWM+p4rY4JtmBrE/65Z8ajEc9wPATE4yGiJ3065MxmZL973erPHqVoK9sZVqhrApiBLViWrb2KS
cVNtQcs6ZBHXoUFtEOHayvyc36MoMvWghtMFeYa+urjjEc7wPMsVzwnmQtdUWq+An3AQ5KHmlpxf
v8stY4cEobYFVk5LWagWBew5Sla9qkDcwLyydmx5xmOrDcecQyeevxDL7QKs3aLtYJGsVrD3fHvx
/p3Q7Hgc5ZlP6bJkRfVq+ksyAaJibU2DmgrteMxAFLHXS8SPoAa4RjSGVY1tUIBhTRvFZlY0Vl2x
aeILU7Xyehfk3D0hEmurYyveoqbbcJEGtkQtgez78/rFweF3godruZzXb2RFQ0tuy4y4jTI0Gpe4
prmmrQ92zwc8zSdrlGH9ScGwDy7R2gZFeVVDnsEgTVIMTaCnLMuaoE4NqFi3D+LiHIYl5ski+Ssw
46iFsCGGWufy/pGuZW1L6Y2GBXJrcgfaP6aaQgi0iqXvsojatHeC8oMh/HVsdidxidL9fdc8y7gE
N2pfple2Fca/OXZMSGKT3gOD0fENhJDHWR8G9t74ydLH1NGNL224gow7Bus82YvZAmqZzgRzDgCk
JsL/TNHD57krWnWGig2FCSXYizcRmwHepiO9tXpJOrVwmYhuQ0uE11DLYifpWV/PEEswG/+dluk4
Y68sU8RYAA1CxD0ERTRbV1HfMmtMffWspj+TSSYZS4ozdE3fJVnb9kNY3CDrGJO+RW3cVa6lQ9+X
MYa/a4ueDbQrwx3U3hkl0KBqyCakbvTi4OBAmeyWdiwfl5M2/uxGSXFTymkFUBfcd9SWdduAaIQ/
kP2yxzYSQDQaRk9d9Cw7zHPHJ4m2QO18VV0rC9fkHu05PYmsStG//qUYSM9+vswez+f5/RflvJL+
uXbHcy0oWCGRikuJR1xISJ04pMK3hRWHh/9aKb/S8oXuNJDwQqodR1RjJNeNrQF8DSTffoHalgkT
3i6gpA4RJqR1uhFoGWsvYOgd0Efwb66AtMQldvbtqW50aQABdXRVY67//zOI0AZi4zC4U/lLydC1
YbOcmOlnQZ9snzswrsmncz1Nae09y/IJ9QsC55z7ATra2zJLM3Y0GPBt/YGNhuEO+UtSsk9JNbco
ORaFelWHEHftioIhzXMkZngQsoKWm7IjNNbmVbUChF0vUaDy/onu62XUjgdA9LyoaO8vP3TQdzEY
g/6CfUENkBg6Wy9vB5YnyPQAhfDccn5gGz+w3R+aqNZ2HlogPUN+6Pg4ES4EOsIiuw1tGO70CE4i
ej+ghHsRYuPX8SAZHZdownKIFCCSLydZOrnF8yf83a7madlpjSLYHPzpz4fHA6zv+h9EVfzDZBnO
IG8QqmWnIn4fkrv0JgGBRWEpWNK29khYqrfFXQNWJ0wsPFLhC/svJPXCxDNGawfvqGEHfCmCBLWN
ScCO9gVtJIkEofVEhry46usnMmRhnOsZ/S3i6cra6Te2CAYDaFDoAiNYNO+ei8muKRhDdiqZI3Lm
OS2FunstlFZbai8wKibVOsmsE5xSVrMsfRQdvDK5l87/6+xT7IoNCZb85FwQ0+8+HcO048j0fmID
DlBW57+ClUN7JKNx3R7J7ue/k2zNVD/U0NouGW4tPQwlhg0Ywr8a/eEPVlv8r6Zx/ObV2TvplwWJ
77WLTPhE4YvXf7+IoYvI/XD2/tVfX+/XfqYjA9hadbw+rJk1FnbNAaSu7pwKFfmEleVftfR8AxsN
ZMyP41+gvslMJLP4aSD/2LdPIYwPsNW4LulwtVNnjNtnsP3Vupyb/YoNl93IPJ/2ZL71EfQwHTyq
OUM1prXuns1M9qh42dD20BjLSNdUpdBd/OnV+XmsqRFWSOuSldfMkGzXaBBoIhnArRneYtkbvlw5
KuCg92fn52cf/motb31KtUhuGciogkXVPKlwN42hhypGjUhZrlL4E3RaBKK3J9Z19VBFiDkuZhMu
b3IP8xqJnuVRfr+GEexIgAAfNOwV9Qxe5LdsWdbLHe7YK0s2RZ6j/d1H2EgIop4tP7Oq0GKLQ7s8
uCISOqtTfDzkH2kBx65Y1XVUM82KxCjilA05p11jXFJsk7Bd2DIBq3mK4DYOw7IAbdB2AMhuxHYY
i0aB+KhF8EyWukfFVg1OMBr39sMWy1msDFCZ+OuagvRdFWEDDcRqNIz6aYfxn35+df42rie1jsP5
TWS+OHv/+uOXi4aOzGCVrbtSws3hDyNuJgDLP/CSPhfT5pCexabdcdBLpVrjid0mCKpi3Lh/5NiE
t46OxZMK7xtv4jlfKWD8xEDQqsEV4EPluWKVEBdDddjVbwNan08/b+CYNFjWx4NVgUmTRxZtSCmw
8SjZddBugYqD/W9FRhmRDjoBFxsi8ln7wp3jYPKfVovMcpiLOl2zIzzu7tIJKv1GPPZsn7TTUis4
bMd/bW41TWcz2Qb/bR2thuUc2kg8NOF6hbE02gigge3XjIw34R1iReyRl0U7dHyPdbfs8d7q697q
RZiX/uEc8YNQ6uiONwRJNzJ3W8J6idzjujj2DBqtQrkS6YTjXBC6ChND/64fN2bYrx3Q0nUeYzfc
UW2inGUf1EyoG2s+6YE8OwmNQpztOjPS5Fn45HF+DwwritHqy62mIkEXj+Bmkaxg7s3CPds9GBLF
WCEbhMtvJdRJLaG+BbHqaMQKtpwwl0BP3shstvFjVLfD2cYN11mplp080XMwCZF6G+CWILbk43Bn
WJv4wTBuzGWK47O3UzTGayy/XrFios4vdqGYRIOgt3Fa6V+gfH7fiTu+yqkVMXrj9Ez4B+zN2bXY
uFwT1sbJw07Ugr9EVVekAhwnohFs93QJm3U8+x/nSTH98vkd7Nb5OZHGrXT37BjICIRuteqPqI3W
ylTa30+tMzYJad+cMzSChBvAkokpUs2HGvUiJ8rOBNvqtixTWDrchAva2JX2pC5LVqtylVf9Sb4Y
TCVdyoGi1bUqpJX0HJbmPdiPn9fL8gRF+R9on3GCfAIrPZ+yL5/PTvPFKl9ixIFEzjV9cVPyOb+3
/SSWv0DosGPuPP2NTgHBUrGMbUNs22FPwUtjKVMoJtldrTjopfkt2spHTqoT0ZTIK13tos7ouCpG
Uq/LwuNqanlqg15kU2Fz1yi2Mhw5hi/1JBRLbgIY+v07ATkNbqFagUFugoCO8kwK83KEF4AhsHKt
Xz28jreFCyEjHIc+NlsrhvvkzlQMPJjZlKBbCjoBR1B0ZyimYY1EQSDSAt1NgrteibA0JwQ7X2MP
yYFS0LeW6Zu7xGF9VY+CLHZfW7rGBj+X+wNj3z3hoVc7mu3KUWbGmRAox10m5f/IlP/b9Amjg8XM
ykHsGG+Oo63jShUUEFK0UEeu1NhVHqMTymWxqF4eyr4F4//W3us7aOB7fkLxMuiyVsrBQssEfpwY
p1rN1sel7uGKa5zRHPRmXjzSAWewhwHoAvgDFeTIPpL1TR9+N4OOKMWFjC4FvVQFY/xfvnsAv4nY
GPonTF+Y4GQCGG5iqUU0WPLvywEo++mWPUbpkvpxt6BLdq+UkQDxMmrrUHLiZmiPx+Hwly0lpAkt
gV9CjavQSZgmOqkRUXPo2VeG7sMILInb0IkNJLrWOEb9gL7gnCgkurqbYAAVqEEdwEN9usesVNYv
8wVToVRcgGI8lYzK4Gc8+mwregoG4iGSGfDjab5eVtpbKe8INbkZxRE/XVWFxngOriK7qMSdejMu
yzpOp9q0M7lzj06xk1PZrrS5Ybt4JznVGgp0/7VhXF6409dBj82gThq94120Qao4XeKWjrv3uUHA
c5ZMWeHGd1fiPNAKnLNor9vJCdBOY2IBAmFMLedIZ2qtYArbbKuJpxBgrciJwPDkPuMtofkWNioC
Yy/0YH5IMp9/pds2bTMmwuFWGQjROYqUMH/eMkJNegkoRhV3Iaksgi0oFgUqcBGOPQ+DWMtRcqS6
fHt0pi4pyIVcVMZCTrrR2FjICQmnPkZOZQz3XzB57bEw9586hp0vnL50D4i0H8W1erKEtjMcDzp1
4ofRPSqK6S6VjiJxd0t49ZvfV+Lt8b6SeSOofrZInVIzpe70WWsynUbVnOnzshlfxxhEt16QkkNq
Ux06asd5LFEG7GInGDfCOPZ4BkFHhqUcvef1BZxxAGAuzUfYM2jlOf1wUeUfBry2pw8df0JjsLut
urB24LylPtzAwZ6kjS02v862suBa2+2a/fZGNmvYjVud0dbY2IqaHxvmUhh3OsIJumkOxwoRUNnK
rmfb6NceWpBixn4ldJsbdy4city58F+u2tmWfc2uAxbuBqB0PstDHBQxf/3aYXFgWX4jR0YFERS4
jtBdaJUsVhlTtKJfAT+7OzBxHtw4NC2V0LwAQ3OSradM5j0Qe5YBeU5l+oE5K6iveyY+QzsMDaHI
EFkJZYEEwmVAzWzZ3o0QBSxfbQPP/nt2KW5f3laF+1/MKiT21d3QxsOxKqeIMnXN3FHz7tX0EtQz
sy+mux7JIl20+aVjN2kCFYIAXGXJhLUH/3P5c/nzQ3Jwtf8v9a/fDTDOU4SnA2v85xokb0LXfClV
Ik0rOkejRbKEvTrZypTC5AIHfQ6qnczdX5+AekZR/xoa3sMkwICEP7S8u4kog8pJi6eSoSRKIkUL
/rs1Ol7l2eMNxqZhkiSQvwfdg+gQ//ihe3jQks1BcGdHzyeTCeW4uLuhqbM6x8w036L3Q+r+EPvf
pXu0eNj0VMZznmjjUhpKCSLmzBeVkRVCJgjOK69u2s4dVYGq07xZffNtDzdQTuXVOwsH2J69tUxM
MnChOS9tuoSka5nXi3Sp62gzodL206+m41VfZQV8ffzM7mBLQKFvujm/RYjs3xebj7IdF6KmK2jp
FMIF58dRBqGL9BO1sL3NUS0kMPrCYIIndwYIe6cU/jDc23ok/px9NQGenPt34THbHbr8aY9O77pQ
wtKlO24Tuy4B8bnmouclb3Rlk+gpsCwBRngx4EVDySnO/pKAmMvihlXiZupfHs9olvndPKFxjSuj
BJpc/ULua4ChoczV7lSuyVO+QziRoJSvTy8m83orH912nfGNuuE9dbZqcqdmBnliyCHMPKzOKo/K
9QpveUQZe0gn+U2RrObphLAmtbGE6bLDxC94HFUdP2CHesyOo2S8qfG4prEV+8qVEseR/S96Z+8w
4rqMxo9810GbUU+GiVlAzzZH44TjEwxS5w4Bcrg1jfTAWY1ikJvbjv22dAai255oQL7YEyvqYBhK
06OBHBvIvERfssrs59hl2HcRFLIaJpDsWMzgywhBmUlmAheGg+1MHJRjIHjrGlnZ3IFa+3exIMwb
wdgANqG+tLJWoOH8w5IP68XY1qFqSe4gK2qkwKXZh9gde7LMkgEO5twve4reHRN1VocvbDaSAnDV
Wl3Ld/LNqIwkiF4wtHQn/KhCo1WyhVVjdWAfwmsjIqSn6m0IKXel5agAvYwaLMyjqNb2HTrKUme2
OIkajEZTMSl8zFEGNVtQnRHtcVyfMLz6/+X5QpvsRhHGLt1/XP7EMrrFw52c5vdrzLX5JkE+he9/
EqkMb/lu7m9oVEPxj5iP2Ch/SxY21scP/AvBm9rtLDB/jGr6HfoAVAd2hw0g/EFRpNap4b1XXLku
srqb13WpKgwnv/aTW0kwKGepkzLUCmhIK7I3oHOeiK49+LnXvvyfn3tXf+z8jPFDAx26aKQTw7RH
W+FFVW2cqCg2P5sC0oGJAhlzorQJ0443WrMpAXOXZ+oSfAuk7TY29uE0rHGoVy4ReFBz2wQtopmB
6FYh7vn695JLfdaF7djqIfabzBVfBri1rhFPmosjctLmxkEamHTmsWhNM2E3NqfEva9PEsNaJXxa
gkvEUimVyJ1jZ9wRukXfKB060VJVKG+OnZuHsP8pnc2ak7ckl+gS+t1JC5dJ68rLt/NtVnAo97DL
bfK4wi23clGI3F3eWIyBGNGgejzk+XMBuZ52dZzt1WyK1h8aB3chNtogPY2jbjvUtPMtIRuhlB0/
LCpkFNr8EzYPvw4tGzJGRVJaG2mhKi7zEtFMnLVodTQtEgxXFOllvE/mCnQWtnshR8bZnIZPbds8
a+DQXyJ/wdTOpd8cmIc+AUeBgQlD+wyAHFlK4gzTWmN6QweiEKeD6EXUswctYn//DurbF7WdWrFZ
5atQN0IE1/fzD7cfLp51RyHKv6LIJZ3jZYeIgl1SlmO4gde3zwzczn+fr0v2cV0F5TLdw+tTxnM2
vSBJTJf37KK+mUfy7M3nV+9fB+x8ebB5NnPbR2kZ8QQ39yy+Y9ECUZrSEUE+o5NNRZlmYez6HIOy
1hCDRoocjS35sMz1VU+291DVpluk6WbNwEJWF4l+OnbyJJn+p7mNEQRWpyRrhlwzG9+EkE6CNFPR
K8xMFahSuZmgopd6Ty/awM6odpQ+ACOS0MUDs6s4ZUEx5nqgA9xRwyEbLhtzvN+JBC/GjrlZHIbF
G1F1QpX/DrLJhk1iswNiyykmqVkP9R8m1H/4UEFIBoByGWkw5TNNE4eUNXtF1wfWyP4851YoUZbn
p2qyP9vMvWTSxYcJOiGfVtBptTXwmruzDaparb9kOn2Nj3ygx4Eh3JiogYwX27LdkUY6OegmWEDE
elCgDzQkfmZnhiqpUzsrfgnWGLPUiJwau5p4hAkLZZJk6dLz46FuQEeIOC3s8cntk+P8X+yRhmjJ
4jsjiy7pMSzoL1iVQHUUCrygnKezyiqZVEUGBTUys7xPYVsdtXmSpv6syBen86Q4xT2taC9+WgIF
X36L4jQ+stjMHsw1f1fiIn+DD8pRKJjDlmNgt9uhA/SX7YB+gJ331jBvt4P5CTM0AcNsDTfbDu67
ZIfxs2aYPOPPqea6rYBOmoHKhGG7gq2awfLr8bsCne0I9A1fWA2wn/yV5jNnyJTFhea2Y5U5oAPD
GKnpwRl/PSqSTUKYyOSoXoinYSo0Y5oZuz26gvbtEJdrcTsS+hLTvjywrRRRgT/N497Q+f43pYQp
Qf6t1HBFyrchxrdhCwOs8OrszM7CD0dVLpuRvtqAwmszNbyHiOioeQTtzpaJ5H1EPHEdQiKQxHub
8bQ7YfL7wjzUaTDL/G/o1pPLoU4DWe2+ZZdCFdRxXKU5ctOEN2YIlHC6/PKFfqzAOVITJl/cUVFl
IuDwgh+wS/uTh8Yv4yq6Xeb3UbJ8rOZgjUXJGDcKBAWNs+isElUxZdk4GWeP0YSC1zHSMI80BYoI
oYIZTHD6e+FxWFEn8JsSRFuB+g7thNNX1fVWhcoFGXf48R6ejwztW5oGeOdmNYfpxNAoGjbdM5B2
9aXE8grQPKx5MCXUlYz1CfQ2heFVbKtOra2y3YAf274xmgVlp1+tjpcNDJDI4/yh6azdejbOci/4
cFznuVFjx4Mq8dya17qf4hKNw4/gxRvaWscP9uPDm5qaJ87x8fzFSMoLovTxAEqOVwV/9s6iWEum
pHw9TWWMK1Q049TrndshVMxbQd9gJg3vjLPNFPHgt+yR5w+1OFfe/zGKeOCTGQLAVkkhdsm1SMEe
u7dk9/gmLuAEW0Y2ueUX8X9eUtB/FHtdibFak2Jh8kueLtuqe4HSVnQxPWnCMS7eIHX7EOYwIEpo
4hOkcdC+s8woV3CSHbKLpa4aRcfRgUzsxgtGJ5FpqXvZvEWaS+3wtNDa0mBSPkH9yXDh6sKAhBRf
1b22jd4QNTTR4KsRDuNFSsJFSsZKUuRGvbW+wVgxnJ27GA0kVnW7Bmd1kd9/Frd/VPVmJyqYELJR
WuLdWO7kBPGUF9Myaqd91ldPuqJNcJeyewxNxNTFOd5b+AXj2u+TJVkMeB0LE1visRH8xLMJ+ag4
p5F6NbUfOMGTZFzRXQ6OVl8+Q23Tqv4C5+k8WTaYbDa31Hr0DQbQ7tsQcweOb/K13c2YTVC78Adw
6dUNVpmkUXzZ3yofP54whVlXG4o689BXboOt0FSYh3yxWntGi4u/9/JKncjaap1zqSWDck3iG06Y
BjcuqChQqWUZd6Mmp6jhyNVXP5rob2/06lWYfuZWBCZqRTZ0rm0jPrormbWBGFn195HeGP9bkVL0
ZHKnQmzUMysOnjUPYIVHs80wSPHFHSeKvpFV9bFVrJMk/Kof8KYnuqMn+cChMR73dnlo/7RRCLR1
hJ5JPumft0h6jZkH8PDNSdXbE4+7x24DnIM6KSPaNGfbFK/p4fuzZpAAhowIDOszcIoOtkrByevq
RtalUOztkn8AK/pK1dKsqs9nKFr1HNCn+ABWnVVs0faI2I3+8/zjhz6/I5XOHtvYhdixWpXp6ZY6
CuJDuygEzC5v6ro0pTQ29B/qAoLzVpYMqjmQFDNAwwBrsWRtAurOxxT1JQ3OzXmKU9pg3qZTJ4WN
eKjYijvHImX4nvB5ggky5yM0NH/Nm9+3j6h4LpilB9/XkkmNu/wcZVjLHNF8ORHiyk8XweUbz9z3
pWQfhF2/WbJtueMNdsRTBO4mQ+1nvMLUdOt4z0Lw7ps2N9zL1JPJB+2VtinpIR7zGoVBXwj/ZHLl
FhNO21DKXfFc5FDigfSdSGe1uHTSkV11Ii8qkJ54uGNFdZFLWr0VWVAU84i8Mm5yTpGopi4VbFPe
xqeO/RbCv2m06eLmsiwm2w3Xig3s1D23uwWydQGLRt8f8qXbvabjjrRx80g3d2OknxiXeQZWov3k
R+Msixfr7JbqhY/Q/D7t9mYcrL3PdmyL9f61QIa/u6leDaaE6n+lPACBB75D4TXRkXiG237HaRvG
eCOqOyjp2xvOM+EoadYFBsrVY00fMOiao0VRk7bG0QHwdizp7+JOMJynjo6hLAMmbB1N+ru4E7rT
Jd+yDtC57ulY0ylce3GzDuF+Dnwm3UPBiXAvzlO+lE5zXu3N6/BrpllFGdMkbhVYvNWwbYxCCb69
BLb02lRNq6ZUtU+B9PbCGnkPhoWlP8nSaNCbpkUi4eO/LQ9u2y3B17Zo5y3aKd+cWRqyIyjS56f8
3on3fFYXdffcxo8HgopAtpRnMpE1OPP6rt7mEdueag/9TRFNUxgKPg5sD87Y/urEUMaDBXQZSiYj
okspXbB8LYKYeWk892JsXr9Z0qW7fOZv2Cia3HCS8Vywb+1A/+2S4hgHMyYYzJBhppgV1xJNofhM
lhvJaGxpWD+A/X1vGzGXNwB5XiX70VAvuZKRQUjkoTrx8ykJWho1jCyvVvIkfn/ISLAkcijRWQS2
Safi+XWZpqiw8jHFVt4i9wtBQdkrfRs9jlJrJH7Xt+LB2G4zHk5vNf7NOR0NKuFgRM5IK+tSXTqm
AKGx7g5pUUTGrEA+FHtoKc8vQ2/I2Nll6sYh8CxrERWJVax8UjJrikxxZi+NQKqVpz3LigIxAsT/
lBibKTNXYfDFq0CGMUyXvWFWU3w1tlivrLUnU8K0jldiScRA0tUKnWvr5RLNd5YU2SOIw7JEo3WE
aOGRN3tIcXLpa/94sBq16hAw3pZxZZmZEImSs9W1BDXAD8ro5ScqpxfjQ4mR5MwJ2L7QrX9FpquX
ldEd1sD0AbAsBxSRPuBpcymzbzfycyns1L/9pFQYg3kyBVtFJ2OTGYzaKrxgye47iIu16Wp4XsN6
h2fHaTHb2hODX+gCBSVADqV2qkfIeWJtV5zs5l2PfDx7F+K2WhvpvL6WaaynqYxJe4MfRI7HtmSc
OYtmeBoQwZqKwEwQr2JF9KojvoGF+AQk1dfm/gULafPDUjsSOABCEVnxZZUT5SIwpcUY6dkAKyNa
7aDMJ/FMi12nrVqNMLn+NEomKBQxYZmRKpIXXou0Zq2R/ZvriJWlOrn6lECBGcAMsmFSmQZp/VQQ
Lfuk1uRcwKahJ4ITZNCN2DbMla4QOkIRaNuUDCa5tk7j4JuzlFkTj3XCWRm0SavOmoKJJ9oHrv33
9fkNrU3BTmdCXXlD3I8skOEDDTg6me9tpOo9kL7l5p3rxBs7tl7xcff2tX2H7L/Gzrcnr+NY3YGy
T75vyT+ACvik6SxXOpH9ww3ujToelJMiXVWjvWO6w50vszwBS9i2qloj7crF/YJMlCnWovY2iYqq
HpnieZ6Nk0JmoW3ZYUxuC1FpmVesNfpSMpL8aTf6pRvdktzPMH82nuLLmELY9MH/JljCY0upmoz4
7NKvGYnVLLnh8kF3KaXUL8ldwilxdJenUxiyzpJb82x7ayS74xlzdwNa+5B6ayQ/7QQYKG3u4N23
lS2/RmskqtrQ5YSZO3s1a8aW3pgyakeMPDrmJ0sIwBclrQjzGsKo8ThhnD8AWHF6JA9noIfmo+bW
iLJQadh6R8YR2ICUtQC3xyd0YtMaiYMUDqwBAe6VOGkhI8uYsShdgrIAcyqfRZRtkZhZxH4xGbLF
7Z+WRVYj8GzXAVhnW3xhGfioTlGoHA+oS4Mx9JoR/9xTvGKq5NZIfR5Q5sy9/wNQSwMECgAAAAAA
zWaORgAAAAAAAAAAAAAAAAgAHAByZXRyaWVzL1VUCQADcnAtVXVwLVV1eAsAAQT1AQAABFAAAABQ
SwMECgAAAAAAzWaORgAAAAAAAAAAAAAAABEAHAByZXRyaWVzL3BsYXRmb3JtL1VUCQADcnAtVXVw
LVV1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAzWaORgAAAAAAAAAAAAAAABUAHAByZXRyaWVzL3Bs
YXRmb3JtL21hYy9VVAkAA3JwLVV1cC1VdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAM1mjkYAAAAA
AAAAAAAAAAAjABwAcmV0cmllcy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9VVAkAA3JwLVV1
cC1VdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAM1mjkbvKjZY0AEAAJ4yAABHABwAcmV0cmllcy9w
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWFjdHVh
bC50eHRVVAkAA3JwLVVycC1VdXgLAAEE9QEAAARQAAAA7Ztfa9swFMXf/SkOfukGI9C0Y7C30Gaj
0K2B+GFQ+qDa17GGKhX9SeJvPznZYIE9jJaxxj0vthFXV8f6cWTLspwVxI1D7LzIBK1LHq1eC4Le
TooiyFosRK+6CKut5KKq0wFRQgwIYqSO2lnUnbIrgXVRt7pWQ1nIyTwe3FpCrnVjEVJdSwjv0LuE
jTYm1xeofPRaAlyLcjFbLks85Ci1khzZOmPcRhrc9yir+bLCxc2XxfW8mpc5ZzGEQzWNNF9/axiD
Pp+k+DS7uoaXkEwMt/vzlW1ke3dbzr5Vso3LqKJc7KRX/aOUdwidSyY3J5hOUOU+2UC2tTzu8g4x
c++d/4iU87S5P5qhsXzXUBbu/nvuDbyRtTIpK7ErnPyp9ZO3f6HsV89+9somo7yO/YG805ch71L7
/cWBuPP/K45U/wnVM1J9GtUpvUqq9OpRUD2nV0mVXj0Kqmf0KqnSq0dB9T29Sqr0Kkfg51KdkuoI
qZ6S6ghnNvTqGKnSq2N8W6JXx0iVXn0i1Q/0KqnSqy9q6sB/IV4TVa6aj5Eq11fHSJUrcWOkyjUb
epUzGz5XSZUjMKny29Lzxe02bPzcB9ImY/qF8mGfbLdjozjY41EUPwBQSwMEFAACAAgAzWaORrCF
W1mqAgAALlAAAEUAHAByZXRyaWVzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlv
bi1jaGFuZ2UtdXNlcmluZm8tZGlmZi50eHRVVAkAA3JwLVVycC1VdXgLAAEE9QEAAARQAAAA7Vxb
T9swFH7vr7B4YVMXIgoTaE8tNJvQCquWaJ2EeHDj09aTa1e+sPTfz0lhgNQHQHjg7KhSE9XN8cl3
8bVNkiQk/aGEW4JJh9TSNJvk6QSmX7m9OZw4Llj6HQRQA6mga+VsYsHYRINxwppUg9XcX78S1M6U
XqZLWqa0LMEYPuWC23Vq/OWl5Uom5YLKOSTOgOZyphKoVr4E2J6tbKfb7b5yOrS0joommX6fJMcf
jo9It3nv9zukfo0HeU4oY8AulOUzXtI6EOGGWO2gkzTlN7lcbo5nkkF1dbkz+FlAZXNLLZw29Rbr
Fexc1dduLcpv0zxX14+KfPv9L5pKJ6j29/og/JZyX5v2Nw36KfGHXG9Otkb/W3rhP0VA7pWONVxz
5Ux0oEyUZiiQoFhEq40cpAVZAuojOB7RamTEJeojLBbRamPs+9u5pqsFCiQ8INiCPCzNJEMoNicn
MOdScjnHHjdufQSEI16NhGxUYxRJSDziVclQlW7p7YMiCQ1HYI1klW8CGa6Z/StIolsgCopGlEsi
QRGJbgEgKBpxTnljFEiwXjfW9iNOQKIcvQdFJPBItft5cDZ6IiBmoZxgZAqkt0eKhYbfBKoSVs3+
aP2dTGulPxHn48y83VmdhFSWUEnU9JevnLyDayoctX5cSHa31b77/jGpbcfzLr/9N5LffULusjt8
5eyQ2EDEHiCxzyW2h45FYtGxERF7iI5FYtGxERF7gI5FYtGxERH7ER2LxKJjsSl+IWJ7SGw7id1H
Yts53UHHtpRYdGxLB0/o2JYSi459NrFH6FgkFh37BqcT+AuK/4xY3GhvKbG4H9tSYnHbrqXE4u4O
OhanO9jHIrHYFCOxuPL0wtltnmRnXPNkvJkTov6XjdlEax5lRzqkyPKCnH47H4+yIuv8AVBLAwQU
AAIACADNZo5GXxl5aq8BAACCHQAASQAcAHJldHJpZXMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHRVVAkAA3JwLVVycC1VdXgL
AAEE9QEAAARQAAAA7ZnJasMwEIbvforB55J3SBNTCtnAhhZCDqo1tgWKFLQk9tt33DQhgRzagwIC
XWyjGY2kj98aLVohuJMG1xnECTTaG2jEEcGKfpJlFo+oAEXbOVBCIRVVnbDg0DoLFiXWTmgFdcdU
i6C0E42o2VhmKZiBvT6ipVprBdbXNVr7AoP2cBJSUn0ERk8j0IJuIN9MyzKHPXmxFsmz0VLqE3L4
GiCvirKC2Xq5WRRVkVPMbHQHxjny1U3DMPbPeDybDVovnd2e3++KY7/b5tPPCntXOuZw9tP1ajhg
vhurPjSVl5EuaTx/CHxxfzNMecmMcMNd9Ad2asyw2qH5R/i5MOePh8Gv1hWVJhoX68bgUWhvIyPy
oQ1P0ggGIlJVlKgcqhqTMoLCiFQdC0rZSRnBQESqig2l1tawQ5ekEZZGmjVurIXiiQN9vGIrFO2l
2pRco1VGOBaxqiPgLBqfPALCiFUfc137Pf01SR4hWYRVR9HTpMfT6dczeER22hMSRYRHHCFxRLan
D4kixo1sfNIIlWDjnDNipBHh4jwkjiesRX/vOhsv5UjfIr/eSmZ395hZ9g1QSwMEFAACAAgAzWaO
RsWeI3I4DgAA5TABAE0AHAByZXRyaWVzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi1jaGFuZ2UtdXNlcmluZm8tcHJldHR5LWRpZmYuaHRtbFVUCQADcnAtVXJwLVV1eAsAAQT1
AQAABFAAAADtnXtz2zYSwP/Pp+DEc/VdJ3qTEiUnvklsp9e5tOc5e66d6XRuIBKUGFOESoJ+5O6+
+y0IkAYlUXaTqIbobaflAyCwwC5+u4SX9us5X0THL17PKfHhsKCcWN6cJCnlbw4zHrTcQ7id8ruI
Hr+YRGF89cqaXIdpyKlv/eeFBf9westbPvVYQnjI4okVs5ge5UVTlvg0aU0Z52wxsXrLW8uHc+of
vfjfC9mcasRjEUsm1kF3MM7L2u/DiJ6GQaDKp8S7miUsi/1WUTVwxb96R7KHlEWhbx34vi/LAhbz
VkAWYXQ3sRYsZumSeErABUlmIYjcowurK28tGQwuH0dCIxjRNc0FmvdWJB0MBhvaT0mctlKahIFW
mIafaN6H3mkrogGfWN22U9z3w3QZEWgkjGFmlIQ3oc/n8HC3+yclH/H9MJ6VT0rZlGrEWVU7Stww
noNQvKw+Z9c0WRmR4zhHdZNNqZyGttDJB+grVQ8HESMwjCSczXlVc6LWCQyfwFiKrhhMfchhiN2V
IXMyjWjLo1FUGWUrb7cySzdzGF0r16EwtZuELO8lu6Ce0F2t0eQPV01m1VyUzRbzDgbVXd7KHs5u
l6BeaB+GRl9ZbXFYHWGteGno0+md+L+Vi/ouYt7VOUl4G4Y6CcIk5S1vHkZ+7cSK7i7g+VfbGkvo
AlT76oH+VB/F9EuDa01FlYrZOYXVgbXw0CNRi0ThDNYGZxuGlVBh6X8jsR/RYjpUO2IKxfWcSoXe
27OXJalQjRB7dQWSKWgnKzQGfZaGIxdPLt42KSp2vm4Os4TeHa0YZtt5SF9yiq02Zw9OcztI2GJl
shUfRR9i1n/MFlOagDVR3brk3ULwdYwqqx2PKwAslssmDBYr2bbtjbjRtV8yRjTkyCUgl0EJfGUH
yjw3mYgUt2JOAwUsbeD5EDcCRzqJ2mnZAqllIlanEFNNYEETZTXFQCprFR5qydWaF8F85pcwjoSS
q5a4IQUKF2RGK5qZWP1ywqcREbMoKnqABpABRFFn1uq477Xi2uNa9gY0uAeAMCtosXSP2mre8Kgf
+NVHQdlpffUxHR9t8+llS4oyuhxqVdS7a99fa8DyaVT/BB0/KE3nW+siWy5ZwsHTJsqSYVIXCxrz
1Pq2A/2RjM+ZnG/pjUUwA1bPwU69QlP5A3mdGv9f1hHCEDCJvHKBs2Fh2AI3JIpOCgk21u5LX7Yg
t60V976AuEDd6ndLv7PaNcz71n7KlV0u6Uo3m+RssyWVbrN1Q6dXIW/xRCw7ORNScKvdT4+0Ydhq
0AcpJzxL32VT8OGlP2yL1bNRHPEIZyyakqRaXnQdRDRfofcFC/apvFvCaSDXsYqjxGkRLYjz+pCw
jhxbQ7l7swjCWyrbUTzuVofUJnkMIpfZuhe/CYEFyYqplW1+aoWxT28BUluGdu8INRE2jUvBqOLe
XEWxWIipFuxG1wT9Tdntg4IO7wXtSSMunJC8yoVV56UHU5elwGVkVuk6DBKykBKurJNqGKGtkZMa
0q7PzR3EmuxG+XoaQeAIMfMjHNNw/P7evJRPrinMJ6JaVoaR/np4XA2OVRty+tZtuDYk8AvOym7e
FlAoXnW6eull4SNX3kmGowJo62JuWSTa2066IDKW15kbswRuH9VQRo1fhGDpps7lOIp13d1UJSJT
Gk1IACvs1drj8n7eSO6QYxjqS+u/1sujF6Uj1tz36tMRgQidBS1+t6Qbm3pZK5GquPKKO6dRDsgy
GCUiGK3xUQcLmqZF4FE7z5vUoq2OixzUj3GF4GIgILoOWZaelHcgmP1E4xPNWW7y80XIsepidOci
WA5Wm1tCwXZ1rSxRQWRQ+MBHSaNMA2IcysWaqLgLFfbVBH26n51msKpinTuFf/fD60nAPDWHLOOC
F/rym0ZZ7klUEdhLALKAB+sVA9GdZd4KxDCXcyp76ihPOwP5xRg4sziUTWVtZWqpdR0SwWT+g7IJ
EHaasBtQOEQCcwLPqqAo5G0RBJXjsB0VxZehiLou6CACWfFft+pEiy2d1Rh/EfrwliUHJhSUFi/f
GzwKxGEsJdcw9zADdMWv6G96a66u1WsPZMh0v/lReP8NOjg4PT3VlvSB+/70vfN+I58guNxsxWdn
Z5ukntDFEghVUb4K01ZqtuEUJK2s/LOx23UVt7yIkuTfeXhQvAqIO/lr01xUed1Ru26vUy8Jl6DT
xHvzcs75Mp10OuQjuW3PGJvBQ8swFaab3+tE4TTtfPwto8ldp9e223110YbQsv0xfXkM7ebtHVvV
lj3m05bQIb2Ben8FTQtlvrFd7REQSm0UTpl/BwdYDyA3SdM3h8WbgNgvnPeOO/8CfQKzOqeEk87Z
Txedn+j07yFXh3dZGPmdf4LfJSntgKXAdLY4BcLC63sW8bSTUJ6E8DyYEYfYftFZEK9DPA9MPpyG
ETiKjnTbIGXLm5N4RluZQF4csBbENhmJ2vyWg8S9qqDaPtHhekn+/l53X7zXW+kcAm1/pYp4qbEq
+0H5vin42KJGvhNwH14cHrswrVB+XKkFC/7hOuC0D49VCagExPhiYcaPEGb8RwnT6z5CmppKuTjn
by8uLEAF9X9kPAyAWPmuYAh0TDK6Kmx+0EXW1qYYWl68PrDHWYt80X3QWrR626em94ip+Saepsuj
LdqC1+7jcxgSHPJzmC55ZanV94s8fi9C/F9/+ea3jPGjtz+LaFGEEPQkX26XEAjJol+tvJlQazLV
zq23P2tXl9o5vdUuyra1e9CNvBKd5Xcu9McjeQGrWQrA9Ed/YNd6XXX+eyz10VrpP7VWChJ+B/F0
FpEE8PjFquHVqaaevBTd5Le+04oT7ZzE2gUIo1fT5eB3oOsEUK13k+xSTQNT1HQaJvJk50o61YrD
ZNty+bHa7i71YCPEDISYgxDbB4gNEWL1y0UfU75joGtxg2Q70dAI8WYg3lzE2+fg7SemP+fvUkNj
JJsJ4Vm/i/wyj1/9HvLLbH71+8gvsyOz/gDJZiDZbCTb55Ct0oH4yaC3Uy05SDcjorMhMsxAho2Q
YXvAMBcZZniENka6mUe3QffZ062iNCXBB3kP5mA3s95DWpkQcQ36yCQDmTRAJj0Bk2xkktkR1MBB
WhlIqyG+H37O++E5ScgsIcv5LnUzQqYZEWe5SC4DyTVGcplKLruL5DI7GrMxX99AptmYr/8E7442
pt9vsf4z/WKXaSo2Zt+biCTMvn8KJGEy/Yr1x+/0p2dhHBcamO1GA5gsbyKNMFl+D9IZbEyYNyGg
cjBf3kCEOZgvvwcIczBn/okDMAdz4k2kF+bEG7vr7mAmvBFhFybCmwguTIQ3F1yY/v7UwRamtxvI
rCGmt38Ws06Zly2qr4u71BKmw5sQdg0xG95EhGE2/D4gDLPnnzgAG2J2/KPpdVZpfAPIdu9rMGt+
H34l4RAT6I1IoB9iAv0+wQ0T6w3/hV4jTK83gmsjTKLfI66NMLl+DxIvRpiMbwbbMBt/n9iGWfpP
kKU/wix9M1iFufr7xCrM4Tc2E2OEmftGEM3F1P09IpqLKf1PEH25mKJvQt6Fi3n6+4QqzN/fg00w
FzP5jUAbZvLvE9oww9/Y90oXM/yNABqm+e8R0MaY/r8HubNjTP//QrTlB10Zp2EQvIuYdwWuiVvE
9w8fVJaqtFVTW5RQ1Vavt0VTYZwev3/dEYf8/O33H+TV59NPPJ3OWRb5WrvWlFr9tqXduZwn9Ea/
QW89utSuuZj78ipWVXP2iZOzJGHJxMpivRsawMB9K0ytmMFcxxabfpTFQqG5IH+m1yTKCNeeCvV+
ZtY3B4PxUaK3uj4TeZ2/qDq/ayF+Xd32d6TbbaysVXDvQQXrV0rX+TLMWxCqPdNqlAqualWrIRUM
kpZaDUv90VSrmI9Wb1oMXLe176tmZI6CBztW8Dpma9VrfwX1ajrVF+DXWrSrwzZTpzYCubFAdhDI
zQby0BwgD4wHclXDVf1rV2Yu5RFiurGYdk3CdH+fMa1dmaTgMcbNTYub+10EclOB3O8hkBsN5H4f
4+bnETf3B4jpxmLaNgnTNm5vfHUFOxg3Ny5uHiKQGwvkEQK52UB2MW5+JnHzGDHdVEwPuiZherAT
TOvKKVe3+Fwq34mo6rqO2Mbqr4dhcdPC4kEfedtY3g6Qt3vNWxuj3ucR9Q4cpHBjKTw0icLOXm9O
GKTVEcbCjYuFXaRwYyk8Rgo3j8J2FyPk5xEh2/j9XmPZbPdxn2Kf9ylsgz7P6+9bLFw1DHN0ip/n
NZe3DvJ2r3lr0Nd3vSfkrd6yvjzFH3TLaxivSPy4rrmQdTEnrdE5afYYo96mRb0OflzXWCA7PQRy
o4Hs9DEsbkRY7OC3c82lsI0/h2vez+EcB2PhxsXC+MFccyk8Qgo3kMIuBsDNCIDxI7jGondo1Edw
I9yG+OoK7mEs3LRYeIhfyTUXyAMEcrOBbGNY3IiweGjKV3KDvaLw6jqFmVgFs7F+d4i/SL7ZbMbP
6Br3Gd3QRUw/M0yP8fcWN/r3Fo+6iOmmYXrUQ0w/L0yP+pgB1+hoeoR/J695mLYR088M0/h53l5/
njcaIoUbR+ERUviZUdjFFLnmpciN8C/iNY7NbhfZ/LzY7PYwQt7nCNntY4pc01Lk3AFS+JlRGP8M
XrO3k138qq95mB4ipp8ZpvFbvwZuZLgusrlxbB4jm58Xm8f4MWCzQ+gxfgz4x2A6P+ia9SJKkn8H
ESNiqmXxuv5PwyB4FzHv6rDm/jlJuJXOSUL9w4dM50GzGfcfYzJbNsfO315cWGnmeTRNgyyK7kC8
VM49TzL6uwz9YWkHj5F227bP1xXHfow4W/YkLs8uLq2Tf/xw/uHs8uxL7GflMGX+HZTN+SI6fvF/
UEsDBBQAAgAIAM5mjkaz/UcJ08AGANH3JgAKABwAc3RhdHMuanNvblVUCQADdHAtVXRwLVV1eAsA
AQT1AQAABFAAAACc/WuTK7mSHQr+FZm+jlgWeAPzrdX3bZorWXfPjGRjsm1MkpnJU0wym2TuvevI
9N8HQLwcEfCFyL66p2pXdQUYATj8sXy5+//4979OL/uv4/n27/+f/+5//Pu/7X/uH4f7+fOZ/931
djzt/n6633bn6+fXc3d431+vp8vjj/fnxyU/cD89vi7PR/zz/8/8h38nQ3D/4d/5IJT6D/9OxX+h
3H//n//h3/37l/O/fu2Pu8vt1+P9dHnlH3d+ejx08X8yP57f5eXr9fV0f9y+7ofT7np62z/PP0+7
z8v+r5f94c/7/nmKL/k83T9vl/jn9GO3T/6H9PxDKv6Q6n/o4/z7fH3jnlJd101PCWnTX8L8gsPm
fJzub6f77hFf5XTjX8DMG+Xiv3COLHSL3/H7GZeIH8KvYMnL6PQy2s9rfO7v+4/d4+vjI37Q376u
h2c8TbDv81oq7ozqP+v2OJwvcTdv8XP2v5632/Md7I0jeyPzBtUPD+yJmZfodPrL+otOz3/Zxw1+
/sPzX84faHfm1zEi/k/llaKw7/Jqu/Mjyw48bjm/T9ogJ6kwf572f4KnZfDznprwH/6dFctvuZyv
p/39n/Yfn/9y+//sL1+n5jfZecW4uOnf53iK35Fv6sf+9+54et3Hh3b534KXm5eyPn0e/bTr7Xl4
B8IS5teIy5j+kHqBlx9RaeyOt1/XXesyCVf7mvVdbysdraaVfABa43Q9no5gGT0ft5iO+9f+5+nx
vv+Md/r2My4Vj+ty2snfQGzkrMTS/5h7kO73/Qluw/w6xk/yMxzRy/56/Nw/wKY4VX6NAl+j0dfM
64T4YUHPX5OFbjie3f3rcgKvY0W5KSYvEyXttHu778/X3e26e54/sPqdNzYduTbLjY124SuKITji
+S10XEzr9Q3K/3CJbwKOxgeiekX6S7+7n2kr7rtTPKLL5+1X0wzES0BeyKeLkNf5+hxuzy5fp9Yi
ctY01qQL/W+2mmDn5k+WUTBlYdj3l0tDGGVNZRxPh7TpvUI+7p/7KNaP8wHsO7mh2XAuju9xeD8d
vy5QLQeyWfGtrGZeJZq73eP9hm6on+2D0snhYfY9uSK7w+3j8356P10f8QTAPs+KWcd/oV3FAm4z
FrOHkzSJsZUL9wlsRLxus2wamVbhXuUfv+4/2+8Tyg/jtCKVTaAcZ60U9ywfRl4vneJh9zw98n/7
P5K+y3+X+uX83Gn95/vfq4tGWySCHiySH+x9f6n7R6WMj+7iE1ljgjXstEa6Mi56Utmz/FT5PxfS
//ny+QBvIuIvSzk4D8kkJT/Pyn6Z/f6Q//ufL/fd1qUGc52XGrTD/yxUODgzYkPi4244s+v+8tcj
6bnfh9Mndiw1cYLS//or8nE6nveny+njdO0Djf7s8cuEUPoLoz/1vH1ErXbYfX5dLju8hCPaViQj
snRzoYcQb8R8OZORl/3XvMXbBF7bEqfWpL8ERvI/4nPnLe4O8bTTqY6OP9jV3RvQqmHWFCLJvRg8
nxiH/LxdfiYrdnr+x8HAxk0GCnGWlyT8wxGR/T18PeJxgQ1mIoDjOTpL1+TC/f68XeP3nffgNYKs
qb7b62v2uGmIFf/+eN6/DvHdwEup0vSt1Dw4Kln6G4pazRjF/G/36Cucroe//un0iB/2QLJL3EGX
Qgq61Pv57b0VWs9ymDWC5CLXhg02xEB10yf1svKVlEHvs6S/AEGZ90UkF0iI1VV8xA+7n8CpEB9M
pPBX9DuSdD/+huh1keg/3SBFzWwZMmxQcabckGXYAPw2XWIAflInrUMI82+mQHcI34hpjudxPR2e
vUOTTOnj/HZFd8bO75L+aPs7c/zruv84Hx698/J43JriEXTNf+nF9PV8ia5m1kctR0+Qw/UJTOjq
DjY441nElJsgDbJFRJV8Jwafdz7H0H51jR6fl/MTRiHG17CJjf46WHbeNJlAnK70jsGZzQ+OzkYZ
4g3CdLsf0WdZWfMX51imD2N2RoAbQc49iY/QoeEm/jMGyUw1ZJzMyfmagmC0NaqGZy7iM/RFgoaK
MkN1K00XrRLQc8Q6i/wXt1zgeT/vr28XsIggWGECMaNxXQCzjfjNlY6gIbexfZ/j76uqRZ4/ofF8
N2sVZcvLvCHCxVCw6UgoEdcWDCYAtJUv4+/+gAZsZX84fOW3aAencZ9sTTOUCN/1dt0K8lFHsb9S
DMrcgwD3r0+IARiCASQfSwa9dEIaYkSUZ/pjv1H30z46vh+nKa54fY2vdf473ikSe2cEXymw2GHf
2He9CnTSYudT8iaiCx03Jz93eDz6OC776ofo8Xxc+/9D/uPu1/n4fN/tP6MJOD12z9suhgzpV1eR
WTL3Kh+2SrZOJJdO2G7wpbi1NL+WntdKOlxY2VjL8GsZ8l6eea/ppnWdYFfqo79hpZBWEvitBPjC
QL4wKdIBueG/0PNrOfJeJn9mYy3Fr6W++16SX0uStXwOxxr7Bd7LQ+l6udwOf+5eb/cYPD+TJRv1
ATpPSc8gnacrzjMtEZ3XtFq/PNw3Ihs+QyeVb43uc7p9+7eGnIkNElucAb+WEpXzTIu9Xk6/X26/
80PDn3ef0cTs/haD2vPrX9yqMn9br4qlW8TY40Lp72gBPzgieYF8nEMAWLzJ6XrEb2HnRfpvM8Ui
UUu+XVur+AFBnV9l2O3Ft0h+AU1eI/+l/Ja3++3r88Hpu/5LxJYvyRkW/C10HaI3V6+i+Feh2+HX
2xFN9O3riZcgh5s8CDG4EOXXRB/plBAM+EGeCFqC7+ob05s0eEhDjqNfKF8GtRa4aR0gc2b5QrZY
JwYV52ir+53GK+ktZ95+JT/4a3khnY+tKsCGlxq6yWHW04sFFL+AwergeL6fcsoeC68k30EYAIvX
0PwCRB8k30w4V5d+cJeJmPSmlFkCfAY5jpQoEs7ULxAQDYk1ShbWpjYIHXmThHNlJduDSr+f+Yn0
h8f7/nj7xW1s704o4nmnL/rv4yrTw45/mCDG+cKsHzb8w7r5y55/2JW/7NcPB/5hEqjGLxgQm+Jh
xT8sy18264cF/zCJbuNLSLF+WPIPE8jB1L/Z8g+b4psnCHJ+WHT8w2F1zjmayjDLI0Wv6fJcj30m
K4kx/pwU5I9gfs4LzMLTr7m774/nr0e8CH9dTqxzllYZviuvMn9Xucqvc3Sqnu/302n3MyFn7CXv
36trr1h4to5dypnyE3tZ6Ve6ve7OH9FdfHBPixHOXzzOvwkTwaU3GUDTPgkzXbZyqcPl/Al3ZgDm
p0WGE5uOf3c/fZ72MYiNSuwUNdnxmB3s2292xQEITCvKnAJcrPjj836LnvUzfuGPtxgwR3v54/m+
v/7AWzdy1qYz9K2d4z/adm0x3RDo5P2bv5bcfrJ/McDZH95TVmwXo5LoajwO99tlBASqa2pyizK9
Iv5VtV4RfG0oX1GBS2n4S+nqgkv0ggZi331P7IXmd1wCsX/ePneX0+tzXHPSDfx6gVxow8jVuD38
Kt6Wq7iWdPI7bZGKYD+QF9GgtytlXrV7XX5gWF7rXlH8yIriR7/6D6gnfKkn1HLBGD/f7j8GlYOX
MtXNny9hXmrY/2Pa//yv4x/P1xzTDHlr/kaG2hb2q76c3s/xJ5qKnyiKMKvF8hS+PpINSf90xocR
qlqnXCzRh6JePUJV6GVbbq+3Z9yo99P9nKjNcDVR7lPrFtT9k/4WECUoGY0xWDd+n5yr6wqitIDT
4Br38H5+e/+WprFtC5aBsGgrTkeAOuVPI/vjtrg0vMJxqnivtQ17nP9+ootlfI2/jQq8Gau/gFOp
qi5K8aXn6zmlUvvlsIh+1/YD6erKF/N1tTOsDRVYVyoH0bIe/EtZ0d6thZ4Bm+XbSqt4L95vtqZq
P/ilAr+Uazu+xRHyPrTThawOYeNK9B+fKQN93z/PN/4Mdf12E10DbHRo+0ejjQbHpb6nE5gkRd5j
i/3a0twPWgsb6QAsDasWgHqWW6PEX7dN64m2YjieU7o36ece1YcKuvq919s1yVPvLiRwqec0MD6D
xH7Nj8/b45yAuh85Ev7xevu6/+g/lT8GW1VavIzwQmtlQ//ly4OUlVl/YFqi/4TounxFtd4DEPlP
ENAg1OoCTB+elOBJAsJMYHMmQ93Px/xE+sMuej8fvIGPSwxsC2kWQHp+us8G8SKYnjfkeZLgIs+z
u5keV/PjaTPEUIpSvLzhnh5o/P2P25wCrPw4/+5yy7sr9nFNHieJg+Ld+ac9eZpkC4qn+X1z5Gk9
5wiKp/kPt/V9O54fiQayy6ug58m+96hv9Xn+7QV5fsxyZ02z/zhl7dxfoMfh9tnDbr/rXG0xloP0
GpWkOB5/XZ/73/EKSfAssckmW7CBpXM/vZ5/54vLPtsRL4MewPi7woHfpSaP5DKOp8Nlf09YVdp7
/qep/U/pM9+Vn4y2i7w2TT6MnxytK/+7FC4gabvn6f5xvka38e0v/OKCWhciNtOegR8X1FMh12V6
cbDfHcVmu8qzATxLETxyyROf8vwaI/P/O4ls47u75e/LUs7QYYf670+HDWRU2IaMWvAstXKZJaDK
Z8GeCbLfPSfRDRUU/9dULd3Xdpg/5B/qD7mTu1ClGqUPGGtczUAm778hPhqjHLnrdpJ7Uk7Vx4tH
5R+iiw8q9idHCmJ6Tkwwz/C2aqd3UWFyD4tOqfnpxPnS9Gkhd2rn2IfFSAldfa2O/0928bct+/DA
j+ofdhOfdXhYmJ3ZCfZhHchHq4m0Pz6s48O9O1J9Whmy1cn3Duuf5n/bdOS3zVQrNz8td0Lybz7S
eE1RaTcdl+RFxI81XzXhUvGVebmUnfTgpaWIn6z4o3L1Lxbpe+Mba+5J58l1mFMV41aFnQdn7IQp
BGQ+pSyaIkl24GVTczcxP63QXRRiTLOOd0ouBNvy3yycnreasFnpwxI8bMFHp9us2V8OQpbHVHxy
0ls9RFWXLYGEWkc9wMuHDJq5yuNLe1YPTKV++YXTfVyfsgWnLBkBG39Zsg97+tZqqfps+mH+d+lW
F2ozb5eN0gUUyJiHr++1i7eC/2JrNNY+GukuHTyjNydjEfjf7owHxiLvdmf4p60rf9uutS7/20Zo
8ObIVnRBICVkdgGe1axGUh4rTC9t+suMDto7CSQs7Zfp+MvM7bWKP4xfWqpZX5NCPWqh+MustWQ2
OkYYLqoR/ncnBjkrH4LX2MHrhmgqXvN1C83nqYHSf+x3gvVifOe4742uV3z8zaJPDuSX5/ICqggk
EC7P6L5k0H/E7eLPSXZaAQOX9svxwqU8cp9c0ti8BlLzfUqMZqVXrgT/sGNPebAzAhgpIV2Hdjsk
DcT/NHWwzdrzir/d8TtmTVXCiCdz2J3PZ+TPSA285XgrowvH+6yaOn+Fmz95vIr/dmU75sx6beLB
vknlgcfaW2hgKZXjndZ8vaBG8R1/ObPLK8ANURJtmdmhi21Uh05LRwX8sjuD4Eh3ChtqpBm0NIyg
D2YHaIZodmzLyEvJq2HX0uEG2FrR+mnHe4J6vh+kpJOGokDMjAVnHTcsuhfA6VZMfBOlS6C9HiHh
tYUfpARgBUJ6ARSSRK6F15wuMWPkLYFfElomD0ShInjoT6Wbwd8K5euQAbHUHW+pO4RVJNsBTIfo
kMeu4XWUxoGTsjA4EvStV7Gk8FH3AlsbJDaXWQudkTsnBFohqf49CGYNDTeKbZsETfGbPlakMD8e
4usDey1t6R25lT6QIIR3Dsf/yOwIP/80oQvQhwEqFrgwfAqlHQilPRP/z04CwJYCByFqdK9IuJB8
O7U+Y36f/fJCL+VLAPHWSqBDyirfgyNW2L4jTMt0HA43R6PgaSGQd5AuNX+nrOdwPPcHOt6g0W2K
jreAwSiFLVdASzbsfMAgOmXQBzu415Y+bJfOc3xxh9xmiiGuwVobt5q/TlbYlvZr6E/jdOk5h8k3
+MPEEE3HBdjb4SwHU/f/L6oR8NPUIWICFql4P85jtEXDaCPUvcAuGjvgNTvWWkxvrEEuQigIjSfX
E8BLchEbditTyQuZchZI6GRnUXinZd3BmD0b9t1dWMDkpfMq4+XiRdzTDE5XwaqjVgBgtbU4okaK
zAkUk8Z7HcDDhTdnVwrYxo8Gbgk1k35q8EszTwCDUBzs0gfDErmRSjJ3cr7RGtxoU8rIOjJzfLzQ
6QaAkFw5kHoyxrPvPvpyHvhygfFjZ/AX3G3XMW5CtvQYRxVSFgc2Xu3erwFBUpnmW2UYox8HHGca
5iz89hgoRb19RG6R9djwCAR2a1W3G7PROQAl7DqQEE5pID4lYuaNTq+gxeqMgT/W+Q44vlkdAG+/
5fiC1xaa3qu1ZyQhJOkVD0k2wnAh9eKg/DqSBurAK5yZQA9rrVr+nJHA1rpW2k0agLaIRmIDZBq9
wjGhR5lo4ZoYKgg3qJXXFQEVHYLViM+fwyS5hq7545I2tJJ+AAYwtvXZQFCsbEHuIB4lD5P2dwT5
AFLScfhrSBYHp+BD05X0fCrJmOqz2V7wWJ4qrYwMSweO5zkE5Kn3EDmwbq5lloFMF1nsSp4Qpfok
wbiTRC/yhAm9BCwaSfOqfpn1F5BfIVu5Psvn+pTEkCuEhZRQ1UMmmS/+pCx97XWUkLUPwPRdx95D
lL/21EVfU3dkNKsHHMP6pfqoOH4dcPwWVkqs5RO4+RgNM1D7aNU1rwbwwUIHrJSQmAJkTENEAx97
m4DTqyhGsFpWD6tXQ8AZcUuHVa1yRmCvnMFWGSZ1hQaBu8WJTUHy7xlgMQXvkc/bywagj+6UosDj
inyYOVq8VDrq/dTAAsRqU8QPIKNp5rAXcSZNUCj1juEkv8zErhFPyQefhmQkczf8ej4UaN6lg+9X
GTrEqZMg/R4/HHtutiEqCKOWFhLUciIB+E+dbCSwQf56EfauDmwAL4G8OAdSKJmAxL56kAYBiB5m
VK2D7MvsEIGU2TL8XYcXfDLD+QZoKjvAcLOAkZPjOYRzh4DSGT1WDHLn3oO43WFrRXFuOT9LAQMe
pXYC5VECvpkkr5r/t8b2QeLdB+ZaTyRdlKSDwKeEcIPXrsWRsEBMlGCcGhWfF/BaCylVA28Az7Km
J6sTXF+gWpl3HhfqLDDwEuVSVxu9usuBj+OsxhwcmMNQ0m/B9IF4aqFaLAvAhQlS4rdXQHNLkoDp
u1OvvRtga7XEIYMGX+0lR1xquMyr41rfKcAV6Fh2x6h60aUKzqOo0MAsodGLCCusIKkXSOwTQJf0
RAVg7JxHzslk5QFVzcEynIR+WuAVSkyqQVQgiWnwCdQCPgJl/lerBqKzDMSluengggjrsEeIHGlF
uKAZCFxVXPFJziAQs6S3O+COqIYji31R73EafgASUM6unUHiQ4gg6gBIhuX4qiclMLY/vDUAUIxu
heOAu6BFWc2zjDwg50I4fLcRY03Luj+YcvAx3Mkfzft0JgB9mEnaIMD1Cr12wHV9nUYIWzLZkPiq
WgyCoEGBim2SvjQgbgXGfk3SDa6G161aSGBBVJNOBCjWNhj8tAEbbp3kPUos3WG5X271u+ClnUD5
vsk7Q8VMIrRKoUAuKJgWuQaosq7T1XiLigpIpYuAceSUyEd5fJTQyeAV4jrXN61Lj6YUFqtRWEc+
hx5AvOU094v3hIGPQTGvwhMe/EJEbwlsLnyuEwaGnngoZSXnSPZAxN+gbEvCAScoSp8A7IXs1QHD
I90G3htyiS3/8iP7AaUsHPI0uvjpIMdrDL7WsNLFSORO558Gl8O4KtGEgkd8Xtu32Dlpy4EbT1FK
4g9PVQiar0LQGNlF4Z4OKFbM6A84qy5gVWSg1QuMhM/XywEuVdfqexCAAqf1zrLqEwLbRV98XZme
3QwAKHcKaX8L0wdWdC3eBqiWVhIE6L6BMIYGvdHy2XHbgt/RdjnJ+JMCY2VFyZ5cGSwbryPA3oVE
VyqX24EkD/G+86hYQQlrfKTTKlB0fMpRi1a6ko9JbaNSDVk5bUWjDDVeF0Da9a32I6COSbRYuwIh
bOTF89DqULBTNHZ9jWm9NyhjFa5rxVcgOMPOVCYhAJ/ZtrrF8LB3ULpZ/g+Omr2Ok6kAQaWGQaXB
gZ02DRxXwCL+dqkdwDzY/N+UgeP3m9BNcovIlTfCN/YpnM86OxCU04dmHb93gKYckGlNjhBIM2uP
HQpko5zqGpkVQOxeoJELm65hvZgULSWoBd+7IDDxTU/gEhbyT33jh3n16X27IAhAkboDNzJTEUCK
ga04mxM7gMIVtlRmg9C/040P5787sF0XJm8ZaDEhW4ZWAjKUhy0Isg4MQAc2E568QxOCBZ2nfqQE
YNpyVIrvmnR4EKLgdhUeOr0WN05IhBtQ/RU6pMs0ZHIpGkPX6g+QlGsaTlY7G1m+WYXkar8GlaL+
eEFJZq2aTYJAFYDtWlmGF1imqBr9IhCNLTjUWqkvhgL2wzY7dIALZhtYf7zcQCf5eqFiX3DHE4/J
rS7TSWMIjVyboGQLLgfBZBBYDTvIglMMC24ymDwrgCZVXE1980n5AnmtN74BxaSULu2Wjd2yGgI4
u9XNfCVITbBuO8ESgSYKHYYiDfpxpVts7WhSAVRucJCGlLeSGpO9ES1VMXV+A7MUcMikalVMAEeS
ttrR00xxileDG8kqkbmeCCAeXlb1/tinkc8WkoQfVSM9fQwaKucsam/RSyZQBN4xrKQMeiK0hLSH
LIlnk4HkuY3KwKIJgTJmUkNwW8J0m5ctemK0gMDpNriLJzRvHrZAGTLpKI2uQHvJrMGAtVjircuG
ia6VxbedY1Juk/sLzKt2uL3lkG0EGAJsrtmDHwBudvzn95EpAKogfUHi4qKiA0Gdk+VAlSB122tt
qDSqtfHBMyc2uRcAIwsdspe5QBHYS9PBbpHomnQB9RzLXflAqlOLFviRafKgtN16AERY6IMKytMs
SnWmfjsglyNdC0vowK5Z3UrHePC0bhQ4GoQDG4wI5OgSINjKtroYtAhG3aJb27rFE/AqQ7OaJIC+
FRrnkmAaqxOAxyZR6aDXkHrhR3UO/GHY7jNzAoCPJUVL2PgUcQgOVwHD3hEw5TAIC5IU3WjvLPg7
xjuHJKwHm6ZNM7kNUF1at7Tqzpcp4Dx93MpW0SWoh5P1+jCiGkABTNdqocMDbj6YZmdq0AVMq1Z5
GiCeKK4TzhRDIBp2s8ezBhQ6NqM/57ZBlpjS1osaeSKioEheQyKDxR296L32q1Y2DhcsqUZPblQD
Y5UFZSy5Vp3H6mi3+HU9YO5DBtIlwjWKOhSflVdb+CqgC4SxXPWOaBAH7aJxm14RB8FmO41g8OSe
gZab1EspINmxWh7kWiCzaI4hALlVdLhCF1bF+dDo5Ijcaa01e1aDRkFMirp/lZnICFawAntWkB20
hHL92iUEen/Rbmj9MGqUJDqM/6B2yYrpUd1fSfDSvgu4naECwwyE9rrZzxAEHaKVppYgP9O5BQot
q6oEaRLd6gOJutH4Dl8Mg9obGGnZWr6+0T6CgrrGRBZQjyc573tWBh2gm3swkgXcq6KEo65FQM8P
bTwG/Q0KVlRocZR435f8cPYC11gCalXSGYB/97gZKJESukVxcoD3QlDoerUQ36Yp4B4HBmLnOigm
Czj9ME8fkRyQMKMvwPc1qIgDM6s6dmTQnHwEUQo7gcKl90ZeM4lo160VsgOICKGKwckmPBlxOCwT
Hc2ZIbDXrtHkXsA+n0ox1QAWfbAjB5yiSu3WFFbEYUX0IlBJrFq6R6GZXx5072oMcnEyYF9EQM6d
4oLQPFHFQE9ZYuwXla45mltZi0biOAN8RvNpfINNjPCu4T/BXKdiEoY5bYfGo+GaB4vHKgmDiQOh
BWgVzm7dCwEsZyNsoxg28Eltw6H00+Qcns/Uoe4mOCDqgmwnpUFulz7ulv3WFMpWcuFIX8LE99k1
oimXAJTpdBVfyHIJcFYvA3AfJARUvPH4Cnuk3a1xDaIb71X7oJodXIBLvkyDrCM/cJNIRXxmRK5p
KaCc3nvMrUYl6Y61TNmfdyiVLTvRokdrPiEtGhVyKLkpPaob6KMnkCpzoUG4suASN8F0yIf0jd5w
CjIancO2ETX8dsGB+Cl3Q+GTH53Cpb6wzy2c39eHIoA4SzqSFJOFqZkBVX2dAS0bFezkVwx6qBWt
IhBfE+wqXWljV1EnIL6ycw8G9qlC5bKyg2FnBgwBIt21qPCe70RlSyLQGlMBIWvnJcbOEPPUeY8N
nUZhumwyhflcbPC2VTrAB47FML1aKhRGQqrzII7KtG6+4oFtmDMdM//JOrS6a0rUHzPwZdUD3xXV
N/MllGOHIvC0NLhNEIZFrGrV14FLiQeoWGg3bNc1HF4RwM0ykh+0jTpZSdviEIGgxjV6FaSSf5Db
WlYw+dUcPOCYqK7ZMRfUoQuLjLTFzUzZfPdkNICBX9aNVhQRn1fzjTI5CSsOjG4AuwYAu026LO/w
FwT2ZetqPsGuGhxbOBlIk0ZlPWRQfCyUTNmJ5rxADTIHogFwokHbRqmW3wvihDaSDXxPpcOG3nIo
wx8WbWAr/Qd5T0y3QjOQKBKmMboah5TsWOI0uwrBqw4pAreB/6lbFY0SvHfnJJioYdFYtSIRWSUb
8T6zgwUWGg54kEKDHsXZZABKnObHl479O1DD3NBmGiFEW+BbjVBLo+qZrcE881GZbHQAVDCx5XwT
vQNxlUDNhPrsFEAsHDskbOwlBEYsLiecLRt9edT6VThIcrIQ/eNLj8b8JXAeg2rQqQ1fAEQZYam7
QlfvmAjOi20SPBE2AVWIwo+hwjOCZUASNUaGeijuuC93fE3gA2zszuuWqUWXUra66gCYx7QCM6HB
V3e2kX21vDel6nVPcujSy9eWWNzX0sEaRgvHEc1MIZC7baecLTB2ks2gIGOl2mWf4JgMx+mazTNI
kjuD62whMcupFmwAAnAlGr4zgqakA9H7CE0B51l3rcJm0JnSGrYxxVj7CRwypVoMbijiXraSGryl
xuMxdKN9kg8tSy1Re7AONdAWoGOMpNeqp0Gv2rYA4jhRY2v+dB8V8hATZp13UHcXjfvW9iqjaiBL
17nWXDaU+jb1sX90eirveFuPXRuH2uQEAQB+hXixHQbocQW5Z9t293VeaMh4h/El2NFYdQpEKXi8
eceOuy6iWVDFuaRer7PXfIjEtZUcGbmAzass5jwKOI9JmVaPRFBYoE2rDwhIPrF3am6jDBrfde2c
MLIaXWOAKRxBraATmRvVAuc3WFTCiRvQWSuZCy1yQR9QI6gyrU+PAriETlVaM+EkzlEKx/32hNt2
wN4E1D8kwIyb62TLBwXwFm5mnJr7BDBag2vYOjMHwFB33Wy3BZoNBJBWMJh+HcNw0WLnG/DLUuAt
87gwTGvYqwCwngwTSM/7Be7zsoG/qofSgLrtbDNbyEfyQaMkp4QeFZ+PmWm5oE2NVq0Ii9cKeNBP
X8bHZzldq5Jc8Pq7mHOhqxQmUAEYOB90lnDQtVpyoKBpdzj3RI2ufed80gAskhpX3qD+tkqiYqPM
UEGJ9K7lYQDSg0SpkawIAYOKtISv1IV5zGYMHWAT4hlzQmikEgJ8a8dQY0ZqHu9169CYk8YzU2S3
RC7WM4b4PKGxLTu5RxGOou3J10Fhn9gF6tMYcJ/zvQDcASnxaAxE8PXK4gx8u4SbOKIi1ZKLrlKy
BJKsXqEJc/PkG5Dm8LIVMwEvp0OdyqKko6SpDXCAtobVeFKYLe3ZJZrs1wgWYTNAGTo+y8wXRC8l
pkKfBT8pN817ADQwsSCvyTXMB/j/QjQq72UHEFUrmzl9XsUQcJOBfjxoHWMEnw/rUH+kRtNEKN1W
tCavAURVNooWsCvMD9OeABjU78a1hkrxGiksO7+sE+ugEEcpvN8O5pRElfI801F5Njyk0YOC+VU7
qHVJHZrRGXyrsRDf7jAExNyAMJknwEtZpzXiRQBhk6FV1wsYG66cxyHDgu4GueEd182zf2uIC0pU
xtPzC0FL5BaxUWige4TG41ARPzA42WTYANxZQ2ODgUGtfYsZBDAbgheVBZtzD1GAtluzodMYdIs6
27RUoH8HaTq7rnPrjTSwkp0Agz6zuBggLlK3OjPvIYYddIsUCjzpEOC2IZ1ibavnCeg+JTvbQLBB
bzdiNMqp2lNMDcJiz8PfvRYF5CIjWwwI1LupuV9o4HswLfCEj/UKwnNh7YYhOcAfEuhaS8yRLAqx
mOQ4SLAY3YJOwLUKqms1zwbdzWQzdQi8Kb0Y+r4eVQMyDUJu6NOOG6ZI0aowbHTT08vWbKL0ngHb
G3aetY0sixSANJ2HXQCbrTvciwgOCNKBzS2N+R3ECjANxwy0hLM4UQyLfrWTreJdlFhi+ySk18aB
vJAIKxO4HZxQGkAYuRcsmoIAO//hie9WqoZjx4/dCUqA7cJ96Ttqo9dT17tGe/diLqmvkloB4Vur
FtoDLF7b7Djw2coC/nCKh4+IQQyzLI0Zy05j4ASOSFLMyIncugmRnq0EbZ17awkkmz5NhIRUV4IG
NaI5fAakdUzXaiQKXBOzTK3LFR/Lg8ZkXOOnWUT4Rv6UACcqqXFYD+Vsq7Ez8CKXRfHrHQP95zrX
CrQAeitsA3u3cITALGOJ4WS6Fd4C6pJgXqcx6tcpzRWQaZSppZOkC9ry4DV3sKzdgLnh2UqBEm/V
NacEgZ461OWuduThEWNncM0wmlRrGK7J4LrxdbdStLIi4DboFj9QgMqv5oA0fqRw6BxmWMOZcMq1
RkoCT0II5OkG7IYE306fAVDNh2YOny+DMgwgRzJvKHdkHB7xCLtGS8uR2nNTHw2b+ohm+AwgA9q1
uQBA597HwD52CnQyypxKEJh4DpPL3wyJY7ZrAksA1BKhNcMJeI2By/xM5Y3gSjMzxmdPJvDAPNKb
qdQDxBWdqd5J6kvwufQl6azSUhaoXaGabY+BqWlO5eWDdR9kqwskuBfCCWa7p3meIO41ttmAEiBa
S+dt3f8SMNK1wB4r6iZiPAq6eyYpsBqq5TYC7oEOiJwtYatmL1FLDgmneXrLoWEh/XRjbKtozehC
ReFO4ZEUcH6ytK2+m4AVqU2jIAkaeEwsn3gWoDuZQ2Za4E2XHeonomH6qlvWRlZUAnCarceziQzs
90XRhjVU4TeULNOxSinbGqVg9QYgj77sG7geVICaaHXMQDmdL9gBdXeUrdRux5eqLGM6u5rrADAa
2bIehk/eS7VlLCiCiruWkAOUplvUxVdCLCDmjpv0W+LcgBzT+VY3d4R7LJV5ZfQLwMasasgLGMbR
da3GZ8CFlx7zCFAeyhvboOEGPgtlO1z9gSynkx4zxSGPVgQcUaOBeKaz2PlH2cbCq6xB3Xj0mEe/
nGJyQPTWjbG5FnlISjBgTS4B5tEapq/JWG4Cmt4bpkq7sLbIbhi/cMHXhYbAq+tEdTxmP0mUf21j
Nk03AKQL4Zr1a2BYY8e5GBPVBFDTHRwPr2GloLIe09VSe08g2c3yYQAiuFbfHqS1pTU4tQu1kGmk
66IzDPoBEAc+ZUbmxHBGAuDQWeO3TEgD1FdrGvwYD9rIt6fKAX9St5oBgqJnLxpIF1+sEpqtb/gZ
foEE5CXtYewvB/tP+019jkAjg06CYb22kR/ofIs2oQH/jOijsv/i1IUGmY1F4OGWbCI+gbWQT9Wt
fH6UsDOiOQkPYF2SN5V9/h70MmAtwNTPD5RgCIUHK0O2MXlrWuuSEyp85bDySIMFWCHjZNcaDMb/
cHAtQBFtlMdIE+QqEB5Rcor0WgE5C0reWplVw1MGIBNnmB0LuTzemMaoKh56KQYs6hpexD9qBG7B
hZrEydZgSdhZRPs2nglARWsY0kDyXVGyUHadaI77Bv4QOyt3Em/UBNsg0ETjknxpHS63Q46vDl3L
WoCeOWEZJ6yCWMtjHrLpF3h0LRG10OKxyt1i8Mi63KHj3QqHdHZPdEaVFoufVqsCKJDEYhsszYRI
wHs1uA4JwcdC+mbBsgGHJevzfSf+KQgoJaIcCBzUOdFwo0BKphOtSZQoLtOeN3ZDe3jQqyJ4nGJA
WW0vkda3jSHOFn80bNugRAcGOoYG0C9a7aANSERJxURHpKEUavXrW2xf1KetYwbETkVfqBBWcgNi
J90N4MugcSmmgVMbBJ4I6WFjZtmIraJpAHQzgyD6TJMDwJY12KlC05tXPX/D2tIC5NTaVj6+A/Bn
wKcFJy8sG1bQ5nQ8qUe5ZkM8wB9Yzm9aO4Fgq0SrHz7PGw0K0V17bAnIhyjj/rLPuYTDkLRv9ZkE
KgxOopyHISHnoCOZr5BTOys8DzQ1daJR0K/43hydbgFyIMcrfWOoCFREyyYXa0WEaq+cAV3tJeoV
7E23qeEkmgQnPO5JJRBrzoXW74MGHb6DeB5qyW8dRh1QQsPCoW55fgz4YoprrTqeZQ4XYPcE1aIh
gBaG2qNih/zTwBn0oTmWHKTEbbPvDX9UgXNsuj8AiGfchk4JKK1ryLVK8IlZD8ZFM64lxLUCJF44
YRtpVcHH4cE3K3cdIO2SnFlZWDhHOaDdAdvPei4iAmNF1LYzA7Ry38gKRyEHIYuADS9tq7Vph8ZO
ZO4x8v5Vs30ZCJeEx9ld3+AwGKtweQ3S4pp68IbKzKQbQL02LZCpUjeEB3MgtMPV3lEtgXyp5OjP
IyUMMf9kC+1CU2wsgsyF4I2A7KTDWW2DKIdmCSO7Oh4LCHzG4akwGpZqKzSCx+LWVqJh/jycG2lM
E8ABWaHG4CHYSTLeEFig7mBpgdV8EXCvVB0coNEga+I+/7RtBtPJAaglp9AIIEzhUyTTUu9az083
CKLZkpx3OBiflOQbeOa2ADrhh97Bue5aYuuHNkv7gBiLrlEGa7i4XA0N71FPqqVsV7o7ASe+40oD
ZrungN3TrTwLIGpqGi1Wx4FJiQaOKzxAu7e5gFVlmzVwaFa6l6BKoGckAHdD++b0JQCSdq4xmIGv
JAkd18t31maAV4AvScjaDI9blooBKyeAAxA5RNeYeQrrd0j+odKaUUM9rmg34pVzmqNOkPnoRIvj
Cn7ZuVbLOKAdHGp3J9GQBG8UdnRgtxDNNoaccAmwX+xUnwFNl7ixuewU4EQM2Q+g1kKrHlCAfqud
bI+1AKG6KMnjaj2eBzR+CrLDfYFhbzC99KnDunqJJyI61fCpHfCpLe7BhopS7HKMSFjlTsB4B9OM
1ju+9tNpVHRqojsMhbSzuOBVQGquCc2+CABZV6E1vEqgrsChOckOhNpwPMSIUmOYunVqEmQJOy+2
4BxnWL+leQWV9QtSysGjXhytspwF/92IVYsaNFOkBQTymQlSmEKtJ/HL+WeXTe31qiQH3e9QnaE6
ayXUZZHmy1ZjAHrqJ98AFLYe6cUckL60Y2pBxw1zfCDj8KxHuF+EW5IPSjFJBUD+rE9Gzs1HJGo+
gvoV4BC98wHRi1ME5UAABRnVAsb3LnRbnA00qNwC2v8Q4oOiSsISLvtLjIYTsBKlangqfBgRRNcC
RUDjU62aKBiioTfzEQGAjqY5eFGiMSxd0+LzdErrsW8HkxLKmOb8a56H7lq5J1CGai2esYliPqMs
m1QYPHnABfKNGdY9ER111eT66c9NF0DD7K7ZwE8B7K7TLUFTIJ3SwVFDHjY/sEuex5re0vGpdAKs
0CqP3vKAwhbnNc5joIZXWosm6Me/MvbJ8sUCvC/jqinh8YMN/8GNTkaoRaOkFTHV6VkC5Iw6wius
8K4cniEomxNBQKItdAJrMdQuS0nbMDkSdHvonG8wRCSIOzoUYw5FMeA6B8QO7FUJQFK6DjdOQLVq
tIcU010YdbD2DWvJZ+iKNFk1ULFwx1SL+89zWzoNTrp3ngGLXlumjmcW8A5MKbbNSZWAzd6aooUL
C63GiDoaPUOn6mVrJ2gRKK+3jQU9cnO8APJbnWk4RPzgrmKmna3INSKPKjqXU1Xy1sk3AN4UnYq0
nuCioQJVkruQU8oFhOBSNkmNAH5gu42RIe1AOrXEsaFHvQ4ZTmQfSzvUY5aOVKrnAwVPRw9etSAX
wOXRukHH4as3XUPvwraSijZFKgz8cJUhPufglJwk3cDIetViN4NJk10nG2VXoDubRYFdJigA3B52
8ZS422HRbXXFJ0QRihCQEuE2jEQiWE2uXo1r1kf7oOH0ogXaoJlMEoSGORkJeIm2NROPZ5yF5czz
dVcLIOMSdYfrUx2An+1b6BrIBMoAftlAYnhHvZoa/AqLm1Unq3nnDI51DYK1M76VNUb8btXKGvMp
Zx86oBMEbi8ujMOhLOwn7x0qeDCwUE7ToR5FMfhclQMSebKVyLO856wUE4FP2WLgmxBuQcUhy/AY
YCZIFIbnO4l6tImG6eBrbonJSriBFvXRcgh7bvYFteBi0qh2laCXeI5T0Ym53i1tj1AuIzBQhRSw
JC0jsydb6U8HZNzpVlNjULugUP+XvlIFxBsEhMgzj6UNqwousOeiiQIDzmsnmdZbM+QDeIwLeylX
dAyQBQv80Eo4faVoklbjHCElqm3dm6R5LD7Co2SlrtLhHDoXrtFkDFUXGmVa7YEQMid8a9464Ap1
nhuhh7SYql+nOcYBDf8Dky2crQ3ILEjPFPvO7HsAyrUgIki3kb4xUhTdRA/7jCdOFuDBdRrrn9Cy
Gb5zDYPFV7aE5twrnr0YRKuzjwCuRQcFO7MY0DQNzmFXOUBD0ANXuDr1OQfJQthP1MJ6W0tVvat2
7U7xEcj5Ec5GIp9ouYqHUSjuuarZ+WYCwoXk8l8zCgq0fjCYwo1NLOwabnFSnP3lKZDnedQG9pb3
uKjRBt0aAogqeRZNylbls+2uM51tdbMGkwDVYtakXfXhQwOCA8YwUMvDYqjn6rXx7FYhPMQFJeoB
RWxeCjFtR0dbgNlPsoWTg14gzjf0tgTtPDpnG5M1kRK0bF52NLRAGSiOXDruM2hColCFQe61hXrs
dBhqcdBG+y1tciVq6eYY96REuIAGF61R0KDOzIMxrAN1GySivG3Yas93PTAClRV6GFVa22wR1PEQ
guMSjvM3A7PjfZHj1euGpHBKRtcqzQCkC9uYiYwiUmtR3wWBL6ewHOTeX040Qk8qh10UhHsLbWBT
D4GjcIfGc8x1Eai9hlz2HF9XYvLp6QCLy7MTzXdUbs2CgaRx6U3LUwApQOUwVxG1bVDKIIWWO6kg
8yVanbeBM6sb4RaepueN5CZRpaQSTwLbMqEd4R4WMB3jXjeKKjqHd0ygLsPsQOvZZoN2Aiq0+BN7
hBb5MjJXcsV/AziVCjh3CQf5aReaGUiQbNCCya9Pw8sBL7XjygrnUhJgcknAV+UUoJStXVSxVKZc
8iC0btHI+N6NAbfJyEAsMAHO8E28sr2GDZKdbTS157skGc0c89STDzW7VHgcKQqVrJLIZloYKhm8
22nuN3g4GIxGILfMhPpwzX5KBmDYONM12kXyNehFtautJzdAUl5JzBIPkCPuEfzrcAKOOMAlz2YK
1HjJDHZD12/Yociw1M651CgAKpcB/Sny8B40I9hgvF7A2cbKMWjwhKCAi8X0Cpqpc56v/mhOMwXw
hVV8zAH7X8uCNlK/kYCkE1olWfycuCAlTsjDwWdKG2a0fE/+tTyjqdmFClg42UQ/eNgltMofeHIP
ZZVXc6QOCKULqsFYDrz2s016N+gU0JFUTulNNGYuwsb/fXsavmTC4uY0CGjXuhk/A0fCmubAAT4v
EXzTAeI/uUMdP9yGDD6xNBk7VWvYGFA96nVY41XkE29eNvsKg+hAon4IAne9EqSOdl1gkl1VvgBY
OdyVDXExFYsZTOA+L9qUFiNWhAOHsSFrfLU/ZX9MKD9KISm1Gs3gYDbXKt1izYLkaseGvjNzCtDJ
FRf5uj8UHnuiPbBrroHom0ZvLb45lg+hNd4bGONOtfo6oqDTNwq+opMMYMvmR/Nj4INp1B9BroH2
jrnJeZKoaoyYVAzRbPCbUNt+3R62ArY7GBT8pbIUkOrCeToPK/us41hqpj2F1HvFpN7nnCpIwoS6
bR4DOJ6G3uy6j6bcsk3E5g8GZgYOxLSQ/NOFgBpzONijzyqOWDIl/VF1soCJNtTwVKqSHKwrES/4
ZrmtnyTIOLkWDd7xtlmjUgd4Ws415o+G1uBVLSzGZCDVwsgWEwhkKB0sfbLQRBtaUmMXpeh9tznQ
e8aZ1nEDyqt2iEmu8DxJEfimVsO9Bt26vWtwiAIfjVmu0mLO8AF6snfttqEoxReq3liScL3reCqh
QrCGxpOqFDXRvj4lCwDxRLRzdLGutwWiTTveuN5t/Z/p8cfhfrtcXvb3R35s+sfdy9fzebs+qiu6
7PsP4ZIftqKXm5f943zYTcvwj4/uvx9KovqdvD/7//p4/rl7v93Pf79dn/tLdZVEv5Vy4AXocpn0
+M/T/Xk+4IfF9DBRFunh/cvjdvl6nsDDQ4YgPzz4asWG7g73/eN9d7vu7qfX+PQ72Eo5b+UcCt3i
F7xebr92ZMnbx8v5un+e4closrWu57X/9/LVPs6Px+7j9vU4fcRf2R3Pj/3L5XQEb+inJXPnWTPE
if2Sp5+n63N3fr3vP06762144fP1jV9w5Ab4QuG9n4/H03VcabGVEnzxvIGZHycW33u+np/n/WX3
eXuc0+aBD7Xz3s1TieeVPk/3Q/rYz/3xGD+wfzPwmRovd9nf30676aTvp8Nzf327nMALksPVyeIN
Mtuf4JabN+bFRsHVi3eK1y5+4R7vk63e/lmbJLkfdzu+1iHe47goWM/V5IFKfl6gtd9G4P0+3vdv
u+f718fL7tf5+T7sf/PtxgAn36ikaRbLPk6XeHK3O7iUdhas3LAheNUWeXCI8xuRXueTIB2+Hs/b
xzeWszVtvFrlmYRsdzhdLkCxhy1LPeINOsfzvH09H+fjafh+8IIdOQGVFRs5g120G1Fudy/PeKJ/
nZDw+9rbNdTY7tf76QQ+2ZJFc64qFSrT0yX6455/5ZHeM347eFFdE7nL+fF8uf3+vkkw02o5paSW
d/7XNX3n/XQ9nu6nprjY+Zql99R2qW/7PTxczoc/d8fb6RG387l7uXzdN9y1+VWJZ3a43a/xveJ/
fP57/Puv8/UYxTx++OF5/gnkRpGjSTpG2OXd/dzfk1o57Z9RT2WlEI8+/ssN2sYSuz37D/3S+aYM
+3DvzWzrDhKTOAfY5YtGvfq5P5yff4GXIrrK9076UluNf+pXvJ/6q9j6WEN2Mgkl9CnA+QbiSsj0
l6UBervvj+ctyl6XNkj2Hlh8g3tc7Pz5nHza+Ocsgfev6+416ol4LG8f6RrW/bu82GC6tS5SY2nx
3eP5VzzcfdQ7+XzRKm5ehXgm/Sr9e+2/judbvCSHrw/uXgwvFKal8lCPXj7O17jWs3+lR1RT+Jvk
/E0zMDpcpmio7/e0OfF/5+j+9hfidr8cmUBq+EI3f+HcSoLs0/P22e9T/IXLX2glM61EJr0We7Vl
ywdtnF/ITR2c6DKfl6+383XLng9Et7RWdg2jIzwKa1ooydM+bX68SOiN7LztknpcZI2oedEK89YQ
s0W/afsuzzKQNI5ZL3X+2EenaMvudPNOz9332uIk0Zq+dWF+Rn9h04UZELB8YWZi/8f5d3JI948T
uTRo6+dVsrvc26Px53fR88t/3//cn3ulv0UgZrEiuOJ8Z/I7Rev2c385H/dcGNp/pC2v9OA4nz8+
L1s/0JUvMwSy+8Ph9HicX86XaG7yk6MPfjqee0fwkV8y2eXn6fdz93aKf4xv+9jtf8c3/0pO1PP8
GoNwNpboEiqdfz5dDJJ5GDzNGIR/XHfvp310Sx69dT7sP3lnpxuM3rAgiW/29/M+Ol0v0Xc9HV/+
yjHXPUpSfNnp/8ItOcDAaUXhJ1/s/XT5zB/OvklHPm2+H/n3Bsfw6/PYb9jlEl8lRpbHPWeVuv6A
x/XmuxE3KV6xX5xTnra4m3dkzvHm9zi8nw5/Jo8y/4GBANLj8w4k29trwR7h2B9v2bxGL/71Hn38
6+kXvp3pjeb1Eo40KKGPfTzfj/ifnUd9/3zezy9fzxN/2sqSPcm4qxx2pRRW9k3MvDczopc8kNuA
ge2e52eURSgho9eVX2NOKvdSHE/2eb/9lbQO69BkwXXzJhMP6+cbkVv2YVc9of4F8r15vd2eSb/E
QDVen93+JbmkL7cju6TsyNbMcGUfI8Sr+XV9Djef3xVfXkU1C158s110+JK5glhj13s7zCrXaPCy
0O2/nu+3O7eC7spD7leIsVh0WZ8JAohucIJ14vd83s682I7Oa2/FJweqN5gf+89+p6P9OyckJ2qW
075x5mLeY6GmM08KL8VjveSdr4fLV9JUMRb9k78JnSrFx0/i83a/fX1Oliq/Y16ZFyZbLhWIMD0O
t88TLzNd7R5Eofu6n7KsvJ5P0QPoP+zrzL/BrHIJvpHPPEkNuwt6fvOEqpq68s9bsEHhqvl0kggN
dbf76+36V4p0hng5Bra3GOdGjzIpnfP1K9u7aKiiQX/g8y9N1aDQU5APFN58G5Jed9Revp+jAb4f
3nk1EeZ9TSrLkn19xF05vMMLbWYRI45seiKLeg+DRT2X3YH7/vrGC4pQNbPPW2lsoFXNQH/eb2/p
inNoaNZQ834Q9ym/Rg8tzFKCT3LW3TJBtHIIFAYzNLlMg1+TjO0mAXHzujnp0+/4YR9dw0eW4GQn
sz6/HvPNYCVtXog4w/k2JjduUA7c00HVXiPeg130X/YEF5xudmvFEeDKZ2YmzUdWOp4fn5f9X/3t
4o2mnDfeTW+WrtD5efpo6DkiN1SdXz+/xihof+G/gLpjOSeSn/55jk5z/Ibh+3lnTorSrMmqwAyO
4vH8kxURWwj/gHn3T19vr+d7ggyPQCWY6kHkK3wbvQfqtJ6vCbLlb3ZXvo8g75NAopw2oY59w0QG
Vfu+c7LW1/0lG8Uo/Ydo/h+SPyviJqrcg6JPV1IPL9/GPp45f7yho7fzliWnTXaOuCQx8IU3UYvS
U5uMa/QbTr8nuUnew24MwoAM+67UYK7i3COdPns0OZ/UK8BL1N1fWf5HD5zfWc8q8kFeXveXGGzH
0P/PtL27x9fL834CLv38Rgk4sW61YMONrrlBx3Pc1EeKG0d3aov991Ud9bm/79/u+8/3IYd0vp5e
ovkDrpmuuo3X2+H9fDlGJ6KpLMZ8z3gJ9JznTu9wvo43YJNR8dRYTSIzyHxU5m8ZQ9r9eo8q9PG5
P/CHL+aV0p2wpfs6xIevya/uj453XsmlmAGupTvweO7/Gj6YdQU0c7sGswJwA6IH04EJM8aC194Q
JE8vvcPpk3cnTC3Svl37TMh7NNKX0x2csi8vI/HOspp7fH1+3hJmn0MXdgtsbS/zNk5BAFxAyPlY
M064uoKs8l/YkmV81OMd7fRKli1dqOwhETRYxR4R4lVIV1MCPT4a/YpoZK8pQEt68WN//zPZoH3U
lviNgq8Je5Sp8+fj/MBKduF2D27m7z4ETe5b2tveGrFGR5L9yE4vUbUp6/u88XJZQxaup7d9cnF3
k+2ZUnWn35+3Rwvz0NU7m7Yh2ZwxuF86NHCLJTl0QigbzHS/W/sDghOtruk2CkTuknOYoEpwD4n8
p/YRgcBdx1NUBB/nnC+d4tGUIb7225XfEkFfoebOnD4+n38NPmc7QA+yJt40imvAeUaWespVMbPd
vpfqFNyxnzMbphRiWKpvN8B3XpB4PTnRQ0FFMkbRb7jE4C0qzuet4cgTn4EAPIUo3k+96uyDVCBB
kmAyS7wphkopAZ2pLdfHiT1kqsjnQ/68fX59FqgiDzTZmhlL//Uu/2XU41HvnN+utzt/1KKrXv7B
qDyeOXIc4yXWpLha4D++xPv+kT+NFdeu9jH5x9NtgqchCPieqAHGLYHNMaaYL+P99osPu7oqJjlE
1EnkssSNV4GNKCi0mdzUsftnHzy+npOm2+CKCTnfxBTrC7NOEuSvbIaTwO+JHu/tnhHJGHdFh+7K
U3iy8ZQ1TCR/Rt7n7CFGlzMadNbD5GGVx+3O40uiFLOBIhUdsPR7MbBuiXpX+9kEgWbNyqONrlQf
cgBHUlD4ebntj+OlfUSFdn3LyS1W2HXpO/UuUCbtpGxcf9fYYyR5BHKMjHSyi8zakDAF+pAwPhnv
yJBLi+LBq2ZRTSgs4J3dIFlX4E5KUTWngxN4jCuB8NJ0pZMhB3s+5qobEkHx4MQ46X/6GE81eQPR
RP3uMdzby9/y/YBhk+d0sonW5V+/zvFFNgTMnakJ2yLKGHimvENHnGMzkRz6C3Y5J1Clz8Ae3hEK
q0PtVUboqAEb2TJzYRYRGysN1V2cCKyTgCY39PV2+Hqg7B2J2UiaYPDAsre3v8yIypAHi2vy4uZq
Oa9eG58ufODn2MBtUOLZ2c7e9S4jhDmtzt+YGl6Ql4Nc7a7/+fFN8tEMVimhFEV+AkR/i5svemuf
L2oyAAOrbUhrpmx/Dp7YM1LVLHjGK3JYm27NlFLpcynwHpIYM+spklQcQUv20Vn4MsWoTEhuyaAQ
x4ykX2bchPrw8aP6f4JwYDNFyidGq5okP3vrswLwh2UtUlqpEPbHqyH2mPFueXVEl+baFGnVkF1O
7MFjmUmbbM0Wh4okOkho07tlz78+TzOKvVuBlPyV0OWinlrUj5dbNO+8vq+53xXfosfZf0NkhmL1
OdMliYJ63t7e4qp0ORhk0GT2rOue0RI9Xm/3j3gKjRyOpGHXgmozGkRW+uYvSTp3yEdlcU9bGk/r
dPyn+E//nD0u/rQJWJyIP9YTcsvkL8FbRFPwJD76ikFnPKVkk+A9sCUKYgxVuL022z8SRxNdB9mV
dozI1/n6frqfB8xvtmrsmdhaJDwhcIJ390SZue8fzIBd9vpHvyZdnAHJ2XAdpewYc59zeyTdtwm4
trzOyfJ+/wIHPZZsZZlTtVByCiH5JVTNHf1ImFA749mVxkcvjA+v50kSeJ5JOpXEZBfvWJDttuWW
Zfk+gVzBHgDkvQxCKRMmm2EjFENv42WD9z6h4pLdIkK1wykcSYTDAwq+xJUHNOL0FgOB3ZSRSdm3
IZXL39pQy3QWblq8tbfP/Vsmv0aFMi7Pv1wtG5d5cZBoRfAZcnnzmyycYegRVIPPeFGfyR5kshWv
RMtnR8QrI7Z96m/AguMLZDvMH5ClFjP/C0nVYSbFsqJBaA4iXfPlFe+B1mdKIGxTYJ2upXSmyARl
5oOrXfgER2xLw7iqf/cZzUnc0eOup1JB4yQoojJXMRwejwnhagasXtZ8H0qe6zPn2fkmdJnECOXf
y9ducE5y9fSC0Y2ZM+CNG7DACdSc05xTK2N+kzeCvlhlIHyN+cxUIcbDZkQpkTjn7XJ7ideuZxRN
eDjhdm+06yEUZJNBa82ZtR6Y2eQhi+o1f5wur6lU+RTV02HCU7cwT2WVwE3cyJfb1/UI4CFfIxf1
yM4u55/v7QQ5hXUXgfs9Hh9bFNH1MN0aYS747z29OVVK3ZGFr7HQenOQmVovPactxR6fX4BXRHz8
9I/c63zEWOn+Vzz9axQC5Hl0BANLOZbQX+EUfJB4Pgrh8bGJsi8oLzJMzKfr6ZHMXF/Z2JBBEnwS
P6rPsA2x86gj+4QNiLAIA4aAL32RD6+AdBXefM85rwY7VYoq5aogjfec23hELyjRaKt3J3O2orZ5
jgTr3XSbNt1wCs2ZEo2KO/qVq/Xi31PChycR1DHkQgoH0DRG+wn/4W1yTZ7HurWRMjoAFudr9JL6
f7kxf2KqgpT6RpwTkyvflB5j3uYUi0KPDK0TJopr/9rnXN2eiiZzlHf9SqfMS0uVy0xCn1QiNTDi
ehrnrxbFSRX8s9BNdMxrn9Hv7ULjCpqqujr+bX/ogX2CFfZbNweyMbQ+X77urH2vurH9F/fxxQam
8iJYo2skih1OYbkacWu2aGOp7wjOAleFOPnLVFa0u59RgfJ3aBFpaGKzk6vDW+iFM9OVxp6nOYoq
pjeCaiuUNUUjG1E1W7tmj/j5g77DbqhT1Q/qDc/LPtXLHc9/x0anIzFOsvZKdIv93BGYm18mlG5a
QU+9HUkIjVmpukZ+mRNL/d4mweLZhaFAMwribgldjXycqdhwA7GihOYGWsXn7Xa//LUb/LIZeuDN
pOHTymP2PYaniXHSK7BcF5SztUPPlUeDbdFVc69jo4PTdehr8tzDKrCqO9Fj2VNdOQx9XU1AKZbx
3hcLXi7tVDy5vTJbvIURyUKa62IT64q3G3ILJ7JWyIj8dVXN7o8FnQeYGpKEphkD4+z6GIow9ija
pSeVAH6AIB4UababvJJd5u3jy6cWyLVYWtREcgB3g9xdm/8yl9olXfk8NbE8B95gbPeQUU2sRHyt
ziq9Bg6ZBCmaJYVJ5FqOQptgjuYNnM8iUfp0UWNSeHxJnfVOH4uGEzuRLe/K9F42BUE0nM9exLxK
tFbHOdEWhYwnU3RlGtWPeNbh9H67HHmXTZg15jFGTKd7fiBnbo4pXE5NSb4+kLeVfaAwAEkm5y2z
XujkmPTKqz2+XuJDt6/7YeAT5nRVD+8+0MJ2XngOZQazmN+4r9H9v5Mr3LtwaDU1r6Znruj+5/mt
t4u/3s85xfea9E5CReJPwNcz84LzUb7FSClTWXLoEI/xnBql9V+PFpNksfwX3R/N4fGQf4j80LPz
nerE7qCF2P187j7ub9dd1+1e2HXHCWtmUbMSFzK7gzEi7F7ux3jSu7gseL2BR2RGWzbUx3W6E53a
nR6H/WfU051FrzL4m2ZhcTsjZPomqXZDeJiMCP4qN0scSc89hetsJ3cvx9yN5/USQ61fOyl3R3al
ccDXQiie8bN0/LBHIrZHgxYNf/wn8EID0mPGUNCCFxIdeiGt6i8U+gOTZvd6ef667z/xFo02drXb
48Gb3TmfPFxlrHOeRHywqfHE5FQoLSR6D+1KAewW7+F7AXymF9kDAVTVF4mnFF/Eid3rr2Mi32e+
ZDyqV3YlQ75INU7KCHRSXpcnFVjRkVB0XE2LpA3SaYM6l1ryXdMNleCzxjqwSQLRlVAGfZdd7NDw
XcLG630wVvblM9ETybKzY0Dn/tvIqc3e6zNNfohKTO8u113yheMLHtE64yRTI4vRsU8RTz+pDqP0
7uXtfvqMKihuGlpKS1d+nQP7pOE+Oc+pVpUPTkZDnhT0PesOINw+FEc3IDPxy1LPNZWfeI22KPG8
0r1PDXGiu5G7hA26UmSDX+uCojpLGv3kFlfd0M/08GeC8qKQnq+JipDam8Zz4RYStJuKnKlbQz/R
RAlKMHJyQRIEcYyuWtdJbjUzL0Zu4T4VpyYye3zUsi9iSMug3AXU+YGJeu/7N8TjOx/mBjZdP92r
2iNGeLJWFgfa32LoyDJAeDHkA180dnfOS81g7cf+njoy7T9j+JxSSTe0x4q0zyFarsc0ig1+P53f
3tM2BXabSPsqYkjgeQl200m7qIwRy8EX6x+c1pm2vBPsPklfHr2Zq3JT1Jhj7FkeNb8OEYNElonn
Rwkq661ij04pX5XG6lZNy7FfqEgvsnmEx/K1xi037DKmIx8418KMb7V+I1au/CyaKbQ1Ft8XxYqB
VKv7MvTn/HoOAFVq2bNR2r0upV1z0j6qE/Yej90fxhMcq6u4L+SvzdR3efR+omFofGE/B7X+hb6u
fPlD5K9gkPA+r1ZSrICORO2FmgFLSX4pal6mq5PNVUVCWWGXfrGO57Sn0Lz2JGuIiSHcv0tV3Qn+
dbqakpq60G57Id0pIkt9MyVkexVve4lKmakayC7wJ0Z625EMAqs1+eurVW2PohR93noSxr6vJRyb
yPSoabx7e/bdtC5PULdtlmS334WaQaY+Bq9PDBGllJMS3jSEiV+MdrIjO364nD9HM1JvYKf9Unxk
7XY1nS3pQ9WtYPU/fy8UleheRULzzbtLkqyU+LqTXwqEmvcJSTdSctZ5o/r2v5vFWgZT00TgtXgT
PqYzFyZ8WuEj15r9hu4SsUe5oVyvQY5/XfcfcYdTLNDjaEm7shdLGrI/JlfjBXC10ju1N10H6J9U
NS67VVQr9RBrwybx9z6E2nVreHOOt+HQVla/suMWo91O7cTlqt9nYJ2Crr3TECMKzTs3gXxMypIL
zXkRw0sYXrbl4p4M9MHchLQPnwa+DBAh2kA2d6yaLCS4brxfQzX+bD4ypTCxrXpNkFMYmXyFTK6m
ms5lMXLg5vEXj2qAHFsUhwX1f6ARpcvNO7ZeWla9GVF4EmJoKnm6vSItNE5ZWTmyXFTDB0fa1tzY
Br6hLjy+EZZ2RGy576xIqioyMbxJ1fDz36pMLcDBkAmr1sxCuIFLCl6JBkrJgYtqYF3W8a1gV9X2
a2xmkh/fX95u9/Pz/SMKBsBPfF0VlFAMRGBkzSEd3JxRARSuO39vqSeqQIjUNGxjt5f6W1WcL96P
VEQCXO6C3wpNgZh7ibZ7fXISIDEdFPO16WaPMLia7zUatg6016ZP6vwSems48sKHI9X7y+OMvP6k
otlbE4wK8ZCC9kA/rdbhg2XGeyPREW9nKTLl9Pw1dWXER5BhdeV1wx3hIzZZhV8BasPDgd4te+MH
/FogMBGCcUYbUqlf2SWXHqnmItO29qajF4hymlaYQ7l7SpHDQIUYYsLjx8aO9VStrkk5f/N4RS6Y
SB5AcOw30jjaz1WhEJ5gb7Lz2yzMBMLx8FDnyk7+TSCVl9ew0OUt0Jn/viLWgPkQ3rkwmkf0vhHD
SXqjW6Fq4UezS1IVuBGp4qME230/xmQ3jYZUs3oY9v2QBvh8PtIEo9P+DrVggRP2qhBrQd6sC3oJ
5xo6diXHy6cSVVCvqU/Ngbfy85KkSgfoB9agkbicdtupxjYvr4dG4rYjaaQcgwlyrbdHISJUdTyK
sDs+wvY1c1a3+zykUrh5m9Iikv08GiSTju4Ej0QIvRT18Jy3NDxwKKh7nmk3TcyYB0Zc1fUcmumN
YTGP+C7z642vAnAoja9pPozOMUk07n2eywKRTKqE3Ywdg/AFoHIUPs5f2IjQALNBLIZHbYIkJLi5
vq45+Ziv42M+udy00AS1+COg2pMGfQejxW5YMi7Avw6NiGhKooAPvpmRUqLq0NYRiebNUarKoahl
Ejs+k6g23D7F3z4PUmz13eEDPlUFe5eoCLh2VYvJ5vt4PoIWpaYFeCgfcOjAZLFbUTofD2lXm/0G
7DcPP3TlMDIJ3U2QPZa1IwN6jj99Cmn3jH4NA37+lumqSeiBXwDQ62XCzzYufDMdqWRXDe6AQ8J7
lr6aza5FGbwtsV0tymBvCLiq38uzSj5RQ5WYz0jYBvoW/2amjDXbAaLmN7yKP9U2nBcAyuCbN7wd
jvFyYBaJta5hcHnPiapbaiIB74pVmZTgNHOwgR7gla8XS5+ixf/hzRs9QtLdZYb+QIrNME5uI3/A
f5gsQ3MpWqLJv5s3NQ3HRb48NOoo00pX8m7Ld9K8bykVH3ytt4m/dqEKbyJ/i9+nOujHfp3l34py
ObdSAFil5xaYn29m3gCjc7Fdpuk08zEi1Qi9yGvE4uKxi/qsU4bNw3uXodueVSzALN5H1LUYGkTj
/Dd2ZX5ZbpEI9lPJwFtiJ5ZavR/G2znemmpZ08NAo/MIcAdX+qb3otX39p2/O8G0sjk8UZxiBSk9
LIJq5U54dU6FMyGRY5A/fEJ/5MOd7mMYhP8K8x0sk38rMjB3yA4q1m3hI0sTqhePbDKfBaZINo3j
8c1glZItyQADNIj0m+GF0Cw53Waji897wlLUTEw1VgRhtNgONvKnRiynSipJyQbnSfOJFrlAivwm
8gqPFFGyOUWxOP+Aj4NCNVPSR3d8XoRapEwLZGg9bQdFaUQr5r6Hj8m+41kUIQLr9ZpveWKg1MB/
lx/Ky5MX3+OG8GlOSltKxTpjNUwvAfxzluGnfRd2kyRdAcsThpX4GhNRp5MsbIbc82pafou1oYDf
IJYlRrLlObAXhALWcx1sC2QGvDdKeCFDvTb4gbw/YooU/vi5S3vbSYClUHzPz2M/6lqbNyBBLbde
tKo5AP9dMB5zi4TBU4NUqW/VlpQtu2uuWjHGGyg+tJMCcp9XKVtezYkqFYvPi/E5AwpAU9XE42K8
S0BJx5QCt0hgAPzZ1vUdCHZ4z7mr3mngv7PbHaqFAkxoqPnQ8N8o6AZw4LrvuOAAyBZ1ffUz9V07
pEail/NbLgc/PXD9qK2LwLDJw3yRPeZlK8rK7DlejUuneBSkSPxSMWiplyOvXqqlbMi/58s06FpV
hvQ3qoopkcYv0LpvIOUimI0ctnZxk1vIvAX2JvD2JmwuRGjSeQThiWUeSKsaFXhV7tuUX95FL3Il
zSKgZl2bXfhZoWEh+CMUavmVopLk7HUOVg5Cf5NUxx9i5xlwJt3qxS4N6hBkzoWm9MjcRdnhTgPg
I01N4jc4fjzG6QrUbvDZaugIL10URppVVr1kli+76WQdP6IoC69WzIpmbdeK8/C+v+8Pz9P9gQsU
ySVOEEkMsdppfIBIq+09BoqAlpUDo7/bLIL39tz3K1V4ShapdyV01LokdLwkdEuSmNxoV/nPpIDr
HKTyoSHvaSnGj6zdGd4pMvbflggFaJ5nHUnQPgaEmWZ5Ci3nQfLJMHK582y3sBFn5JWOlLVbxfjN
PAoSJCiq+LZ3o2S1v0IPxfAiRe2pyRVeGlQcvvCwqambeSZfxYc3dpEnboEfPI1NdJr19xhmLEBN
6WKUPjoWLRX6hceJqNdRhADE1PBOP4UTfe4y3bV8WP7onfqeOwyibVcNRjgOE/9KJJlOBuPyPix/
uUiLkNyJQIbNARLfKUKpjb1jJjsKKC2L29/ursF7ja60MGO7O6Y9Au8HyRUNpUVM5o9ScA2z6gqB
/zhCBiMj/Xgch4dhpKxXfnFyyiNCvt75oVKGDoqEqKajLLtlYyscfBBbqROUqvWm1gM8SEEyV900
+4j3ZUExe1dP8VUKvZBvQUIi2jGexxFYd9gvSKkNdFHx/HSKT9EIeYN24UtCVJWg9u3iaEFhPdEo
7Cn8O/4oZ5nIdn4LLZCPIGxp4A3p6VasNHuKvMKq4sUN0Qelod9jUvLYAlWkrpuTGgyBFiSStamV
fAF7zystt7A4rrUUr0ldVyWGsXaaX6kIvUnK5d9CABDLirsWOMRDYDQR4e1MheUgaD43RYNclf9i
cMk7fwtFlQpSVacA6yCO0TwMGWw3H1mRAIY056yDoHw0RUkEtLqD18u8iFMV2gM5LRHg87A0I9xL
5tZeY7xqpoU1s77iHDWg9yTLF27ZnxP/cm5z+zkAOdGoti/T35KlZIWsHqTwOpm32WrVP8DSePDv
p/ttvI5Dp2tQPCQbxOjv3SSrtndNLSw2K70EkySzEvlPBWw4mtw1Wz+V1ay2mjhBOSZAZJR1B5PP
PPNYgTA148jLGR/4FKnCLW9leYIV9W/clPnaUPcGztPxMex3Ys5QTcoBb4IPhJxmKtFbCWQ+lUnJ
t/PbgQQWKEmnLQVsZpg0ZIP/UnqePnc60Fu4vDxeXUY0ClTHgbLdDtTqcYLBO9EyQH5CXV5Bhqf5
ct/sjyUCKNjYSDgmbcn7e9oSft4suarVheX7Fx5Spjng/JcNDdN5rehM1Z8GeofHu5ysBd8gjGe9
PIKckQGADEHfgyBebQ8em90mnAPlfCN/EORkFjG7rOgrJNS02ysluvCOL+9E03T2CmRmZBJxBkUd
K+H1J08dprol5PS/2aJdAh8NzW7SPHkVu6qsCNhq7/sy1f4ew7y/J4s2UI+ajevFwv9toZ88Rk9Z
epUium9oUF2117h0HvQr7Lb1BR+vIJ86Er6GldRTwABvZLAbBrjm876kJw4pER+3KU0gQZl7WSfp
r2ixoPjathqvfrPVqa4mLPsMI69OqMdfzJ9v+3cgExOqvA++eAgQlEK92Jxm5HgPnZaLUGXJSAtv
H0kMSFJfbE0EuE/uWxEzOLniJhAObR0SAOVZpp46ZTLmPCoX1L+tD1PgQQ9KzZ1luoqpgZb7DqYt
h6t6e319nKA0ya5amgHEmu8mUsw2kHNif3MZnBE1y9MIC0D/he+S5EC5Z6g5botGKaCtsK2ZCQBe
H/nzIpe2y9W1go0meOfPmm/lHUD+nBJnaKwKIhMeAHX1JuSkYp+HU2jvB9rI+t/SukN4+728DK9A
aIFXygYK3+qzwBsOSnsPXFv19sWQXm1rZNtuRSCq1VAHo9Xu+TsNlj/kKKIDwx+o7fC5812bMwNc
f1XXQYziB71t/Dd72/Cca9qvodph8NscyxpEx+WJQAdwqh9VTha1iA785AWpvuWV8FePOm9uEwLA
p4ucrUG/VdIE8CZdnWdWlHpvqPG227t/bQCppP3e1CwJGODVAVy8MeCD5YJLTpro8UA0H1rJsHVS
EghH9HauNg/6UxepLyxplkeyW+RNrQ1MQxOALtk1VxIoKQDnuLodZ8MBPv9MgjbSHhTdYD6/7qpd
3RilAlrBdDW2YB9H8nayeKqboxG+PT7/IULVxojUaNRgUp6HzXhX7WVBVrj7Lq2Q94293tiIEJhI
ygmeL2o1q8C7okZ+F9dGzS0l23gzhX4Vf3JLcQwhliU7J1uJOsOvJdfbDib8Kjjh11ZnMUfDoHeH
6MrdPy+7l5eEHjXm19Khs/NtpcOY8xDkX40hyNbUZxfLvIxVu8v58eyHq+Ph0K4+irs+LBgOQba6
vkW1lYIFKxk6HnzOSuTB1/3Ic50mX/ezdMHIYe+qU3mFSSOHjXT9SGbR7Q78GnSwuyEfRaZeP6Ia
QTtsQvkaahx23oXdIQ3fPj7wyPWB1zW9Q1iNhT6Pc6EbU5jH+tTl50zS53rpSxRSsCujyZmGOatp
Z9Nc6DSYPO3sr2dD9kJXH0yeRsmnvXFxiz8Gsq1Ag7OXk7wNO9oeTxafL3ly9pVbbLQfNvolz/FG
K6muHMGtJrGJ37Z7HG7pXgqwxeOwt7wCaWbdD38fb8A4/J2XnbFHyXKdqLhUGk6t08j2ZNN+NVXX
yAnLo7c7Isg2LSTEDMyCo/LzLPpMdPOVKfLpXoMB4AFsjMnCd3m+5885AO0w4qirmd0mzdreHW8f
u/fkBaejPuzON35blvPolxrd7s5Z+g4t6evqd9P0Y8TjkR8u+8cj18SDE1d0aHt5x/th5GaXZ5Gn
7wKKQhUqeCxeWOhOeCvHoWXTi/hJ9MQumvNdxofjXTJoERHq9rKmIzqoI1xVR6zexqO3kbK+SNVa
Smgt6wZ8ZeM6sMg4NnlUoOMpDTJ8kPHLDs/zz93lmmVmdwZSE6pGpm69JbTepnrsk/zpXv4u/Q1F
1qqbBSgtqjpy9mp3ehz2n6fWscvF7UQn5jT6rm7hTkjeOojdK7rpjH9TfSeJPCVtFsoQrRQ8+jol
6upw/Dq7yx/3HHwMoDl8/dYvNAe69OPAi8lK1L0uqHyMqjt/1ZvawZuq6h9UWyl6Gui0ZPW0StN1
uNybN2Mk6GdPZa4HSjcjbpCL4vfrGM/r/kh5tySN/Llb7DnN4YiAzvaYV1+Z5WGhqIryQpeGEfSq
WGYSw/7Kn/spHgF57FqUF17X5S9A+dPlW8gyurJ9dPV4Xnq1ik6KfBB1mqLZ6fdFT0A73F9JPUpP
VP18P8/jBRWNC2qrvul0UrI/qShJwK30Zdg4JFdnUbabRZl4Gik2HpW8sMkMGu3m2S3IElLlXDo9
Y4w0hkgivQ/QzYxdXssx3h9TtcxRCpMRjHucpfB1/3G+/NWIkkgYm6ISjTRZB/WPlnUZmt2F3uXd
4C64xS1DStEH6C7I6l0bTy6G5/nkUoSMzk2rqp8o0tEfsjymDX/8vRW6jXSGikbsJSkMF+0yrAR0
otLfsM4KbpItxQnJgITWzCg2fKJ+ZxIB9Ebj9NglBDB5eTKGg8nNizdO420iKEDudaAcCVEX6FrU
AQjxCYwRSlJ0iOb183H6Ot52p8tHztIAM0KDuqTq5ApROG+DFOrgT/XgNEQgnd0OrzmHhGkJLfjF
tw0G4N42+oYIQUdMSeHQjF3TcDguRF0NiGj61e7xvr8eN8ScSti6Gqi6fVBZOlm3KPF1kpNlxe5+
uuwup2sTdVNWcDZlGREpFJN3gcN84wLxvzz3Y7fAEtLVo6Hp6NUg1i8t/JkGHoJ4WdEBzXZbxUv/
dj8192Ycu7aKz2Q+95/nx/nlfDk//8IfpsXCj0W3w8PbITvOkR0P6zyelmjofxLGUFe05rO1gipT
99lqF62Fe/kydLATiqcHJyBpyd3h8mg7AWF7bK09TK+I7TGWgfbNKw508r1DqXc/95e3fGv3GO70
HOy+snC2YeHqflf16yw0ApyBK8IjD8Ojrq5EqgoSYg+2ro7yu5jd/nn/SupIQUxO1rVI1aZBB4lC
RXOjMUaANBQgx+DCyfM77h5R6T/+uj73v3Fg7QSMI6Kb1ccRv7D3P6blV4ijzIooZY6PyRE9Ap0v
61poceHjt7Xuu++2InuNIItEa6QrZvLTMsITvfXPR3LUrqdHw09TxC0ifP66ZhQNzVhPjtWvKQTT
OlFfaYk1S4h8222AtYaL+Hp6t8i3QMhb63qSbn3oMKFAzA5pEbp0XgR0Xkj+yZLc0QpKEQ0oZRG6
yNqewJQuDTZJOLYA8m59kHGEMrdYCYDKDRdBluZKdgQSHBWWAQqLpu+BR/f5SMscsE/ny6WQX+A7
GKowwfiMWLzeDl+PTYhFV+ocTfz5uJSVY7/oDf48SWLOLTZ6We4pgQ0v3NT9AZvFR5tEDH7e99dH
+1UEeZWQ0h2F+5xEMH3R9XY9tRxoXfcs0okdUlxwfd99XeO3Xc5XnIAkXqHyU5eDxfWCiJeydVGe
o5QpSGkFqLaam60BuQ3jQFNtNdtHvMFGWEAdDNlwegIMVVQ9Yzxf2eiXviUz0XolrUqDNeFLlN50
3kRv8qWODlxWXbSy6pKLVPv9VsN+NxVjcHWHdx0QiBb/IZR2gzAGJjfqGCXq+mfjghjOpaPZLZSg
kARRyEyVpe/95+mvhmOpNBMxryL4luwsAdyuFpNo5MMpW7cXun8RMZVaI9yWIu6ykiCZMwAKWEHB
8/NWZKsW/CvF9pS6htQ6p6teQjQY6aW03F1Oz6RW08QLnP1RQnwjH26gk+v5WHSO/zBvq+NCyEoa
s0NpTLM92ysgL0ObOslpwTlAayhp6rqrgrFjeofncvK9HRxyUc+2HdRMLDFddhMv++71/PvYSkRq
Ql7Qc4P4dfqw8Ubef4NvAhNISm7HjhREV5Y5bM/vN4I1Rg7z6o5Nux2ffjt/5MEkorHbXR3XWFsv
la0X7wDrTlTNV5UyDKkVFAag9JXSflnIzvDVEGy8IWMINVJakVFWVV+x8DYFDJF1wAEu8ewa3riv
E96yHEb/+XQ/P7M8RgOS/RZ+IbGdZiYdFOkOmzMSX6oGpVWUQQ8HR8Bzlx3MP8huzD+0aCISsk0I
4Rdm6d1CwcJAFVLWRahjClV1BmlmSwfEL5WHi8rj9ffno0mt0EQzFtjYMrXeYo3rOmmXYJlnAmai
qgW9HXy2BgLhDK256ltBvNc57tJmL0SNvOb9tUFtVo5hoVco2ziPLUKos0eq7gz0HCl6JzGbQSfS
ImIzfCcBLaDnqKvk4gKqQk46wV+aSd4O5jBUqB9+QWPaQCZn0JPSJApoVSmo1BENUmFBdA0WhOEc
cxXDlzl5AUTZ2oYHE7f5bUNUpoWrCk3vvaTig/e/D113oPWhLDpBELeq4oD+fTDb650g5UwrXceW
KoBpS1FLVQcEl7YVYgJScYQFGo9hTCDU/Q6TtYVUA4mqb+KGSWsbixBUgwIuNPRfogk7b7Rh4hsq
FZoevVDzofSjTe9HZ9gNb9E3agkkNGG0tMGtssKH/aN17jwJg3r00IsmSCvpYF3j78A3EWaLIrUI
XbeOY12sCBy2ReAwhfQp6B9CkydY+HgFKzX88GUJiq2eFSyhMma78xRgfkYu9LKqvgy8BoQDoDQp
uqtiQBphQKGOqxd5B2iCleMNZ0/5+nz/6zFxvoD5XOBangeAIJAUFtE/l0eGpy1cvT4tfVW8SFbN
8Goj7aW5XHJWfLpXfOePtyaZnaH7FA4gOmpSkpFTTIIP2U2DmkPNQjf3H5++SvRfdTw/Pi+tUmrP
wn7zmb+eG0VdgimbIy77zD8GQLZiiqgralC31KBiA5uiVg26lL7UpfWsOwQPKH29BLCSickntP9r
U66znoApMhZCQhaV5tzaZdmMhOSehqkavaRmWbfYzn5ykLkiBFfkNqK7faiP4/zQ1UH0JfAABZgL
XUOX8uzjcY9NL3LaA+QTOW+r619pcx0Ogb/zgHbH3s5GGY7y29PAFqaBKc2UgqlJfg7RVzqeHofT
9ZgBDASHkcLhZNdNx/soLearZOrfq3Q8CGCGbnusr2HkR9OuoUHFV5Ct6phseeZKGG1zY7d+iDn2
EzoG5ym9XVgfTSN1zyal99fDe4shQ5KMyXZowbMuIGOReJcZKIYdReDZu257nayGrGCnWszF88xi
axhDknq3SbHMGZloCnVy6gZAAzMlaNqqBUR4mIhdVNzC5KeBgh0YGnaRTIHiaOosq3U1H8Z7FOXz
dpXyIrXbyP7w5To1Uw+rLpQy24Wwg+KsuxahfHRake8RDLfK6ppC38O4euKsKn+Qey0s581TMgp0
DnW9tr6GpckWlmbqdJT1LmOScli4H45JUV7aKUpZ/7gySIYkXBJQ0iLZJSsBraEUy0hfei5q9wrJ
BPUk3rLC2kHLJ7eXRmpYp+VlvQdGEXXhwqpQgjMweWchF6GTLfbQ3KkJA59S12t1SzRXQ3aNqiNF
65JYBftVyKCx5BDHsBVKEsBI52lRCIaF2nTJHULpKAmtHlOeV5dF+E6EGZGDA8/XjiDd7CTXbG4g
ffjkZeSWpQ1uXmfriYXSwYRlCFZVY8saKQa6hdrUQ+ZeoLf0jlJGA4BlVMjna8+rajTQMNvz9RCj
08pw4HsFv0QBLzHItKfHCuyDlQkMkh8lMBvSeNSpKejnQKhDECYLTayKhLGbIbfzDQVkZ2nbdk5x
hoyIYKrg0Izhgla0U9vjUQf7JDGtBcu+gAhmsaGuJtb071YR7rK5SLWeJVXptOtZmJ6LpcJBSlTS
/mWaS3AID26StAE3MyKshxbryaD4YXK8oB2WbpO/BNNrIVQtS13soIsiJN9QbQI/YUSkTaPsYHbW
VctZt9tzoAEm2Ii/JPXKQx4CPQMDvXqhQJXerxC933NtR5duF26OKba3/PAQ06U2QS/iM7lL0dnt
fmz1URP1gv9yfx3c39Ase2hURKp6cUndT4cZ8+B4rgS51rB4WX6j1YSGLCQXcMsB0YesTdTE10Pf
+v7AN2IIaKuMj8RMJM+QAmxug3pQMpETDvtj2x1xbksMDaXH6O01ArD3jVZ2O5fEQOfRfyMTL2EY
bGWrTPc8NxmBJq+TsIOClrkS7H3wBQCGFxzv8U8qw0KV4dspfWGRJ2BEK5k6eQKtJJuS9Tw6Zbi8
bCj/VEJXe2fVEDxYZrDsesxXtslmbUC9zGABosAC7wURf4VLuiFz+Gh1TJLb82IOklOWrrrjQxi8
z6oeCpWbg3P6godIp6sAhWYpfY7vJ4FTznI72OFh/MJl0Yug4eVy+BPzKCVfl0IuOeTt6EXzj/lN
chA+aKxUddHscU2IpnlEO3JILaSHBpbxNUrfeRI/3GqJQT1KeF1CeN2zfKQFM6VFTHdlBG35M2/l
v6jKCaSF6bg/ftifZ0tfGA4WIA1ScF+Jb5REdpAaqvz2XFGAOT3p67XGoaelHyb+A6w0JqKTjIWV
NcxNYMzNsp3s5+3FtKhua2dG0ejMKBtFjHPcKVpxJ8l1p87SYXqnJHxS9+/0c9/qVOBZzuHUCQLq
PmfrcUhpWjS0u/X8ZJX9gWTFLsIZ1dVmFijIq5JbIF5cEWw4mo7Mkq+micMNmo7djAC1uCxK1buQ
Vzxr0+IOaL5l1uQGQOKZ+kYQ42DFWhdwCZ3fjepXwBI6+kk+E+1rHyXgR6l6b6B1vqPVi6AzrS7U
521tqC1IKi66SslGaRDjWlOuK0oLkOxUnoYuePFrRDDhO23nYQBs6tBHFSqDk20sR00uYBgI20nG
t6lwgXHnX+/rlm4dTulmOFXPSRcCfUqwRyuG1kwMs8SOIQE8+O19zWAYo5WqcytKc9XyISVXZb8k
aCBjE2y98qDKMoNYoHXbMRgDMZjAZv+XX9ZIT4ZGm1a72zRRZpEgIpo5Mf+3dDFUZEwJDa1EH1jl
rhGH/fXnvlnsZKtFU0WJErQRUuKu9d1uLByH5soLvsQjegZW777u5743KKqEYPq/VZAFTJXseCL6
TPKAoZ0RuMfszOpp4luunhJfW2GNQzvd+Xp7xwpW0ZoqUX6dWjaKjBrnfH88d5fn895CkM12Lehh
hb5wzRq1xlAjLTbNSIFwdnDVSRk59Ljfbk9wC6RzbFPR2dWHSlOoZpK2kdEkLLJkwpXkmyM3hq0x
NcYrRq5oMXIx02XqbAOvtK/XYq5YHBDQEqaJez8aImZcnfmzEDGcgjSN5jOTRlAtjcCkbxZvYyHz
QmzP/mHhVSD7RxOiMFKVTI1fzQdGVReOLTqc4wOU4lha6NpNFNA/1P4baUPoH4Z6CXpfGKGjnT+N
3R8xCrs0IJAlCLl9RnDdnNfoCHIciJOYjL9YlRyKIcxotw/1+hsfB7O0mpn+VevSgGRZC89DzBMn
BKYn9DeyNgJeTl1XXLXa2cY0EM9wZpZ2QbXsgqmDhdUAAR6YD3j4L+FSwiSOdtvZ0x28H1q0ESkB
HXPaC7kMmxeIXaMrszTbk+oSZl5Mo1WrGa5qawKAEEzBBumJm3p67a+HE8ZWlx3THBu8YFSqq/dh
muvTT7/JRBIQNIStBOMO1kjoTiMy2QTgYENK9GGq05KhOi1XQuRZ4LnGJOKAqV6rvtGTA6aCTLvx
+qPRmM4aNAtv2lxYZ6HqI0jWt7NV9qqrVW+Fl4KABItvgBiB2WcrG6rrTXirrVAbt0B0uEJ+rL5u
TB5jsh6Lk4YemNXbp0QZKHbeb4jskNOvuxarmDSvxK2fQtl9zrCT9DBio3GLrp6bPOjzBumfzPd2
PR6W10qt1l9v949Hfmr6x935kTuo78/XRFDLY7JjoHJPcdzt8vWsv3RIw8N6daTl0C1TDvPDrrcf
0+o/3s/PH8/T4xnXZhcaqMN6BP/7ZQ6Px8f+eT//3sljNEJRwF73h9Mfv9lV9LRKKqce9Ou8itq2
iplWyV2SxwyhPC627fX8+3Qcd+50Zz9Oz6+Vs9PDVZ7W6clU0UXjV1DzCiZVUOQVHqfnbl4l0bKe
t0/+rMK0RuZhLt9ifzh83feHv/iXkPMCKnX3Xiwgj/yjs5xYnWcw9Ab0/Xw9nnf323P/PPFPDzTE
fKy50Xl/rLePz6h1jvMWPHY/H/NxPPj1VO08pvUkXZJfZN6NPApYDI5cWiZemePQPex2P7+dr/wq
s2ikvLT1qz3dfd5PWdD4ze3I5qbvGRsaTKv0L7FFzmbRT673sNDfb7eP3cfp+pU6xPDPzlc4BaNG
L17i5/7ydcptd/lN1eSkVcp95DXiDjxO95+neH2vt+fmazeQVLJySqkh1fWf8xll4/OU5oWfvrfe
/IGZE60Gv7TQUmmv+BXm7c3a3vV6OSrIpB97qbukqzANtLi9vsZLHbXWa9TNz7/yJX/ZH/7kFakl
H20yfLrcw3+ztpezBsn179Ko1Yb+2xcnp+VzFNvv7uPnW77WjwevsdV8A3IrM9H1z6peY7+d4rHu
+yfT5qXKsLiPZObeZf8XpzBE7lE5ZGW07uuSB0yuV1w7HT2V09v9FJ3Uyy1+9fkaf2/3PP1+xj/u
jk+0rp/WTXdP+/GweqFUx8X9ge/oprWy9ZOrw/mKMgRXsPNXzkBCeV+u/WahVcy8yoz7FFaYvSXD
CmpagURbw+O/ztGNzypJHdEaunwLPUjEdzZUTEvk62rqavXvQ28etFKYX2aY6JR39hbdkd3H/jPV
KeYn494U/3L4DfSWej72/D83fGi5EFhgSM41FtilcSaX5mJ6Fmgyp2e1WPTPL/vrHomRnsVIyakn
4Wql4+n0iVaZRZp08V+totASsySRUu7VEhItMQt0dsiZtxiVNJZsPQuTG0b2DlZkN7jZ+bl+/szg
W+2up7d9vsF/BysrcnPnMpZxifEH4IcSWZr9+PTk+G0P/HFK167+/PbRICa3d3wXtJKrqeyk/5P7
HzUZ8Z23LDcrA+IaZafxcabbg9YgVmSOFMuDyurt8H6+HO+n68Zjm2U8dwlcuzmHy/nz8wT3fRaq
XJTdHxy584ON3PSZvnZhlmKEpEiWdsiVR7flFWY5JKyZUesMm7z/iG4BWkSVukxUv4OcGPoksfqk
/9nbgMtXUvDDU68ZSEmkqT8ZnW9Sr598T1XieKR8je1Fu19pd7wdvj6S73i57XP08DMlo467r3j9
Hof7+fPJL9yXdOaFiel+Px+PURbPr/e4Y/3nPn697vrf4xfrVW9eTCVoUA0R0q8Y9N1+7W6fJ/Bw
mB/OnahEN0jR6XH++2n3eo/2v/UCfYq6fwE/5TNOHy+nPqpK4jxsf/ZRM9gDtr0Xqn535ORSfN7P
P5MX+HK//crNDz5uxxNnDfJrqfm13PRabymY39/j3+Lb/W3/c9+f1e7rfgFvNH9hplhL56ko3E8f
8QbHv+2Pfz2S1CJHJb+amNebBykco5Tfb3/tjl/39H3Xz8+ol37xq/TO8vrs+p3fP6Mb9xJDgUcf
IoN1ZmkkRJ3Dff94j451dN/Ox91x/9zv8lmergewVg/SzZI94FSnZ0aX88C2/eFweoDjt7J2/ElF
3s/HZFDiXz5Oz/fbEVyw+eZmNdBv8N8evUAPG80/bmQh0YOmTweSjOJwsQ77yyXu83Baec2vaAZu
4Ka46rknkTx9fMb4CAuhnh+ede3r1+USRfgUFcd4x46J+3A/Jb0EViO3YzZE6VXiS/TKh9yOYcey
89RSR4vjG/XJ8+t+3cUzjAogH0IU7SiY8c7E87idHtcUxP28/Xkaf2v4P4JLNItabvRcXqIYQMWz
6o8KiP68CyTx2Uvobv+agP/PhEwPq57AhopZ5Aa3avCp9j/P0bmInz2dz/mxf7mgteysAXPHCKHs
+nheoo39c9Bl4DiIMp2H3MbX6NOM8YjPl/Q2u5dT1M2nXlc83k/xxmbLFiX89vK36N+AnwilVJvi
IIYzjkeB9IYkRkxNUUgexgpkeL5OInkOYnAdos/5cR5NaK+/Tr+fp+sDXk7ra58xqa5B18cYoleG
z9vucT+A5VSpgnx1uc97tM/3hDj1Mnf6fTh9YiViDbH3U6FbL+nx6B4/+qV/fO5jzPODd+Cy+Z8N
m8v8eaL6438bpXa+8v1N6D2C9KfD/vCOTnQWvAy5OGKbovglVd4SLEkEa46T+qfiBe9H9X58RYsb
N2yX3xroXl0zK5d0fcYPbKxgVE1AHtf95+P99txF//20v++heQya6JvMj+gX+bhFt3GXvYgcpQwv
FP//7AyCd/K1652sVHJE0OUJ1a+5ft6jYxwvT35m9OEGGT3969c+4XjVRV0mOPRhZS7c8VOW+ni6
RHdr/Kh0K+Pfotb6L8PCYD05r0ey3u/RB2xclfz4AJGlx9cCRF2B9JXTlj++Xvhdz+sO/Kbs7XZT
xFLuFvgoW2zS4K6jtwJvEuYvnKW6t6TgqfmYirOPPxydmtsh+dmDezOYhfh/e7x/PaOKQS9jqh82
eG7RoF4u4/acmQCgP7Zu3l4zWfbJPXjdx/8avIWqbUlVBlv71Kma+A1r9K5Rtp3D2W19wwHwzG84
B7zJuE9XbfCXMnYKPnXeKOJt54dur+D3Xe34F5d9CEM33PnqJRtiovZtkLL2+KSHshw+elN+jb5u
CovAhpCrNbM5csgYtep4TImFhj+pI+eem0Ga6YgSkNiv8HrOvJDT4by/IJS7XzLUjup0/UrgyBPJ
IDmsGaR5EGEBe6trezuI6bArr1/XA3hvMR9P9jbkAM70GeFzDFE/gRnv36J6IacTBr9d/fTD7dqH
WmDPyAUT82anM8J7Pet1Qgknpx1/O2qzBzQ6Yv5x2pL0Fl+aw/T7bbLljw/JixjbxXf+50nZ/Ode
iCd3fX9HHpSoeVBLJ3QKlHYZ9AGYirWl7ylHgcpONut0R9sRZS3+3x+PLSGkETUQYVCJUN56z4Y8
PiPSh8v58GfGjYq3SAU/0TQl8/DGyUYf3/nSn3ftuDaproSmZj8u6a5epTbxNF97/1H5Jcepz/Hn
pAaXIswuryyj2wBjfAg+aFV6z2WMl+CH5x0AKpIEx654k80QnK1t/4CR7V5jFAt8XdfVoJPvBMFA
WLuaH10ig9Cj7M98PipSlb1/PmOQVUBMCLYSBMyd/a/xvK+3qMT+6o89/fPzff/sNy7Fsg20yNeC
p2FWyq/zMf1G4kzkS9aKo4RjoadkpWNseX2WBn+4WS1AVOsavLbE6/ONjMf8a39HCOL8kinuM4Y6
6YOrRP1ANl2bF5tvT6JKD0yoFTIE9K4oIVrBAL2nJ34ROX9Vtk3z1r+eo/jjG2gKPF2PWjld/VTv
8vV5THHDIA05XRdVP0qv6NKY9EK12UjomkpZ4SsTUrH7dbujZI+d10tLm9EPHY78b488ajc6XCQ6
GxDC/qe+rvgOWYJm9H8ZaD37R8IEXzO2/sxSDvybXp5s7Tpisw5ezNVWAyAo8hAEuYNdrv5yBOHo
9cMIt1xO+3sS2supgZsbW0M5CkM2hCtNOHS+SIR3Pt/E5ML8S+LOpbqHtydCg6rgVH6LPkkQX2p0
MbDuV0T3i8lhfEuexSVakM9LSsb+69cJGVhNLqeZCpsHw1qEp8BvkrVdHt2uMUOexqFldfzrfkb+
UuiqtzuLQc6VgrtoXO1rer5XeqgYzgY2xQPTPNmDX+fL5Z9P1+M/xVA35ZmT0QFXL9QuS6H7Hi0D
GKoILr0hozTf2mqQZLrC1E1ovBrZxj/fU27ycfu6RznK2erR283fnvMRlwtKk6gqwn+m7uxYGQhO
Y2H2i9MgbmArP+hnwUopoCAKV3S6crfZ/wb2UNdySH3ubEzXXG9Z/aE3sivnePAvEzHkdu+x1J+Z
LHB+PBNNMilndkFH+AG5N4QaYOIY8T9vcZtT6B/tZD5WDmnKC5G9kiYHlt0UQ98uPcg7/Hm3/zyD
hUhGNJfXq7HYIV2Z9/39moxFdER+nuOm/9Uwto4mwG3+y5C6LjYJbBARSNuPLRvuUBTt/EQakXAa
fLOxoihGZXVt0Y+jH8ASMZT56kS7HSiV+YHeUN0GzOf1fOAwpATLic5QYlQuRtMjvzK6IyNxvYGH
DksRjp7PFIuBe5Rqwm+7+F5Zk/Urw4UI8zRdHpkWmotWeo9tLr/I/7yLurHX2LvUsv/8mQfFsGcj
DOGU5MoVNyi4KYVP1saaUhgaws6O70dOxP0eas3eT+e39ydZ9YEWrIaC5I0mvtFEW+NXsx3JQc/k
yQEA3j3PH8mTTQgb9G+EIcnCnP60y7eaz2BUdGfsVcRjIEnkFFMKs/rWGFgOubPkiuXEHNnG9Jut
8yEUKdljNf2P/P10v83L98Fc/EP/r0/JdMfVwcaSGNHlIzOC35INeYXhbYlkJk3tBvMd1c3n4xvH
Rf3vGaGpv9sUnaH3IsFmQlqMBgLwdZ14651AskkDmi79RVJknqyN+UHxcwn4QzUZoWh/9mONU+Y9
KSH0rcTL9HP7w/nyjtNtkHSQ2C8tMib+q/sVo6rj6Y4X7Eh83amsKgdYoi3IGIKNL0voVSJJTvyr
X75uckjzap/v+8cJrSZK/aX5D48m+QmQq6ghZrHL0Wlwg3od1XyurXi871MMOf8EkhRR846bYqzQ
0djl3TDbFpVoUUMWzY1th4DpK9p2Wuu28bPJ/U1euBm7D9XecdPtNcGTN/QJgOoGVRWl7dvvN39u
nmeopd3yfvBYuvqxrO/L7euJKmJ6qQ415DLVJMU7kRbY9pm+DMkd/5GbjLtanuqQTrzEdTL7dJvL
QQiN+SSiuKwM8f0J/e+oNnVthxoHKJGABfJ1Mk+8WS6ZVh1cy5583VfLoXOUpXYC12D2JRV6y1ly
fQYv17YW09T716pi9LlH1Ov+43yZOLebxIwQsIiYpTK3xCnOHZpwKBxfyNSyGWuB6I0CEgtFDZcg
hqu66bj6cliSap5eQQ7wS+5Osrs93xMiGP0tKPSuBo8NxXrH6Qq29tp3mw1Kg+sZ7zP5sJTQMEPT
peHD0Mf4AmteX76FPr4MBJrDV19m2mOJLWfaClXLe1Y/NkGMEPxKPbLI1qW3Vl07quidJSgfNL2q
8rqB8QabrqAoox43af2NsVyokUZzUvT+9Zk2PkUG2+50KOMN54aSqn3UCj3ddn+kPjNboz2styzK
GPITUf7v+42vpOnVdrndNzjBy+kVvRABdwfhB2v1nAN0cqGWDm7oeWiNNMEMulz3X3Enzq19t2J7
ZDa/GPTDiBOQKxuH2uHeK0bCSaBFmdOccpvfqtGdJo5mcgPMoIoWwvl4v92feYBQK34nicWxR0MW
+/iAuZxfSF13vE79El9R3aVk+aMTIAfgM8N1qMbqikxvXiHqm4dvPT+WYHZFrDg9L2WmYvPPD83k
c/SbiglD+bywrRcY+jfpPiLMV3CxRGguMX9DH+YvvkG3vsHP3zAnoucXaG7i0GowbyIpr5sWcI0X
sPMmpjjHzR9wTbmuz5Sdepyy6P1MRf6N1xHzfmRSipuWO94OqW1FasMHX2hg5+UVXG4pZBef1LVe
wsznmptorAQTv4GezyT3z1gIhW09rskHZLLsUrCbF2s+05RWGXRSej5TG8/xcrbuxsBCzi/R/2Xe
hF+nlz/Pz+ZB+Hkbch8AKWfhzBok46iHRGjGr+LJLfOZiDetE73q6JH8bqwwsBQnGe/Wn9LYUT+L
JSliTCv0OYT0+80NkcsP6Ra3/UfOYf4f//L/+k8/mps7CwkZLpxWim7Ve2s/yOG6qa6JXhD8vCH7
adWcX0krJIAkxUopCzK0ZHi09mW+sTnDLctvaWmMWdhzDqDDr/J52ScYO0UaX9fH/vXUWl/OH0ua
/c2XsXVSjjxv81+IOrmfD3/+tUH8XGHp5EJuTEujSP4GRT8ll0l0La0y4IHDfZ6CLaLWWubazHdo
JlfMG9nSi14ura1ZGeyGrZpXcCE3blgcpmiehCEfoSbewrSAa27CvIm57Nh/V1obV2l2qUj+av4+
03QHRHlIbi2rjVOadYvL7nrN9jReoiOSRsi001e0jJeZ3yFxE/TCp5FNB8DNu5C7cC23sfH7iipn
k0e4MpavtRGBM1wfSS5G+K2h7ee3oRx9osBauzG7QzmNuZB51XRHQunni6X5bZ1nmA2Ek4VMxT1M
O9AONgZAk5Up1TpSart1qXwmFdp+CVNabbqTH58ZF2q8hiSmMre9nCXrfH25HTcYE0F0RDclzent
aBg06mCHPOWEOOkff3tsU1UdcSKSaZB6cSTN2MksbqmuiQV8iSGPModffmlYW+pcca9Q+IUtF4OV
ze97K4a7a0RKG3tC4o/cY1uoVVDa0hjkg/QEANX93JbrY0rtpZexUOPCzKYgzyEZe3MsXJ/GjhB7
okujmM1BK0g3s5T1N3cVY7esssFBemg5PgQlSMCXIR7kpDYaVqQrHR9TCcxb1oz4Fma9jS2kQZOo
JTFQhZyP8v718lfLNZofzz5KJShuQguaxD0hz3ItP6ElCLorA69Qt+ctBW6wAm8aZEf8K7cOJ1rS
ZLplYN8I/1o6SxURnFricE3/Yt6PdCrkULJYtH6dbIZdOwayGdd4VWgos4xrmkbEi1LFqQaE1rio
nouHiZy3bqrB/m8r4LSzhOSPU6staQQR8/Mp6gxhhWo2fp+oCtoWuECnG4aD+JxpR7uVzm95JwTJ
9MU5TL5eS65nwUobSnCDEfZqKQrFqZsx2m1cdILtzs2qV35eS5hYH2nQmS0fS5SQsF9Fg62TcGVQ
LFf6suHwztKUuTYdcM8aNoi4VikqErpbx0KNrwk4ayKbCzhTKryhkrj//cwZ/+AyvP1Mw3n6he8x
3m5iQt8+etL445FZg8fT4bIfSaTxX6WNej1f95fEXDh/nLn61Nz1rr8/UhZWLrHrHl8vn+ffp0vy
sW8phZsyyqfXJ6qy7+Y5eP2Kufhoah3dl8ymPpL7+/nBJF67eY5cWmNoADZwRMd36ltj5tdJ71Vw
kFvvJ6e1hc68XPPfp33d/Tyffu3OH2+0oq9jkpN5//z8tfPE+7hWPxk7D3v8OB3Pe34FN3/r0C81
pyizAs0P5G6UY6vT3FGoJ0eP/37Hv57sFquLodxtvYgEiyw+cujC+nH7+/ly2Q8FDPexkuHyIx/H
48f+63nLf/nfzr//Cyfs/QkMWtyW89LSFvwAFOv87Kg3bNmCefEar61XGFFLWxgSskxc4ccnXGIM
2W0x22WxRHob9Bp6XmOe1HG7nn7cuUx3/9vzc6Tstt/BJIQP9Kyfn9WkxcP6IBtbSL7fTFv4cX4c
0I+TfQ9TEFvZtChE6LfN/A3zTNuXy+328XK6vyHZE9OT2YsaG3Df+Wrg/sXn5/LFoDvevzp6ONSO
efHVbZmdV8mQIb02vTKE7+CK4xosfnqH6Axf0Y7Z2pfXj6zxAfNKZEZdlPTWK7j5uAlr6bD/BHSl
/t11ec0HNmmeFgGfm8U0hTKq47658cGulPa6ssJqZuRDlMrycLpcNhy6MeXZcYKHft+XV20sfE5E
d4HOTG1R1O2rbubfJ/72y+33j8f572yJQf8o2TpVu3bTK6BFXLmI5QwO2sOF8hiqFY+DZ9c3yvrH
2wWxokg/D7KfUWmd7s/46ANRemmDUNr8Nv9slKTHP79Hp+BPxBaTGv88enW9YJT2P58q+6/Hf7r9
evyvv+P1P8KPX5SQmcWvozcn9edEB0x7jvaN9G4gpXD9o+nF/+n08nW+wDennZXnfVttPfx4VfuA
+eNRYSBpIrP6gn9JGGV775WsnR75gg27QPsmz2ze+RMM+oSF5Gny7MZDIP261z+fPqHfBSRFypS7
EJYbuUUWyv6karEL//v99vUJRZkWhYvFVpDvgO+gS5J4IHdxo0AsO1y5xYG0V9BVXda/RNwItAUi
MH2Fxi0YzgFuoysYq8M5TBohnwPUhYvafDc7Yv/L7QN9t+N3butVUot+YKby8vD0fI3xvhBC+ALV
XlmzUmwrNLVoraPKT4Bbv+63NPjvP8/X/MjvH8/X2+35I/VDe7v+SHPjfjN2eRrsVfpW6Rb8eKa/
ApMeuppLH3/8+ON85H9RVr3w+Nj7aX/80b9yppWzK7gy7BJE+B4/ho4QP26X808QRRtly0XC8Brx
6TRC6nN4k799PVIDK/ZlLIlD6WTH/mVAjauYK7DnALoj8UwqXH+9xMgg7ufxr+v+43z4cTzt08wP
liafF+181V0uv6sfYo5OV5eOu5xPt1/hnjxvcMyifIux+HQ6oOv+518/7m8v/DtMGZjlGT3fh51l
f524m2SCaHwyb+38Ch/8GhPR1A69pAM92bgN2fkF50DiZYIOLMQ07QKS0gU6Ml2WfMEbm6BVLW4g
R/By+To1jkCq2iXv7+qgX15uzyen8wXlhS7WmN8jjVe7tl4kVOVpOI339mn4MhjT09iZt/uPnPYA
l8HPGiczt0PtKP86pX42+DOMDsWZTJUU+TUShpoKoHNXwLjo1weCBDyJbOdpXHFbx3PZP06X8xWo
iinlOuqf6ZLfW7Llfe04Si1+eN/fwRX1LAQ67+nn1/0TalDlS3hjKNXbLJxDidLykmQ9NyzxcT4e
0VYoVcIDqrijW7ZCVY0wfZ6vsxKUb1RK1e/ehG/9DmFqiywOZP+vX/uGiIvAqwyyG0BfzFKZeUth
eaZNwTZB1HaUnir0ipZq164+YfQLwFeIumBNhnjbsVi/cLNCYcoOl30ansk9HFzNwfg9my9+C0zV
r1nKNDgCy3x/j1kiH9FSxIns/6TsUxNpiJca5xgBuG8SAKoV9NLFPB+RSyc2qLXXr8P7g0mR9ctI
XUutLJa5n44tc7PwQcTsQZUKklfTaoOz3avpxruoUPPmKqYP2bxZ0eUsdXkZelT7x+dvcCFk9XPu
CysO7rX2wOEf3kCCbTCS0dXvA5rNn4XhQqf89Vvc8qnko7xZ+devt9RrFPx6qG1dVmh99oL9UZrj
mwHkwhFlG+YJWsqziFIrXhNOGpKvJ52zFh4xeg9ZE2Hy/ON8iWFbw5XVislD0QANW3xNtCuBgyer
kJCUz/0hJQf4q2Cq8cn8Mc/T/tL6FMPEJ3Me9kf+Kt5Gua6rXigaHuxbkeISVCDqvoh3eUwhlIk5
vbIXLfcpCKAoN3lx9Thptphtu2VptmueJUD1PTR71nDYzLaY2ZF8U54Q6mlWPgZH28AH0wVWxw5C
xbeh6LdSM9jUfeOH+HmBXFJBld0GjMpaWbsYpfcB4jJVRjVDD73szVM1z28ACQ5rIFAp0+AgBJP5
rmFkQFuZkqxBd3Pp1PNbalhfdqMvoyQKWjfe8yWLwFV3Fp6v6SSjvd8hdEoTwQvEtRGuq4758vvm
/Xc+VMHKJdTMS3WnqwHmwg1oaXqB3K/tCxm6EI3xvgGfdKbuyk2pceiKUhhbEVdsEiXsVDlXf7wI
0RpWbwmCr7zhZoRhtWAU3bjEx/5+u10RyitrJ9qnINLFRHpFQk9qOIMDUpSdWhETxqsY14FH4Agv
qDyCClDA29w6FXC5gS2oXDGq4X37BbcLZppYOlENyN+reoAQn0dazaNgf9yEX+9nmPTQdUmm+FcT
CvS+RpVaavbmMsSfJand4XuSZ/65P6ZiloZg0mDPl9jsliSZl9VdJS5E02wbz6enHtmdm6NGAIiU
Rne6YLMn1dBS1gRWtjfJpZHAMycHgg7D1oByckm3ICBWBWC7pq9pesdO1hBBqnQa3uFUwbH08xea
8366ACSB0zj0zsFoQ5QI4axvMgjE/3DdjaD4cmMHLY0v5rtVzecgneNrScZK6AviFG4TiRFvSLfu
mJiNOmZt5a91je85Zzs3QK4dGzxudK2troNTy9w1SqZYp/AlG0A28B2WMWMTtEIVOA+v6KrWyafS
SIB0XVXvvm/OuHa25u5vYDoH1XAI2/kfK0Ij7dyw5VZbBlQifml8A970zW55Uv3DUCV6pdqmjyRO
yCDtBTPjPcrzKSo5lA/oXI2By0CXuyzmCMCctya3IFn5FiPqB0yZB6mNhUkFl0S3WTwNxeUE+yIE
K2phZhwJaYkV8fCjKBWfbGTk22eky7y8WcfaDZwiVOHuMncJRFcDpsR26oeRCunBLSCY5+Kjuc7p
x88bSgQG39BHl/NH0+sSWwxk40i0qSo1ImV7boBTL6dVmkEBPGHwRPgaJJixn01KkZxmrjg1JB5o
ZHLpMRaRSEWj8lCDR3nEPm2mkNpaVDJ4lvTXSkO6RtpjwyJWuRZBAOstK6rIxcp3Bre8Y9HQbQg3
yWWNZZic3jsh0dYkEMgmt1ukLRoUBWM3hP99Xg354pKH4rZdcWttrcxnldxDjousJe0JZ7KFxwkH
KDgbo0NhGmy7LTw1u+SpMQEvuiJVP6OH9ZLiQF4op7F7bQXlydU9AmpyXm6/kcNmAXxTuLAt7oUD
dniY1oRwk65xjpfzB9z/LSxpnO82UjIR+jaitmScM3IpYTbT+kZmuEHytqoaScy+7ojwAj/XVIGf
che3ILRGqdpeLlmwKPOBHPcp3QDMeIdc9i2AjWudx/10RDqlQ9d6U8zQhfblTq4Eut+GIXwWWHET
LxGqBhbT3A9Ez5xgnOv3FjHPWsbSFSyBlrEzuspkqWJGAGcQtereUiRP9wM7vkXMAxVWrzIhTxvt
ntVgmY13zMiSSKuK677aYeSu6uptX/H3kP3oWGeAxMetQF0IFO5vBIxNXehWm7tHkIq0iKS8zUHq
DM8tbrGKdeGmal8HFxv8OWcZiHKQDZyHt0vwxa+yMk059wJBxg3nSNdJSu8bE/i+1jKkUtHSMoUG
QLT9F4CbFRgnOwsBSjQ6VSdBVPLFPKQhGyZwg2do9ZaMZytvbupslnXmAMSQoaa+i9QchNptt4Hr
nFiESMvV0aqiwKhtiGjQ45eppNEn4FGmrk4WZ1K/vHKo1yjR291AWhb+tq65aC2oapm/8PU0dnNT
NREPEhAvgLNWTkdbFjgjcHMD5aWdNNzUqHR5b2FUp+sMtBVftpHUsdW0QNV1BMfsai2ACpolxPJM
acqGEbsDdJP7Wz12t/Q5T0TKI4ZknUt4bsOxjDX16pRZhTQraK1okKqxX2GlBVoofkcz4Uf7u8wk
R8K0aIKbXmxgdDe0saYppyr+1KwasVJvIMe16dSG0KlzmYVaB+6tsiXrmvVDLU8nMPS6+Ux55GEL
qNjOHRiaO6gTcRv3w2u2vj6+BLqdoQZDFdxCpKhsANSdb9TdGlJ3SzRexTY2+bvOs5WWDa9VVtnc
g777vI3jEFu1QwTwNqvaoQaBtkMFYTQ5jkIxz+S1j22qoTS1NPL6GCCe5kVVKCpFokCgQ60vQL2+
rSVaZbGC6gpvpyETrk7qOm7+kKCYBMq99dOeI4jk924IktNAM20M6blilzUFikeRuDqwpWrjb4Tf
cCMwRm0Un8RqVaNJWD7e5xMFCiPF5rRTC+dXCNZEAakQTH68QlvlF9li89ulXEYbRqqzyUafoWUj
o4qbXFilmV+ukFV5cXRsdWKl7wlvpGSrkAxW8hOMnfQCWNTUIWRAN6iu+E4a0eB1bmFtONNs+dFS
rhYmMufbDXzywHSmIOST1ll6U+Vn3jfT6MyCGmQrOqZDOqZji21HOiWvoDvUwaZZXeI6zSAi71tv
lOmYDj5bhcBI5hW2NQgRninhz2qhYWaF3JT9hGXHRnYoVbTlGzpbQ0xpeNzAm61i+uaSEiEQUlY7
l9bwGwD6zm+Qp9T4miAekKOgmHN837SFOjQaSW1yNq0stdrsauTPgBy0AGjqoxqAHEMb6kmY9+2H
wPfxaGoSyZZP1DBW3nE1jDJbtqnhKWCh1na7RsMDGyEZLtp7y2s3hlGomyu1RGCKKIumYgi5syR6
KrhSK245kCWFE3ptTgPx/UkrrN+rChT+SnrGYfuGOCkBPIR1xTswsuuy4IwOfL31wwTiH2T0RzyY
vTCPDKAYzdebcYF/THVkroKhj3kZtAXjBcZC/+kH/fiktU6DH5xHV5DQO7+nQt8XRPmibnxOymD5
IQia/BzpHP71ppU3/GOe7KabXOD0a9qFneIfHBiefZfuCQ5InxeU0eDzDLMtwhsDzs8Z5vyEcsp7
MGRiTIdPQ0SmnwzSaoeOfoCy1rImfNfxe6M0941CSWXQL5qOETYfhcYCIS3PkbypVN6iH2SlO/1b
/rmO3ZrQWQGOQ7l5XEdujm+nJ51QQAIsmQUzNxpLoqpCABcxWOZmSBuibPCfGFR5jPOV0tKBK+Vr
M02ypHonDZDTwGyptsp6IDVjv/b1m0rZGQU+0VvmJ/P1BzNXjGSuf+rm1vGnOPKH1uot3g0tNRBU
8otqHqERBbXrhAIKx5Y/OAm4ijELOEXOXmhtJPi55QWe70WnjOIfNGQw0fJB6wU4Q81p1Hi8QPMb
xxyE0gZcQ00GAlF4P/6cMxaJd9CMpsmyBoYEmXlncjGEnnZGK3AUys5HQVqHpyOUXoOTN+xBGIPe
U86/l6TAmNLFABZKzD+ZxGD+wui2OCBsUjKWTXRRuYH7q4iJSl5uMLO9iF4NshfreVDjqxoTwKva
UkonR8NpB4yFmN8z9wAj6iJ+Ivi+UJ79LKXxhgKZCb44fNktTDe4wFRMSZ4/7YwNQHlLV36inRWb
7xxQbIEz+V6Bk1BOlXbUz9cpKm9kuY3nXFPnJbSknA62ukMu9GKw12TWvHXIxojAXItoKYHlVmRH
6ZSmpEmtBdews6UTPQlN/HcKbaic7z2Za5xdBQGMkyLONwE5kmbrAvDZvS6/b3b2lTDgNYkjRICp
dHdlkrTfnIsY2FNHDqIUknkuLgkiLt2p8tin49NGA995HLo0Pado6KSR36UXrqwvDh6oX8mFJFGt
QZ+U/GJ56Z0CWlsJVTpPs8/dhU4jr8Qxoi1Tr5AAPEvF6PsYOVqg1TpTuhee+F2dAUcRVkMAR20o
/A74QXTgoqPCHb2gwEvpSMhaW5gYUoFwRLPuRQzvgcNNg1hPdWFirwMdalWpYizR2QgZGGvqawF3
DMYhYmI1E3FF1xI4Xi4wtlfHDQU7ah3nWHqP3lPa+ehz/0NLjL3X/IxOpSWjMaKvjgAFSR02Te+h
ttp3MMRTzE8GYJmkIOpizln3qhSpxI47wbik80gnGhL+lvFB8AIAWCN5q+J2q2Ak/EknGKXovUEh
pZSMcjPxTgFdQ+xo+YkmenooRBjHSU5PWuKZBBABdZwWDloip1twoWF/jCAkocDgDMDnAEEC6Gvp
0cwulA8g+tU0ApL0KoYOnKCSihMaHcDGKMspbxE0+kFDtD6Z7DhFXMCJUorTp1ERAV+PhPcLZ1bG
RRG2E5gTNNFbRwC0Yu6+8B2QUYoLePqeDj0lysiAxFvSSeAnmGUsMil95wQQGLHYTQo/SXB6ZOTz
4ialsBC4zpoRtB7TA6rCdgymF2MDoCvU0pslWIJyyO12grEw0WELHdRqgVFPPl40cBaeOXuVYEtk
DCUXqBkhdAde1DABrNUA0CUYxAJBjH41cGWVZm6Eju4q0IVac28ZlJdIadPcWKBnH2UG2F5lWAix
Mw7IGgFJM/N8/j1vLbiFzjIBZSJ6IkSPS6xY5ZAv2wnmBIUyCEWiYFcquphP0GmFnDXP3N1gQSQi
uGukjTJAqs1CYc/egesU1DHLCH2ORaK4BAXdPMN9YudQ4KsZxCNrJ+A5Lz2n2eeKxws8WeeZ4EB0
AuVvx5FzfY0JzXBo5HJJz+Vh42t2CLzgIoMYSaO0tuHOXkuQolQkuitBQN8piZAL4TiA1EWfEVx5
ySAQOmoRsJ2W0aFKorjHVfNa++Pr7X44/Th/vJ0fPw4MdaW/i5y9H9LNKPp1heCQPKVzHUrFBg76
EF2ngBZWkhFxk+Y3gqthOdmRUYUBqFv5wOCPEvlskoBXpHtzTsQLBEJJDu40VnYIouFSXPGWIg9Y
aGZjopMvNEwCqMBYtqj6AjjDwCadZOiQDlcLRJAoYphONzIwfqKxBoHdnvvC6GMAgE4ZLqGqggQR
giaed5n39SIooL8F50U5IbCGE5ziFz4AM6wl84PRVUCaX3PJkdSUyHcA9uCw2SgzAoFJiuAJpYqK
xgYcIUGFMrnUlUA5uInaMTfKdk6Dw6dmahn8eo0yToLdm05ZRDMwDJbUByUAFVKCw/TjxZAdNBlV
fEdH9QbitY7zNFQ8DfSenOcWXTCFwgstFWOM+8AEsYU8FyEG4NmqJVw6Xw2EYEgSQJV2xnYhoLfs
OCkVHqUpOQpVjJ2AR0SCktR9jST9rRfIFfa8bHuJcjImMPuircRghOHczJxdAY4YxU3K2DkLG4rx
OYJZsAo6C75Iw+s5QyYk5KUJLpjV3kM3SnB4mQ7SQbaf41R/fBC+q+T0qfaA3SCDZWx+dL8Qn1Ey
ciO90kBqBKcvegcTGCjPmTbvEUmU4N2LBH5AAI/lgtJ8L8CtCNwpOOCvS54CGz8c6Bm9SAGqMs4H
d0lwii2xm0HagWNOOi9QICO49Nhw7ntw8J4RmSELBMAvx6kaY2AE3ZVMRrNw9oGvoLltjV4E0hhe
cZ5C0qZA86vA3l8AZUjF8TdSYIl8aMWSfIUH9peobjKLPTNu41kADMSzkXMIiEijhWQ5e1HpwbQM
uYw56qbJ3E4hihlrhn2HzpBzv3xU3Sh5aCSXBeyTxyiXILlblfLViNIoGMlR0f0GP7hMdhXUH7A5
QvFGHwmqdMymIgBE8qT5dA/BtijPITUx5kYnoSg4JAsijkR5MrXk4YgFVgNUauDEJvuZ4Cs9i4Hl
rwTmm+DfpR32yiMPLDAYoUsgL7A3HP1dqQ4yi/kI2gmUk3UdC2YipE5rNvQSyG1z3K2I117iJCLL
Ec1cTwDxmcDi5gYkMRRJAy8AsD6lgCgHrLVxRqPTEByt0QOOi6SMGltA4FoIjtSoiBKuxVDACTOW
JbhkSBnENNZz/lvoDHpSC5a/14EbJbVh9Le2FlJateWSnkJ2HaI5aA7p6VDOTFuWr404Y0qzxBHZ
iQ7xDjTr28YAU7Fk2MCSWtNHgB8MnFsbQpAIiZaM8x6itKHnOj5hhtB2owwXB2f868c5t3wGQi7L
ZOt8s6QAmSWtFce+9rCuRLEIeLQaIJusJQdm2YBe1BCcqEe05jxNh3gEjqNt9xsLdnRWjClHbOac
otWIS+s9x/0KygCPmDgMCwaJQ7mPjqM2ihjxAQDNSs6XivbCwMjNcz5RjPiMQ4gNxwVBpU9ykVIg
lUheI6DAcxxqZ4BbazgeQR8Moaogy3h8vdpHjAcuf6U6DSoZNOELLojpuYwUvKvjKnwErJMml74s
KDKJYA7uBJfdSXUO4Cw4pSiDAGeoxcLiK2LXYCGw4S5TTnsh57vjyoKURqgU79Z0HYpoVMedXw+b
IqSHQ6N7/i0QU6eYZGI8DJTcM45DleO/AsiLtBzpsy8nAx9JChpyM3Yzs496pADVrbM9BAIi4Fv2
MioVgAdu2NsfFYNF/CMWlww4NLWeUzfSArfWGS4UFgGFiXwbAOF3qCkDC2cEuJ+Ku8R9wIcEfBGZ
khI9UEgqLZu7jD/4AEAIhxBnjjF60SAZZyhV3QA+F4FASbPb9Ka2EwiSMFwNm0LEX0PUYv69uTpT
wdJFV6bKZz8ham/gmHRcgYDvnIXcT6HYviFGoIpXLnoWnVeATGto6FW8qnEKUM904IjNOemFuIOe
i2ii44Iygpbj07pohCGfdt7T5GzaZW4AqGDlkWpDRUlcUikJFdidwNJPbJCoesoy56+NA6otcDn2
VKYHbbDhai+sD6CDj+lYkrJDVEDLxc991gxhJ4JRUT3qgtIRi4Lg+VWDAnxjTRF+VdxhizoWGM9j
bqiM2C/MIT1DYA7JBV6kd2QnEFt83hXS0jm/pkQUAg76Fj4Anotyjgnv4yGAEhEtuMZNw6VHEAjX
myqzapHzzcNYVsEEjWJjPYuY9IprwtPTnMCtUB1Xe54BUAArsCU7xusOEo8CV3CXAX7EGuc6Fpjk
74Noj6P0pIAd/SAlrKki0kddYyT1hmxRvSwdOn1f5q4FzesFUBBB0NZ0vXQoKl//FeCmXJVm/L84
5LZxXONsLoDMsIldBZOsXVnZuyxeRt3CFEsA1BpV+7ClnQIyfz1X0+ItqrQ0ghPt1DYENWDzbKcw
i0TN8eguoAKohQ0tyjbAuTuu+lwjZoUktYuLRjrBoZZdimnBMrBOgHPJ1qUE6S2iX7OMus4K6F2Y
ZfW5JnsDgt+A6/uAx+Y7rmdX/67ADebzLF6D4EI5jr0toXQrr5j64xyqAx9KcyVi8fICyaHxdtGW
waL0mjBcp4MOluZqwValZDkFgaXjGBnKWMDl0opLdohgoFoTbA8eF9BBkASbstRLTF2BUYA/W5j0
RycLNjzAL1n6ZrDeAQXsJYdCQnJU4BqV9P4Tai1XepezrKWMDQi4O8HRNwPEhBxLU0wlKeAo9DoB
MfTBvuw/H2lsV9+HeWr5msgvjDbIwjoYuyxUZYSjo9WSjDgNj7r5UV+Wc6RHFXrUTo+OAUt69vZ8
P93zE2P7X36JHv/vf33O/DxPj6dFT82fmynCvar+tR86Dz/fSSdpsEqYVhGpSkiYXos+LvvH++X2
dkPPkk/vMoIVNdPiLYYhC2CVPvbOq+SOeL1dvcavPx3/JTcPRq+g54ddAmDywx/wETk/Ej/eqmm3
0TGbWUKy0+A2TH3KD+r5mMgN6T9Poh9UNWkmY+3Qs10pznJ6tu/ujrZHzwJBOpN+3H7mEbXoR8X8
owNkk2/C+/mZNje+cX7u9Xy5ZNnYPZ5xDfQqYr4XIjsGg2cwL3F/oq0Xs3AQbGZ++vTx+fwr7yha
RJTnJxaLXE4/T3iBWd6ILp8XuH09+eGC/QqzKCRXKfU9mTpr7x6nQ56VFQ/o/nq5/dodLufP3eEe
ry9acpaQ7AKp4ZT/Hl9r/+P0+zOuejr+eN2fL1/x4bzI4XY/DX+4vl7Ohyfz1Um9i3HQhu4t9NAC
cugC/hDgyXFqjS72K16yr48r/MWufI6OULx9XY/o2XFIi04dOZNeGH8Tv2mYniLxx+O5vx739yN8
dBykkX4wbo8VxfZI9KN2/szZmRyfVOhJNz1JILk0tyLZCPibfv5QlYMY0Yvg8faRn9h/fp6ux39M
V+mfTi9f58ux/vFxw9w4SCb5YPGPrpcMsgJ41E6PZtdR0Udvl/89DdAAT4fpacJ0mZ4GD/r5jfM/
5wfP18fp/vyXZAKa3zzkWvXY9VUtV/hff8cjQAt085en/+l+/z/295/na36gt7ejFpj67b+fj8fT
9QeYpJdP2JETdnNiv5g/GpdCS1hy4+c+h4vXOp7vz79+3E/5H/LQFbCinzVBOSIjr5mZYj8u7/UB
ETSEygt4ZoH3R/wstIauXXLwWeiDJL9W/zb7l7gm2uT5nEjqdvE20fE7/nXdf5wPP46nfTQPP/dP
tGjw5TaJxQT0xiSQvtDUlS9m+YGOu2Ry0TeqWZBINrVfqg8KhoXucLfN/Fk0lVB9JbySnT+OQD+L
XR9v2h0JANnp2ZlYLJTnII13pLFXPpT3tr1g69IFU75iOabr/pWGeaSwghcF2ZVSXuiS1/Pv03H3
8oZ2e34+u9qWGer+G0hjKCVasyLU2F+jCsfASnTyDR3rbW1fGL3ND6Ht9XV57nWttG10Zr9hXU1T
Vme3gFmW/VKmpk2aIvnjcX65sGFNL5q2sAf1jy5Wvqd/0V5Xlut6vJloolG/3pZLOQpNywa6Umgc
fjd2sE5/NLOJXk/IXE5MB8uAc+jN2MsJG0IbvnuSOXjdcJQdf8dmhwHcq3mHCP690n1gb2aFQeez
rR0O8A7Nb/h5Ox/RAqqUP4UUDZQY4QUvfv1+pCAJ7Yf8htJrqBbhu5rYlP7cyw3YBaFK3VQzbvmD
+BUWd7vmUvZOHL9EV9tTxr/ZZZOHLBTxTUgyo7Lav36d73/CCHq+1wnN013VD+THG/YH7ouvg8KH
ZJigAHPWujypfTTd/C77mhIuD+oOgwdbO+mGtUGqSWywMqVdbDgUQZWuGusoozMP5T4r5LdnDKYp
kVaX/rvGfnd7PVtbD8a7SLDchnhumiDY0kjB1dTbQiNlY8jLmfiuLRxGCzbvUNC8HzIYkqYt0qXC
rH5fljTwgbL2gVVnfJuAGV2EY7qmg3+2wnpXwxaqDi92xWVXAgRjig/cICTrpoRNVQWHebxj30oW
WnwLDtMKXMgXqtJtXF/ApnfsSu+x7h0X74f1qldg/yvihQTL1Gzp0mKAT1vjO8vBlT11joGGFWnA
lHDC3PKpK8uxJXh0QHjzo8VUOSs6LeGjg+ObHs1BtyJ1hwxRu39w0M75QUkrMgXXL7l/Tsw/mMBw
Q2jTXHvm4SPnBxNSYGf6TrQUO4F+U5GPVHMSL5fWG/Suet7XsiFt/kn0qCSnqQvWkHcOfeaQzsgP
GlocINIcJbQ/oRSCrnhZ9KRc/OTMDpfMsJJhW+ftyRlV0sOamxszyI6czyNlJHzxqvBEFttKevMb
uDtGFLszM0eUch59pCUPlmTYLAMe7c/8mSVbJdlGdCkH9Cnvj0/3ZKL9mU6gr3SzIkjemPXFeDr0
k52rHUlwliFtD0+ZUgksLgj6QWnLzSGTxrrOYXU3P5rUl3MF1wUrWVMqWUHa43mHttZbRg4yZwnK
rCq3NtA2BOhBrTn5yTUGUIL8/GjRnLynU6NHrWd+tT9TdK+lQ/oS/aiwnNZLVHV4LmSTis58TnEz
qIa7QkShKPZ1An6ksqXF1IQjCz+xY1SXk1BZKs/9nlAKybpW5Qea8iDRpiruXfOj6G3FQgQUmQkG
laWRpfmSGzo1DN85v2zG6zsygS6gd3W6eFCTWXKuQ/6E4XRBX4gH/a2F22QLSvAP9J1eMLrLBwV9
EUckKClM7YkMWWT8usDoAsuNYhjkx5QyO7MKlYfeodGMrswNOtHGKldqPFX2h4PK0jGed5Z2pEOk
KgVhbloeDS76ThcY0YtBhEe/qBeKvWxHuYOejGZ2yOuAflKF0numTV+QJ9sRUXf0XvK9i4cXVYz2
MYFj+Q4PBsaK9MWc8F7Ov7kYESgkUludZ36ynx8P73PH+SJdlAH0o16VNo/0GeqsQRfTe8brio85
uD+SNdDCGSQ+XjKuSG+GkC0xyBNBoi44HybqPwsjEwMjPvSb0jMRnzI4OFWMHzK0BofHSbz2QIPp
/nXR5spyc3VXYgboUVfGi7oYgQBDVMkoWmO5wWrDsTjOB3ISut6SO5MMx8CfZG9njk+gQ2JKhUkG
qtpgoTNLnuxW8RSSIilQ9I+UiZTQ30caXuqVh4m5/D2tHnIrRZVEMj5q0aOqlriZHjXoUbmiQZRk
/kwZ/sFzhjNXT05cPdFl2rKcKOaaf0rNT/Ucy/Tj/T7urz/3/d59vp8v58+e8BeX6/+lPP7xuX++
//Fy+vv5dP/Hr/vP07/c/njZP86H6s8lWRwrA0PR2DCudLh9ZND69MfX9ZDw2FNe/Xm6X/84Zh73
PgPaey5xnBDisSdCGJjXalx9XOn8sX9Lv3A8vZ6vpyO30NSwIhS50sf576c/4kr388tX3IY/cnaE
W8ONNSqhYD2Qlzncb49Hv8nsi3TzItnUynGR/CX/y/65/+P28rfT4fnH5/32ebo/zyd2sakFeSjS
0HGxxAr/5/wxn/v74/TH4et+P12ff9xPiYDPbtPIvcxvN5vzyoLnayKKxIUeF+YOpeXGFvBhKCLS
dLl/Sh/5vO+vj9fb/YNdw8yvlJkUYi1geZH4XukLH7ev++EEpWqspQq9TbbTRz5Pv5+7w9fjefvY
vd6uz93ltj8CCrxKVR+z/AuZ3jXNkqQL/nG873/9kQgx8Rh6RXYa/pFb080vmCMCIydRm/YrX54/
7rdnomQez/eevc8u6YnshpzndUR63+N5np/n/YW95lowF3H+xHSmf3zsf/9/E6vuj8fH/sIuZ4mc
kQFk6++bxePx5+kXL7hu7NcR+vTzUPo0ft3jeb/9mdTE/vU1FySw30kklrDi4zqPvNGPfVJkUUDu
p+Wrcp9K7mgm8vAX/nF68jddl/uva9/3ef+65rv+88R/oCz1z/SBb/f98Zxu0Pkaldnn7ZK+Nwps
vE/cYlND1DC0cXNblP9wQ29fT17t2/LOT3uWC1wO+88/or7mN0uTzZobrxWvNWhpaojSa/KajFyf
yRUgqv9zf87q9fO0f8afiV6KZE2AdOWu+botOj3/YfynP06/WW3mjGE2q7/Yj/9yi6/2f17/S/qn
eBqX2wPIv+HuUb7nfQnepPsZiR8nFYx20jC6giu6ygpClXu0srXDVn9do+a7vV3P4KOMXmibipim
YqcNkql0qR66iqbv7yL0mqzjrvP8Ro9b2uPhlc6sfiG2IrvMenWf09+jZj/c4tV5vO8/T6xkSrJY
qf3Sl/2f2dX6++l+wy7O6DdPXkmHLfZWZ9C55rK9NzgeI7jPBpqLLAz9AQr2plCNbKjjm5fY3w/9
ZvMrTL3yVyusbc3b5fayv/zD5fN9z8oUMYHl/kySMNiZtF9x61kpMKEUToPP73D7/Iv3mQtXS6nV
Ju2vb9GpNOwmucB4CutNiv/m8Ce7PYKzVSs73IwmlLRM0JM/Kyu3X+drrtZ+fL3EzYqrKt636pjV
srX7W1TfMSL7eWKV5TTtMBRd1Rpeu+Rt3bwc6ddT7NThHpVvVCQNt3Fq3BYKrmLLeQcK2JMF81+U
3PKxgv9YwRiatXyl4/jH/Sd/ATkFNdqsXqVcb1EVZ3vBxogaCcRH3LV7ywhP/apXMjGr8uvpLWrd
n6d+19kdojav0JVRvx1vvwqfJf+bf4xOY/MFzVJoBzbmX1FlRtt+AfGRI4qTtAyvezzX2/U1SSnv
EevAeYuX0/6eo9TmIqIrjl6ELY4wUpyiIzGgmCo9i0v4Ga9JNlWsmgqMHK1lIEaQvACocoMcd+Pw
TbMLOaroggR49NHUFr/Ocm5+FoN0V5rolXGlEJqFbA+eDtVR7AcaKxhHvHcJe0ka9psPFx3jGc6b
PdysuCpXw5IvhWPeJquej9P+8RV12q8+WIdwhDdEFF1WdMVOJ+wh+4V/sEjQ1ONuULOz4zyLotrf
+a/pPG9xaTxw2D/YD5mmrK+2pOorH/6KInTkfcipeeoqss+7soAHDu/R0wHnpUPp6My+N2fX7m8v
O9apkBQQUdSu1S7t4bL/+AQegZslO5MMFLdxTUUpqT9XCAIFMjI6zsuS4wNeEozf7unNht3HoKxU
jG+IfArD+xRcRD5olT5M2aZUCFhJXm30IAo1+bI/Pr5eX8+/WcMpJINgz7fw1/12fctWmA3vJOPT
zbHTBqBNeqS8Y2QQdXcfQJ2u/CoE1s/xheSgFB49qSKRGIxB0ukMF9qvHcr8qWy8Iv7NUTSKfH3H
GqkVwBkl7D9Gfcp2lcn2qmM+d6kaTv/6BQIFVwVWODG/crN9spCLUj7dKuZ8/rp9nk9/SD4yt4zz
XDUUL6cH19Eia15Xmq6wNp7YSXFy49vMaDkP8VDlOW/085Y8yv/3P/2ndnTiWAlChkrwhkpxiPvg
gk3irnjPy5fwrFg7y2+nxjarTjJGYHiRwTYl9JnHdlnVP51Vuk37+6azoi7crJuycv683543pKad
D4yuLwMIvCdUSwd6OLU8Tc4YwPVcZ9tR6e3XnQ+yBfXhAnKTHj/feI9GkmUIfZ8EtRlq489Za0ZY
5kvdQNqdKtWCaycNn/v7k4eUFUka6iJpWAmLT8c3EBE7BnOrRWrv57f3C1vdmC0ZAsuGW5VM1oU/
9mlK2GqRNSYFJXBq2ltiB6/7yyVVev3xEf/b8ycgARAYcUUCGGDf0+U159BSRzUA/9JPcitPOItQ
cn0kL0Gci19qvbYzpoRj9Cdxxk7XFDA+vl7yv+PfikZqTAC7Mg973pke+yathbESyOyHSEbxkYxn
4L5SK+aywXwG/PkpTgUMwcb99BpdqStA1uZNz7yBNe6EHETWPxztZnLEeQVGwZN11rA/8qR5emvF
g9dUo5eZfE6NAX/ekpA6M9BMFUTJWIPmKRmGYYzMr9QnMtOboCQkSW8PPAzD5Zx+3/hcE4c61Lkc
zRDaes4ol6AV1IMjHXFtiZebxFYt5x1yy/OandPTc/Qk43vdee0jSUBZOsjLG541Rc6LAuCDopVL
tUpQ+BZNS7aye0CMp8bg6yx6eeSPw/6y5cSDa3mVlLTRZ45Zp5Jzc2cX7HxN4n05ZWl83FkhEgSs
zIrV4Rg1uwkgNBVNtyMrtcYyioBVgoJVNa7G7z9uX08Uvk2jbVcXpZ4g+r9ufK7eEttIum3NN3c6
zj3K9BrHAd98kMHHX1Q9qToVYU5d9MoOJS4ov2hmSFeC1WHf+YtMka81FYVoqDv0PrUn6HWvpxYh
7+f17Y9e4H/3fKcHH1QJhr3JOko8gaDjvOyKu94zcnmH3TD0JKKET7/Pj+eDV8Id4wLW8GIeKbYG
8dRmVgTAXgS/wur6/tW+vgad2L9+7Y8pjjmMZOetXi5BHDLthsVkzlcs5c6hDctRwEglYGOjjqE3
5XNPRNYxJE6oZgzcDgkXfwMOhuDzq8SEIvjBUDZKEScNqu7lkniF8ebyCWLHaDkukEioIAj5uw4F
OeV92/NGTy/dFQ/cld31i2U2S8mR22tXjs82WM/FIVMcgV3B0iZxmTWIek/DyDaVAfRWZCvvi0Ts
JcNtRQVsFQFQog1jURaxSnTNGlTtru4ALxMIqQPNwPE9Hy85gOFsjF4Adyx+rXkd6msfOlu8/f3t
6yMqgQdvnhwVqxWpqC1Vgtqk5GIwWbrrbSNptkNxZu8INGipolYCAngs//n1NWWOmkQWw+iVYd3T
NbdFur2+gjSf48KxNb872wQ2i8yhJfXMBd9jKQNKnAiUX8ZrhSXG2S4nOf3mq0nYuJfyPbZ6X6YK
BC2vbf92H+frF+8TqkXyQeIAoS+PYCOEwGw5R3LlqXIkEVl6PhOJ/vZ5uvJMZ1fjZxVv0rNS/3H6
Z3avp5UyDQTahkye3GoaiETkcqXllb71N7hvnvbz9N/4LLtjqBx8RMW7dFS0dB3ZL2tlXtJYCVYk
yHJZCwJMTPCYmKwpKZjm/vUeTwZaP2cNY6pqJztnFunx8tEyJcTMmcrlK0dryt/MjvFBIRTNe5Ci
BCh016xaGtIJPFuAZD9L47EUvDazhrVD60IjyBxT0jBFDoR+mmPunrvNMlANA+s17G3D2lomKiAv
F+P40+kI8h1WoKBrEXqf32A0YLenJ4bsBE+RpN6kniaLVBxUXF1iqcZIY2hqnIM2MdZxhq0OpGUH
jvdwCCxXStWMO4bEAMReJSHalkZtui8wTpE0bxvoWyzta8Gn+QIOF0d/ochLVAjx0wD4QlzTXLK9
3puUVeT1u1ChWeJUFBTBQhsCcoWpU0Eh0imv+DjF20bQXZaIWqX2ZPAAY1LO2yaFIb9Iz1/PloHF
hLlkHeXmNnF4SoeoEfsGh7jHNrjES+B8lvlNEKvbSu5TKsRerCdImiI3TDNz8L9MVJye/7I0aiBd
0RbGSv0lbARgmZQe2TT8rRRsmY+u7u/fDs898CpCyS8LTU5MU7Bc59rZ2B44hSQQTcS8pLWAVBog
yRAs31BRZR13lBkgPnZuQkkK+aPhSFKAvU3RuWYF15y7bxHtldpaNJW3qsGQlsuKsMBFS30NX37j
0YyyFFmmpmQCYFrfKEgMlyfFRV3M8yq/rufD7QiYL1wt15qCg/At1QlGq894JdR/DIpTCkGUy0S4
Bz4gC+OWrUVILjR7FiAdarrQ6FZSg7x4j0mEZpEwlalepTaESnmU9ie5gkb9MtcKZY15zNeJxTxU
E/NA2DGIIEvPg0Qg67e88R6M7fQW21EEz7fr5a9G7NzV+DuDW/QE7AJHe3mYpWJgGFEAVROM5pqr
TyFOZLgAKD9/PL3u03/NPy4Ya0os++BdsdhGVwsJ4fG8n/giCWMZ/ngtv9OyC6LNW0wubF6G15iK
IaMAGJUPFbxCZUtZ9Y4ZR1D9Hhra8+N2PL/+1X8mUHEc+QAiNDyZQVSrEdbJGNgFyZmOoWlMFur/
MdngzNTo+AL22crkBtpmC1le8znMKvoxVmHH//iESYNOKj7PwDQy4U9P2qbizuK0tTaF4nWMh5Eu
Sz8mhJ0XlRfyDCFiVmo9VMSqJdMgEfX2sbdGrD/A3VsmKEd74zi+5gwR7K/xdRLNN64Nvk1QnVSY
Rb5lCH/jCFhApq5jYwQKDUl3ND/1+QXQebLbryhBayijNMW48ynw5TOAlOQZhbVAavhP1FW2xuoK
IyfOUQigFbsMe87rFLaCazC7G0hkJgQGKgSaAMX70jH3l8OO/2OCXFqZWrbSf8qsp8AlSQOf7tOd
2FgrOvbcw4Amkc8cFXeQ2vkzNQQ8gDo6o9Anlo0d2wiwrNLdZh7Blip95yHTfC4eNzzBqcwkzKAt
KM/dowYnXO3pAoru1XKUX16VqrJViucInduKfZ3dzoRulTpIGj529Tu5Dh/5Pjy15g2l1ooOX654
4EsHab/KIkWVzXIPWeK2JpRRoPmal6Zoq25BVMRG8PUO4kPpOkaeaj2KUlSD42HBVTOu23b8c5bQ
/+OUsnG8vLPOerlpUTP/xQPohtn4Si+R+K18ooI0F1IUBZwt/MtYc3w+nm7xOD7fARJBsgvLXpmL
HlOWx0Q2BZD9zYsX+Zxmx/7t6/on76vpWgCxXPANlKWTIythrmoFAQZrgmLgeBJiw1J0ubDuoKSd
ZnL/Gy/hpgF3D0emeD3wnRLF69flgjsjWMm3bqK0Zb5PGcGayk5nS1yyWYynF21kFGMv+eDcL9Ss
qmQT8hI8v1lYpjFOvqbzDW21glRbaCdD1qUJmemu2RIBEIl4nNBvYpoUAFID21OAeDLTdVifUDbj
6krXNPB95HVsXlSDc9jA+1lwO2ftROx4q0EZy3isgCy4PwLDX67XWrX6L9HWD6FPV9RJZeNKgFRm
NvbNmr05gGxxXSS4yBhJmKXd4Rjf8Hskbd1ua17W1fIFILR8s97uYt2hGNZLSbaevV6BifoPWNJ7
jnScqUXLks8ndLWzfJxixHiO23PM0dX/yfsGrkzL+oo97z17uC1Wmu03cIA5uTNjnJUanSpfZd7w
aN3GFPtIZQNoRnCSPBWJ6yKcHASeuOSZRg2VkDorGdD0SKJWCFUGM79TJmykevclSKDrr22VE9IL
1yi4kjpsK3cuKCUbGBIdU9bLwS6N/K8g+beyrGS5IDG1QD8rzxcMk3TyS7qhVx4x9sxNmnoKRCVz
5fmk5Jvy/DBdSxA0Zy44FtgvK8xxlSqRT2ISyld5oEZO0nynlgGiiYqpHFhSFwQsapNhUULieTZF
O+ZwYtEnW6yJENBN5Byf4ZBGwcOn5ANjuPnke7v0gDhReewQF9/xzTWcafE8C+UG8hOmNAEsMbJR
VU6puYlSu43ThoYc+I3NKFsuq6Q83ZkoNF40PMLBLRPUgUHuEbOLqIsyXwry03yLlgXau+rD1cuz
4VF+rqKWMMTTH1ELJGVVM6GxCDU33ArBlMbDZDefuBFcpwumVgj574bzTIpN55FrrTZ2/Xn89Xie
+JIzgjOTAZhVkhnS1KrrmtThoRjiuue5LbJrJl1zoiBdeUQ/FkIiH3LstnO+HpJnBVoGwK4k93Zv
HO2r3SnnjM7fPk9vf3ze4y7d/2o1Q3Ac5MW56jxCIauIRx2fGArYeXBCNLC8TakvWmhQCCJpk1Il
CPIofDuyofmYgTnFA44IQi0HAt3uV9A8IoiN2TXqCAPScEBtLfrSk9OvMbxh4YQF1ze0qqqzE4ak
wmGXtp5RbtQidRunuGwlwNiFM1bJ6zfEQhjVGFJHQl7sn5q6iDVa4/KkKsWQexZVJah5kTBlswJl
F7H427lHGdhbvUCCDGIY3W+/+Hyo4LpJ1GcKIdu7rM3suGE0PBYgTbOJT6mKIflCoBK7VDiMkd0l
AmBrnelAM9dmC9XBcg9uUmNGmZXNESS1GtUtU8oEqkcvgaGtoM6SjLNoT3mNigRQLWgfx/VgjBR3
tayKF0w33lkWcXN2aZt5YsTuF1K0vff94Qtk9m2HKDAlGrmB26SNRP2bR9YQ6ojJmQkC3Y80tkE7
s7i9XbLZAkfgHzpa8RR+3yykGO5ZC3RS1HuDNbBFpx4wkycgBZTZm3dUMq+M357QP54O8YtBuZdk
COpzGU5zOozmOgIU0ZXmoytUZNzuFKo5dl69TcJ/5cEii1tks6OA4JQoY0TDZ6Fkcr5FjKjmoOqn
DhwV0kCyRDMqDBVgRa2xLPO0nnfKeM/1wZdrhlpHjuX3NTS8k2UPQsmPMGxzFawzTJOQenc1nMe1
dmMN89akJFmwrF8sk5Lo7ijdofKWrIuwN2RCa0BC6c4Ml5F1ZxQTdNf6DfBVPzYwvaMno9YsoPTf
i2chVV5zQ3Inl/MRhYmfWai0b/UdjFoaei7KczMhy9gA1jYKX0sQzPBK63LSUQ/1z2h8g2Sko1Il
8HZ+5fEqx+ou2qm/ZfdoKp/Ju+QhZhnR46+Q6tCupFqetm6RjLyvhmMO6UP2/ommlMxEBygrdJLB
2tMdBnPlfHLDZ3fi+2U4AIrzTFppPvj20HbN7VI5SLYxeZDSKH2yzE1eAe/Fa0iML6reeE9efXdi
69Qb6z/P8xI4UohloAmQROGbQpIa0awIDOJHQkhKNfND68mG2yRNdJr55Jl1mUlbYIaCY5L46wNJ
7SHvrxdQRyol3yC0Vr6Nu2qKrXMQkqHms2HWNofxtlpsweaanhnKyLa0Oh+jejyDAVidbFXZDP0r
eXZvcMg7WVBuMjGXhSNUcwQmzI8LYbha0CWyBkYAyBLSIj1fIF/IaMkQeZnhx8fTJ5ooxlEI6zyf
fiILmE7UMQ2daJ6l4UTqLtQcphLuub08vx4A79Hb2sZvzMvLwEwIWR14gzEgYUvPRc4PoEcKccY4
OIsf2EEKJtaNvjeU2wuzyIzZit8yvQjw6pxEkdUhegegawA3Mnt9MbIM/adz/Bt/MTb3Po8LaN7m
crTtn7fz8X56foGKTkL8SjG148g82+rI2B7q6+15OT8/0Exrgdruls2mYGhiSbiYZxtaYSq81aZr
aZX45vi5DDaCQanim6kTpDtUUdykNxprOE+BRGIZK2MqU0AzaMVgNGXEAs2gkm7LmMwBW/vNt5Yj
EWFmhqmKvv91fr7zXqOy7hsdF/nbarluUlVr2Op5JpcQL+5V1yDRKqGac/JIhSqmnnDzSKv1EZe4
KiiOmNfKbcqdWRVHNMYxeI+M4gowbPM0LMeD+Dg/HjGaQ30XlVt0g1y2Qrk9Tv0Q+XhLP5Od5SPD
6gThBa8GXjFHSKolPawsuWoUXOkyA2g3RJF84SjR2eUr5f3pO771Uw43TPxVHL6GWqFYXm/7LWh4
wU5opXoM13Gtgvzns3w5PVFpqmAnMoLmGKA7rN00oDRj0mBCqdvYO4IeA9/epnNNDkyloSoAHEzH
TFYphmen2YoATTF+q5eQOZbXrw/U2y8wVr06MavVJU6QDHnoj7XiQOOxrDZ8x3Y1ZmtKIqcp0Tg3
MSA9bL+u53/9AtZPMbEgaKbIc7ZldbBl3dnAozQsow2rJze0hYJnV479MRXKfhscVc2u5G+nsmME
G4rZGkuuypZtssgJZ3/LvPEN1VckoUI63UINjSctkLQ+RyFbqVMAkXIMT3YazO35DoBSt1L3Diag
0RB5Mlu0JGcs0xVfn8c96AlvDXK3Miwyj6plMTTOU65hyaCpwZKYo2vM0AZeRG2gr0y2ebm9fT3g
XGwnmt01cJGWII1Vyv7YNNfYaD9CmBSlZ1VhlsMGNOKb03ZxUBQ0A7xOedhWWbe2zB2thhvtVtKz
ALu07R1wyT7OxyNYinBHTdorU6Mml8ObWSmsTmkpS9vksQdbWK5eQFdzsVutfTJdx/D2WvUqoHtq
e0lqEDbCq3Tr3IpNN5TAbgj7BNNqtwy3L6frGyB3dBolluf4D1Me1QJBwk23G+ULctnN1NaS3Rs2
yLSKeseud7evwztoeGfKjnzoAuJxUpaEV8tBNvnx6GPeAOyzfQJ8e1ZK4PoXz1/1Z4Jbo/v7OD9Q
YYG1rjlULt+3DWwqq1HmbC7v4ZMFHubeGtMu+eQ5+43rvYcAkgwLf2RFDZ9UCw9u241dR5sKTimE
btCm+4e0X/z2CA4kX4D3OGEcOkalgYqj28f5CSRKSMMAXDN7rWXQjW4OCi8bj2AI0XYb8QIEimu7
cTRowi5aCpfWZdnaqO9SDEDPpOrlq01dlHznIM4r4FuVtFva0I6V+SvF5tGHDeKu/jd1qvuH6xFO
wROLWUGi2zCuDAIB1tYGlTH1hRcQgmqummT+4tfLbf9sMJsW00iU3DCnA/SeENsrHhoAvTageqI+
FqENmxjR1VqaweOE/fXIaOCSw1x6f/fUAYTPsQhUqDiAqTlM4a98MDXdUZerRksthUfDZ5MGjKL6
Zlb0/fQbZLItNmjnmQY4eP883uwVX6i67jjeyh/JwDTHI+VFsJGpWFZYYW/9dHvlDQfr+ZW6uq8m
ZPPi3LiBTfVpiF3XMdSuakaySfcW8t+ANPC8tmVW2oBkBiA6WKayBYi959+pw5N8mfKWRpEwRzyt
0+SzL8VygbZNN6CjpnmFw033m6CeIbXHIj2NucdToIndXmeaPRZgcRNpvFRS3peB7qBa+DyPF2wb
33LMKt/ZTVVna8wu4Od1c3cFojc5eDrLCu79ahw7927JBErr/kOeo83ypDjliwp0eA1lHT/Y/X0u
QgKggKbJzKLAgNBJcHhjuaRqs4gXxINccQ2kKIGpHyUNVPk6gydXyZ1RHUXJnBGCySA34lTVaA42
CQPvFFjXjOHnlEKj/oFmhQosp4p0gevP9amfc3stIxkY/gBDIG86O7Imm9Bt3tSe2upamXgJX0+b
x9YRcmSJOjwM2NHefnNKfPbMQON7iYoSCQGdrysIpmZpJ77e/hH36NpXy/KUztBmjhOcCg7GMcVe
r+ac54GjoLTB0ILoZasCAk0l64bdZ9Nt7fUFe3yRcqycGvbVAKPhOHBV4usCdlgsLtU29G5buBMk
nqZybtccGOc3wluPn28IFjAtz4iyRHI9FiASSgL2lC35lp0HcIsvSzDqVZMKdkoi3y5EcqVm1a9s
NAo2jCZaXFmgzJRlmjrWEfhGw1jaJLu4t0uX1PAuqf0mMpAwU95KdhwcvHYo4RTPhU8jmYbR7Uw6
8f9tnp+tN8SAjoc+wkZ63DzPnVdzTm7poJSitEejstgRjK/UuzUY5a+G6lSKKSorQT7YFpnAZ/ka
a1b94uGG7JiaChDAa4Hg2xl5JI9OdigO4MpsQHdm1WS7DvKI2CrCLLqE+rVT2ijXkUw5L0uEBLw8
z7D8lvEfyt2QxHRuymDbTm2r458VXCdcZj7JfwQD2q2Q35/2CgeGm7BlCEb5xSgHwXa0qogqZi5o
j5oIZnhhLIreHwGz2/E0CmaoJLDn3IS9atfnl9P7mfft5DJXXG13GY3yJRW0Xm/PKP8voAcwYZ9V
56FFFzyKaowO/tg/Duczvw637zO2s89ITD/t/fLkpVXT+YYiD0Fa53jjDd9fLqcLH1+4b1s9Pnvg
VHtURWtso6VkrVz7JOb5yFfUNdz7b0LCWfE5Ppq0eBThYhwIaJ6km5dtQFxxKwvFkZbWzcwb+VsZ
OK5RY8wizgprX0u2opryDe3/y4/mCebRuQNdbxSDONaz63CESihRBrXuCwb73BEKQ0q5hm6pM7f0
aTGdYG//ssUKKqdVguk7WpYeNYA4q7nIbhUhJts3WPW+NgQv7DumB1utbScuZOwc08Kj0mAazMOT
oYr11TO/EIxTrjmquJGIMaoJphZ9wHlE3qgmOWfd7GNDJtLwRCva362HnsC08Lbmm3vvtEoslULd
O9eBOmwz4RY9lMWGygRgQNstlE/R6eETEI6DaggvB8R2QnH0yLIGK1O4WXPXMQnetZmC9k76wJA9
qnsLyuc0ivBmdiXfOsErZvZTpec2vLI6dJt6igKAOuB+/dXBszxq6RxqUZo1d0tHO474T0eethZR
XAPbGrEPcjMWMKzljyrrWfagFM/SX4c2GHUhZEyS0S2Tw6xXK5vtpotme5jUWW+GVWMqKj6G6ZiW
fYDCxqc4la71fmQCtUG1Q3qXc27jnO5iaDRoSuuYNvn5ivThWlO8q1Ndma+EwuTogJyiTLYUzNs9
aYHeq4UdGA2lwbo69s0MAgIlJKR6J6uHNXq1YVCd46fLra7g7xbyyXVwWyWL252hJdsOd+l4NToF
GcGYa1ry0SoB0lah8rpC5e15rqamA6Ek5Z1U0KURHGJBUFsDQetO8jvfq9rRpEohAlUXgO9n4EwD
qCocUdBp2DAHXx0j8PbCRyOh0SNqGJTFT8t0duMYqUFpAmnumh81OmwoMJYkMK46j0OCeZtjwg4q
rVXJYdwkcFnVOuh2f154CLtbDh037AzOWRewfQft1pGXCFcXphaQzralld91pNKrPLd2vR9vARzX
X7Ao92u2V7FdswhlQinS3EeglCwJcpeYCepZwX+j9s05SDOZaRN3xHCYwDLR0m5J5Vr068GUR23M
75kRizttNoGqfPMWYVCEO/bGu6Tz3N/RQCzNZKSWdfK4/Zq0HDa7RoUgmUQG32iKOAAJoPelbHas
NKkynAVbwuaczuPrJd7oA+gkp5VHxVFjNWp7ntOytNG1UnQ9tZrN0SmcNO79ST7JpE0T6KLhFIw0
tGYyvUuOhuLjAt0cS5SArV/32/UNjr3TqgmUZlYFAH8UCVLSNmnHNsX6BUNnMjiD1I9Po2xweEOt
WQEElKyARFMH1QGambqHqC98JgjfrHy3i+4BvNNGSSZ1tUUpq8BlU0zJaLXZAk5neDwYcE5tfl3P
h9sRBN4AvawwVXI6mD9DVe3uOjIx+2ZL0HY52t3T0DuBixR5cLRDHQzKAKmlFo1AmOTs//PdHZ1H
DTpJzqUBCVkXmG3iNHRfI/pfeR2tmYZCpFSr5RsLguOlYNL4TWN3QS7C8T2+B+vYaJel1aI4DjFq
Wk2IJDvuijhCGArWYjEqGftSoNEwRxddxkcp9wApCYaNjlbTFlJaEjOOJR3UzrjXvTMMWJnLIiNR
D9ivt+vn/fTxxRvHbtGOHfZCer1FF4JHfQLDgV4q79PzXyYw6vHn6RcYANeJJiJVmUj5BTKvJVlr
mWY4XfcvUd75GZJLBiTTpwU6NZSBISnTEHi0YIYDO/B8gUk2lZNnCjfLvbm9vqLES7sb1UQE2IME
gRB2QZhJqjL+f4kFGb/jHhfIj/1Sh/z3/tLlP9aLnXj/LDtkfkjVJCiEG6yOB0OwYwl6h2+IPPL6
RVfCMnBNYx2iz8XcibxUkPNShPaxIuBl1c2tIkfGRl6luK/jC7WU2fAy8zLZvfYsb/bznlTJ83wC
y40NCfJyPjFCOGs0DrYZyvXBzg9eZV4y0CaHqNLX8gtaMe9/7mG9Hl+Hmyb2r+Xm1zK5ifimBoUN
KROu2D4NvJ5kQPm2FaLvJU6+VNJu3XWC0fF8B31M+yXtfMD9sqW7CbhY/T0dzGf+QpnuapONBWxM
/0qeW7Is3IT9jvrLIGy5kgHlqeXr8m+nOkZxrC4YN2dtuFmGV0DLbH/SmegzySspumEbeDWcde7l
dxi0lCUjYZm9fe2V0I9hBGhGnB4/zo/PPjJJ7/+j67JHyRwwUXVFh8OpNjyqTLR3lqgQkc62Qscf
v5PXuJ0sVaVr84olOAXd1W4Snmf9+xO83xCbrnVvJRKM58tTQvqb6nQpJe57078HLTlLbSYZaGb+
99c1qp7b2/UM3ymY+SDL9m9MESMSVu1k6TLYBqx9voIP7VwpYqo+Yqxlj8dx02mdxBa3bnvao2Vb
Fp9rGrw8tgK0370ADQEZEy6AjGlVGijN4NNojc4xYs9NQfsHNrs/WE3NqJtVuBg3jpsC2bsanijt
blI87GmyCbXhBEW5GpeeNUAVBlPb8bmvNrmGCFnrd4rIANmpGaWb+8PwWsvY0r3bkiBQQByGOHZ9
q2cC68vp5wn4KCOXaG1qkccpkcepmz7AmM9pelCO+IjlGFncGRvabREYFwp9sUBfrBh1WHdk/3H/
iS6kZY60LBdvS1sMd9S/4Wg1+lDL7Bxp+YGwzkHiQs1BqYLCoJVbf5bGMZ+I66zZTj/9dxJDXknD
lM4Frp8Y4gAST7sp0qlzcdK0d75dWa9GRGAEjrTLaL/WWIK2eK2Ga9xQ24ozUIuaCK4+oxcR0zGr
rEUkxnFIPmxpARB7Cd1xQ9zyLGgBgY/bHDwdAuOkUIJGCwtylnFNeMoP+M7guHCJZFRhK5YhEOS0
2KoEF2SQBq+as3EklwGlaZxxP8q549jnAEcJnWbuyvwWiqMGDOGirIWL6+ggJ/pAJBVaGo/WaB7+
imJ0RL7tOFhq/WU1mtcBMXyGgJtTTijzC5wcSyDEEnziCySBfzL2UFpfmI2weK+hVGl4TNfmADfh
SWWZAAHZa4PsNWcd2V6SSDUEUVut6k2/7I+Pr9fX82/kT3eMazfHVFtwLK8dA5l+a0ziAPgRmCJZ
fqM9B1QgbKIrAncVNoAd+MWEUoxHsnYx2aR3/4mSfiKFSTeMFoBB8sjMnUwH2/b+lGj2SCOF7wga
W5E84GnzYunOqtCoaWcL14Z3k7x7PtiSlsUOglG4PA9eohBJMKKB9C0KZ0iWJEsI3yheIUfCMRtV
qtnGZjmpGVBhTUaSQAqo+S6M0rTnQ45+055bkqbJWEA3F8h/3m/PGzQeUlgCuhRFmaWT3Nob6gqU
mq+SXsgBEF4xXhZR2kaPul+hDTKcUi5IgggxNqZ50ZqoLr2ssoX9N1rf9zpOuu2R4en4BoNCztrX
Ior389v7haVGDeGEK/SKEbWkCWLYDJ6ubUZwI37TElCCF/BdRlPKC7mTpqYtJyojLM0ZHA1dJo9d
gzsI8VeIDEzlwRIJJafRCGeo7HaKVpOGSWlDdjhyGpVjzBOop0bue9fOCc6V42kHBQIGSq3g5jC8
d67vp9d4ma8HCHsQILckNU3oCfSh4gqBC5JJw3ik3JxC+c0lbwwhwLKKPW4vJx34FWGjDzHz6pD2
J5lRBALhXXYsuL3M4XDks0EtKsYtrfMC2sBZDBMUAwaVmEtDPQbLAaFb+4cM+7RITpkN1cDowhoA
CBAEus22EQ0hz6oSZG/m7UnuhAmQYb3l3DYkQb9ZZjVEPopR6VUUus+zAvRZNb0W+paowHV4Pc6i
LxLJzZU0kVji97L1wKgPyIBmmY3GptlAckA8BOd3VlMx/9ftjOgsBD/JkJ3mOj3sYZZVBM9hTnz4
gSI0L5mkLR6W0EzNBKrYNAIXh5MFasRRP7IOB1RTM4NXCK4HpzVZ/wk5dFIjJVU69D1JE7n0mjvm
eZrz6ff58QRq01pRskgMgjsR0OmJ9Bqa+9jU3WjI1QnmEOszDP7jVAjK40+L47PfGZOHPGG/8Ftr
PtVGIpvwFG/zVI8sL8L52rwHnNFpdebi99B4HjolFhpD2IGIPha0YlQC8vukRAyX8jJxfRCGmySa
+aPZIb1+fSBn1JSXEvZXNChx0DH3aY4bGh6fJhSgUkY5WhLkdAXRJDkt4Y1vUKhI2iXHBJZls7VZ
4MRFJQ4Snp7Dlsz1IYvk7gCUXhT4klA6KXJrudkFgCLhKVwxk5pr8ZhA8Vg1i/44Hb7uqT3NzHo/
7ZHDK1gbPLG/GxI7Tgtp8UDLjvEo9CWatUSXSS8f7KbIjmxPqbmaMxWbDpDFuCUpLIFZdA6ZXfOX
79yw6wH+mm9OLoKVxuEEBj8HeEhgsGSl4gv/Qt6s3ExCpNv/35BXoBl7S6kQ2706knzIQuZq+49z
biJ0hlHWHHCFsjSmResa7k/rpSgzpgiYJnr47fN0RfRw8w1MPPOkvmMzyOX2NFVfNuzNv3P+efpv
KNtsGTefD5kQqOH19wjB+EM1ySqWx7BsPCCQGuOcazx+cDMsoTSz/oL3otEl2FrjVODLyElUMOLa
Mvh94L52jICwxTVDrgARABxHiVsXsDR4S05zxCxClrwnxKXnMfML8eoWW7umrXM1mkL5gqffh9Pp
iENEzyTYaxH0+a3h95uNQPTM9UGsPZIATNQOu24b0ZAyFxbkI7m+Q1sYoME1MNUSOAONGQbcbIE0
VGpXQ6Kjtdw7sk5pDSYt29gga01Tia1DDxzXeA6vLGCUeK/jF0IkRZbpx0qZSsr8IU/C2LLIy1Va
beZJrqd4XwgoC+iMtnZyOVRvQENSUGiouGrVsbJsx7GBwWZYL25mem4A1RdMuFUyZHAoX7i5H4PH
7Dka6/w2kOYZX2RRO9ttKerfkD92uukxVfpgNBwIoxl/kHxvi62hZC3WrNPKWwQzoRhImeWSbJEN
YrqyP9hVMLm+6Klv/AcAOcnkuavJoC2nyqWlWT+4RQ2R3wgXmhTqGDGo7TnZ/ZakrGdi0tr7QfBF
OLNABUKjJXL6hVbNadT7PPd8FVc+E/kDxJOm6ceNJJbGp5KQJmk6UoU5oX6Yfq613kSAiNKWyNXQ
16LWqABPEBqD/Ah6rVQ9I0oPstdz7ZMkRq68C5tHhgwpDIO4vQQ7b6lKom5LtHAtWvMrgsSgbGZU
K2VpOIfsSysDisjyd4OXUzUvAQ/R2lB0pAJTkDl7U1taSVj1fXoRanDRcVSaOcvVQEScQpDKUPaN
CBg0K14UahNbDibFDcY81PxoeGpc2+bhvAxDMv3GzKMh0lZNBfZ2QrMGB01qGIwP5PpRFhxz8bJS
HotpYVm230yt71XhP453/D/P9Ez+MpptmQ/cGEYKGVA59LahCgOiXAYRQm6BdGBZqKyyx1YdJ95R
okI0iqPW7SagWVtUEDiG8bK9ukHTGs6uTtaa+44fbhekMOiGFeZj1lk9/AKUFvGsi+Z8ZQqYnzsw
5IBl0wsuux3jEpCOK7YAyh3WanEUQL5UAqXiidku3acFIIBeycpm0WwlGmwIF/Gny+iL51+iC0k7
TYhKTegWlpHsOs9k8xsT6pq4Y4dg6XEATzrYrwfKtPqNsjZ232phYV60hI0Sln6m9mAHWMfkYI+a
suXbFhCRNNEhOYw5t7yp7FgKszhXxaQFDEoLKKYDHZzwArkjHR/aLFs+3e5XdJ1Cx3V4WKCjvVKL
txYhpI0ayuq0J2SbvPkGtaVNr6dlxUWDNxTBodDN1CxxacyP59dMs0dRSAiMvcw2ri/HbHWKCFwb
gGrq+/WO4iJhg9metiZzswDI4LZVEnOzDAcclssTVXodxNdDde6G9wloyxyLtrzaIrGOKUaJP8fT
fGNnLA6uq9oS2bzBklpiiyA82cN/LTRg0Y+jndTEMIUVHVL088Yj3yRw3aGqsp5BUxQchXaryx50
aldYO2qwzapDwH1Drlv4ZU1v4JotI4onTVnM3BWmjwo7F3wAvD0TtM/XDvf8H9zBEsd33bfoFBAR
ktW8A0QEWhgOLX0q+qhOfDCMhhrWpdlGOcTfywVtRbVguuCIX0bbT5kVHtTbnXaPIs91uKvXnrQb
ovBE6uooa8iM0d8u1kKagrZmZOpQv8sd1YRtQwKQ+kX9OF+/UNKTNrFg2sqtYvnG65GcNbQmQ0nY
rzvs2EVWyx6YYahd7OSPgdnFhR+roA0Wuod2XrE1928AJDW6jgteRza4SHVb1QQaBtd0W0dGKwGz
tWgw1FDgvmq7py6ul9v9sb8ec4Pqx4/98dj/qyhfjTauRMTWcwXL2C8rEdjiRDA6jWdHorOgJCfo
VvfFDYjWSHA7Ljfe40ftKrXOfLNvUHTKYN2xYygyHD7QTL8Zv5UMR2JBqHtNaDiOuQ74fD2kKjrk
XpGmSyXxcqqLjjrkCqhvQmvB9IPeUq/1L7AToaV9JSQTVLaTRzEM4Ezfip7X/mCnq0zo8qUesLmM
6BRTW1J12qFRsoRpVmq09QzIRm8qknMgyc5q/5xkk9qdmgTXhHNKgWO3URuJm9SNlrJVRxm+07Fw
eyWNUaJFgwOy/0+QwW99Fe78t45XHiA8bkxAXYOjjgqkPUOussYdNJsVvdZ1zRrrGj4OCYHGtrr3
DJ+7gVZDrizpSTLe+mTdAU8t3gXLDC1YeKOYLKQtR/9CXLVNJe4Gw5X9DUPQrvEoHd7npdIfcXsb
5zuuRykXGG+6qdJ+s2A8s6NQskTZBr067xhCdI3e2Gf38dfjeULFOcZvpi01bICsVtzNWufl9vb1
aLSpYmtNVtb2ukcECy22wfFJIWDSqiGk+pQBdVhR97e5YVSsrU67WQar5yNCk7rQ7tVfhDcICdG2
WtpQD5+HgmGEv3btZjNb0k+y2tOr0dYQEVQks2fLeksUywi1MZtCXXKUh8LZyZ7wj2euDoBndY4H
KHnN/hk+SMsxVVBCtpmOFU1FXZlb1uABaJZTs2Uu61AexfVB+c6k9yHH0jVbvvfEebhVhvY0XA/f
eTm9nXs4BCDYtlktQWd6NHAsB2WVjKVAN0jrJgW0VF0tZntgaPi0ORbsHLlokMaOpBhMfMNnix64
Z5hwuM5uW+RgS6TTAJxnO0KjqvXDU9O7a7yJcEpUgOhTUq3NaTYuOFTDnE+xVaKnDRpP0buS+8MX
sjrOcZVT35sZOGAc3HClgnqCDY5jrsuSkjxMgEKkZMM0JizbiLWCYuK/lNw52AkBdoAVTOetmZ/G
j2Ifjq3MRQ+VH3UX5ng6RJUOk3XcMJgpb7XBgTGuYybEFZ4+qoY1DvVKz60kc0IICVCnMc6/qJH+
rwgOMbg5LtsHqjF2JdDKuVljcpVF6OAkP7ixzOmhAIs4eRlXd9ATuP1C3EsltuSQW+oxevwcL2ge
2bt9Gl/UBRI56au2SC3K9pJktGkYbaO4vxOokVH+4hzHf+x/97MaN6RFTfeN5jyoUiQIplXbdDPb
2JDvum9VwzTItdpxXTWnXg2PeLBoppaj/Ui6Sqe3ETil5DOYHuRaBpU3qVETRdwT0n9lBhfat8dw
6XBCetqg0QleUtZ3LztonvaY4sImX7P4JHL+lktXlUEYIP96jx/YZG1oVGE/D44zyG0RTPEFoUX0
ecimY+h9s4nVKiGP4Q5byzQPJdFP1CRUCssZmHIUYXOQFO3Gva5UrWW7UTqOZqfFqlqjKE2BoVn4
7kCQ02/U4YqgVCVTodZyvDUS0TdpGXgGNW5dElBtz+xowV7dix5+apt31MRLNA8C1GowW12Aldjo
vicTqFB2+jvJsXo7mdZccNU6lQGxQx2rCUFrRZdZMSOyXgMXRDI96sgIdxw9GV1yxWszSIc4DLeZ
tmpranpDwzynuWaWTCn08fSJp77YVj/LIsvXDwlAMCnhs1Uc+wFUbntckpsQQBCC28vz6wFTTe0+
iOtqL5hwpK1xisj85+18vJ+eX2h2cuf11hRou+Oy8e1pARNDBA4K6BjOc8XAbaqm8mzd7Ipq1oZm
ZKcMquPtHZTpveDd8YFRCkvw2SDwWbM1vcsLmKX0P53j31AdaNhIHUpLoHQlgQ/K1nZ9UNHoFW89
Y7xAPAFrxDomzlxv08v5+YEnn27IU/UGAfaN96pky1Ub22wgG3W6a1IMK7ganGSnmlTbBQkSaynR
5FRWWi9ht867VtP+/ghgD9RuU+1BwzI7zQV3xDb8Oj/fkSPpvN54iI3Zt8aHFgeFWtBmAxphbdg0
IGuIXJrEG6d0s46IFL218uxld12jNtEsEKas1OZO4rSL3X9FTo1i5GxEUpvjB4JDVfUDsfYaveTP
ZB2RLQx4QPzY1HDLWkYybXCyu/4ytlhvNskNJYZrNgSPyOMjvYTLQsNimGQfloHqx4AQdNqVYtPw
R3ZWCeplgEq5lPh2G452+kIJpocQKIuHbQ39FiZGYqw8WmCeFERbr2uCuC2EA6Q6xnWas0fNEeH2
220gke4meZIS3Km20rp+feDZdh2TGJ2SUY15xNYzMDMKxlAsJpndIv0Sv67nf/2C5mjRIclvaDcG
y4ocA2vMedImTNwZxSCfc/J3Q88hbdojMt9OZQU3yCL65tSmkaO3gY4q2sSxSiepBv1GdltyXIUS
a1VhqUWHCrlBhUEoUm7Rs0OG8fcn0l+6NeB1xF0+j6hbvrB0IvGaHZAv9TwlEIBSnPKqoayo7Fno
YBGOfN80jF34YJqVBek1NtUCK884J3yZMtKloZlQ38JM7DgFWCGYNro9mG8Ni8vfen2g4kAO7QTD
2aDxUWjD7j2XkE6zBGJRrYIv61/ksXfPAdXIIRFdbFs7LAqyYzzpFm8c1xabVm+XqW4IgnvC0nnS
ZtVWbQwZNgitb7Or0628nK5vcEyi5CYL0FQqLGEVxmxNNGUpbVGOo5QKlCgY0qmbNklvnZV9+zq8
wzFMC0pdiSZE9+gGYQTD9EpfcB+2cT3gYMS5nwIqc++6b/FFto/O8Jbx29buzSXqVOjbeDxMZb7R
cJaKYeDcOmUWZprZKvwVxHhIGwcHxwVM4yr7sAEIYuuU00ZFkecMQ7VjAT66aLbCN5oUtfWBtmgw
2GrfITW2q6mW2oAliSgVnsGt+Q4AG9hM9rsE/WkuUZOQZ7YQ8gqPvhH2a1OL95gakwuMDeSiLX2F
g/F6ue2fTRKGUU2a/spZguXVEjlLZc6rCRZ6Gza1e8K1m9GDljUWan3jN9GDpK7ZpvqCzbUak0Wz
poXaWm7sZEhQR5ju8pjiep4bDzfpb1HZSmaEX7XN6IbxtZLBAmbJbzVcM8s5NppRRT27FSgf0XSc
KXmxIabay++kJzYgHUox7GvQMhBm04TBucyBfpsBR5jDNN8XWY/eSzbjf3oQ2W8ELouvMUDx6ER0
wR1qy5c4qc2ZsFZv7IjYcn0810xqvj24yM7YjkM+6/OKYSsTs3GkF+LXUoUg2/Ny/yGPOwQZLr+5
30WjHkPDWWATUx1GQUE4RGjuM7LNzloKvQgqmELeuPIbEwZFrh42tdZMR5Uyif1xO55fz5hb7HHr
r2HzW00LOy4tuIqmkAWkmRWmYc8MTja5wJpAi0lWVQfjc3j9OGbKDPW3jYzWgL5QI2e2Tfyy5+AG
UvfGvpikvpUk3kr8bdpGUIjSNc0NdY8gi9FIwTg0MO+PrDQ7ZmrJGYXtjaqDpcfc1mH/iJt17eul
EC/PMWTDOpLQYMo4xQOfJPJPJqPlAwa5qNcUYF4KpABr3Gen95abdtk3i5TXxUMQfiW6K0/RE9X3
ahU6ese0NV/12fj5huNCDuPC7X5ABpYriVjNeMcdQGRnAj+1g53wg6qp2SGg1W9t9sqw28A4zJWm
Fd7rnMEKvGz2x/NcZI4oDLAZuWM6Ka/duMZQOiG+00gUYzadU4B5UKdFIG0RuNxUJYCCRWWW6RS5
7lzWUD2OHUO3cnhb02Y0y0xdfxzqQtG5jcpwU3cE01nE5+Zo2LCbo2w6To3hQ0KbbmND7IkgA6kf
7ekr/ZY1Jup11VZi0PVqd8MhclEvphsVDsL+PTdDneEy/scLbComBTP7a51zacV5svt2k54GuqsF
SniWEttqCEHqKkoMaGb/jXVx+yPk/VkutUQ697f5RRQEF3RCLD92CNladqB3lRzxcno/o7O0y5pm
iToHXm/PeC9fEEQoaBvG2e+ZF7zcfsX7E73pP/aPw/mMVtKMH4A9qHTCjVahzjHTSWb2YFRF+8vl
dEEEwvn9Ei5qVZ2sGpUjRjxCV7uZuTT1iluDWrVxPE0RSTkUSQWcXVq0EIeNI1RzmNVosZu5KSe4
HH1jTlAr52UWVea6OeB9U4PE0GzgSNHZNgRCBLbUIfVUYsPFIxqy0jKnL4NqOVHeMkE84YPGk7gj
n9paLrwtWegbdKxn+MWr2ChpiMGA91UrTXqo2zQPu8+ctMpNpGf6RVd6L+KJLrJaG1lPyDUwItFs
WNSnzWHDGc9gYm1d3Wht6+xG7sIWbkbgqoZQQfkW7pfuGO9qXCRjuH8Nmbr/P2tv2iQ5biQK/iKO
8T4+Sq3RjHZbM1p1z87umj0rY0YwM9kVEQyREXm02fvvC3cHCAcDcDBLY/ZeTXep6QE4/D6l5Ga+
6Z8vI35rpHu5SwOT0oSaWjFXmkndLFhXBJ1z4pqWkGIIytzxqCholHaLp3yE10Pv487IblV34f7V
B1PtMxrjKkP7cby4F5sxamlO2rxj1GHWpWK9nLv8LJKe69LW6zUNh/sMz2TQpWOSt/EM1rYQXq52
jUwTo7d1oN9BWqEmJTG2NWqlIGAjZTA88lrwLik/We0oCQhJW5ZGlJehpkUbRvmjVxKdL+E9kDX6
r+LzV82XktnRzTpl610z4GY9IjG1ro32vfoGXUSiDUWoNkQoPpKkcVXF1lzSUjBpOHu3qekod61Z
lGIzfFGEE9lEFPWYj95h09VfLkeLGDpFHcmmEM1PMwgK0kGx3bZF8+VdVXvMCVaA6GJwO5AyYnCW
ZRVW1w9s/hHXaMXOIfl7tr8qry4NmMNb2y4+w6Jtd1SDx1sD2u36lSysJYG9BBUpNrm7IS0TjxIC
sN495H5tJK9sD1Y0uf6McnOv86AQJvkgTcAH9Bq9krIt0sjmPi3HpOR+F9pWHajTERdWlI53VdUP
FUyxEpQ61LLizl3da4004namjeEc4+KsFeYV7ArmV3w1uLPRQ9otsXwf3sWmhSbe1abxFilUr0IT
2zGqdhxOgxi/ab0ZImvORLO1yqbpfP45/rwStie5QtZfiR30AXc1ubRCE3vcYFQvnrns1e0ZBCI6
420VNbFsmdC++gvl4ZcBuza0bF6cvJ0Kk5FQwmmVriSwJL47Jind7UZioFacIdBKHqGZ2XQCedXP
oueUZ9HkI5dSuwdcVdnXd4vGFqoWbWydA8VDpJFSaRcgO1sRWkEjpxDsKaQR/U6Gabk/KeQdxG3d
bdD/cTrZ9iyEYILLXXAeShrSOEIha5jLHUhkf0phh6qWNJfuvo3l9NLsh7yxXaZ2FYjVuzWYO/b0
Nv6J1p4GULMNUOgAbaRZsXzWyzuaJAJxZT7Bv475j1WEsmDdZkaZU+IAJpFY/76364ZXz4iJqjxW
8ue2KIvB6zpQxuEtMBXtxuYrA5yiSyVqb+e6L5d6v4yH6SgaJFU4ruwJQmEeWopT+6tgDechQ0fU
orKz2v2FKnHh16SBkpBH4QfjMefnk2Di5mlwX9/GJykln6QMNARv81KxmFaeMjnqlki4cuo4zntC
iE1wqBHrKoovu6iqPF6r97iJTzQL5ZgWatfouJq2qvaPRNgxSaQsA1mU7WZ5sX+gjMyhcEw2cc5m
HutYN4oGRjXGKoNrFuoOzYchm1mu687SnXOyMICYS+mOUH2GJU4yvMcLbUDBNWCiCVFVZaCwV1xB
JXsHhVwsMVz6J3XpDynLkEVHlT2YkhJlsD4QVsS+y+vN5K1kobJBieJ51MLXnK8RND0/y6mYR8JC
XbMs+N9jVE8xjvMvCRo2SZoGxLOClZnSLODuDDCX6aldD0ByCUjBgGRoUvqBFBKQ0gIBeyarAifJ
JCA5A9LhcRSmAAx8k9wUi4DdQVjrj8cRaHxJblNyex2S5TZc8V+UdXkZkj65KIMC/9P1wwTCLslx
OmD3ezK9XwIxWThBoeUd6FGYophrWtTA9M8cXsfTURnDApjCgoEWoJxe3zn/MszKPht/V3ySfOBl
zSHpsoqPhxn+XviZ3P6M+ou8pp8BiQVQfRi8XgdkTThBv/6PDsrofohKvwSu2EBATA7qYNHDFZ8n
9UBzQl64+lH3Z8ZFncD5TxLF7ueQk4E31jUL8OMQEcxT930UyMt0+wGwmQM26zyXAXobL8nz3J8h
Gaf+Wb0gStyzITqF2uTWv6z/TRh7umKC6rfIMgr94OvQH30/tl7a/CrMfFVEo5iinxWhhzwsYrtm
ZTukc5KbL8MFY1eKPKbnZFTwx+Fo4C8SuHoFhxGsVEs7yPwgsSGvKt8tAQeOaO9lfBsuiTa+Eez6
n2//0xuI3GSe3s1/Hn7JirGEbbyLQH6ajp87QFvag9hY3u0BHYfKSK8jig5RAh7TQwnjC7S90P98
U56tIJhKJphquAfFt5BigIZkeaNz+FjOl63r836QEAliZ8+Tr/L2B+iQoNnHx3Yxvbme0IN8FENP
5V7QAbByfgwI0yEVSWV2CpTJEQC1+0jt5pHgoYWvG0tQjSzLiEQFQYb/gaAD0lWKcf2D5YDweP3F
iF4lkGf8Vby6K79QJa/KT5Iy7SplMElcggP/v6mKx+pSj9aTVWnFYjN4lZaYm+ovLvSlIuMN0PV/
EvRz55JTSUAtwxBySPjRmttkDTMLZy2s8rDlnSvUHvSq0t0H9Yr9RVBCOoyId+7W7krQ+9ZeOrzC
PAzJDihXIHzukDmMPQcyYBhOaWkJm1CLIJy4di2sdmUhLWvfaFQ7NxWg1Q+Wjgea8H2zfg9OYpam
wasFObti+RO8lnZ2Hjjb2H4+i/JrBl5uqYN52DtxlluqMCktrxBS/lByV9ybKM/4AhpDedzJ8joM
mimC/7NixuUW9C3oDPbdMjhEphNrcaCFANS+QVaRk74TaC4AbRjQXLtjABUX4hDGNi9IRCfowsLq
auYZPwDQ0lfEJsFjSgm9IxHeKj+C6QcCWvmstcghcwGe1X1GiJCCOE+/j6dTjx8tb+SIQEQO4qkJ
BU3UD0B/dKpc/Q+vDlLsqwULqnXIlue6YxsK85LlPj/3B+MkKlyaH3KBmF3XOT59jcEsfe0P8CqS
03j5Hv7cdKHj5xX+oUXuclX69vihjMDgx5lp26Sva4wh4NdQj4uGWzJ/KL19TGYBTFczKBDCzhoy
Bc/98t24/WXo48wiMWspAkQGzn0B5zRJm9CXTcPQ31r0rx4E/ANEfpLeByJncwWB5RzsP48nIAHl
IIOxGfxcqyn8nFi1tEGPKxj8r/fL9yWBMFhywExlCFTFTlJhJKZ2QX0ktutjCYLRLV3oksCL5jog
dPy89Gf1EBCxTyCDnZRBGFpYEAwIWOhQozZadaSf9EYYNQXDbIpyTWfPIdypKFPR1eFV2YHwyE/j
cQxC0hFGhARGRbbWjm0gncfjEfw3EVjJjtUiwXJgK7ad84XJp/A/WuBo4VPV7Iom7iWeas9dO3ZX
Hhw0fBH4ME/Thw8zTgDHcVES+TP89JmfqSw/7kDKuoXVCyYxydvQ1VuR+pAf11RDEEjux5993fl2
SvLwqzKWbihntWHpMBtX/p/eChZ1huP4/DxgYEujVaSJij1tSeTGn/YNfL9Df0qoxjn4wvx4jT3e
dRnux0mhd1a6+TRAWlbAT8OonrSPHso4wJS2X+5Pv1D6Nfg9F945ug1bkfk6nYbF4R8RO3UbeTGD
9nGmptgFtaOhZ/szYfxzYVZjrHz3wypqC8NlL0Lh8/qB4FEBJVoThKk+22iQqt1idc9Fm3zLgYX/
caJvUm9v1gS1kUBsZb5V1dUjM4eRwhR9jaZas0tAhwFWEctBoyeMX/lEWB8AidhEz4UJHqTxS5pH
g6EIGwwWRg7GQ16mX2AbiVvSrYQIcMuGVcJU8GDvNSH2k8Vo4VfY7Pl2mA917r8eOBCQpFyjCUHE
cyOL+mm2xxCwWwdkxuPTh9mqqP3SImScSUzWbrWK1gfbx+Hctvvl6zRgqrnKRlJXjf+1tmZN+MXX
TZDSg33RBG2YQmnwj44/wJrmTnRnfVAO1H7kr7QY84UKS8w5xgR0+H6L4LAYadqAKBoIxh9OYdop
yi1i60dOEKmvZhAgX5+1zIuNMWLZylL0OJ3HC8b0zEiA4EUsE+RAs3n9eAxJzXEi7azpvhKp0Zdm
VVKIUHM/nAfZEL6IFbV5iX/4ZTe9LbZahF4m86tuv2uc5MmIQeEwnRVMZjU2cLBLXYVVAsMYL4Dw
OryiGGSAwMTN2ixkOYVRxsgACHtjHWj1JvkuDADY6VnTegCEP28jci5s5oYRXG8RvCHtGCWtRbxE
SSn2NVjmigZ76lhEQ0Bn6icOyVUJP27nP4gr62SjeouIKhydCV8qYARpyxxr0iS+LnmYofDw9Uok
YZpo/ffw0JnoPTUeT5KLO4w5pHUoiGswUW2k5dMJmF0f5jMYAs5ZCJi9ZyAkHYzDGtVRbZjubRze
/zh9rKJfCAg7R2HhMRcPbRAPFQvJojXY6TzRBf0QqoyAevskLULX0NkiBAJeTq7DyTomqwPKwYB6
1/qxSW9xgca+U/Alim0wvmM/TVmX5+GPCCnM7Fm65Qt9geGn6fI2nd6Gv/bKFvpIsjCIfEuQlQbx
y3U43E/9/DM0FAM+w0Dyyh/NgHPoilHpFg+RCo2L4dfxhG1nUKAdeIicDYKh32d5AQ0h/NM5Z8eG
PcNAq2CkOxd+u2X9VPhVbkJmNmLxPPz5NE3ig3PN0GFfuP7yr8P8MkjHzfxevEYRLiBKUuHMrd8n
eR7+rb8vy9hfYIyYdPRmewADgKg8fPT0wZXunEsLh+YGDhamFH7+EI5dBPI2hDcB4XUI4Q7CsCtM
ou2sC5GoA6cOA2hDNIPl4dIV0gBbkXz8PsyX4fRfl/H2My7Fk25RZKGX+PU+P90VBUCDKU3MC8Jg
x2mxZLL0vyYOGBNxyu0Blss0DCh8WXnYgOstqKNJ5uE8KQ2YBFWHCTdV5lG19qNkKjnQSVoFtWfG
k7EsqMeTscLX2daIoHfVvXbY6BhWm23ZbrV/7VGbQa2b8ruzYPoFmwle4sbDKnqrTdqQOjn+CCNZ
FSAwRMCb0k1bCt5TEGC3PVLlhiT0nfKgOucoqSxKwIyygREhuc7NOubV+29kjhW8DjPPnAjLdDF1
MME0eVtW/jz/FhdVEEC2TfV3jmV3X4YE3nqAJ+6DxlXqv4Nu8RBNy9p/AHTdgudeva5q48lGqCpI
5yEL1xjJLm0Gb+PQJrMyOTrDr9my0gXg27yyh7hO883EMyBHeX0lcLOIXE4eJROdmvkBTUuYU7r0
wQXJHmgzLHlKP1FQz+m/6TRrjFvXMA9WgpTYfeOglJ8lSOZVIdXDfHyGf1+9Kbf+O6sNzQFMwthW
IoVFT9WyF8Y/3Mssygs5JUTEOkWT3K8CwIZ5RRUW6VdOH7TO7oVpruNVOjkOf3cLbepgoU29LbRJ
H+p7gjI0q7dajT5WoncYXy7/SRgQKLPxu9bnflaWTmLYVjhA6RfihskR+er7QwhA9SCBask9z5+E
ijF2Ge5iYL2VUGBV+E+wPl0Qe03OfGkIgelHX8lQO+NBk6hhHj1FcTtWhEGoC/46c8WdvKBrTxVh
i6jeSrXaebrT+DZIBkTFLRL8o/HyTBBC25X+kAq36Mrw+VO/Pailsmb7UG8eEH/pr8+LmVRBWi5S
v/bT3MQGx0kcVfh1n8vSq+n9tFynJQn1/cEtu8Atr/1hvH3i3VbZG6Y2FrzJUwz3Vo8qOShf29of
ulp5LFjByCRzAWqjMCVlb2A134YXGgCkm5q0uYYF2QrmR7B6NWedGxzLGxCZBML2nrgehQsil0BU
DIQnscWUMpOB0r0K1uLEQ7YyROmaReo/4+aahXTNmoHwZT8JRCWBaHedopZAdOzJM/1eDyQctH1Y
LbAj7F2+HM8vCfo9t9chNJsfmDz1y17XGw3qDW62OxWNpHBwRDvL2knK78GJ21p0YZc6r/2SisTd
oiXLpAwvI2sEqcdMbGD5rJEcEbCNgo5g47dIyAoIypmaXYbCuW65hpbhYTu9ZsZAje1kJdPl2KMQ
dv2ytR5zSxH4+an/hCa/sBHpaFIWX+CkjQEaTRxBjZxvjfTck6EIm9G83Dy30apVzAcdUW4JgSmQ
a1PA7+WEyTn1e2oha7IXrElGEFSxUKyKZ3h+VtSkKHwe+uT3aTorQwNmQQSBtdnWNOVpE5OkPQwh
xPLoBq/308SFXG9SQFJHQsBkomMoKgNv9hTISuI5GHM5mVZwVtagzyAGslK/uW1IzNhZ1g0MikEm
vJwWkY1fHjwK57nHGmjNsk9hbD4EOzJPc0kwVtIFdAC3fuuw9Zv7X2JltTbIagxrICuMoMIBTyaO
HLQDeaSrxf79lCfxviT009pvL1PQKog4HhHhn4WY/CAweSCd6fpQ4aBGFggcbn2gPBzzq7bqKvM6
0GE3LBD4dJ4zjMvcHwB01E5QaXaF37dwEgPU1hrOC5Td5gJuufvh1C/LIIXXqs4vHHkEJfhx1vhF
Io+HBfVdWfijPq66DJoMLZMAUCGYde3G5lAXuM7Dqm+enqaPkE3Z1pwQZNM/XGNQBaKN3gBumC8c
T5jl31zEhG1tZksBeeRVtiu+Fw608FhFbuN7m0gNGc4CGBZZrrELv/aIi7D+fYyW6ZoeSEpSpzum
Jz9CUhMdmbTz+6707RX2F8xvwx+UHjjc/g7ecYCDCVjABSVgqNJP4VsRiMbv3hEIESv0fe33Wel7
ERUZc065BhdQUYTPwR16ZjzqNxGvwN1TVmxFn66aMA8DKBiAavvbsiolADnDBC+y2uawwkmw1B8+
JW0cNggKmdWN4xQUoiwzoU1/EqKv8/DsaBCYzvgZ6NpAUR5Iwrnc2YT92QAC3Bxv8B5d549mknG9
HOZhuARzqZXf70I5aaNz4Vwq12JsyNjWiuiDOrT069BZzh/UgfD/aoUGT9xk/oS6Y3gEbdiu9uct
ls/z03SSEBVQkka/xWv4HrIFutPpPJJW7i/jOXkdoIAsoWmu/mZgmrOS22lOjuPugZIJUNiMOV4v
g1A+dgDQ+pqG1DFfBAEgDcwf86d4hI4dgQWSEMKnOUIuHKHxz8lz71ALAKo9JygEAK3/LVDq2LeF
8RNQoI+9O1nyPE9nGLFxmZKrt5QWfAS9DLTAEh66XW4PBxDJUdDgnj7V23/A/w8CpBSoBsg44AGg
OhruRxOhUfBKQ2NWsL0wtDjay8ZORxXyGh6z6bfw1sPhn2HspQxcuqGNB+ztBEp6RwOtrcqVHvmq
OOF6EA5aRZ55C1O9dBQmP2freWnfOT8UPYYh1luIuYzO6HOnO4lRXTdOjBUnnq0wYsSzC1jNGI9c
tCqKvcskYq+wEEv8owjzyr4zsvcgw6OWuUUE1m3fIo8IhgibFFveK2XJteOBu30PvFcW1ozruBcg
ct2HKK7zjfyquj08J0FsvkA1e5/GpwPMmPV+vAwzzbyd3pR/fFP2ZxJI9NGrsDtzQ97UJsIENRlA
5nmGRxVeCRqYjbmlitmgNSQYAjnX4+mGA1wowlnyxm8NrFFu+oy8Chz1noTduzz1eGdgXvPPw55p
zrK63L5zPhe85M7v41vvfnUSw0Dywu9q45TGtdxT+P7BQS181CHYygW3csutmIQwYci7TZl7R58z
+l6mmSYawT/QIM1f+rN6zT6MUO7uM3NpAyETIDT+4gEL4Q/P4HQKj1r6SWoLIUxVWe2PI20hhMk6
Y8Gj9UXIbYQ1EXp246i8B/z3gP+AsoOpaSemddFz2YYdMJimck6DBPKlinlNMZmlGCq+LzwehUSx
u5wiyS+rd4sywbHJK4FxPvZ4RmxyOIW36tAxBA8v59KdtVZAXKfXPIjLV5Mm/Mb11mg3M9WC7Uf0
HTMR6LczRhufO/RByV1kPi1jWuuPAJaSpn/Fv4FQwn1Ykmt/UNpXEgW5h4n0yR6g0fYHSSwwVcHb
0qSzPYWh+YT+I+lIbn0mUPDnDm1eZv4h/Jqpf7lON+zWkzk598j+x1xtMM7Vdv6CG16oGYw58dpg
HhzWyX+IjwYDg3kZTJHyIs1wXI9XpeAfbopJro01O3MesmP+soxwcQ3LMjYV63cP1SvlwXQnO5Ez
EsXbixQuIGfRR96aZdBqDRrMIUCjVvh9K/a+QCim791J4+0pZyi3b/UwbRLoDe00KckUKNInctNj
qqbjS7jYpNhRFjGEyyKqbRi9fEjHBvPRvMmLhGEb6xIIN5zxPpDazshwQszh8ozc3x/lzYSGq6yL
zP8a5tN451cV6FxbcAa3trFwGJWZHZjof386TYfvSbC8ExVjyRQqzX/UM9Q1yOfTpIyuGSVsBBLz
RrmxYyCZiQWKO5XPAXJLhlel28hN6TnZaXiOHqyRD7bBWgQYjzWwLM/DLfunZTrdb1F4LBbCzfjt
4Xa9Zbk1jjq3whVZUBBAhb+eymH8Q5jxtw19OmjCq8uEys32sesr8+Vm8mA5zxpAeMjBuXW14XqO
xj8uN9IREC6a58VSNVZM7eowCKrzvJXrPKmuognWVZTb0q96U+0r9OTl/ukN1pLA2ivBlsjj3R5h
OZoGqoTMz5sU+XWGpcBS2VnLSn11dYlvDEe4vZDnq6HvpokUXweLv9ZZM7ZmuGAcM3wcTvclMOMF
Gab2UwNl7IPJU15wxQMh20qB4EAWXjQWTrQLnTuNXydSFennVTK28tx/eF1mYCqlhErz3F/h9FDX
e79QZW+4epCXO/N7UG9KsmnCy4Ty4NxfCqorD+i/lgopA5NVti8anpPe+E0+lyXCrN1uPZza3woW
LoMstlPOOSfQQsfwiJ9yM1nAhEcR70ELjxfM+SqRNfaZpRk8flX7Tc3HuuigrsgzP2HD3shoJ+Ga
Pn+oSzBKJVY5z6czcCvTaY4Jj2jigqx+dDMfi7rD5UCdv1XM6qhwUXTeyC+q0RitTG55Uy4cKN80
K2O4wFhEwZuk/gZJHjQIux+Btj3HFjuG1WXpr01fC3OCP8xLJQucOftoxRFnBNVSYFDHVhoE62K7
QE8w6bVgEwy33pxeJu7vhdtpM2nKGN1bE05QDqV+EHu89jRw560IDyKtEMvPTuDACfVnmf/X+yWx
tanwdlDaDxMWB0p+BvesVF3O9qw4RaEvJmK8nMbDkAi7WlK2q4UX5AEMMrOiIDK+Q4ZVFdHS22Rd
GKv5UUn48I3saXQDoEbwA1oKAYhd1uMEnkLneRJAtew82JXYrNhxTQ9hcU+aMvzU7jO5QIbzE8SK
BVDZFlQbwE8uXKpgT86T0Oo8enyiRDAd+9opB16J7jwMMkLYAzn+vaG5P1yO/85ASauGGG6dWXkP
CCkFhFRhhChtJLKgxQZNYjX+uP19pRCH2+FVhFKHmVC/SC3wH3tPt67ZsHAMi1kdfhD9+6XwdYAo
Pc8ZlSU5E2k8Fv/IKzQiV+LeOo0TeiNcqwxfS39dCV+zi/CdL+xriUO4SC2DTypAyBhN80TgaVxu
Ow6QM9RRr3Dt5XJJUFR+MRzicukyXZQ+hR1nWepXk+B66oYQRVz333//xD7Tv4QYnuJ/uScBbgh0
hfGf95sIpNgWo+k6jSDLSE+VbWml9mpwCb+CEfC68xhp/VXO7QVguYd6uXOA2yrlabJtxR0mNojc
zcsFjb0mYK+5ERihe7QLzX5hTYNBX5F3ivDVBi4q+8thWG7K0CdvRTdxCEGM1t9cZVs5n+hgFCs9
yiPRuqL0u6Qw7OsXSHz/5+W/lmH3RLJWaM/Hce3vg5SFhiBP7V/kxuOf4Y66NLCKTgcp1lIuKZPk
ZOYaVid5uv3b6fMqdb7lmb83xnrl4dBtXkphyuAGOj5ykS9Tcmh8j2v1ePby0S8MHqOr5Fl0uvAs
zOm5P2FNtw+mzMvKn4vZRlSEQEqzFTFFZKSGFJ3ixMsm1vOk8tN9DoeqA8H/zbDIcAFGoNHI0l84
3JxX8WmC63DG8LCqzD+hwtNem4XrDthRuOX1UHcg8jEbf+fU+IRGU4wXIfSceuJMepHncBxpjSf+
Ewbv5um0JAcQ7adkeAuuRaUBUZl/cdHbeBymBLKaA5LOqb8uQxBMxrZ/FEWNq8JNgzce6zT1RzqL
cBQ7UBh3yxemL+N+HCe4mHKE7gdUVvMhDIZNZYYAk44v0X1u43m4X4+4ZfiOu1jghuBrha/GNxym
SNapA1OnLX9VoJPjABHwICi+UoRW8GZlzkCRtUUGk3AgNjcZ+qmyoubHMQQwXhLCvbidGFHGVnEV
0HxX6BSoJSYlPTG+PwVWViMYNsob6EFn7IbLYf68AuNaWt38XfKWJ8vn5dYHGudBQhQ65gmRe7aL
fgsJyaQPkTxB0tFrhGQ3OXvOJDCPPlO+QgJrLc+9kMaFEmbL/QqjTYejBDFdIbJd9w+3VPIUKw6C
64T1TVt70xT/6LzwlmGBHGZyGp8H4BHpgJm9coo8oasNtcTolaRWcjGZ+5skLywnYLit6momLeRH
RFpjAHK4WZ62jAmUgEiW6T4fhCOwhXbgrOpdTfoW0wKx8+C3fNcg1co1OpmF45uwP2Rd+XyZEplv
2H4/iE4XXCQsw/C9Vwo8fBa+HZDXQ+jvEQtKGCiLOkR5CIZvK6TeF44QlN9KWx0/f7mJD8vmqRdg
3BQN1ydPdxyidExu05Q8D+9KA77QQvYwdtjiGDBQnHdSdo0CBjhKDnO/vIbPxabVNx3+0a11zbCq
BZ/sCkHdQ394HYTHstK3AhFe6S3qq5YiiXmE9jTldfRHXBQRhseWTCBvFSbYbCBRWddBuc/fYWgO
sOdTPwtS2M6QL0ETl1oRE8b6+226SkoqZTtJSzA2ysrhrBH7WKjMJ8ZifE1PRwtvuKay4XTYcRom
AKuASxA7ZdltKfM6D/h/z8OtV9q9Ty797T73J1zPFTwe286RQ2Bc4Y5QD6QEa8sXtBCAKHATOAkn
deTr6f4CtQM6Vya8hZUTJW2eL1wxB098AtcQrAcj9gSpx3YNgrOp6JrDU1oB0fD+OlyS1/F4HC5h
WGxbHXjydR18GiDgq0TDbF9XDq+VOyIIFRXqBaiWGa64ESmsGSzKwAg024xctXe+Di8JcpxwP2bU
NKuWd4wkwDxtTRW1VcpWgdVgK9Vdw3heIYqgPt9PJz1CImydMmlNFhw/l3ItDt+VPLyzTV5hBcaI
CyI8Zdk8qLDE5hEEbcbtthz+qHwG5aG/kutkT3maYJ7d74JeSdky3QKUduHoFTSY93gHWcbVNTBr
wcXa8HFTundYzfkZG+ZklcA3z2AHQsYV7/kO5lGPzVXLcLutooD+hyWiBhnxKSlTZo/MFRGeKdvT
XkIGsEw37pB2PCJmJVEd23GT42T5vK39ftGs3mFeCJMC7XElAxd01LymPUyPCmS3XURfc7m+fCoY
52Q5DcNVOIeVPKgmOOGCap/HA7wWzH3YqAhBa1lKK6F6rGyzjUEGvck03mpUhvQgOlcZW3GL/YBF
VgckkXUkBargOyUrW8REVAFysdxDEGx7UA3WXl0Wj0bjZboMO4BlzGKosOV5y0YCn9T+BXiX4fY+
zd/h4fRhUDmapfdh66zwb4N6iCEIqLHPDxAc6weYAjqy1Emw5O05uSkiE0icbQbC/qxiY9zpyOa6
Z1MwJdjKThAHyhjQi+VWm46sFFyU8aKOdZ+Bm/9xHyMUmrK9rzmkPM3YcIlCYxqz9S9WjquUJUK5
LBxTgodc5h17YURDJM6UOcLQquCtUSZEqlLmsBXwh8flwo5+gWnYllvsmFR/OvobdI1j3AI7CpzU
OeaOKQgbIN+TaMl3foLMzOGgvH0BPS0z5kBcbfxqZfxGlVfGLKa8RO+aMPTfxU/UhQmvhf+kb8f/
+RuUqUOA9Btc+ZvosmCaOrU9FZBR0vGwB2jD+XqToLBeFgjmpA4UU7P+bfgYl1BQqNLepQaDS6AL
/2Eu0zds8BTOYzPF4KkUqR+QqNAIkJ35wDzoB0CA58iZmq51L5eHLneRLmaz16gcAxh6ml7uS/RA
3cPdMMo+H2hcwHxgF7wpe+BJKSR1vts3IuFvMDEjGIBoMaaig3ypwxAEGVsYvx2nYUGYCv7LyzB/
g4tgv7QAtVyhZilF07Qqd84skgkBKiyglsiWAhsmWKO/Mv/6jSLf34ClQn43PRPreoIny9L6f7mQ
DShl0UYY1DZkQRhXp0IeAQHehmOEmvnkIZZkZdBgFsHYn8IwMt62xhZMB692e1U+1MurcKqaMQY8
Q56Kd9zBta1/GA2DuFcmtZmVAKB3Gh2yHeZ5ovEz+E/fLsqB9QJJUVVqjYVawga78UvF7/h/lcV/
Go7qXzX3CnqCYNYMJjM9CNqe+xGYZgXDeYCC0aRa8B+/PfenxeEAQbJU/gFIGpKyIy0g+CsBEmvf
xIqUoqLzaSvXcin/iygVN52Vo6B0dETTgbFfazEVqmPQuuT1bwpLv35e6YDs37/htvADbnb5Nik3
S4lU5YT3529ghn47TMfhsHzLwo/WsLe3ipL/AtFQMMdBUFoLJfdCWT2Yb0r2g0DVR7v2UEakHNVv
uUBZ6Qoenq4oH8DvQoPwC00TQ0PoFwSYjFWxSucBprr463SMMpbpnsLWXstY2hH4RWtZ+69kY30b
nwHPoTQtITazkMHayv6XC/gLzF/aJ8rtE1lIYI3gsTCa801HcyLHK1xhV0SAUqmTMSowqCgAzx+e
HIUephtJHsM/7lEVCK+zGOiwrOp/reA2Cuzbub/ce0HId/ZZQGzpYef2OGGrhj63PA26Watm+lwb
HLEjmFHTSBk8LkdQsLxsg5mY3UBgLSdnKVpd2QNYjSzRNqJ7Mr4ARa0O+ohzgQCs0EKtukVTHEf2
xbMc43k1BzFPL+qLJQ7GnkNX3ZS+945TjZVhUMVR+x+MYJnDCadiNJhvyHnHS+ddLj2O+DJmxje+
TAvleEFWEn6fURqEbbK88jyOcAZmzXAL12Ej4XMr/EEwdM6Pg6USJwuOQMzxd0FW2Y2U1n1Ufiob
fo4eLWP6uMJKoe7xhaL02jL2LfCP8oHGVuESJX6Lb1RqfnKNg7GUBxC7xosg4dHsnXRgDIvETOzm
fyzYUlrfCS2i6oeCLYW1iVkNzleDLdr5JbcL26t+NNhSsMCGrbv5gWBLwcI/YHpVPxxs0SECAlWs
VtwXgy1FtysctSfYoifgE6yWIlL/48GWxgZbihV9/3SwpWPBFgimwcyfHwq2tO7xyv+pYAsbWZOj
pR2MH0SDLSUL94GdkKfNPxFuYa0mzpqXr4Rb+PyidbDfPxVuYV00OUDM1zGFPxpuYXN5nO3SPxJu
KR9DwF8KtyCQvPFFbX843EIwrZTj5vnuYAsB6VyxVP1zwRbiq8ryFQI1cvMrwRaCVFtWX/c1xYMt
jFrCsoSEoNV/rMr1S5Eb3cq9apsi/fHIjQ5PW83V/Q9FbgohnFi5mZLsx4IimfALTOo0dKmvxYYI
Su3TfRyKQvg36P8blU4B80c4Us7F6hr+lIDlArA8BkzjiIxtCVMsHA7mftbV/5MhKvqNMvYa8Rib
QE556ppM9Q+AlzDUxXD9pQAbwcwfwqVfDrARoNYrTP+5ABthtfAy6Q+HxQho5eWor0XtCFLtfZV/
OsBGwEvHUDUy8UcDbGYSOAWY0fbLfzjEZoaCk1JHmi++FGQzo+LRe8XMYdn+QJgtt1CKGrPmzf9E
mC1ngVOuyX8kzGbm0RPeQTQU1RfCbGbOMguktF8NtOU8FsMKlL4YaCvsSRx79YuBNrOjAJ181mLz
g4G2nEXOwf4tyvproTYzXJ7uxeab7Am15TzOi3+UXw+2menXeAI+PHlvsK3gASUos6iLrwTbchZB
1dHYL4fb8kqC8UPhNrONgsBVmMr5sYBbYfGr2wnKrwfczPx0xDLklIo2++GAm9nsQE/OliN/NeRm
lisw5i6/GHQr7L0q4PEKCvxY1A0KGI/Dcw+jAWNNRYUtvMKUVrilSCjls3VXXWdzHFTaht0yQlUb
q1nGi6k/K7OD5PAdv8F/SnQYR53nbEYGhGut0StrbdzEbU1HeO/D09vtltwOadYm/Wl8udAwQ5yu
a4b1BoHjBNcuzSHIg+Vf7NAK/8chUbYDjRsP+43Yd6+BUFelGUSNYA73IUFrhA4WuW3NSnJA22e6
5JdgHccFOrqOcKyDFGxqrSuLY4ObsvYirUhpRP9yhcptLBRMJMC4DtTcFSfeesGmefI0ncNQ4FMN
hdWCWXzNQG/YZItrjcZFv8FRz389CfGAhsUD+Fgkgg5vgP+0CKfLw6dj9JYlT6f+8h1JTYCWW+pg
Lsp610X3tyjEK7tXCETqcgKKH5Zk1pQcFuzqUrgTGzERUmXrx3D8Sp11HhoTTmIDrVmZY31Rznny
DIwDLWzE4Eeoeb8M71SpK7CRJS2sysnbdouq87gs0skaFqytG1qnVARpi7gS/i7ClA1DvTNpfgW6
buRi4KPSx6zGLdPVgMgYXC2+5bPhWBUjwUAMFxUnsFM/w5pnRQ7KsDtfw0fpOEeii8bxBlJQfr22
ZOHtbnVrX4bbT/fhD8u///rXn3+SkVzmLoDML1mq5HXojzi39RxUaMTGncVMvnZ9z8MLlo0TSNJM
IJc5gbzggHeThRCCtdYDh/i22TV7uxkYerp7GAIbgo8mRaFZkcGAqVkCABYNgnoAwzQMwLVXon0W
QFhvv0I7ZAsg1vtAuGAlnyVOh08fsKF0PnUtCIexoTL0BwuTJ2FdboJ2aqx26jB6wamYesUgYh3r
RyaWaBlLlNiTERQly6W/wlo/1AUo+5ZBkOUNk8DQv1Q36UaSn/vb4RUgaxNQkOZW3xVowxR1AJYA
wzIvzvSqc0eziD31BCD35d4eVGZh+uEkfVm7bMtPQr3ourUOnzMiubGKQRMEdxSp5SMm0qx4Rjh+
Eyqv9IwgGFF+vwq2JqOndGNWjDDB+SJoto7bXR0NFOQAvo/i19YGqcArqxxDF2gEOtJAxQpPzCxT
Pvb3AR8p8gYOvkSDXMAI0/g2T2X563y/BQcYkAKtmWJGCOWW39H7geaTHSzfQXGXOdBWB6FVsxrg
Ma3MTEjqtWu4Or3fJsWUMLH6/nQbbycR79b4KOFQZUAz5rny0hSwUTJGC+aq4F9sLSz1B1ltgvCy
5l+FAzjVn36XLC0VU7yoa5LKFlQ1Y41mLaF4uGEHlgxIj+T9dbwNC4x5E5SBfYMqX/Xag0xqdvuK
6a5Dtsn9siYdokKhtA4omOUV40scl4muT6+eROKDrqzDbmx/wGU8MnOXjJEqrD2pg7puvp0E4rBS
ogZ7pG4bP1MrxuxfRAOurZkn92iTMpQ31pQXcMSeL6yi8nKHtdwVTViU24iBeB6zjIYKS1ipIWNG
amhMdCceGJOgyQXHLGf9PDhzp3VQprVMcrxT0mogDbjQ1AfTLYvsL9BKx70WsNMCnJUW4PVFvOOs
2fMqRa7soJdB+VfYnC+RMk7W40olwPYpxNe0OBGMkTKsoTZuQ9BOp3umYQ6ltx6G76KN1mZM7EJ3
cd36D3Mc1mlnES2VsehXt1bSWaMA+4FheNesjG+BT5mG4uMGPNbsqRfNUCuFSpDeZcnRZEKHkZEP
hCwbCGBDFN6Lg96npuzHZ6U8KKEHzulfIcz5r/QLq1P4azhQhCFf04LuBsOUAPjVfCx8W63fmqpB
+Hj9Ej8KWnUUcbYgTOsSLiwNvBV909qfZblT0cKnDwv7Yw2/60936efy9StW8Xnqn4aT8JFFK+vJ
BdK59y/SjzXeu4WkBX1T2m+s/CH5Ld7MNHJ3zkw5GK0hGVD0m539TVbjBWSIT8/JUHL/iI4a912Y
RSecIHMJd1vlJ/ycPXtWrV9GHrSwRMfqCZRRHhQHdMr0gb4dFvlZSVz88DRcXm6vwlsVPsKYLop6
I4iqSh92pwsRSOzj6uFj5/yKvvZfIXdxkbHw2h8//yJIiSp7uDxlmR5Mnzp5m0bJoi46Fl5ZBY4T
rYTxJnrkDc7JBqIW3CSm/WmIc+P4bwrKOufheZQs4DRjOZgWR1u2D5H2AeR+JMze2FCIQh2Y5VXO
HS6dtIron8oqaz0twgmx67SeHGIkRVaywEpqZxc92DPV6sFIVgRuGAzlNo5Kw9rxpuoZBcelba1x
njWt7YPWTze89IfP/jrSYBHr8Aa1E5mWjB4aHGzRecxXHDguALFWcJHirLMirRzbhqGt1knDfcjr
XGPVH2wwdsquGCODWG98StfrwsWqwaF0RLrs4mBKFVUgO2f96Fdl8wv3LXYlwkrCoRyNz5s9sIpM
X/sAZuenYOWXvigh+F79ZfW/YvG9lDEpCg5/ZCXr1oiWIBtttGGrh/Fr2nF3/WqkuO5YVgRHeQTy
Illyvz23gq1v3aIutRMZPDb66v9KQSkWAwIRVbXh2DhKAD3QXyBeFoEAmyTP2EI0C3ZXPERX5Gvf
urN9oA8qr4hHbetdCe+aTneEENzzOMyST8lcwWIT4AYgFyU7MWSzI21X23dgVijBUkcTAyJZIQSN
tGUUiSuXzM0qHr1aRgSv0zz+DklSKXbElSYrZnp4tQyHiIqR5dKVq82G2Nc1shhIFF13s8sDLwku
V+HEchkNtKtYvUwoWSUiyL3BREvsOwm9YsFhcJj9J2uIsCZFoMKRMjf4zUdbGZ02XP5xH+7a/Ikl
X8qCUQfooyLAPGkSbvkjUi1d4dpu4/K6oWtBNSzq8JSBorUTHBjUfgGqIr1crb0ZDmFw7RTC9Y2E
6aSZQODhlkU9Gjuklgk9WhbeL5D9woxspIjowWh0ck1SosiqRFSrlbeQCf4JSFU4AYtEUvls/egr
2Mh0NJ1ihTDoiaZ5BPaP+3j4LtQFdak1tWqcxvowezwZz0jtSiAI8ytLO/sT1w/WeeqbM3voF5qd
fQHD8k0YeFew8XwQnjH7qikeuyRsryZ0LggVfGyOG8TOC2cwL+TA5DlwLRsRXNB+0MfZdLoQS5hO
Z+sIG5wYpFeJ8KzIfFuuwhhp72RO/r1QwUUQLEox9aPneizX5Ok0QcAbryRMTGRj1UE1NuyFTd6C
Yoe//qTkfhYeel/mdo4+tb9pIxM+THNpWn5lx/lTeUexftgWwi8WbA8Az+XAh430Yc4XCLB15fiL
lfSLbJeBO5AMPs1L4ZamUBEYvKH9tBY9lYSelv0m5jJTbXPDp7V03Mwe15He8GElISi1eyQakJRN
l9vDSrc0KdPaNGfm9hcL6UM9nsX7lm0uvWXH1kuYXkbzi530ix27Y4uzDe1LNtJLNox6WmxWsM/R
Ss/BCJ03AiC91tIdC/Zhi2xikZNKH9qjkt+mbXD4MBOplf9i5/5i0UpYtdTawDuagZ1Icp1Ecoxy
MB9a2w9bCatFxfgDjB7YQWypVSKBlguQFtdL2VtKJNAxvMKDdJyxJCGZ2s0gZIbmVgoUkhTo7C2p
u7awHNlI6Mk5emhaSW6JoC0lzGaM0CsbtETqkQ7bluw3seEy1bNMkEcaiUeYHKDaWIvZVvqwKB/E
ZG5ptpTumTIyoPZ9xtDShxlDUIveBFN5hSQma0Z4bJca0o/0min7kHeO4VElEZIxhm6x3c/esZPk
a9ExIijtujD8UJI9RSMRXiPprTzfyjvGlxJeO3ZLvqkeP5RskI79Yo2uKpOwktgqmFoHEuiYpmwk
vGYWr1SVWNtf7CQRUnB7AOdGp6WVd0Ut3dIelqqQS/sgtXTYlBMB6ybCX0ylX+SWVoPIteiR2Dln
coCWlLOjSg+S1Vt6tcjpJJunlI4qSYGcSwE4amuPmkrP0XRhlddIrJU1YSFZiZKuZDZPiWM37Yci
AVj+0H1KliPTTLoje8cMQ56WP3LJkGjbrUFokVNL75ixd6TUipWtmSQDWiYDePMDIkcSVynTzSi6
mFLPREuSfYgJWG70StK8KJgMqCnKbX+zk0igzML80UhyJ2vDJmEmkUCbMalTuFInF80zJnXAu80r
JnWkX+yysLKrRfOsDVs8jSR18poLZbQ+Kp3FdxcMJpsdWG/jMkqry9KKr1bMrX9jojA6aXyxMIXV
SGzVAp+IqBePrWtw4hsfUxb8KIF0S2cwP1v/KewlqTe7TZrMv/jpOPcvkUU1ackWpWRg7GRZ5tnW
1J+ur72wkiHbbnlgzd4JRYQjB8kZYuD/d+5OB7OQJo5hFqQqcFtB0W1XrKxLNqQWbFqwwjYpFJTW
dbZq6pgX9YxcEF3H8Siu72nYggdwpAodvqLnw/ATdcRRVae83q9glEl5rCy6pQZy7cJakY5tT8Q/
Ot92DdosK6wjZQfjjTbsFc7qg/Eqrh9km4CA70qH77BIb74jI1MOEb4/Q1PBaXo3C1iFHU18gRrM
CXTX00ZQn1WWzmhJRNr4wrw48yURZr7QO27iifqe0wnu89TPOq6OZbjy2pucY76u7Gr4zQPS1rn7
DSfT6HTNq6JecTlJx5bu8ZXcJJyny+kzWd9mHi8LNDBIa/LSjN0bl8Nud7vpJTPO5hkh9M5X/rAt
0Zu77xGzaceD3TgfpH5cWvmVw/GleGBg1Q3XSPQCkGiEKmZpq3K93fuXb4L444VWKMaGArAtYKzx
mI5jF8OwPWqR5Td16ts1+qCW+B41QTGxXX0Qj610Y9Z2FfUJFklFdEvF9o/WTD097hCUN1pnTFu6
zZQsR0ScGoXETQo2x5fJx+N0l5ezsrQQvp8jHfk+pVABCUlqe6cGjL6my3xyLDgNjeRXw5TaWiju
XUUpjL2gh7ejKkpwg8sud1SaOg0kvaJrdNmqIYo2e/S2LOF5kgikapUWHhNSuAlbTwhYdlc5kc0A
E0exyAdnWgnKitELXxzvRbFwJPZOHT5U6iDX7ueDKr9eXhJZ2/s1EH9sssaVRIINy/Yj0tqKcucO
L1Qy698fh+Uwj/pfsPRP7Jcjwc42inZY/JfaGnfqixC+Zg/BpgLzlcEkyRdlgyTnCbVrfBE8W4yl
mTDdrN7btXmvZJv30u3mPb05EcW5ZLpxz4kvsPHsxI2sDWP6IEeFwFlw9exAsgiSMmM7DnHZeLnd
xq1s5idBy/FVnOBnZq2P1LRDmVhTRqAgvuWtRuntZtJJuuBidhwjKFyvYeIOTNzNrvLbeMERIOSo
6MZmLQSjaz5L9pK4SVH9qfdAvb3AbtnxvFlArN0PwX9lcgghNq2zcnXfOCK2M5QNfdyaju/jUR3s
dYAl1YJkZLCqzEY76CGhpAlaV2CWreLPl2CzGTEQ271erzWatJVVn469hbwjmO3mdNqhH0hEoI2O
+T9r8Za1WqBQAnvxkkywNJjNjj3aMBEAARk7kZ7+Pp+iPjrzDaGmk9PqJlAjm/18PSvY1plTSHKa
JmEta+Gs4aTSoYel3XzcrUA6zEYoaGCO34ISKNlSTA1GWO0YYaYqbrq9Kra99GdqSY4ulK/5/kYb
inVFlnAoZniAG1NsYl/apHsfniSXtAvvKrWr6Ode2K7e8S28OHKHKwAIIQgWAt852dqpblbsi1Yt
22WL2Wr+sR66QjtoY0/BIls87Ouu4wS8CmzMvIYOxyhzXD5DMAoMfoFOmQqkKt6tJIj6Uxmz/HSZ
Uf5I64DWw2noZzG0w3121t67WVQ+XLStFiXXvGR2Mv7RPeqUyLLflC+FxeGl5YZchKY7ohhWVIaF
ck3hj8u9j+qGytQD71/a0JsWzD7GQhkfB6G41F3Wq5UrsFTKbG6oMMq23r8wjI7uyTDFKy918dq6
Z14XlQpCvGXVhGzIKx2lX67D4ZagDyGYEywGB09fZp5d3z+A+4y7/Lx1w9RKCkqOKwU7MZpLPHSy
nnohUMY4tgLXr0qbjXsvh51ZMBys6NJZSE9hQUF0Nv56Ub01e4IoxbNS1wJLFnxtM/7RBSdGJmwR
sGAOcdOKTWnU1HK9Qjw+ZtAySUpJndS09UzXG81jjJgwTF+3dj+sTuSsAXdTMxw9D9ORUOnL8cyW
Zwt4ZrWwLf7hEX1cwO9Cdpbac9XA43XVBJIWgtZifhNEQjK9WZXsO6iDB5NRsKUtCyCasj2he4iE
7A3f19tl3dzIUS5SP8vRSqbZefnsQ1Lv1j/tSewxP67FP7ptjHFnZJCF9TBYWVc+4w1iAmWsTJmx
MWuCC3i+0PYKaLcqQFBDXPZ3aKOlPGLBYinRTErKdPejpemGMXOB5gsWJwCD0ZF6RxryJBh6lRiQ
je0kZ25xhdNVukBQPqqeWcaRl2LZa8SlSsZQkWKXK5H20zx9V4o9QjRZxxgDTN6u8HoP/VvMBWZT
h6kBiboy1Ftqt/UCpqZkQjEh9EDAz7CfAVbO31EwRkxohhLa5rmJVQodRvQuBYvTwMSQKpB1v1/C
W2QoKsPwy4sYNcGfRmgzejodvsM/wNSNY3+S4mwpJ5kWN4nngaDk2jm4IyLJNFOFbTXOuOePG/St
GOktjmoiY5EFnlNcS+NE8Qa0FLVhIeMvq5m4AA+z6monho2aWw8CBDUwiuKWHUynS7f8Fs0Es7Ar
kkkGgwVwnMzw9EKfnPsLeUIKcYHFFTh6wdT8lE67ZvYv6b/ktKxjukDesr8caPMODQigTpOXk3pr
nJz1pq4+fOjpAdKvFeuvQVxPZ0gUnHWK3W5I+QrJKR5TsAgEQbhOqPklQO0KyJmLsALacZbaggBz
z2yY3IKQ+u40pHKFBJpYu/4PcH4fZggMLqE5MhpYZY9FO78bAUXJ9PysuEIE2FiABUbSdMcaENl9
1rOLDtMVB4vrWK/Okeh/ywN7TjDdrRODFUpL7EXOTA9qABgJA/o3NBDnl6cq1GmDv5Gx37BjmPAX
Ltf7Ddt4j+E0FAHReYbK3aOtsUBzJg/3pyE594GOdQJT2rPkOL3EjC/Zdd/4VdsVfIWiyznl6zE5
XkfpdPaS4GrYz8Wz6fItdbi+qkIdFnS83CKxAWmg/swMgaqfQbgStTTr9+i+Zk3qXPByVaZ92PLQ
l7SHKMH4KU1XqAaiWKQ/vKLTiWLwJr2nrqmp3O3tBtRhOl9hmokEwL4Ya8GGD2HtB3QZGuxLeGF4
rdZOwf08JD2ZRTlLum8YXkGMo0rbzgAJCxQzl4PW4+1io5oR0lrSo2CtC7XU6UITqwnvhQ/vXxM7
UXKv3WfRMbDxqm6XPD9JRJpasoA4odaa+zhROpG9dYFOu/qz3oBGg0KAkTOKyNYKnN0CrC/LUMMP
HbGzMqheVzy64O+XEegteRov0GefPN1fpFvn9h2cddBK6LwooxBgr3QjvUkV1CPCxft5Vo7M0/35
WRHl2zi8S7/QMYLBP1w1c7/SuOk9HGIJiM/Y/Rp9x56KIYTN7tjzG9JrZZYAujXeBVB32hSFlYZs
g7F67Ov4MZyW2zQPkhJMLbVAxLmuv6oEY1jLGA+CHav+bFy1AdkR6YJBDnTO9QR1uLPIGUUWoJLV
qpFIzD5/CZm0KnW1sZ6s8BQa3qKPYKGwgR9MHCHN6MBGRFnlln/4hA5mHUjXYRqBptvt4xntEsZM
s5zpaNQGD1qavFzUo/hT4d2gBJBxONWcuFSkNXJUETKZU3NVun3DJJegcDvejgDSUJTKE2VV5h6h
2Y93CT8V5zOMITqHwgJdCuBqyZDovbeK7CWKLV2TqPgimcSshpyhklaNpV+UQBEfgXkyDRgE6s/y
izo8doU0JML3YSgiQXNuxXQYF153BisUmHXBgI0g8YNRZYba2z2U62JY+BZd7qAMRADZCoDNCLnZ
zEXk95v187ysqbWN2O8495Cd0FbDcsOphbuuVNgrpbQt3gNQBlEyECz/BbYLFAcq68usVLpf5YGA
CK5dwXXYe5V6DkSeaeRcucUW7/8y/KyNwUWdr1dAsSNlx/Fqe9sWR6vRC2DgV5/uByFXFjLkFLOG
LAkNFPy7YYYBa9KlzWwzrO3CHpdKR8o1GAjhUCpdhmNfISMbGI1gGmmDxvQa39P/rnTHPH6Uz29+
RsSkkZ71A3yE04wIdbAWfjXRT9NBCK0gFB1/x5QGxdKa/8UOtgtEuYJwZk3Z6yRP03SSrtLaq0AY
rnSOsPTgyM+SMqVzVCsUFAguFFO5iHO9FglMYTGSY+myqRpjF0LHQoKiE/wIBacfZ2YA6XS/KcJR
KLlfjosLEHIdoX2j+nD5CraghZhmRB4e7vtler8YmBKY1CIcl/0QNZ7G83hbafE8mhVYgv2QN1Zj
sqWy8Hn/kRjxcBzPlE0QIVnNAiLGBmPhICbkKX1f+QJo+nvDaNL31vdocUauDrYqS/BI701j4eHf
NQHAQFooQwz182Acd21nLzdNSw/eqVDboCHZEDOrFyU46oY3ZBHxKDx0zlZOoM7EI4SZjAC0/rtY
ANE72Kg2WP16wL+DiygIG7YHsdzp8ekvp4U+eFZaEjsGNCkvp8T8FRLDs/LkA5cEJWSKl3EAGu7v
MXFSDkgBCW1DQyC5BcInQ2yAzMrIF4AUFgjVidYeIIdpCYJoOnYZvgzTBdEv40WAkVkYJY49rjww
LuDznIJuK+0isYB4ScbmiZTkiD1RxbDLqjZdQMcRsquHQbhZZ+F0mAr3wTlPx+RFuSpBnxDvZh/c
2cK2Jb/43fiZ2MDfR0DxM6WMfsog/QzjSUBRyd4steMNHt8sehxTWCq/2uGkFH4UWNMxYHz2lwts
OU/T7XW5DdcY2jPOKNhm4KNNJeYuycencCzG92gSVbkHzDw8nwaJ87NyD6f0TwLnt5aOMO5VZJWM
oDg5texQbLyK7/1kbDcdZ2A2VMYBFT5JziQSH1TonkRYqUD0yJDMhxttMLQLNzljtQ7/aEKwYoTI
+J8PJ9xojv4AhYLv/XwULsjQxOd9bKhIViDpVhv6CPo4SRKNgWhr21W7wY2ggtqMcTut02sDgjqG
XY6SEg/kPcuLdBhGvF1jGwwfLY24SGz3vNBhnhbpiSwQZ2z2o+gSYDDVvJalUUUwuspH/OobJqi+
Uenfv0BZg2BQV50vUUgQ3vp5xMHWERg1i3Nba1EfY5UTsYO0vuSRATIOp2MUgg07AnJ03u4ryKiZ
n5Ruz7AbG6mL0Y4dYy8yapaCtz4EwbjOw3WewAed5m/m4SVYhXCePXitswfvEcNdGh+rL/o8T5eb
EnmhonrtwVn0sFZL/Lx/OShzXbwLy30W6x5GyFxBwU7s6yZznM+acfHTfTzdoF5N+jxnyRMTr8I+
Th388Hgy2iXOj6dJvBer28A8U+ZTJyuw5GmUsth5zfK5vIw2AE6R028SNMuZJohLafqF9rQtr7jp
G0PUa+/pPBxGCCb8y3OoOY02H7Jpiax8goOEDeJY23nE1S/9CSasS4tMMq6hKWxNc8ceQOvSsahw
4NoNADLC5eDGt+FQKLNRYfWiZ9NHbl/akV11vgbVNgiFofI4WV53IlOsL4ZXO7qOZa08l0enPnp3
O+uN1RBzaF++es2H9K7dx1t0ll9Dp31zNr4KqV4XCz7Nytd8DYNo2GDl8ItsSDyCPDYAmQlzAqlH
AClZ+hlccUlQ2NTVEgfOPBxMKUDor4Nohforu+QkhjU2HxPz+Y+kMuKepC+8AyMXKCBrHiD+4z5B
koC6XyLQKguNVVFoaCY2e+0P33HtrZ62FY5jcq8Cqa+gruOi9GC0ZhglVpSAsnGqsMfn8dpwUwXn
qhyeyKXZkMTAc9+mKcGKZjlsmvHlKLVT9hi+6heIh02+thk+DlmPWBkVuwQ3LGhGaV1CbDy6wGqB
5TBdg6YGd0AFHFJEc3rWKmBBEduPF5wsIKQPeKAMn9sunt8IxZIkI/4TO70kGBm5p+t2820Y7zgs
khSzr4LJmsdXeTlNTwqJxoiz0ky5RMs5uMBY83fq4+9TP78MODcA6zpDiwAz7m4iRdZorTeeM4Jl
MuCVKdsWE7VsPige7FGUsejO4T7vsVDYbG78/4+8c6FcJxrikGo4iqzIpp9mFdqR6v880s79QvIG
57ysBn+yfJ6fplNUufJxwBuVQ+CX8TyqB9vktnA4gnR4NiDfbnhx8AtnjHImW0WBHqO+PjJhclEi
HBgQMDBD0HI838+SZrTCjVWebx+oXw7juFPh5DFrZ/iA1dzjDTXjoV+ixiNb9BAwHg1h7pJsbHB3
2awJPcekUGxsl8XtUBENo8sc86qZ71GGj8MwHJc9z9I6csyDRddgiatXC5Cti4moh7XbSnqc1OXw
R6lxOI1XsiCjlnITfhmjFFDsJFmaRtm4dtg4bz0iEufOxEQYewobW+FwdvtrVekDta1E0FHdhJLV
Aji2xIJVgFt+BecPO3UjaGerKViQg9+Qojjcsom9pFfJrUeLnih3b9Z4jI+n8TYry19JkePwARwf
QT5b2YCCqfDQw2E6TdG7sfUGkP+ocq/zlX/N6G9cmf5gc0BRxW46a3KX9B/Rd3w+fkS94Domyb9K
FU3quq2PLPn+qiyf8PgkDSaLXY/CHvtCHZsoQuUXE/tMB7YyA8LNXRU2oUDEDkcTPhFAVlEH2NFW
e7zh0nUVKr/t/aWARBkzIzBr8SWYhatZPNrAIwRicimPeTVgg0Xoj23HcQVAaOiQRjuTG4VXBaPE
V0SxV6RVaURqrKXt+33SchOp88iOKYYgtnwq4Iu+Yn/kjaYs9Oofzv1hnqRj5a7qLETTIEIFNdui
YbsCHAv/FWpRD+N8uNNICdil2gfnaurnYGAh6Jfrmvnh/DQcjyuzk7E26pXvk6Jh9T9eJIe09oUj
dQjyq1ZDw/ZJ4WywLPPh8ov6q84FjGqR9OUwU8VMVsidFFn40Yv4ozNPx/a1uMxyON2PQ9RPLmNR
94fIiFiwyMshaD/L2r/oCIdJoe4kW/lV5oYuyjDC8jjC2rCatZpn2at0qpgDsj8KUPPNMi2NC7KB
HkTUGpuJeOUNW1sHgZ/OE0o/a38Vg1G3ScejdjiupRC8NoEKsv3Hi4n9aCcs+jgZ27YHAQWviQcj
nGCJbczS84acdYsxGGQzJlG+S8zKMhI0yrsyJbfKP+1PlN9DI+Cb/qvIFRu20gtqjrpSp84gmHUY
WMJQ/U0J76L+byHBY3vi1h0oOEVUPzDNuaCdDp/flHr6BpCFY6asLQykAmbO9VRrDoYqNmJwbOUq
S7AqTF0Uc+0HY2yCABiQ7N/gjyiczHet4R/3/vQFKFnlg3IcoRsHwRQApoiCscM5sJy70DPTjgij
BBixd8o7W9jL0t+X6fZNX2ovhgv2UHaGLDkbCOU27QKUd4xybGLBIIfIL4qa1J6mxmr3h/feh+Iq
99GNuRWCUffaAynNXPxUnmtFCSf1Eo7xnvY/VmZf3azEdsh4J/0xJNvEJtKfOsgORsg7O6iGTQhz
pMQefiosd7P2YRgZD4HA/dxQlJ3LDbU7QD5e85OyqQsbnrK32o3ggs2pgY6i7BE9e6gmt6X3YL3o
AR6Mx/cfyEs3RuLsgpF3jY81t5eKHiVvfW/O+GnPe2dMLVjzy8XMPsopvFLL8MKOC+Vd5uMmh2p2
HqXyySwXM3FJs0FvxSXEbjFTuuJqy5d74ZSpT9G5sjOKlrTxyRpDu/k+ecWUXLfSrovauCbofA/9
Mg+90k/fbq/9JUr7uctC+YN220cpVeEj2q34jRNc7o7TqrZ6IG6FePWaQyi7xDdTSNUaYWFMGD9I
7ntgVyDss/GKxocURyftk7ml5UQI8erp1Vbn737tPPNRDXumuIjy6iNmt+47SFZIpiKCIaMqztO5
Tx85dLNHQZaZTw1s+SCuHbOIdNgl7NLSRzhcPBAtRp+7kAlwp54tvU6GQ8f7GKJsfEg25LfLNWg7
31xDRn873S/vOzkctRPQRumTSjkNy/KVd6p8CP6q/ZE1PgnKRF9ct3ldZMf+2Cn5Ct9RVqxE8VH6
zrGl27gu8BrhW5USp1ovNzq0sk+M56mPdpnQy7XQi5tmEW9np7QqqwcpjHGf6zy9wGojU4MP47r0
SBoKrt8Dw/WwnEBbSGCD4jXXUYM4zuYhOg9BSYxFhhuQCWy5gmXPAAPv9XGpeVjH+Mbl0M+QMFoH
2CYUAwz+QKc1CfwAk04mUfRfv/45yWrh63T9moUKzdHEq3U6MADfOnusGN4juClWAJv2PD/SI9Aq
iwhrsytYOooa+brzvRNRkY6RhyduE4R2hcDyCC4dSokDAtJYnOIUhjLddBjAaIqhv8CwLlp2oJx8
nQUIg60sceOOoUxndPTULwQUo+TK4lePiSBJMC7J9PRbqDkUP60tjbI0rUKGHaEU+fGa4YXa+LWN
QrvjEj0hRjg9A2AWrevzX6jpenqOnYHxii2NwgEmhIDkaXjt30ZFJwKQYnsRJ99kS09pIpcAiJG7
9QqpwHgeYPaOjA9LrV1jJ+3ghjhLUTGMWLLKU/yjsQ1VCexbGZ/Hg/B9yyRIZ+vs1nkIOmkJOSnI
MYZSUnQjy8HMOFpXz/Y4IFVYfkcnsjKNbcjRz6uIbUBBtOedS4YamrJOjDy9mDaxf/uZhk9B+7H9
p29pmoFCTdNacoDZiA60LrMctqTqYUQHyn3gP8Xg4SR1NtuqgkdVf7YErT/RF+r/WkildDLrynZw
yq7W57pO7/iF+r8KRIeQAqpJj6Sx83GyDmf9dJq+EETWIIi8lEDUDARuB+z0HHA6hb5PK4Eo2WCc
mjCkn1K7Nr8q2/Bfweolw2Pzlzt/hY01alJcY5jqF5j749jr0SD6n2NvCg9Rm5ET2PjWYBVro+fm
6OUA4Lu8mynu619ED1yyeAO21RW0MLVwFhMZWPqhUwkW68qkBfT6nGAN4idorO45l8lW6P2GHa6U
0gSIaXwiZvinKKOVLLipByeSqaNnYfUXDe3yuZM1rKvTQWSwK/XJ1kkk+N36b7ETVrhIQysUfALc
joozAMlGHy90QvUPe+RAZQeIFVhirP7Ul3VH1Kz/FmVDHJls4vhoedB6xcL1R5ZvSvYDoCyvBUAm
ngruFbh9dbdRGOogFZ6nyKXztPw8aGsVzRZQSegqWwFQYc+TlR1NBWy3gDrEUJZKGCoshqh1Kn04
T0WIrkUwOTsPELD6s94CaulirXixagXUgeHXVQ/niYhwQnRtz5MjcZqpJ+zhU3yxLJNerLAvRvWi
2g1lYLKC6CeVwHT2WvA3XVZsr9UUhB0RTBnFTknYqSTsmLAb2fkdvtYDPRd0nlI6T94xegYeUX/m
D89OJ+rEE9n3anHzR/uAn4gQpvNUj2zxgKGaGLURn72wgFIaAlbqQhTKaFLTNeU4I6xP0rK10pJm
XmYp7+2I3Y+AVBZIhbv8aj2WzACRhSIBaRgQHG1WbYDIDEZAagZE/1k5QGQ6RCA6iAyfd/BYnWnW
1CBkCqRzdAxEiXDcU4iylE6R2qukEPFXfxbG9yU1dt6nxWo7+zPDRKn6UxsUONrgmwKjK9y+kSUw
3W/fpudvNOKQvOwd/6E9SyYpfTaAjpS0JuDh40ordOAf7Gv7ibdB01WrepqMSlNbdXqTQIikSyBy
C6JuccVQqzU8FZziV/SPUQOJNXTTKJea9o9rgMs/Zs2f6h92WVsmQkhWJW4uKmttzLD5QWSC2H/f
d1A750qxa4l/6oKxXu8rUv93j2VdmfE1dEp8WLNg6Tgo+1/7d/qfo6cjkVlyk6TGP1tLtMeVKo8x
OYfuZ8MjLlBLrmdpaQgySxOEgkGAyvGs5hBko4ZmJmUsIIZ/NAxCVpLar4RbtDZoU3Q4DKfgZ5AN
GbpFxyCwxdP6DBXZDLWAh7bdYtLBg8xzFAqwZyhBOJYdh5A1hMlGgNCxSGtBHheHIFs+dAv+mlBw
ryMtGkKOwicragFCxTAJowc6/poRPUNvYSGUkCssUwcPNdn/tYCHlmESHL1ST5s2ZxC1DJ2h3FKU
A0HW2wTBvkUJfkRpQql0i4Jes5T4oma3yB9uIRugdAZOk9UDTcqWHp0hZXjIHvAg+xp0hlqSD6s3
J70mewugz6J1ZJRs/tAZWES2yx84S3Ys6Ay5JKMiNiqdgcsojPs79FATZzXCLTp2C1AGZbbOh/32
Z5gj9WecI6XTWvyvohZIyWpUcFcFKP7chB1MeGBHdIAOapGVYawA2gA0qPfx99/XuU/rv8XkI5pr
bPR5rf/UlfUWjMzaAKZhMcwUQ32pDvUxMDJvIRg70L6DmunOtIOtQCLiFoHYOEoHvmKnQ2PsJDKP
IhA7bL6juRrNFohMngjEGfGPaQ/j79gLyXyCYNhcfrD1O9MlY88iiwwEwuzyFCd7pXq0F8eLqNMR
TMXwglG07QtFzBskOjYqH/efKiQ8XEm2sxCMZ1L+A9HJSgXBNMxjSdFJ0IY95yRRHiIYtp4AJ6+r
Px/AyIoaEZxtEbylmIj1h0AaRjEQIin0eMan8SfdJKg9LfvvsTtSWDu1xneVkvesdZcDSZQ7ZMZ3
DFKJCblSH/I0vZBvBv8Q8820lGUbdlLMoaS6qkvD2BNUb/hUPfrTtsnova3RyAA5epV19IqOlnHq
KsmeOeQShM5CyIDps0wTAp1hh7NZWgil/pOdQeZSgtBaCBX6g5Vek4AQZAYlCA1zeHNye2sLQebN
xqSNVkzqALsOJ8CEUr31tr/sc+EzCyyndbJ62psGsQOr6QqC1lGrPwuTR7jZRJT5l9i5UHLwNS60
ViM1Mx5uu9JYCIUpG1wWpP40AxL7D02+H1F/mBJiOdtqUePcRpN2W3t38cv136KpCAzH1Dwcg41k
hY4BM0CarnIpA1t3bC0A7uBOt2AiEXIC4+zMRQdPTxLigGTZQYDYpgQsgofYl4nsLIubpHT+Zl/M
M7fhuRq3BeMySEz4DSN9A/+wK2eVs9hnCa6I+jMz03tx0Lj+DP95Z6KOrXPT8VSTu4Ih1jpQPFz3
BYvsbPUMi7MhzmP01/1PMLTu77DVSGsw9jcWvBCFzm3YtgYjs66Kh4zyNpm8U4Owaac1RlFrE0VV
asiotJhIIEVbWvWYYRg1y3Kj0PYo2Npsg8hN+yd0q6+SygipaO6U5IHdctOBru6MqoYyRO3FvFz2
PW7NHteND49Y+DKskUv27/vqMuqC12Wg8Go1/o2ucOS8ZOg0Fntlg6xivK3zRPFA9X+jZMEagnNy
3PAhKg3KrJygiKX+l50cV26DtYWZh3uYzK7vZZ+4r+xyKOX+1fhnyxqEP36azte/qm+MEcT+KkpA
bAZsjvVOYJQ21rAqDNBi5yOXbCkNRePNpnMlstbyG/3P+7L4JZeImDFr9f1xljphE/4pJmD0EVlN
NNBOZUhHT2zVAWr851gUgUSWTZxhd1RhNDuulTHd4NO8U7vbfU4Z7vhRf+rrDquSGvZYL4Q9lsGC
evJOV6IO+9Ubyz5hZzmM6dACZl04QWJm/dd9XFwzLsa6w9JQnlHCjkbeZWdlzM/DPW+1WSk0fFxN
TmmfiM6YiC7x9uWaUtqnJvIVAiaousZKloNJ1uh/3qccbS6xBD1c5qYUzUiVfo9YoayKzR8rAsvw
zzWpqC3S8WMn11dctLe85O5tOJgypdUKzQR5XNj9EljJV+hiRfw+YjWyCYooz0uM6pQph7BDI7AN
DBX6IVWuRdhRq+bjtFfnZczyxBKpom5YBLN/+QmG0dv4pf4LC72QoOes/QDayFJ4QC1sYSqmCY3i
2HthDXFlPMC2K4AU2HiQw/10Cg6ZpO/S9TsMW+t4HoyaEH+uWz9jo6WU8lKmovhhYX+PjYKCotrD
iLNPn58mYfUZ/Xhlf5y10879ezKcBir5dpb7SbDyFVaGFQ96eA/OYsdRJ+pSyXNoYQfBqFcYrF/o
PMF6XSX5krqqihqGZcE4EAlOY3GT4/CotVcDLmfuJkEo7UmcYn9hmTZ9WNgPbSciolQv2NuN0Mwi
FOWurWtRFj9vYTn0p9MSlr+ZjYdRutTcZbjcz8J+PRLeLASGVadpaz/HeTsrFAGITYdDtGXd/mOq
4vdcgnkKWY0RJ9uAAx0YWPwtfG+VEPhT6yYs+JbG3IY/tRrQ1NFb2UL7/XTtLfsbu/xZWDZKq/+s
Q5ADtnNd5MNXxuKT4xitaY7Cs8IWGyWLvH6Ap/He32794TU8L5HgWUMxw+BWmz/Ai61YzB+mNJg6
4OHjZuqLKTAr2ISZLYFmpffn4fY6HaXvcrYb1Hal619XskncwZqxGvMK1WDnfD4radIvg1lefJr6
owSNlZuXZPLlhQMP+ysie2Eztl22XncQbE9E8zWlXZ4EjO91Rc6qaveKa2/ckvSn62tPM/lh89fl
MJ4S9WpA6L34I9Y5z3G2mB4Fqv5DbJqCFixg4NjNcxv0Yz0t13kwzZx0wBgUS0jO7ufxcphmmLyf
mKvvatvRV7QOao6Z1OqRzjQLDyKJsHYCKppq/K9hdz7r3ia9bFSCbdGX4+QuEyNRgPU6W/yQ2nOO
ir1fdHPcEg431zYEz6YJT9j4SMtyaRSoXfouwGIFbJgAzFPWL0R0p6EKQGxeAhIMJlrqPxCuiRdg
2QxFCY5U2eXOgQBDJPdR5j9LoGyigfW4SXjCxe8CQFuqh9U79dpcuT5n+OOKJU4AYUadwnlAEh+h
zRSM5zccCC69f8reDKOAufYPb/Zm4wmmlveXcZlu83QN9HzRySyeWJM1nEsbbjQuNbmPAb1FUCwR
OOsm6eFgzp36YsG2QjriUtyEQ9U2x4MLo3ItdAPPd+gvb72Es4zxTItzuNsAQAFI5bkiSdX+aJwe
+OfkOn4MpyXWrVuyGjIn8cFhwExPpQakOcsEzdaToS1vguPMXqJnxO473TONOzEEKUYvy4tcMeto
Gvk24MyQSewejUK1yGQjbB9gsl5sY5vdnyJ8WuU+Aak/xzXTfFd0GE5pSZotbHo44pti2ucRyMjs
vJE8Jjohy8NiTkAbJYbhnF3W2OQI1ugBcw8CVCsYmC+0Pa/wPcurYh5flzw8PooSKMOy45oZT1jj
LhH+FNhSHuQRegIrNc0YHuOiruMp8R90H/d/3m//+fxHwdWjCnAeOMrstktE+04QJU/uYRWory1L
SZa/gGbJ//TH/viH+UWy2Uprs2ExoHVl/yAs+8FPC2s0M5eT0PwnRfDxH8+tVcrG32is/pXW2whH
twYyVqW2/OtnKctgXQVsdDCW9fXz1+Hjl/uTRp50dWtiYRlnAEIcA4VFPw58bVb0/6sYv6CPLfrY
XPpx+TXo7evvrBHLxiDRMo8/oOH5NwiiDXP8/JV9gyxDt73Us7w+4lgsc5+rB3rob6iGpE+tcY/B
uIK//bjj3Mz+pno4M4PsS89X1r4bgIj5s3Wcfx76t+E/psv/N4RmoRMzWHYCV7opzWQDJYf/iIB2
kJO9Fpu1xclpBwz2pNRdUq63+mPM98gZPRdA0xuZIH1a+4SBhyqlZ22c99AxqNtOri4r32saopJ+
tnAFSsfFwQ5pYuURiypbfO8QpPbd2eA4LQl2kDGLndhAKEf9Do5irGBHnbs42EF8mUs/5cNJpCMw
hQTVqdlGFP37r3/9eQcyGA/BHG5XrexAhJVqZsD1lgZ3HoSJdwTGeEnB2qliraxnbrKjYnechKXl
saZGG+PWTIjaL/S6LDDGHX+DXIT183DJJPRaCulaO7HEQYuEDyvdwNM3CdPDdMFJK6YE4h/38fD9
p9fh8P0Pf/tL8pNQ/tDasnq28tD9/o9SXX5rRwswVaY82H/7WTLBSjbzrNoG7t2f/7dvf5F+31ab
MpEtBlxp93Pn207u/vIfpN9N3d3kjZ1VHA4R0y/bEzP7bYPyQvrpgi2DxsHxPhC/fPu/JRj2+nmG
Owu8x5BqhVs2PIOSP6UHxJ++/ZsEg1V6cQNsc4xSAmELeJgZ+TLcfqJgpPQSrW87vPvbP3/7Rfpx
Vi+NhVJYVEuJ3exf0n8pTOLAYc9NJBOCUGyPbDhcwac/MdMGvl/Hg1FUJrScnODYBjTn7XlY57U/
Pe8LQSLIjHXFNbgpz5mhhFuIEhNIXwQ47Gh2h7R0sEgQkqAW7uSuXI6yXd/m20GAxvrWyjWrLZ1R
iLQRRNa/VWODZ93ZiKJedK33t+hgv2ySElQ2Lg0r38tUvncv3pp1iNkltoFbQ0K9F8b9Zbb9EGfw
5B2j5L//2x8F2mUTv6xVgYUIiZmBdtyfxiaYjHhxuWoeiptG75Wye2V4ufVeT6fhckzO4+Xcfwhn
qb2ju2IMIByJjW7sdF7zf+sc/aSEzmCSKcs/CMArBA8Pr1AGTD/w8ToHS3AqncmlosxOr0ixI+Ug
Y/7UH74vAgRb1skU8XQdLsjVT5AmXCBfcL7ePhNpSCCCa+2BkNedYcJDcpv7y9JLa57wTLbOkosh
50yTOgpuPe+Fw9gSKbYVl51hRVAyLtOpv9GiodMxDLKzR2PjR4eP4QDpNvWIMApRuFpta6Zw93rt
udrwce0VrUYu19j6LXS7ahuH51hO5vsFZ98pLXi4z7Ny40+fAspYle86acLAhVO9z+PNfcfkOME6
+/sluU1K778OAr22Fn3a4Kh0ehaSSEPyNE/vuD3qMuEvXib8PQGgHR3BIpD8PQDiH5S4PtwG4V1r
i002wxSLKmiC6v0AC6N/gGAYDTbrwMfNg+/jrYbRTmt3sqo70sTGQ3iJOaLK9iNwH/s0qRMc77Oe
jwiXDOfGEVWWRKoCC2XMVGwXRQJOMp/M0ULPTI28TDqTov75Cl0c48urMtT68RTK7NLpLEFAOCmv
PPjGrARnfwHnjcvvzR5wu4mjqRkq1zHNgP6kvysXah5/l7ipy33Eb4lWk8VXT9W2Li+0rgw3916S
l35+AvPvMJ1OtFVeuKo9K9u2wGXxj7NY48Mi8AVmzqBcRmIL+wZsk6L7wrSClh92vNDsZXVgATS7
c7tWFRG3r68kkHLjknLjYxP1b0fcxnZfJK7IfRznVcvAb8cR7FsgIQIv6WrLbxDoqbKwjoVV51eb
IhUelPGwXdO9vsZpgvzyM1QLSNVUZg5pUF2jtj7AmeDSJ2XdX4Y979JYkY6xh/bhyj/IeF3l6opO
5GeB7phpwIq/HMIRcFa6VJtGrifch2G/oqA8FYefufGr/zmxA3sv0w3tO9D9t0E6auoT9uBbnZTL
9n34FAi3YmqsXgWSEmsYGWDnW5PZ5+mtP4XLccvM1jdDoNAsPMX67uS+hPwE/bEtSM6wK9fMPtO2
m/hsBMGWpeeY8CVav9zP0AMKlI13kiDYymSoostLlkvHAeTK/lO+gAShciEErLse7bFlz5Fq91L5
5lK0BpXW3MLx1JtL0GzNNjgW+oXe1Q2nd1jnK6LXluHrHbmlif4SueFSXIngLDd0OCxCV79PipG+
Sm8Y62ILOPCIzU56S/km99Kht55UsGFJErIaP2gpSsdhEDMcY9F9hX5SNmCNKp09zy0SDEFgtcgQ
nG2/wkcp31QNELDYWguGG70wqP4fwg9bdeKE2zc4Vw7UJfnnf42tRHFK7n6MF1PW/khl3oCcH+VF
gpb5qJfckRFMGs4YzOgcz+fhOKrfO0nQ2Y5HzmxmOfG6r0A6IKu6t9IwKixS1hpFb21ixeRHK65W
F1QaXZAUrU+t6V9mpdbDxyg6ajw4tL6Xwah2/NZ4ygWxLhzKGhVsb9XwNqxDWPplPCRP0/EzsioF
Y/dZavMXeUODmfU6CQCjGGAXkIIBQaleWCDSdzZr4URADxTuuiwjVLRKACo2KaDTuySIgIPdP4hF
FtqqVps+EuqpmoeP9DjLRQ/pH80+AIyaPJ2mp6RfPi+HYC6zY4Px8Tn1aF3wc06KquT6+K7iVeIr
heLvLqfxQOE5GN4eBsEKsBj/3+eT0nz/uI/zcIxxKV6jc6HU9hqACigofppm6Sas7cBqHA4ASRyR
MlyE+pGO1TCgRiWJ01+vyrNAzMDdblM4oFvoIV1rkht4X4tt3aRB0WL8ZzxeggcVnhrFf87SfLxe
iQOit4vAsUTPIkgPUKLH2aQM6wcweKsYFJvHBRe+cw7zBawTMJbT5bm98YLNiRrq29ivMCVguZNh
zk2Xu/J74DDLYR6vUIAPTijVplLbhuAVF3qS3Nrvbuo3NctAtF9gEsZqVhGgfiVUHyH9uajzKIfr
U4DDuD5bPQzOK6tyjrIdb4VZ5SCA0pB+H6/J0/0SVEl4nswFQvaUemnIdV6VFzfgc4UBNLZ0iXls
4H4Ol+n+8rpLAhVsPcjK9vPwNn0fItSCn7PeqtIrwI4QltD1+lG0WqkO9ZE6jP3IDeP5RZBBDAj1
6j6eaYQeqGn+jBJt6ZJM+QBqUabi0/SRjNgtKCAqdVVOvVU5ssZiVUiYQNX6HuvTLWpit2EjJ+rV
aeK3wX8WH5wVvTLVSRug5vEF7f1goyphwuIUSokLhol1Wfck6RhLcizM5Nzi+fko3IB9b3Mlu9QR
Hr92i8rMBKhp+j5qK4aJpkNP3pD+n0MjH8wICcxZdaTH0dq9DsPhVR1IuVXLqCeL4t8l61/aPAOs
MrvflJcFeezgSAh1dLabgHneW7jXHnb0wddnERrbJMId58dzwrFEIl0HGpoFJ7ae8wHaetHkDn7V
2zSKd86y7SlbP1wEtEiQ2IKRxrroWzjqL/rvEhi2N4WvDvQDSkzYPcxbhLxu19PSU0hw7Cx2Zlc+
wMHiiF7JUXKkJID5zuu+HNjTRmml2Ql1OPVXrFYZZVqut/Aa4xeNNFXGeAbJ63g8DroFS2k1kDuw
muq+rM5DAh9dQe1d+1kKyZcpm0SCf9CzpWkX/IbP8sej6y/C85+yxv2CVEiaVeHfaL1fhKYuYT7c
/xvhQS58jgv/InwPZzAdu3kWPhVL22PTMeXIzDO5rwePFoRUsPtlDCNF+Ldt2BSrBHV5i1L2w/FX
SEogbRw+fxJ/lm2YKFeRk2bhn+UD3prVrAuOb9Wd2B6CyprwqVI/MsKPnXW+pzsshHVlKg6UPQGH
JXmHSKL7NqCUoCVc4KWC8QXOaNSRnjQL0wcbjMauHqKP6fw0Xnq5Bqhg6K9XlwUvidfCFvzXfklw
PJoCpewFbD+lsGkYro2J5WmmVyoi0sNcnLVe4knDD5uzh7XBdWmYUp65v1FHMHidllEqaClYyMgm
gwLwnhXijgmClDKDhR8PobV82CPqpYv7Db1qcxqZc0uX4kXEYJISan0lzDAWYoaiEiHT2hH92l+U
UBnBL3gp8uT5kAPOg/FeU4iBoeJ6LVgDRny93a4JxLPeyM0X5qiYOSLU47li6+N8gnrAGYzg++1Z
GARrehpXAKUpxu8xjYBxh/DXKZ9IuAp5+GmdeYBwo9LEEN1fDuOYHAdCWRgvbDBtBYxQaU44Ke6/
ZJDKwH8SzsSyOeVqjfHF1K3wKrXvY2XF3I9TAmgNjwyr2Rp3RutXeAaaZbMkTRr+nOWxeIsn4NIQ
WvjcbDyP0+hyHpfrqYcCWzi8wv6pj4z6MbOZCBQQv6mHHWaQmDoUpcnrXz6CR2o7X7ZQkWOi2OM0
3m445Qn2iiqOPAsUWrlorcNwLhNA+ggBqn2AlEiY++EDK6uT+S6QRurjFCRoiB6eQLRQBS2gJgyn
LX3HMOyq6VR4aUZlTJ0bbr+McB7h88p3C03gt/4F+t1Zvkig9swHCJ4lq5On8UW/ifCu2TbbWFvL
RF/nKEnQNnWTrsUjwyTn/iDgwgLIKUXTGKY597fDq+IaKABXWBG4xSs/h+XQX2E8hLI0vgvZa1Ng
uZE3+jN4CunHK2f29vr1v/3x/6SpAU9+V3jdyQEqrdFcrhvsDsvLU14ELNZcL+rj3xHS//W/fkp+
+o/wR/n6EdtgTtlEdUqdYw912uZ6uZ/5WZui/0jkOxb2I85pypAI5MHxp9hX1pt/efoGeEkCK1zw
w85+aElhXKZknJOqFc6ZrR/WpY3lfCTD/ZAcLsKHFq9NaucK6DeUjtrYo1oLKfb0re9+h4t6hPA3
lfsElZlJ/YLEPd5OgyBiWp+oQ9sEjLn5foLZYffbJLAnL2lgHTVcyAxvZo785i9DAzuqgs2KwT18
Zg0fqFttEivuh5MKppu36gTSujh0JIqcDe/Xj9ZGJVkb9tdNWypTI9+nsU0EXdiUvrMzsRUxHKva
q4a0baG+fx36o3D3xv35xtWBosVrCqg39o2DuFxAHCuS2ZppO4zbjmkcLFXVZn9/HparstNiNONV
uo5tm+SCCWOxToWyXGc7ppSgtq2ZCgm5+hF9AtFZhmZzQJTNBk8e83UqPv7cigNIwbzCEDzAobIA
L+RpCBfYmA3ks3yqn5bGTZou+43Z9lt/7UGbMIsjNEIGH2BTfudxEUqJ9uznJg0Cz3+8RBKx+NMW
e5iIz7eeTS7wW+7wmzblnWN3kqyxP43l7abCEwux486NGVexqarSLyYcu8q8ljb2C6B1J/kdpnUG
f9UmDw2vYR188vR5021lkEW7n6+ia2W6DlY8avqHsXijgpD8djVjNgX/ofbWOzqPUUg0ZK+FjVt0
rdfx5VVZ7beE3GzhCkUo4ABipE30bP+wE2ZJGGf6V4+nV3aNQEtWhLHece0NWrcj5gp69ZeJekQ0
b1o5jq2e12EIQ/2kgD0mALO1u4MxYSlwQemT/dDypPUeNGF8KikIpXCkSMONDkgJoid5uGZ5JRAC
m77Lvj4OF2ibP42Q98Gs3jFZZWTMMbaKmU/JYkaZKcVchjPwywmEvXLQLsM7BAcFyJnvrJ/9K46y
G0+CCEl9IkQTeYLBDyvAhFiIN4aB9GYCKWFyy913L+ycZMNtcASB6OztWWnoI8vIUZjCZ246vrrh
/DDJcOvHddiN6SQ77GyJFuuEvUx77cas9Knfo5Lbf1h+NTOjtTmkGCsgQdADsKMNzUx5koP9YZ7O
CpmrPSBbFWXjo8zX4Wke3vGDtq26RPIda9eT4wCEr7yuHP1WMgrfVV4XcPnLL/8JH7d/ET7duJyl
Wek0HgIdC7SvcxOncJxqhX/hBzvhjoPwHQs1tJRGcoW0IKIrn8lg1AqUOQtsXvjcEmAwJdu+R8WE
6Wre1MaDdLtNSX96h+kKqKKFI2Rer84xz2PeVe1VKtdhPmA3GsTFRFsv71zrRvcG9i9k3x/Hl1Fg
p6LzBcRc6yKTrAurguqGRi9ANO9++D7j7wvob72JA9euESST/WE+kQ3mMJyg0GgVJ79dBdxnrnun
K/lelapIplnJeckzTd1ofbbxS2/TSSpxwjt4PSQHBbWE+8znJTANIyA//sut9MuWZjvc0+UYQh/3
BcfTPisTQ4rLNz7edwlAiiuwFiKsWcgd2YFKNaxazbonY1jiqFeDvheoQcdeUs3DeuDYdIMJ2rNy
nU/DLTjmsLRBX9ruh4WMuakfNG214Y8rNnTKSoQbbvnAQh6lvSdoCwUnar4IoJQ2qH2w9FIMfQ1a
phImVThTU7MekLWc8RElUi1UacObm/MEi3Xgk7x1P6nNYLsX6iMOf1lnbEvvWt/wiu4nFZ0LF2bf
Wg6hipgE32LRVVXDMyzGoeytkfkRLLS170o6knnqQ+K+tDFzpBFshqiM0vmA0tZgPKhkhcu0cBoH
zvvIQaf7r/0xHGVAFFlwrMTVZMagSmCkTuY38VSdJXdW6aqRAS4eIuQjTONp6r+WtAa6K2xnA6vd
QPdE3wB0ycsMpYPoOQkM27DGhoaWNmq8KlF2U1T6qajlddDNmRp8jESYELBhA2xh0BRHAkEdLQJK
CYHGhRWpxkH0ZL5PNoRyVNYJ7lwQUNP4rkFy49R/wvSq5+lwX6Jyo/GxY7AsptTLzNfusdXA6J+W
6YRbO3TaAUZqjcchKhDK3D1BKxf0oeRqdiBx7sH1FzDYur8bKbrEm5c+ZL2Ny6go5icSUf+OhaF/
E0o+iXRa3/vpjp0j1kp8SsM/kJQZf1KJkSnpZ3pDqWwtXIm8BanufVd9JHWg8XYDuw+Fs66pwUli
MYbjygKrpjs2ScQIdoS6C15dhLW4qzNex9MxUcJWeIa09BEB5YOJmS7DCy4IEQYskg5ot7KqlqtD
kZDZymbratFdlMGmLDVzIyXfZOtm9Ws3Wvnp/qL+rmyEkzMTxAZDTACP2m/0e09x/V4zdkYDUOdl
Nty53C/fQ03IyJ0WMyXuudNb71lSk+mR15F6PqO02LKrgnOhEwgay6uVof7veLnruUiv/SgctGx9
5AhlqrcVHvQs0fWl58t9tos+GbHHLhO54lrbZna21oOgEgofPWgL+wK5io8V4aIdUxUOQZpC0kyQ
7EXtYwiUC7gAyn0n6tmHht9zjz2OMdHR+fTGSjwP7olAnqn7WKVcVYtXy32ihkSeI7FBm6jLLqYY
hcgnwnWcsPGPkomSw3A6bXAnEWLtwxJUYpmwt8ANTAbZUrutHSz2t3dN6YNxmXBsARPNAps3ftVe
Cq+T+vRxsHUB78oUW7dGswnj8/SegGy6cl9GMgdyV/fq4RooddFrEI6xQVfGPqUhn6TBuVAToLHH
b0hl6/DdiUqTxfbhjo+X1sNj/xebHHEc35LneTorTT98jKixlTCxup9Geux3+NaKpY3UfCT7L5gE
lSs/Oyb+dpq0FX8S/KPiQthsHZK6plAQZ76TbAksLh0UeWX+6EArMEThk8RKzkKTp2O7CdTA8FDj
H9WWOB3Jt8v+KyufEQ576rK0LlqBx6vGZ+Au1wF3H/86Tadfx2vSL+BcSgRS+Hg12EmFZ05dZG5F
xdeJdKPJum2gI8FhIOAox8aBmGq6h1cS3QjykgWFVPr9SkkEs7HydmKg5pn+Mp4joottBGB2iz41
GfN21fK1H2fJtWJE1mD+JWUxLgw86DnHgh7LfebP+9PsxLfi+jjrXDjZhnh2apjC/yCCd1K0Pn6x
P0zkepniQrr1CTIj4q+zUuwzyJMIQiuGiArFWMVs5D88E52qP4/T4X6WI3ZWIGIhT/1I8UyH4AB+
mMINOiBmY7L4Fxwyb2uB2aUH25iYDROdx7tyxw9oqtJfoHsuyB+vyKIj/aDnnJU+NyNmoENJP1TG
7UJl2fkcWueRLjj1nQzm6MvUjr2mg5nMoQTr5MdtkY6txWC15cfh1o+nRTm85zO0Su96/XVeRO4s
eGOpiji/bxICrKhXjwzoiqYSwnxd6QZydavZutEaBm+hYantS3pS/bBAQPMQLhiveIn6OoIK65aP
78rgTZ5maHvXyFru8zy9wKwLENtJsDA8a3iS3ho6ylx57bG7X8kZyPJTpdwMQ5mDsEyhycMRkQDh
yvhVKL7T8rEDqWOdhmKbLW/hd8fdhBI5LZ8lkOreN10CculnEDfIboBNrFeCFKqAPlbDgdNTdPLv
t7ty9Z8/E1jk8TL319dEz40MY6+12MvxDx2c/P56Vqg/9ZOSqhcB+x17yby0a6IxUn+H4DhS3Rpt
PmMbKMBcwvfj3QY1duc6YycBIlS83+b7kUKdR7O9QYfDwqCrnFEedW1rarlQqOq9n4/ho5n6LkwC
ZriAQM8yGPR0aqD9C0j8ZbhC61xohCAFIGtfsQpylkwCZvgffmkbKRlPLtPzLXn9vL4K7G0GWW6g
HF6V7zfez4Do+0fybEYMhwUrRRHZq1mWgKx4f8Cty7cohNrXSUNzq7Ch20TYYBnAs8giLS886vCx
NxUSyiH7hCmY48slSjYVb0uxYpoEqhaBt/dBgcPDXmBIfnL47bvAN+yqOaI+39DRK2y+hl/AHxBo
yJYfYQlKtmUVrYnmMIiS3a6pbewfzZWEzQ37CIKo7X3Y8O/lNk/fQ5EoMtptKxMb7b28vdhHpvMr
s+QiQ7KczQd6z/37H8fj+GtoTRS+RmERwEqkXSVHRgb+M5mcr72AUl5MZm1pqFqkdtp4HzkdzDIo
LWw3BsZepPAiOrQxdL/2dJmoTkcJT1xfdHiVFI63MW56fl6G25+n+W9Gupsxxc/S2G6KWWU+VmdH
Cn9a8xax1Go/qBS79afx94HmT8xvQ3J5Wq6CvNlcq1ldP3Qdw+/Ssi9x9be2X57A0r9hE+j0DKdI
3pUaJi7kykt4cCYXeF4G5rMZj8cQTkScNnnuHNI6trhYYIh83maZTzk8KWZK5gFGHA+wkGWJCXVW
Ooo+HPElaSYBEY1bVZlnvABAy9r3SfEj9r7BDheFaHEiKDFE59LdZu/EzSxaA7/5pMxRgScqFz3Z
ViX02tPFvxLaJEgflD4JtFKQevMRnSfF+sKDe/Unk2Hoh6FOmT5whstxRI8eHY1zKIGWs2HHpudU
bzmgZ4SVV7g/ZZhhpKrMv3XNZBINUmpdoX9TFv8LWJ/Y7ROsnqH3ZHhr151l4+V6v2HQ+mY2750p
Y0hWRGQUJhFg4ysHdkxQHQhVQq+fBelZcsOI/oZgWRMtqQR5l/tetb8td8WIN3KSZjCBV9tBsGNy
x0bTXHV4Sd6WBCEKwpLpSDtlkWquKAULQff30DpQIlAmcG0rnY7bgP8+TyeBcCrf1xtPQ8cdsD5j
1baCq8FdKfLs9JlgIRPokt9DS7HpTIUrplITf/+e0EiARQlLOJyopp3y+sp6UXgKKSdNZ8h82hnx
curnF1YcYVKXSs2uNSIT/MtNcFLa1uesPwg6SjZocRfpJ6h5z7w11pbX6X46wqjACDE2ZeYT45TO
x4P8/S48epH5brQaL0hBLyfFmCYzR3nR/vgWrBIlFmHKhYpLWu1c4uyjUdGDofJk9YsEHVinXiMS
ZbZGNLwyyLmIMGNOAgty2zdcjLYykYPxAHLt3CfTnDzDkJLlNl0FAmbGtx04ukp07o1EjJbGUgYI
Pt3x9hjZIJBCYKPy2Q/MRtRTEUfJGmMmEC73a7QVv2BzAk4Kw971/gTvG9psQC/AKB6MkKyVHNLh
LjmjTGalnd2oO160rNELP0E7CPqt8rnrawwOtMqpF4znMncRnDODAGKAp/E83mLmLnPamEjX8UrN
dRcY+YqThN4VmgRoDes2wqXNZYDK319hv2AkyJb6THyusktBZWe+oSdUo7Xc+vmm3S6dFfg+Xq/6
zcKv3la+ERw2XoDT6rDOSlQ1ReOa45W16vUKKdjHpXXDZbgry1MgIt7fRUnJEL+amK7AsZas2Zpx
kJfKMMWJScAZrFZCoKu8cvVD93hL9NaOckKC7lj6dA2nhK+Yvw23GCDkkemYBxIl0iR+tlr85BPr
EDs5bxgRJ3xIZFPbeW9Y5MEf6DKRY0E5JMj33G/mrwzGQ0BNWzoBrfHtzP4uz5n1UNxrf0my8DnZ
JmMK+ep8fV4Hj9GmbPvxKjzSvAl/YZcS8+xqIGoPX1T8XLZMbza2DzhXwUuldjEvuhC1WLtc2264
9YCN6wauIwllU7+202IKvc9DO0ah4iq8autetRMLJmo7nQS/sFxmwx4wyy8YJqttF9LmumYhwsoQ
CA5n9GZZmChLP1G6UZhgd21tZ3MVlWMzpHkYZ439ghVDCBdow+fPGTJRnqb7mCoP00ATYqrwMdr8
i09ShEE1ftmTZmEGaAovh2ZhKdCkLhHGaSjM7R2TltxTDxXE1LbHvNjOXw5TalU5dzSVk0/LNTlP
R6oih9PDiZfwWS3vsNoI4d5hsdgxsVgXtrRIABYWCi0TCiAgssawUfjVW/bqNpYmvWEYVLVho4qJ
bMx608CJtd4SY19hxZQyfmgeZRyey9iVeq5EPNRb29FMBBi3qhcbOwAJQZfy4Y/Rr+yrpK7t6JYN
a0D2wGblsMpXOCWTqnbzSCibjtRtuZ51lokIC/+6i/y1TjlIF2Ex0TEx4TapBYGFeb5tt7rGJMx6
XNtrM7jJocfNB2JkurbDVTZyN83CkrrJQ6aJq+72kWPa+PGTCuKydo2jtXMgTBx14xXvefiLpnFF
A5FTGphYVNt5qUXlOF+hGem1HYb7YBaGqalOXSLPtVFtMc9DYzF/s7ZTiDe8qiEyALgIG9YkhCFl
W61vYKHcM+WACNhUnITZxlI6hmPkOe21ndS34dlQz0VtxxBs0C8wZpgiW06R2MWWis2eKLA6H+bT
PHzFxlXgD5w3gf+MImAX57Hf73DIXBQBYU3aFQE2zsMIaDrX7JUnydd2pFjhDkwHBBgVSLkXydau
vGZTHn7bpvZ6U3lYEjSle8xK7Jqt7cjAzcU0s+CcAEr6hPHfuQD2GB9hAz4tHl7GzegJpT2ZL32l
Gzwgp2G2qM5SpDz3zsRZbr2iaiip+Fn3MGOzyJp5EYIfLJdA0zdqJ/aOsaLhDJtD7wtrjdkZgOf1
TNymomTZdRovt9tEZQu4WnxJDi9CnJUnwHEYbJpnUqXiPdgMTt5Pua1UzF1o/ds0HtWDPH0KceTW
lxPAemrad9HTdxjr+vlPf0zy5N9//evP4bJEM8wkpUXuZkMqfA6WpmLk8LdmflHqNuFgmO1ygQnN
gdAU/bKtocSMYhUvuzQjY1JnuTb+4Hm43E+hXbV02tqp2cxzflNdZ5WIP1/YQlEIDOnajAcIQhFo
YS+AHP2IbSH1RRBKi4JqRYFTJDeeccnzICGjZdWo5HPRZfRA+ASPdD1hMaP0iB2Dw2vHiP5yEC/J
PGBzXMjOIGLI3MdxTP31HLBcRgdwj2FYNTsT70CQy3MLlxp5Py3G3NhonjCUMnc5orXI+MN/aNtL
YsbUhwXsFFpbhKh6FgeLfYRRwGiddwvdXmFy6H1epllexkJEUviqnB0SMeF03cBDSoCiyjLhtEx2
tIXtvtN1f7rm9DZhHnISJ0S3bOsxI8Q2iDyBdBp2KlqzbRSUYi0aODh/X3bgrmx8lACD6IQRfXQG
i3WcWqhH9I0XhW5rDQqYYLXp1mdXDv/TeEh0Zkbgg9qVUEzE6nRQ0GSge/My98ouhcd9i8MXXqJl
52DdmX4BhWNY1f/tlQgWaM6rcahuD+FRy5iCZcg6HGAhVOc+oQFVOdxlM55BGE5T+YjltZ+fn+6/
/5483Z+focUYh9gLuK8sGOaWIs8/9a+3JEI47Ua76pyn3s/3u0ISJs8P1uzBsrbkON1DXYZ0O85U
mC/uHomK1r2iATPePkHa9jrTDwlTQR+2Lr1mTKOSdQojNmksolBLTbAs7RbVWm4r945YsYOLUsuo
iESTlgxxgfzb1qtIFDiFqHWOK4xqDO0zoONxMMwhXmv8jeWtC9chkak4qhffs+SiljmZ1+ma3GGl
srKydSk8Jimx9g6CmesbC7RiaZCXXMDI6xj5VplLvrnfhJgHTRfU9qaXHmsylARS5kflBKruPn9X
fLHnfkw8dtjjRrhDD/On/+P/lA3QjhkpxSZ7/6J8S+ytmR0tLHSdk8nRujKD2bS8VgkK1gdqZVyS
/++/fxEAMiFkBxsKUkRAFtNkPJSFpzN1jwKd2hfDfcwFa22SM6j04PYi8GpN/iXWxvra/vhbfwgV
sBKfM9nIqgtiMlfAGeN4tiEITjvcoYe3B9acz7AecZoFes9rlzD07N7fvivcYTltHzGAmE5L8Y/c
8fWdHAQQrtQ0QBDt1cDaqz2myWhazFZWRA8kosaLzr0q0yHDB/TwjjdbLyJgrAmyEnniVOmKPauR
+j+CZ+UsJOfXEU0bgYZUt28qDtE181Ga0s7AMu5jf+Mh7Ajqytqnp36DRIieso2bCZXpd5Fkd81U
CqXtOm61Klp7H4ZT8tskkX7WbIBoCllZB9F1Hm7zeFgijlyX+97ScbN3OYRt5jNP1ONdBsEZbZjk
Kuz6dUtJP/0iSWB7dlybUq1WKTgvwq+yR2CDl7CWd4/ArHiABSPQTVRkCnWchD9OXyw3/QRq92m4
vCjhKFBn4VpnTF+ex3lWqvJV0fssSIbGB8AlKCoVjpBT5liWRePMVgAf9Q4xG6qWjWO6ZIqRNz2j
qf/Yl6UH4qwyR0B36fP+yPfUZePC+zP5bOsvH8JjgjVdFO7P15wC36b3QTLQKq8qfcAxzRC+P8Hy
QgFYIIaErUIoHsGgnZ5+g7JLM3Bon9NYb7zQcmXPg3JfBSJqvCEqnVHXUgmL+Rz6FODVXteJqVPM
OEmhtoz3wfOIO8ltHL8uYDljNgJoEoVqNm9NWZrT5fSpDdnpebdXXjyYQCwLoLxJSCbs6ZZJvd0y
9+UG6Q5g1WMPGznk+lHWqs0q2ufhhTZKA2sdwBRLls/z9HSS2meah+V467XWHg/T3PGsrPX7LBTJ
mmgIlgJX60bh5azssER3cYijF5qKd4Y0dowYGU5rfS24hTj5974oxoOp/LlQbZv5Fjcam9FW2epF
EFRtK1UC577q3ceacF3Kq8vrLnd1eqm9N/UVeKM2MNkcoaEm0HNkiqblptW28TWt8g4L7d6uTY26
KWBevjRkgtf3l1Ss7Ou3wohZOA3JEUUNyMVDJzQKZG5ZCdkvSx0gDBtnLLljXkTaTLLW171puxfI
g8ZEq1ukL2Otrrvt22Z2vsRx7JVJTJI5aIlRsN4iHwNcVfnQv0IVoNbsX25ij5mppdoIM17GXgh5
29THlWT4RLI7hJba1yb3UCjzjzsMK4UxISJ22DQG0PnVpnWFxFZMLJep2wixnb0hs2HLWxmRD82O
JmdowGsv9WLwJ7Ed1uO1T26231vqnuncpuHisUWVJqGFxxgRq/MsPzyv7sfDMgHbCZkL2GAQUMxq
sUT9h4a3rxP4+eLghJol3UswRqu0C9xK0Eu8O5A5k37NLSgjpnAxN56vBZRY244PbbuuZjnQT+1t
fP0SoLow86fUaw809EP73aKxTtIw9/a4rakqG2FZlBMODvj+YS5WPrKwNlObgm4sfaIVzRyBlC1e
2DYTK493YIPVlmDc0Qzjug2H1/vn9H0SXoWZaHbN3raXLToTjG6SBYfY6MEC6h9nqHF56093QQFz
TsCZKiWbgWCHQGDoWRlWOHtccazQNcun2FQ44LJ03dn5hB3l8akzrX+C12PblwmvDx9XGGktWNt1
6x2BANUwOmkJZjIoh+fTXVLtvNMSNy6XqVXBe8Yi1cyuZVUmgPe/3EDbTvN/jKe/a6YXbJ/C7Zjv
rANJmnNHD3CTlW4FFi9oerTwBGN/M79Bh4V90+EE45w7RJXNsd+vSpwO/zG8/1kaFtbyNndrNYtj
UwTh1/j4zDOTRleSqR8QW/kbXjxmvSsP/UmjlLhIpk7+dh27chWGRLSZd8oD5Soisnrrx3nHZrF2
09hYVHJSGN2VWOjaPPZQwjwRG9l57sfTXbhjzXYPgkdRScMS9s3LaZwtgUyfunM/nGGURKwxB4G7
Wdbi3Tg/q+D82tSJlju5yNXr9HZg6/0ePJ8aU60qD4+Bo3lMO/BeZHLHtEYPhogXgltoDBIdRWbT
ZbW3U1lJ3n+XBW9Te4f+BPIwyRVsMEUvAsEVPi3lmrXhexTe6Xj0Rjw/KghdiwmwkIuMrVQhY0Dw
TxgBtrUtmlj7AXmFiWCap1WwxT40uk6wzrkEh0NpvmBuEx9MJriULW/R5i4DNiTpmZ1VMMZXdo07
s7MSG/UoyuItsgm1q9Anpf8TIXWTFm4UuomWHpZd6UvZoms/HpRYPY8nM3ZZiKWmjQtF7mKhH2a5
4oz1LgrFaWnq5ogqsa+YfqX2pZVCjcX0K5vIdC52TtMnrPrDDjbYIBEnxAgwWjftVondLvRJ7n/u
QsBH5cuxhDpk6JPAuNlM+KR4yDKs5ZWxuYG1M3Oqtl2U0eBmzWZJsswlj9AJk/vJ4vVGuR3/fwZW
SKAod1+cmonhAquuU2c8JdPZgnZsrDqAypC65R0Vq/AMjVcT7M7WN77JqcuKzWiqc6s4Sxxs7R8C
+gWHoSn5JEJU4wSUxnBAUQvMZlbe4nIdT5IOLIPTqYx1ehyhvBENNXkwcJv6ZnzimFLoRtH4jlg5
tdeysxXHSr/eFmXRfdyl6Tedz1llNtIO364t8uCExXWomza1BRuHX6e0NVKPKQ5YyoN20/1yuN0j
5F53m0mJ7N2ska7bc2DaXjyf1vB8mmOse0wawaCpfUaiHYQD1btuw1BCyTbBa6vc0FHN7DRIh8ZC
ybVvlJKO9mCk5nQ/kB8icEpTpr7MzjrzQw4sMgmgzSkzIOj2Jwh17mIN1lzEt4LaOBjWcAuxL++c
2NVLgrH2/RrfFxiDT89FjBqUsmyFMF6+6nxxBtZIiVllUzYuTclqM+8C+9t4O0Xnp7I4qB2/aqfG
xIPFtTNEGEcpcBfE2Ng0LuIlmu1tfCkYR626kUUBv812zl3N3VdMIB/668IljexrVZuBgKYMkljo
MiVPp7sUdel8fh6PuSoQpmY6vM2WhFTue3EMHurEakQaVBuHK9uVExeowB4Iq7nyDSEJQfzUx87e
iXPCy/jHumvzhApVFXsnWJC1Z4BznRe++ABieL4vy9hLoVl7GkgZNM0PDTKUhEe6md2W29O94tJY
eU5bXRWuz89KA3AF7XiSLLk2zf0Tuyl6jaU+wm93bsS5+EJtgF2pImiowr89wZEiXzEyq4eMxOOR
ddFmv9ytyeEORRIOzI3P4rHfeH9nMc/qtLa0lAU+1pnqQswj327LqPYtthAwyFUuyqvSzYavdWEy
2TIRytbi6MA3rrMw9hVE6o/SqMvWO4/2CYY5Xw6TOJ6w6lpfVt5XlyFYId7cFA2HPc79SwIGyART
ZpVmkKxCb4UA1Flc/0NJkj/P01lcK9DUXjtkvLwpH+oYN6ZaX1g/FGmTkvPcNExtR57J1ulN97DP
Wt3t6X6T03Std+JxfCGQ4PFnPmfKcRFZgD0WuM98CTNTgvzWz6O2R5CgJyl/17iFe2xTzPf+0gti
mIXlG+xGKjg36TSSQbtCXYSg29THULbeZZrH32FoI6xuVQZybGESr7BjfUyPo80FudoG5PbbC7P/
hFgKHyYOjUzcZPOsDVruT0L/L9ltrd9YDoGUhzU03P11FgVB/AypCGqKo2Z3zVMaVWkjad5QwdqN
F7lsyydY8/pvj7wWyCr32WFkNUNkzC4HGdVZj5O0sclqIZAPXeqrVLhMFxsmiy2U6cpghaWRCTsG
q/MrwhmzTheyuIPQ1+LZaKDN7x1A/FBXN5kcqzKyB1bxJ1Wodj4Dm0dMUdC7284j1Y3esS3YMUTm
1K5CntwbFUH5h2tLn5XFL0aRWR0WAhA1mKC/mAeCtMBtclqmKpyBLSayjRchLVoKp6i3BX9MZLn0
JNCjt+T6XV1E+ahwHyES0fj02uHFlnQ9xd6D15KwxKxsvEcGDTUVB9rhRjqn70JRyWl6B+TqGhNT
PKCpmqaZHWOTDYhV/AtOhIKMlt+5c/fIGDnCCyIgUEA+kvCIhb9+21N4ueodAX+p3ydg5hTOUIlN
9m79TP/cKzlOLaSCSdD6Io/yerPoRhtOr42uhEExhG1z+I2iD+j1h8Kf8XmGzoBb778hvKLOiKM2
7lbLE8ElIRqAFZlm0mbmGNLKH6Gf9ysh9aGpwMMfbNagFP7nNN8I/+kCUYWnT+OcBMGZzaZkTax+
idmCm7zPEPxW3t+0uqXihlxAiRbRK0rWtWs9YRV6nIjR+hvZ9url0jRTYnMMRWBxp2tu4VpagkDK
gBtJ9HMFz2Vm2mXu9AIwKnBLmAHzOiivsAyDKSwYawTopQvTNfj7Hft9yLZ2ZvLpS/IKgS+QOmOw
GhE3D7O3shyxFhQRDQfP3Vj0QbBAlx/rVKHZUQ/J6PF4h1akYA8Fkm/jI5v+OF3JHX9RXrXZ4RSo
MgBibguXmHVE3Qw8OWB3PzUPf9zgVOtl4ZHCiEotWJuNUSBgHtkpQRaDHRsffkxxPFtCU/8xhmkv
iWbR0K839tdZ0n8eiJfOgeA6bs3O3HPrsRiIRRiY9jdq7iW0/LuAAVPuhJBsvfMNSH38XafdhuRI
0SuX24Onqzf3KtdFSTTFToENc01d+AgmLhTC0qBwH6n2MQNc7fYZ5sm2yXx4cu6Uhe+U+ujkVblK
hsL0PMPwz7cWpXxkq535c5l0xzotzJyOQbpru9onmLQ6Y/JN5OxWRydXjOQ+KRnm6K7yHWKjT6YL
rlEDdyJkPaAisdhhozIuChJUz6xcHJS3lkIw6K0nPSDlK8MO5j7dJpxdGpb1rU+VbW4D8YUDtG4E
wRSlK7hrO3zqAgYGeC7hZ819H0MsC2seogvGUaJ1PkpdqRSUnvoyTBOc0AtrDlKS3Yy4Mh3H5OUn
6k/RTGhbn0Rw6f23/q3X/34cFxgAFBZ5nb0jyzP4eCkMovGhCedVm1gdi4vAghIjq5KLYHl0Veta
HlzN6euh0RFs10cgLh1oWnQEHjk0TJ4rHEJmRamuyxIWQoV7ukZXQOMeNuqGlKmr81pEeCMtMMK/
bTnD5qPJmO1PND50iOnrrs69Budwel7LSzbsEtbAjAKsMxewEYuw3PCaqnSv5fMCg64u031JjsOt
h/1rEnq7mhG2LTDShhvGrTCyE/w+L3x2r/7+cJ+xyAnhwMpI9c8fYXchY4KEBxygbgC+qYzijdjy
mVUTYJc2rJWL2px1ax7KV5rsI7eTIh2lPm26ebw6rLq6ffoTCy3CstKrhW3V/0Zun8eFomphK2Mj
u4s1cwUWKSbNw1dK3cNUqyU74KARNNjVbwcYi0kGNoJotaONZN5lPrZV4+oxebIuegeZy4yt2VgG
BiPNX6BADsQkP3eew3S6r3qn9lFJ+FBd6WPt9bfJvNCBA7BywiZ669PrKyDlSWLZ2P0iQslTn8DS
v6/trM3hULNuHzEsy9piR4TADLDQ3KJzbeLJubPDEkhbJw1w8LGcbkFnrfJpLyBxPW3rbSCdeA47
bLnjhWq3i8WBPs5XMQjEVbN9hI9Ev4JWoiTsB/4estz3kj+GBLHEStke5CbJ2jltfHgGlBIloOUX
EgCle4RuixlNPWKErPU9UFj9hPWY193SgFY5anhP67LRjM+QaLHLvQ8ISo3leMMxZ9RopTeg54qV
KixWWldSl2zSs/aTIH0Z/t7egA1h3HC+iyFZOnW+VyN/HcaghrmpbAOe/ghDic5ooUpBkNIbpvN7
kLj9ICwbG184hQbDaji4JACRc4yFD4vK51+goBkOp37WRaTjggbnQD1uwZkRyF2ZD6Ie37QOIEHX
SpxDiM5uGfTwXONFmkeM7Fp5n4/4/DwdqTjjRT3B/RaONnYcW9YW0xYwAluEoHTrY8fnCXtmNWMb
0yVoNnkDETwMIvuCmVc9bfi5CPNj7ePnh5+HvfKH7+GYTuY14Jz4VB5GQeazHDecpGOAspGR+x4z
bPNszIHw7TZR5HKNiGsbRfHVWRemwG3DvnHjNVSxVl53ByzTfT4I3N36bICAlWOGSGpbJQzU6wZe
lvs1FkNOM5+xHA2X5uR3hWWrN9tjcxcJienwsSyWwLXovPEwbJYM01Lm1+IJNe9A/bFsFrHQNosK
rg4WEuOCjtY5gfrJJVRPhSzylTxGmNtbpvzb9Uwk7XjAUQdpBMnHjG0Q6VlabU2uVSeIFmnqU32a
bqkcBNkVyg+F3jeU5LmPSdE92RtU7lIv3bm5pvBcIrTQOvfVc9NI8ut4HiDGBQcK36H13SGYNBXe
p/FfBG1QHfrgNm34PqXPyrHm9LakWHLzu6L2CS+6nhMMRGNfD4gULsmouWQLZA2eEBJMvcOhxjrO
G1bnbesNqyIo4pANGQkTPxBc6lNr3F+0MjF8qKLzccitfxovRxjqpzk1qHFKLz3eqAtUp50wiNXf
cIFqHhbKmUMKWnltGSxmuHVp43MX4yojfK7GG3hyLaAybAE1rumSPwgybFgSpVi2Q2yQfNX7FC5E
O+HAIy9OsBlnCSQx91Emyi6vxWiO47WIo+lQR3Y+XzLk6e50cbPdNrVgUZa+pKv+eno2hpEO/4g5
+szrzWML0skshKQ/paRnlxW+a4l2W9hcK3wEvxUJAidXhU9wsiTWfT5pmYBblcMirvPZs19x4zJv
TiSQyKjCwaPS50V9ObwYvmjpqykwtRLBjj9Ueqkvjrt5+WcoO0d/fHoOs1vhwxVixrx51lWBXa2Y
xfJKSp3IgE42HfOQs4Q8aZSxvYbRYpgwPWY+I4MI8K+glCC2SvG/IB1VPikeTGfo04UFiNezfwxT
RGIxZe6rhLpMz9NEek6noteFPeGcUftDdSk5pCejBWvlDl0jBaZZAQRExSpPxU04bl97nU8lzRYb
fgiffRNW1+aRoy7Cv1z72EFKOCqZGk458sgom8kDha04fAkZVV3JuoBiPLz1VncJlptQg5T6iOcj
atmGLe/KZ8O5UntJ3pZVLolaJK3cUh4noen2QYWrAypvXPtVWf+x6miUjJ3P8dKO0uc4wJqi8SwZ
2kyRFSloVfVnwwsMSPDogdnwV0hoQlSmqTw1B/s4PkwJ1Q4zhIIKYfMj9RlXGxjRGhZuiFoSMpsQ
N+VxkboOdim+dxD5WMcNI35Sy9OlndeSEbPp3Lxj487O12FeIFQ0LIceJmDjff6fv/78Z6MSg/XT
beXzlQ+UmftaRjvdY/PTCiwsTYcV58PtfZq/Y5QhzHM8OGAnTZHvHec5ljZnxqNbbRYJ9LWdN/pt
4kcnZYocP2kJHlDVqX9xBPAe6dQVXss9EHoTigS8hm6wjGy4iFVkXZoKeRTMeKIcFxOe3kI0/fug
Cd5ecBJiGDOlz7oJ2O5hZy3NYkV/EduPByYq3ERfW8Grwz642u2zf1WG1/XUf0r157WPlR/iiHvS
It1Ws+mExB0sAlBpyCrgN67H/MufwuzmD595YwKg9tQ/XYTAXvOFLoNwbTGjw26tSzYWQFhclv5a
UembyluHQkFhYETKoqy6MMyIrY/stau4DLfFWHu3KXFd4rAk8wZrmFrGUbrwLrJSbJg/zWtNwDnE
bTCvw0ckVVV4qyi+XmcTZtc297nay1nJWN1QiOoyLHi6wlsppktzk+P4FsaPN6ztKR3flbQsvUo7
5DOGBUbqQwhy9fI63ZXpOHyMizH9SJAA4sMRSW8hJIUhqR5OLsDtfJaVRhKq+R4LC6yGDkpWFijS
3I3y61PpZz1nVDmwiv9MJA13n2IYCyMBrOvWe1p8/dQsqmydpBTN3KJdRgDrBLsXg92ABMkssWrd
+uX7020eVidugTFah+QzDCdLGZzSTi4NaHf6bbP+tnVIE88PJoYSJqZ7PqDVNTJyC4aVZXrBBJhU
A8rc82hxeZkunzC/Q3dSTfP1tQdQ4eFmBM6sj2zdni4+G/o4LqBapenYBKtmqGIWlc6B4l7ep2U6
hYS4PlDlw3doyql+I/aufP5qK31TuxevHy9OjH0CHoc6moBtoUmUEbttugqNgNVHyH1XJc77g16S
+q9CFwNBaVPfC4YmyWokFz4iYhQILpbN2rH/Acte50Hi+64KcgzVO5FGj/B8nfuuReY43+t5v9zk
h8l9tKG8rcN3mEhqR/iEfVGNs86l7pZdS8eW+if4M3ax1kd4tpieVvGJkyr0wzc+POu+eaUpJyjZ
moWdniQUMy8tWLy8KivlhMuD+iOM0pDkKyNFay+tst4daUmTBjSP9U6RoygA68LBn3Gg+SSIaFuD
Jo3Mp1ZCg6w1FdgropXpJODHC04zO+mXdPqR5LfsuIYr7WDZUH5UC5CNLmg3T/cCVi/WKOIsgeFC
KhyWBt7of9TJRelknOxzu/PRaN/LhAYa7BSepn1auPYRnFJgNAvhqT8qlSXprLZ1WVo3b4D3p6j1
hgQfffyWSSnbo8u7Wr7yfOxEfM6OQdITDCro58/kOswHah8OziPSSCp9UoKw+/+iOtLRL4zIzsOL
grCIh8zSDbm3HKT0Xe57Lyy/hKZgcDskPHc++audOm0OsBoYnIxDA9HCw9k0+1qk41assm29OgKd
FwlOuceiIvJS9r10pNKyMU7Hqkxb0fcEI9ZRE6qtfSYUSVAqA4DxbO/9fFww8nHtX2BnuUydNSd1
fHmDKMzorZu6AKBvIKyEO3bezsaaNNmT23AYTqcdBN/6+JFuDirxOPfvgaC6NoxTn3GPI0cAbagS
pM8bH3dsaWk89+L7VYXv/Wjuifal1mFbj5tnRLu/9J0vtKhBk2PmNe4RpzDTZVK/OeNYbd3UIRFR
7RO6oXUUWj8VPgvFSo7xLP1i53Un0iyVfrH1SRttE0FE7ffhK6ZR7rNnQtsj9AlK19ErHdPaijzl
DVH9WkxRdQyJWW6zIKENDPoYnQ/1RGz9QXlklBEg8lteh+EWLsHWDFr47N/QchFNgBvju/5Bg1Ci
S4tvp1iQO1FAbJLQzcMOy4NlL9umjU9rX/s79HcMb6D5wZuGvU7Si3OswZ10AoavjJeoNnVlchnA
CBQ6Ye+itiIkDFlBgpsP+Tv2ex9KEEZWwMvo7fx+fiMxgtcbXflRT7gSxlvpN2FkZrcW9ZfD6wRW
wUG6eWlFJ1jTeU1y5G0c3hMzyV56z8wnB6u2yetGEgGl14TUA8duk7ZrYuKnaX2/7lLTr7KR0BZe
W1YbCcx7kKTP5hlNodbhPi/QYhl/QPsIrIcE3MaeFoNqdMQstMr1cU2zv77M/QL3GEQ52rkA8o1S
VIp5iAZ9uixsZ5CQV6jpT4f489b/jMEiAa722FMx87LyMfxv/9d9UL5UfxnP/a7QTVu6l6zNGqSf
KAXwpwFme37+FI9tNcXDrdbadHg9HTu/GAMnXEZW2IFaIFAc3jKfL9fhgG1MpsQ9CKhbAbGUuwWk
l/yGkjeFLbjCs5Ses+Dm54/g1439mluHWfD3SvZ7NQ3c2x46NJWmsKWuKItpRTN9jfPrcJf4/SZs
cynsQBMEAQgsukK0aQvbHIqnZite4+nEwjZUryg2zT5HZK/+ZIZBhntZCltUSYjzEY3t4RDmyRZ2
LMx6mVI0bws72IwItrDBIPZopj18TUZe5+kKqdxQM0RhuxkALpiMTScGvwrbSUYnYcN+Q0vGCttQ
8EByEKUPHq1kSLI+gL3wfR6xu+8UHhFe2OFlHAxVxfRHPfdRJ6rng526CSHXI0jJKXkdIYcSHsKb
s2XRmICofbXfyubWzTdBOHxkdMNzbaaFkTosYa+p6LzQmobWN5uURkok4j6Vgo9Q5bKR5sTDGCTo
HZvWnDCeBOqcEKPC/bzDipcRhrz2lwECPtTJsMSWshVsNxGQVtlt6q9weYTJOgP6w5NBcz4e3dqX
K6wjaKg7RXUBrjyYgyDaiawgIYvOjG9AxGHBWvjjsvIPjMeH2yHu6Am9S8U0kNfPK06B/a4k1fwy
hGwmAlT5pv7rqgeYRLMcXmF5OASwwhoXQfHdRe1K3sKbFQKGa9+xNKfCYSBOZ2ptwmD46NyKj9WE
WjkI0cGjS0WlxP9sxYodwHC/AGqOdzQI9Z4TMuMi5FPUqe9ybFy2OIcVQbAdC2xWNiCV5tNmwq9b
LoWAinY4dcBybTv603/+VVtwPwPXCzguOx+OidGVgXsaD5+Kx04w8lwgHrZFnfkQWNlItWx0saOS
HFJtG8JKvau69VQhvKCS/aYDCSZZa3oS7sg2SUPFvk5B9Jfj0wSBpuvp/jLGxqQXxWZvm16frPD0
l8vf5gnzDOGv+TJ0u1hXc+r7eDr9MlyOfx/+cYcUDfa77uFZ75YuHdSz5gWoYcV5WGasjF0cEoF1
tWHIjR3GDt6yXoSDUkm5Yf/1958FPeLdYzIPV0WiuLzKWkCX/g12Ikh7Bwq2bQ8JXg/BG2491Pyp
//oVyu6DTcaEJ3ubCgzMynraRFH6IGvx9LmnqllpGAtpusI3MB4bQRRwnDkyXfjUJcguhnHHdsCw
iXKjEXngIrJRJhRz/wjLTyZmIECVrnmtgYydBT+7Tlf8OxNhnGg84PU0wMwAqOqSawxRD+ZZ5QsJ
w8YyAm5GHkr2GkHKbWAFsr9dZxoQCdDzCFXbVH4hU7I+GAsr8IU2+s7XMVkT44ORMBG/Oefx+5bN
jUSI6+jJ9cgY4JTAeVMsLu7Gi4WnzODjCepwwnaYRmXji7krXjzBajCEdcPst/kp6ZDeyIo9JALi
oKVzBZO4A9oWWJUK0mbBNWhi3ChnqQ1W32oPhnn+ZTU7dhAgK2Vo1r0L29fV44CgKWmRTle54bXC
pWYfz4FvAxQDBVYQEJKIu3RD2pmHchyzbcFBHjDXPBaoyvOapZGV0Ew3sOVuQA1jkyhqHwlwFxie
tCnRDtoc5n499jf0cg6RrG+eBwLfwotolbpLDjb+/JJLPMYWfsGCOol8Sl92MS6ydcRk14nrUPmD
Q+6Q9J5g//KghM6onM3fY4jmlYRMJbiCHAupCBm3uX+D9qGTdNjWLScsN3SwkyvzQpa4UJYNi3BB
GB2HyygKoDyLEvkXyLPIozIbohUXwU/RgFKfbHA95+lT6bzV+kFz2hUZlBOWHsQeF1sBi12/IgEs
3JTauop+NmxI+UJtO0v9smRTVb4Ff1YCanAsGhc2qDLfxkwWtYGUwA1yosrQeTr1l++C6567MQBd
EojDiObpNh2mSB85Xc7rIpOleJiun5i/UfjWyg80iuAnsXWpzRpsXEmBZI1yI3B8J5XJIcWo/1EM
wOUu1nJN0BoO0hs2CazmeC64A8yUByau8pqZ3Dcq20FvZyXks/SktfXqIOqrF3Vun1R4Ru8DaELF
W+GGFgrO4ZSJ/qSU8G7Pmm+FLPnUP8WVNgG1OnjgbITYi/BnA4+MXY00SaznEttcXOSpLx5qauLR
N0nuFwipHfqL2WOCf4ujxPqLDieCNEPZJsSTWNADrBHjyExX4JU3XM4C+wwhOCn4al6OQ1971o43
kfjGHRf8Su8Gc8n7E4kpZ7tIWajqIf79hdg3c57rNdTJ33qfrMp88UpOKwrMfFvEpmM60AaSwy5o
qEufF3Xr28+l6QiXJOJqJQroCExgHeOCRtXlVvr+199/NsX9800PPRfkR+6LBlLk6//o3/pfKByM
gRf8WyFElPsisKuc3MiROzXy8jjIF0ULXyVo+SEWkoosmywyb5pEvsVmmwRV3wgHb30aXR9cX5+6
u3cF0Viw2np7ihKVvUuGNTTqCAHmqvORAH1FEExLPhAUCcLbeJaoim2i7rDDjVHVT7/8so+cMl9w
MCzpJa3Lt8XZatbpwqwo6ykYt1UQxXzPnhUoLxN0QlHl0Hh5hr1mQ2y/Xs4XHxdrLB0jQ4qWQAZD
zns6woI05bVML8Kx2MZtJn+ZiNQLwcKeM71e7sO8YPAIkipn5k4Kf/DQ+mFZ1lo1nGSCo5yDzf1E
FoUP9avptS7nEECwHBifOktNkmb42fCh3DknQJ+o5zwLbNS60crcb6f3sKZDMNFT1x5rvdleOqIu
YVQq2vgmQlS78TG5k+9J3uc+vLWIFKlrM2nKoIgXNFOod7zD+I8XJXLvs2QWel9xvZcp/uIrTeSk
aFv5jHS01xYzm+F/ypxje02Nhwcsi9PAoNtXYFB27RQbdNkMDZzfYPNM6t/+Rf1/PxPUPg3Cc/k+
/SdwRBeAB9IVJa0zZlYStcwJYwGODQG/jsPcz4dXLOgZPtR7i0mUvPP6wFoTCPMJiWjbPVauTsih
rasBxxRn3YpyMmYqfNXcabxvBKNSEkO4sdwv34ZujRuivvHPJECJfnZp6NKbmYaQU49mHfIRytDw
mFkSB5l7t3KXlwg7til9Ily5sGhj81QfdOL34SpFFrxe8susRIduUtfRS1zfDk+yrIEGQfUzOVJA
Ao5u/Qqet4lWOgRJBoBw186XXMcl7s/wEticJdAzcysydK51MMxEEoeLbuAC2RRWhJkP45iSXFUN
QAPbFl7w9Xa7xnzfLPU5TkJ1Rymcr3EVdWaVmDJArsqaTJQNceufBHrd7FnWtum1V8IWxpQPcv1M
zoJAipyq2vrJOjNoamkoUYYDOnakvfPGS+yP7xdcykcISn0xlo0IX2HlgtgufPFGstZJOtCGAIop
R5f7ECu2vtqTjRRNetPirJtGf5+ms+iSVT6ttZ2xAq61GAEnNspcYWGXMvLGhJ0RhyKVKu104CF6
poL5eCzEH1bwmVDgwspR+FTTjaErmE+5j0hp5aOZqmSJPRLGyztvTJssu51c0zIPGmL4+cNCiwfx
IhA9r2mzBX90IAiCIeNIJU1t44sxrR4OWf1KJNzA1xF0vXcXfICLBfz6lfxiGgaoxewZ2rqu/U3S
8bVbG2JGq0LxwrOym2FK3v1puY03dMJFOybLfUxBvcfD+QlAKUzLyUPi1dRnwtnHguLREfbchyfj
0Zv5bUxdgeNy/hfLf0ufZLIukhaaxmSNxLxr10D4cohuT3ir2DiJuY6RBgJy15j9Xjc+43DFKkSl
BPHJBB+WbUBdgJhxAc8QprJzz1/OO9Ub37rmVjWS0i5r2huVsIyWEKe51doHvb5JMJ14/tDWs/kj
CjFZy8inWwsRx8vrMEMUTlcgKyoiTpRjQ3mXCrF0X+ppD/GxFAS77bY0WVCU9YNAsLYZfmHrLs1C
OIzWB7L1Bc4VJjsI7Sqc0sWjHVQlLXytC0rha9YI+3AMVrellXho/BVC1a5glWrng9ugw83pNQtD
MR2ACIXpcjqRXoi2KBiDGcq2SMA6e1FWt7S9KDDukuhwnXBD7fcDOKzibz1nU0gLTg8o2EgSAMJX
AG/PRKyESC8lQmBPaSWFDjhq0yc4yp0OVNl3Ay+k3lSCUh3/QqnacBUgnkbHzFYEyc059PNZ5RIj
v4HJnV7AcX1WxpP02NrJWOmv8iNWHEuskZr5aFDT23+jOPn251nGam6fGV2eepO5jNQhFWyA2+Yc
e/i0kviUIdwWwVIfJ2ZhYs+csmd2e7vWCZpU1qzuKUmh2sWQV42APgcf7GYqUQWAmQXIN0ntQFcj
oavxHVNXk+niKj3/x8g66Yz2SUPx7iiTde6BcscHptEvYwRXZqDcRgV8QPrkfhxhBh9FCpYEU8BQ
JykcqbO3gsBWydL0eipd/ERMkjG5yChKCX2MFH0f3gUw9YbvqgCYAy5xC1WxFWwYDuLoofhgF42b
CWR4GmvfwMdkQKz11XIZHL27hQU2RdWabnCY0rV6lprIlfOcsA4RAWxhxSYrat3BNaF5MqQqJTVO
+ru/Xk8j+Czv40E6YGoPyPxx6O/B0W1ykFrfsbSnsfmVPXeUDB6mOJlf/gDVFHNKVZMIr2YvUa/m
haaP4fJCIYMDdQBLipBpYduqQgJiNccgaW42EuhKv09JXqRM5G+Xd+spMUpsD8rGBmokiS2pECur
HScUW9eMC6pfOCYQC6aOcvwjoChp2DEUSV2mcEZXPy47YJbZEA5Ofbf7rMChCIdNtIXT+O6qWyux
pFTZAywxefqUpMCG6ALsahuJtDsQdFI07RVM1sEhtZ4bPq7K9rrgTiqhcpAuWnI2AwSqPzkRozeM
OwZguBJmTQc9asn0rymsoNF7mf5O/xUMP+pPi6g5Kp+VTz/JoxiSFdrkrh1tSlZOhzsOP8JFaJK5
Z78HNq4LNpocsks0BWU4/kVRzJ+kdkhNMp1jJui02sHpyJHmmdKZUv6mKDq18NwEkCR7pXMlpx5G
DKY4ig/IpxmLMYlGazWZsPdiPV3aL99jRBVMGGENqCOOdPeiTuXSCpD4Hns6W9f4TVvjKB5wyt99
XjAh8DbIA1gKNlZ2w/6OcRS1jbzSEopd9GYmttZ7XKZTxJRIC6/PJQoRJTSfYMD6Zbn12qfMJXlS
+ozUebC77g1nkg46RnkiKzqfLfU6Hq+jzeiuY+4VTt6UXZFcx49BUpZtyVCbYnQxbZmkp7Xr2E18
TI47OJc9VbrdLWBGhKGoo9kEIvuZaaEbOaDJHFps+/MZp6gaqSrRocVf1az2I+5JH0kc0LqtdT5R
xKjKmdoFnyTrcs7IEv9anKP5mWmxAipxtC6yTra8gmsVdYrSsA6grD9olT1ON7PCMBzSbKx+PoDO
Lm8VeJdZTrZ7xV3HoOkCS81gSm5MSHkVHvcADRp1naV2UyO7N7VsYB4qhbd56CLSoKwpjcXJYBlc
ZisQcerxeMJlDTGzjkU/sFFdp3e0/ntClSx5pTnz3NsVwLOSjkriKLTQBCYt2de/Fc5V2H0uOD/J
Rk8eoWi/DCe36bITKAszoxWC8LPSmVZUpqxwBWekPp+GDxhHrmMOIzOtsN6bxqfij12GAYa/Uj3/
tR9F/Yc/zoZDWSvo8XI0jvJ9PN4EWKl30NQDLG0NUi0jGjVhkBb3NTxuzdkceJOBZdnNoFzE97T4
prDWj+J73UID825CpYrwizmb79MKiOEUBK8pNJ4Vdr0sEk63Uvsj2D1j7Au7vB7fz2ZXSchAXaGo
Cwu7JHS9ZxonJmrFDc//RbCMRhuBAU1MTj8fPtgRuG8wqNQ9iGEMZC4F5/8zYhYvwSZz5VSF8iXs
gJZY1Vr4V9gUq06gtB2/obeTYdP4AZaFyFIsrfcJElr2F34BS0JsVYZJc42Xz/CXbBZXSkqJMTbR
hzTgqrB7qOkSwAJV9zUEonyQpU/rTmhrQ0wLK0QFSvU+tFcsyoDSjRApKFn5mJ26TXMvOo4Nszax
TP9xSkm0sFurcWahY0xW/dl48w07gqipNZ2w/6v1h4cl+9CbU2T56T1eQpn7QstiSOhDMH5z16Fu
ou4c5cSDM2L0E1rLtYHQcLM/Nhyae00ZldqXgFpjEmvxyF76YAZrmlPko9owAPwDGYw4RndWmmHR
FqTkG1q8YnGLfqX5oF6YMvf4jxjJijZMpLyujIc8QVGgc5JocGuwgmbLQTPhSy9076W8VYG58wSN
gEgbzPjs8E0BlAnHaVhm3F10oFfKSs545t2CUzDUE1wmmOPyIsCpfS2A+jhPyitfghkYvlNiU45l
ED089/BfQ5ARwhpHXJYgdgulbCgg1ftygME0GR8MvW00sjT0hAWG/7jP36OnSIVrrWgJbuzmu1F4
A8/erIhUkVCVvnyploy09PhFdh/L1peR4hJWTrqVhS+3CQXwP9F+wL9c/hJJ32d552Y0dXdT/90E
ATEuFEtqZizNwQoiHlF8v00ENpokYskdVmXzWEKkn4oCFVBI1R9usrvMQuDQQth0mxA4GjlSuJnJ
YQgwZo5yPQ7DVZt7STRUVVrsQ3C/8e6oHlm0D6MoUny/aN2wXB5WELr6DFp1JN3AbouSSfOgXijl
+AWxypWi9lWurFr7TB1lUkgtZRl4ZlBshnjtyfNtsvDG55kg1jziUKtRvEoZzJkvbP6ERjUayG4e
SIqksQCwHS1nCXSG1UkSgfJ8PggGA8Ep7BmjlT3dblJ6miZcWvnWn+5ikJCFL3XQrY2WhUnhd54S
YyXjJnaBBZERqjTT52Oya02qSkKLURUEXJQVLe/TpFB66dqJdIlYcLljqARlnXU8g2NKS9csJMrx
eM4pZQUN7DAaB6Y87jQiHYXCYppVvfUMzsRVNsNXCqNbrEJKzYyknJTyn561cyvGR1kaLa9xGRns
iXCKGlkBnkS+jY/reaiMcYV0o9R1ZLofyktJaanKW8xl/T+c1h3uZtKcUfqSxXsMp1RiktTHszGl
V0jCmGWRmcEZR+eFNHasXqX2ecIm0uzUbkZj/a0T6y86X6lV3L03q0DXkH+6gTNPNOof+rgkMJnf
QyXOGmOFEBmrBiirAivigoVoeCQxIdX4Sql2V1SYmprpeU+SsCm/XF5iSUailcaX8yeb/jDBEMYd
qTlWYc7zXrqKaVKmLuSVJJWS1/5aMgzmOjYbMlekkiHjhpu1SMZg2nHd4SMNkSvYJkVvnEpsB9WY
qndVDjNrQip040RhHy9CFBIxdL5yvPEHsrVm1Rh6CvD/PQ9KW3LtJreoLGrcqA9PAH9J0VcbW7iM
ok1qRtGoY8X61Zqdtq1L95vL9pKQ2tghuZPmpcyZbBI1Pup/rLuSxI19PpAQdecMtIdEy66xxgXb
qEnaLsPFHZQxhgZeKNVRKNELnHQ1ZYwSmLTAittuj0aWTpju0seecKpUasvCHeg9+goMwH88TmdY
Vmsq0SQL1Wvf6ELU8SyqTlY32aIUKvffUvJoynyXDGISTeqBaFoBZ5D3gvA7LjqMmhxdIQgzDYo6
96Z5hLo0ZHIJoNeG0dwAI6Wprtv2Lh1gjCq5D1p53e2rw5JpjEGsZeHn4TjCWIFZjAMUvvTNnkfs
pEfsdlkXHqhSxLEsfYbzY5MstTJQsbLkhLS7UkQxE7L2kQULVgwnlEqSsVI6AblWj5tG63o0psDh
+0sk7pEVmzRGx8rb1gaWXYXM7a6yQc/ztdLztT6f7BFqZC6jBsZELDjFmRY/OAVphp6D4XK0xSHh
ehONukIoK2O0UIh9JF7zifVCrPn1uFmY+RxkI+uvrKzjQxAwtc/AwXXaJvtorCUptN3s6mP0OMGS
mK/Cdq8plsU0u7QkumDLKLddUhtfQQoZs/IxzDFmeRE14Ah/kv3G1RiO00897ZYk7M+hpJ9+gNJ9
xn1FvHGvvvVZrZu2vH7RMbP5ELWieIOnbVFdK2IJZaS1Rph2E2lX7TpfcaG/p1ciNAsGFG5X8pGZ
bnVP1ExsBf7GgXjxVmWz1HwTVV4HkhnG5Npcog0LDQKXVRW1liQLk5efF2xNsFuwjxOrgNGHo9xS
kLOaZtwXkm5043WYoT1PLDBJWfSyw0ek9OVhWQpEOn6F//Y+zUdMhOHI0RU2/gfO/xZ+6NbuZAQN
A/+oWzwCwMNQihUKBtAUv0lwhO1rCC1foTGqcS9F5g/M7AqDSS0Y8Exys610xSa0GEzUYYAANn+X
LN/Ha/B/MIl2/2uiTNDcWDrRdS8s2LiEQ1SgATcM0WQzcXYK/lGJMAVIlYXU4gTNNgzpgr0+kGmF
IksUakecECEdtWY/gH804R+49VC4aIAuAtSOIYCtsNwC1H2BeuxHcBAbPVNjnwneKdcW/Mvp8/pq
Ki533NjomHKzkjP44EYhXj6Tl/4q3TpbIYMpUZUyXPG2JuxlH76JnPI3iYzSFVpBrVTC2dCkh9lx
AjyLQ/CNy8hNlftzHBYlVcJF8wi1sHfusLIkDcNVDi1IKfyL+3UOW2QI2dIOOvNZqfdY6ISB/ojc
m+3PHaZTYAoq0VPG6NKuDzSECKXUSJrTs3GUg3MUCZ7lSNxyWqTpLoim/16AbIVJA+VlTVs6WZPt
xSN8ZIUcE/8hWOFlwQSMPb2tKYpeuT8JffQIl7ERBEswIeujqeBdMSNE5F7gShksUNMjM4fbT2R3
HH+B++G327/8KioqKzsxstl6f+qLj1VZokL+r/YBXV6n+QbDGKgHNVicij/B5LNNb+z/CQGylTbM
SY9CjvBtxVQrKGxlaQpwLSmadj+B6FLXoEj9JBemA+y9yVaa67CQPKClqAdTzybCgiuccLCEAacr
4DpvbSNL4JrWsHr83xT/XV/7p+EWmFyEP1etP8daccIAT2FIpYVkE6NBSPfbFAZVW4buoofCvwrD
4sJhrRIVYZn2mudQMBbhNhZuS/I1JLjoyY9h+WVBobfutyFvr+Ph+yUUn8Qj5fYFKuyJCCj+yHE6
hrHOOmFbMPfLdR6ex4/weQoGCF26wgsoLAnwOJYYcP1EAfXH/3sNS6EzTxXX34d3M9B2vJ1g7AQU
kfkFgVKvpgut0mMUWayLpn5RI9cUKJQFEGbEeuWM7DmO/XkKSUzIZDXuD7fuD6/UCHn6ywHHBYYv
UVtYNm8EQQWl52Fq0wpVCFXAmWrfmUxOmlCxwgqexnTMVc5kSnsGAy98ncoHgOogjuwy/fMzVDCx
jHAWPlTlQxF9CTMX/m/ooltBD8cwIPtuXMJtCEbHD8M0k/toxl5tHSP8fBqvV+E4We7D1fLaH6f3
JXyJzl7CVkDbnw+6PfCLjHDr1KZR1yOfYJ4IyZcwpbXeY6+th0/g32C7OXsTbHUM38mCZCk7mKMJ
7X0iB6dMCFTra5x75WB9BLOO8J0X+coGvtwgeEwAwjiwj4B7/Kotn1z0TsrwU5Q+4bWHUYQ7uTJg
gwuBwTL7XfHI9Ww4gjwSA5gjdXhVa359hLg8TguvSJ+uZ1g1+KRUzhmbe263Cf9G72gSeiUR15ko
1aCGGuplAe+g2XC4dPiGmU8a2Qe7YWfxLMnI1oXQbSDoWMsqu6XMEYArXFosH2536OchfKGMCRTb
u4RcTD3ch5v4aHXnyufcRmshXDbDdQ7JcVR0A7szSNfb/4Hq2aCVF1fmhOPoLSveYblg3Y9p6t+p
HlsAUjhJqLJYx63gw0k/n3urhDcXUbbQ/XzZdx9vjeUWYP+0KJA38WSlr0eQWlb34qX0jo05jxdh
FAB9yJolKtwwa8TOh+6avV+whHcGg+YoAGLpXQj1GWtzixDcxiNho/JOadlA0ftG9uHXZlwgmK3L
qHVL8NsEeZLT1AspoJaVMeigaG5hCJ/xCbCt7VLGGLmiNOFLlogpMjuGJUbk2/6qil11eZ1xSfnO
K9deglqpYhdN8CrnptRBBLuryTrPJvkrLXfLsNhCL9cuHeH7Pjy9nED6I9z8GP5eN+OUpVPNfL28
fFNs9k2J/W/otH8D9yg4Kx8h6SAvnsRq3c/D02EmTXk4f34n3wq4GApchGPlKzBKDBLRH3BYUuwk
WiaWJrSkw5YvT8lv1+ElGZQi6C80bWkRMMsww4qlAKHn/gqriz5fYIQG9sLN4oF0deWKmkqrpHCL
QWr9wbJ0K3bNAQ7jfDgNu35fC0P8/Wodm6yo45nHxcPf5xahIB51u11/UWcB6+5FwcG95WYDyZEV
+9AQ+DDslD0W1XYWj9AVPX8Hm152+FLrExGqa9vZt74+kqJySZ4GZRTP3yG6cglNMUx15NsAZIa1
eQWLfojSYHRFCCTiY3Q+gC9z/6mHjV5Nic1OXilSF2DL1jhQ1TrswBG+r3zUSUtjkun5GYuHgqX4
yK2WviFdphXdV+/RNC7Pl5wOcAsBWiBmcZ0ZYiPQgivbSr7fwtbMg2cn7uomJLFXsxkHlCEgpNd9
eozwt0Qr+aF4f/sOZY0z27MtaVgK3onTnB0bbKls3XELO9POGhhRSbBTGUWY//7qUDdg0q++tc5a
lW70nz7+8iUzJkK6R0nNWBSbOA2fCsYK3jj1adat0MRKEoiPDYKSzS0o1iVuJXm/CLcrS5+8eOoR
6QLxdz6uvh6foSCKaFX5YVcluD+EZ2I6HRJ4eZqHcCsgsvDJJxjySlrD2DoI9E/Gr/oJa0HEsnwE
bk/I8gXONU/95ajY5yqRo2tF5aaNH5bpRPRXxsU5euTEYU937B/HfiYzP0JZ6RdZ5We+R3NUoelU
3K8RrVjJMcekN67pctp1PxpQIc5+vUC09y0YMkR8MaXIM5wO3knTXi66j00wtRp2bR6Yp9wwbvY8
CLK5tjdkPekmtaw/T17mUWDRlnG7bSbX97mNJ8emEW7CaD1NbU2vVxgpDStld5G8M5cBTWXMShJb
QyvGL6l9Odz2XRhJjnPolBjTPsgizJpiw9JqyqUwJyaBW4bjKyjRCh+Vm/Jumd3qwudlrOiVYkuI
z8pVY3w/GXy/rrzCmuRAZTLeIXPlTm525s19su5fo3+QZyyhfigdy0frfer5Fib0EeFWrppqAzcS
niP3uUtmTyuNbv4x4dxuVFfDxOoqEyGi0+PeQhtTgyk3mh7kjFNq44/0K0CUVeaswaPSz4gN3Pqw
6PogmExBc1gQZWnr09ZajuyRIDVzYFgo/iEoIFjjqe8IOBfjuYf5tNgRqPUR7eCIQMxKJjRWA0t7
CGBFRtyDjX2ml/F91cyravcUhShZBTi5TwboVBHw3C5BWvF3whV46v906epsWov4C2GP1mIKwkNa
q1LRht5coNum8Ix72ZAZ2zbFph1E2NmtHSGgiOdRNuYKLyy849ftdqaLbPfYcVrjXtQyDjNhgQGl
VvbUpp63LgrVJ5s5hxH10jBPVpFq1wSM/kU4R87cznSlU6AHUg/z9B57sYZdxRaJcOtK+DZ3NFOW
No+2VMQYqksfp+Gkj+nTmMTRtvPU5s/pMFCPr2dbahaDkm0j1SICugyGYVDNKTXxqmgO+w3nQQgK
lKnPgHAM19s0JU+jFOpMWcxq1ZiOtljXdePQlqdnoSM4talO5kW0++JMyLR6Uoz5NfXfC/f3aroZ
pp1dYY8p9JxNz8nT/flZ8lSazkeh1IqikZhchvcdxk/NTdzCVr8DFk+T8lCFxjdkt4YFJ0GM5Bv3
Wi/LS3p1ST1HV+Dekr0EzpnpdF9X/4bh5zgD5q6NqX0ZGv5PuFnLuzaz/4VjFRZLFTZ4m5n4/QJu
9Mc+pVWnPtW33K+wRzR5mqfvw2q16liuoFZa126s3eXDIhUWjY8Lj3P/kuyTcpkFABaTbk1DmkFF
rrjt8H2Yn6Z+lgIzTJthu5BOED0I/N2WvBW+gB5tDyDhpMiv0hPnrpmU71P+9B88z8Mg2WBt45Of
jsiCb78SuC/Z82PFYbpTZA0f19N4GG+nz69JLhYfbtYRB3ByLAqGhlnQsORC4Dp7yZDJLfXi6C2Y
57BmFMkJxsoHSoAvOk0LO2fFNkKsDDY5g9ZxcNO8DH9TGY5oHY44DMr4gbJGnWXU3oyQr0FgxgVo
ndglDVT+hpaAcHqToGj1eFW9GTNvhB807rD7DVlx/WW6fJ6nuy5JkOZxI7Da+FCt45C+jjes6UIg
iBc0D/VuBV1EIzT0IejGnpPlFfWkeEWVt5/wuQUIWeN7W+09YEY5eZ+hd1taOkCgjLXvlhXrwZMb
uxVvLTxaymCxqhkiYUCW7q07gY6fTQUlbl34Sf3Pf8ddt8kyHGTKWpMUrdOQTQkE+jXFjPfTMcH5
ozBTIrg7nJBgHIp201F26KlF/Gm4vcOqNs2HAg22nAZZ5cZawWR2tdFQCpKbwlx9hNqm7Hx2p7KF
SSNs9JyLS+yd2jR1weWWzXUBRqgQXXN25hMTwbW1+E1Wu9+0W9owO+zoKtoe70kLxAiv7vyyrpWk
BSNWVnB81MxMWiIyUgmxWeQ+DjorZhyVyFYsBCMURmjVpXvpmTooyyXGbFwBRG+uU6HQmT5eDqd7
bC438WXtQ4/mFF1hioJHuGXO3jxdaUa7Y4kVhXvWZdAF8yJ8KlogldwwN7PGQ/FfJZVX+SD+fXpX
/K+HiiZnIDJo3lE+/fkJMu/PwEILKLhlkHRSVVsUsAya9mnXQl3SBIAL6JgAxCj743YSjs1ZA+yL
rOQz8hGCJLss+WG5odaUhaTnuXbNLQMXbfIG+exDLxy3MoUkhhJ0qQRNCsHTSnKgZqqrWbnFCFro
q5peYF8nTosCPoHB3hASCxpSJHcL19gwsVNX6ytVAMPg0AxUJsyLZL7UjJjIJTRYqnZhKXXFS6NF
UiWZX63vEnR0GkNlpCS0TdvLRURJ01W+szzK3r0KpGm8wuDaH7G6lW1UMssDpCU1mglKhy7WkABN
/WHeqhT8Rkh562o3skLMk9G7WzKAoMNv90USfYXlFrywJgOJysvGh3E9dtIiXrhF4SXoWcsyEjo0
NDlOjA2zjFn5ZppJV8hr9wrGAt8lI8rcd/q1+nr1ak79FUrEjdQkTwPuBnRkFNTp2f4d7CMSVV3j
++E0tHuZbtr4zFZ1OvBBr6AYDgNsnoa5uSSnJNto8/I14zXLscR1d0GirbF91+ajzTkvc3/R9oSs
GxpBxeIRiISg2X063D6vItMXzCBhvjYdyQjYCwFWQiRYrk8p5MxFerWPQoyeRTpYyUIiiM4nV6zp
rF0SLbN+zCFpOdXhgHtuYCmYsJQZSdtIMaicibmgrSPISpw1ZChTeSFEnLqvgf2V5NOWLjk0fscz
KSTXs3adbK5Lojak/bZbsZTmmaQSSx8XmPpyTSb9TXvekjrPfRKZ0y5NztQer4l0IHaP45tEyaUD
WVs0epUxeFIIXo8AOPcfp+kFpGfEMa+4T7MVJMqetJxwE+Rhy5+LBuVXToeHvi4GNeJyva5rh2tz
E/HsLzdtZufS1xtTVQvnVLKJMpd/1wnEnDMhYQitTFjIFRkFRiaCvQabQGWM0OGCM/oXtF5APOAE
KSjNlwxQTl8seZKmkiGetT5P+itesSxm1+I5V7fp3ZYP0pXRlWSqcXPSTCYxAQTbYQWBvvF5HOKS
rmr5I7M2lbSoJRPby9KgEsFEer3DEEv08SSRmPqMxbVFh+LR1HYYs4rrzipI+MfuKyIG5ET0B3jI
orLGTdFJSKp9YkT3xGkHWxPZeVx03I8qPWhH+SIZGJXfSAzN7Sdzq/ShPBAgU2eMeDdtWvqiWSbh
pof4wK4DNiUs5o7UXPfaWDIcT0tOkkCSAV/7WNu5HFhLbhRGeVDG9JGjJ1VjwbORK3uCEasndJIM
aS6ZSJ7ptvP7aaDp85DTJOspl1wPKyzYSso0k0JzRR6WimZNAhirCyZYDpJbyaJorKTySwI25l3X
MSN7E52NwqtckV0EPOHl1h++y8Zv3vn89OAWGVJJlU9gaKn61/Hy35GEQlr40j6PYT3p0bwyy8gm
7LbT+2nHNx0QkDyA0ucS6ngKp4FwCTOlbTqfKr1fsMnZzZQsUjSh8Ym/NJWEuD9Uep5+H5UGBz8S
tizVySbGkUm6yg23mLZ2E2nVppAe/i/5A8zfzbsG24ibfOtj6fYEan2OLdbWUr11aeCH/MMfiSBk
qS+cT7HYSNUU+dzeJFiaS5ZM0YUTZ1+NzdWpz2PiJrpkoRc+w3g3cTc8S2BNMjRuHNsnpn+rpvBK
IRta+HGjpWp3hWjwN+QITeuVroUkXUuv+xzgu1LiO/vjRQZda+pPnjZAnOvGeew4UrJyPIpJ0MyH
lh0WhUQPPApeWiuCacdI0KDhYnePuRhNfla+V3uw7CSbpqiEGAjPp+n2E25bSOERL+dGSg5wimS0
4iB3M1fau0qlqGjW+PR4WkjOepWFDTfAMKW7oVqQUt5HKXJR+YJFhXTk0uvsDv18+txb9pF3Xp8S
pYruUFxjDh+ra4sVOX+Y5/5TipyxR8AVV64nxoW9T6gF+kDIDfMmeMYLKN7TsMbJWJNpAoa7RDGl
L/sM5DdejsOHFAD35tVpc6V2zWO6n/u51qP7WvZAMghbnxttHiKiW8Rn8Kr+dSrGXuXXcEm8qc/4
pw5Yta1X+6zRDhjZgu5JPNZhZRVUg3R8azEk/tBNlAIHls8KkMjF2oI+vUPo/c/T/Beo4fu/7uMs
VUlsnSVtbWVSnVjhNVIMX+/hRdnAaEpvQgk/fx6H03HNPkpuQuXmLTqvkUKPtVZhREoCebTGpim2
SXKDCHE2L4Woa9e31znuTDKAcq+oIj/ZRPVRl0sGnKt/tfPiyY1Kb2SlMYQbytzJtWtUuKE6LXGw
eIfyZv8A6hR2j+v0exa2YBxzIZfUYRcuAfuBkrKmznw0SkqN6F0yFVlxZLE+PNUfRgsOS19ACAjg
L6BZoB7HWjnHEToA4AlooYNk1ncsamRbb3j4VSvr2/TyQgokdtYy9QZPtxHd5QxD5h1ikYBupIPm
mlLiGiYu+ZTFsGH1NcszK3w2Mb2nYauY38sSIGxg1oOd7g20RUO8md/Tav7lI4ixwst0R7ZnFUpk
JQnsDbqsZQHyQiqiSG89z2MkT1cFnsVHarZlCnSeLE1XyrMVnJLQTt1r8Srpw0kZy7/YCr6tiSVZ
t35WgawZ1nJIpMNrpR7qhicw5+7UAWFK+HeFkJq2CNR1oIWyPmS0oqhi9VPgSTUPPuy6MnG59TMk
eWdaXAdROHgZURM1vCIORwvzgvDH6ulo7oKH7remgxM+l3DnChydzMQoEphnelmKZJhlvsC7IyMx
fD/cDtIb5t4yKD+YPZVQee4jU4gj9wuQRBIJkOVl2D/kJRRSGpx5tnwpmeStSeB4qMw+9+5IqSc6
+mNx09znW6xDILUNxWIXia4XlLDN6tbsvDu9bcqR5ZItvQ6ncsMSNM1o0+mwWnqifc+DeDh+MN9W
wUimXF54q4V0r4ZyEZ5vn+uB5uFFAVjk+iNeJUMzS/VGDzQGkK51Yf9lXdbFBUvEH2fmng3FrPIT
OAYr2vFfl5jrV3Wdz/029fJ6wLPejDDOsWqEmiWL2PCdfVl3+q/or6LJd6GIXsdZX4bLMENn57bd
SBK0nDZRquj60jLdVWbc+KzprZu4hm/leHbnSzymmZi58Kr9QLGtFPJJv5ZEjWZB6nBF3uk2WydX
rMx3ijnZXKWNVJMkGAv6lWvQ713X7MnKpi0zwS5aMwWIkrcRVt1FywbWrnofSJ0S1TNPtL1+O0Zh
drW/G23RFqnusAAnArSS0kNXXLRmooFiIXTtOPs47qdwqrXmIV5eVPpSel8J+AhBtaZshUK9iOOz
pxS8TXOP+P0CfAl0IYJm3bORhs029cYnyDCiE/6RtL6S6TaKLtURdL4EMJPoZEVgJQq1ROGUDkmN
pd4WJl0oZOgJSnC0iuRxFSnuuy2Vb0IllpK93PhiWsaK+/fxeBzEmjyWuO3sUuAbmDgwZyMeGyzC
vSdbdEfw7K86ebd1ypLIyz29FpYgHQdQCmikDl2noday4WNcyD+NlaSUPiP7i+VWsT4wXkiEnVWE
ucv0JLY8CNnIL2pNf2vXY7/AjmYBXsIFT1BG7DJtka3cErPG/N3tqRT3zzNvFY3JvW+anefgwhDC
eu4tTGddcFIMpvWdZJ/NSvN7KDYXKUyvwr9C4cG1LiNqi9S8ZbDeFNK90hKvnfEOPheAjb9z+tus
6WpGr0mxp6b1p6qlGsOq8rcMSy1RhbeWUfMERWekV2eBHrDsSrMTjpyGY7y5qGaxO4y7t0ENtlt1
Vb46sDRvdnV5ceMfy7Z1lj6VMM9DMA3P3mBmGYrFzjQI7ChGqIqAtyLVJ+QbI6V6bMt7GmlFR6w9
z9vgBjz0n2Ti/n2IjbjYRj0r4/dJVNv6GvnIiZ9ghd4h0iZb+34zmkcw1BRPJJS+R0H4f0Hx9VOM
xtvCG+t/6tl6CeoGxpEkwwzzrXRLjY4HSizo9QR0+M6UDmpgWg8c9IibTVeYFN8rfKNDYtWaUoiv
2wieOpDawq8VWlAJjaZGJaxLkXE7u6cbx5Hk2zzHGecHi8u+1dEqu6ebj9mUZ3I4VTQC8M4C5/uP
ddxlvKwRGDwyjKLSNPKII+FXWvsrNAGYFV78KMySrS83c2rtyf+58zYMdmfP61Ym0Q8ZZ/t9ni7C
qEwiiJThwWaICNCPnrVmMFFVlFsHI54/pdOxFe567h1S2vFliKdy6sI7lEg3+NByMGzck6yN2pdn
9hau7GqpK32JEt5yhFN86d+p3gNDK3sHGdQ8v+QsE/IXneaSudB5y1cPp1Gd6jL08/7AZ9V5K8xA
Ce3pS5ICMsXGujZ5P1yQ+zNJ9/+2MV+S7L+Q9I8Kd+ZtsZnLUt2IZAp7WxOYAN8fR2aJKYgJ11m8
nmVn9YqbRS2NephxhqelQvQ0yX4glSkhkZERBD6MVGSGSLQeRoiNekYiRUdkeCcIuTxmopiSfVH5
HvSR03TiSqLiNPPVUaLLxnP+sXR/47UyfQWtQPh/jJRN1Rzt29wylTxrNzUWecxLX4Bee4EsrBlp
ymlTn/RMM6npNm/DpU9+v3iPHOdhYHsS4xyupWP48WM2Fp0FWNWg3F3adAmLasNxBJi+qbN+hbti
cvjHvT+ZoRUATX0FZXXwxOI1EGSzguRlvzA39mjqD1bLUN8tTIEAUTuYm0MaiJjZwZhJEEBmj8St
EedIWl2suA5MascbphaczT6ehueb+Z4H7PYnjAB2yR6EG3uhHnC8nj0P2w/UH3/rKf2rOIHyqmEI
OUMQjrjIdtyJjxAQ71SzO3XWx988APnOuwiiYwBtsCYwPA6+SGv3i8cn2z8VAa/EEFahsK/00G9c
I7RlzjApMdK2zu4DxytHsodtqNMt/ISWcNhAw9t0fXi/+fRFmqw4dbAtKeCGlnkjEGbl8J2JDAV6
R/GdviqPwphtLaSW/XYZl2ApJy9MxzWm2WXHx437u6Vf/O0k9MJHtkCkjyQSPVnZ+F5jczIWoY8c
LfW9lOLBHSiyZMFKcrY8s2rPxCkTCT947kplP9QlUXJxovGJmvYXzhph8MUOHcJFmKxD8tZFXyW2
UyHWWvd+Oxh8rzSr+N0osOi5HVpUu0iDERpbNn9b5Q4Tu6/hrCTSLGPFddGoUxnwCOyrGpdrc+bb
6svXXd7VYQlX+zQRN00oDxwG0PqY0oTjObollwgJlB2FxSWD7C3TZ9b53tBiFuddntHelSuskL4Y
isHaXstTwxaYTGE6wBuwCB/INcKKtctY3RdNH9FOqPyqxCvCw1Ba92nLr7G+qNuZwuUry4IKK4JL
Vwjn2Q47S2ROJpkqShiFyHrZe0Qv7Twecbf8YPAgbJLpge6CERdXkZm9N+b5yh1OVOTapY+hlS22
Q18XPs3j8S9ozG74UgxTfESTJQkAtVuoZFvVYIYlzf9juqFgUhA63zLYViEEPispAcPK4dFnUH/W
4myDPfnTxluMnubSKJByEzatdOIRQi/rkFuDHlP/G6v98RZTmMZzpwxcCmR72w7scnIIcLzAwGVd
0yRFdbwJfZMiliqzU7dPKg+00O8b1M9G8IFxUeexubmxKOM2GMcVcxwtDe8nokW6rZ5B8zQP/XeK
9eISd4rtSlnW2hcDC3CGGKZMfdkQp0Z175Y3KlAN9FCzFL088Y7Xwle+kXp6hHosNt+0+6Yx7BvA
YLEEzFZVwYlWO3pYGHcUFtihv7xRD4snJSoJIW9POE/c7u1br6W5GNB5cO3n22Jq+CR55G3q9i9j
0ClU3dElFhdWPFjMAz8kPVlX9fQBNfzOlMV9Y4uaKvNO7d07bk+cLiCMrbFtHMn76wALnW5kbiw3
uQ2YJTOxokgv+6V0xzoSVx0d1TH+PSr4N6m6rRTWDeBuw92aoM1zARY+m+mihOA5Va7H2llyL3nt
zTxGev+LRhhKacan7cknpN4KIzsnkiX49xZqaIaPZM5iU3yz3DuYRSpbKr0zd9wOeKj3gkm+12nP
eDDW44ijZJvAdFyx4rZ1Km4b7MCx/EqzoNcRjUZM8/xWMpyGs9yWXvOSrZoNvZW6avI0Vh+qH1/v
Gds3V6UuvCOFWfNisn0SEwaJVTy5eWwzTc6ZK7J3iKqlTuzfrT32xE5LIveaOO5o153TThjJYz15
vmkDAis33pfb+fo+1+pNhekdHZFNuIBv79gKycL04mznaJzYrFivKP+n+lR3DPvxJ6zTXJojVdS+
DkW31Q9F7g81/PEqdFw9WEvmjTVs4pZct91YUjlN+L/Cyf4GKPtjZAc0vZd3TI5v/msmeWSlr4xh
LUfDdDsbnhHbdpNmPhNzvKz9b+iW7ble60Iy9UdKdyAM3locrQlrysK7OM+7es5TiCRdeNMXVHok
T7QJMQ0ry6+MZMu9KynOuGfTePm2KDe8j5vw3/kZU7Ijip0L5v6pbQ4Nn33GhmB+pddnFvt8uBqm
HnIdlDs+9j/EZiHVXsr7x32CHicQzdqNGXE2l1RAVvkrI02ll5PIo2VaYk+G1xfcPe0upktKX4nf
pp4pZg15i+9srzzec/hQf0r47+qHbhYqB+2PsLl1wa9w+t1MmY3hOtBIFPOfCKP4cMUpW5drB9mw
FakH6pgPQljH0pVOZRLuvQaTDKs2X7BPUJ85DKqufbt77xfgeqo6JoCz3gC1E2yXuidMt2At1gCY
YrA9QBt3NbAW8PQ9dSlJWGszZ7m0ybgD1rZnyAWEdc4idC2+16dXZKqMnftx0o5EZHfy2ulUupER
WmEOCwuX23SV3q90F2934UsJh/Bihr3WP0Hu61zb0imqIZmgsJVdP0QrFum9dnGup1mNyy0Zb8N5
PYlww87Hc5we91Nh6R6mCHDMbl5pGUVZZa4TJbQiOn7BqgoT9/piUIP8PIbaoBBPuY8c15emGtyb
ooSFxrdFn65pXICVj77NAmKBzNm5KvyjCRN6IRyHySWrxAQ6EGB1hW/5NYPFGFgQKG3p23m/8sdN
QC5bvM7sGv8JhANUvgN4ZbUm7Tg5drUr/zPvs98vo6ib/GrOYEYLpeN4l2BkQfn6IyqoqXxH8vJq
AlGlRbt782UQlrSv1o/LvYrFlmF7uJhCaRmFF6ELb95RIs+mCCJwPRIcVFqLvg51LXUWL3swWL5o
X9SbxfPNpvN2z1PWMZXwBbnZVS7Wa5dULxPb8jEodPW3SdJ3bUSyfEX1dZmof4WKKDpL5xPg7Cxf
Qnpbu+ZK6x7mOBhoe1Re4+K8Yuvod50l955F5hSBnsqIJb1f8LVFRCLv57zWIglEYV3vs1YkfdWG
0fY1UVW3LgfmMWUsnKrLfQrnbRzer9N8I4TvYRZG7RU2lBfk/l3nSUmAYaZujx5j6C+KC5XYPw19
IDEPc7RNZ1TtjioCKiCYQGW612q4/Tqeh+DoIxzLXa3g2MgBiED14Hivoy/ouItwrs49l+livSy3
+X4Iiif41MxiqZ0KgfW3QePZMb/LYYLpbzb+8Xy/rO1JJ+GAJpXj/oqOK2zAhaI/AMckHGunefsI
1V+3MRRAwQNk9gA5EkOu9yxo7JqEkoJzOwmAcnYTW8BAk0UBWRtigGjK65AsMHndIEsgiMICbwpb
LayzM8Ob9tCOp0F60kpAtvekErTcnomVlGvJrPB1Uqc6iU2FeDOGf15t/HQfTzdshncoKbkvMMhG
iQ7IHMcRl9orszGD5/7yqeHxd0AqFtBXuzRW6TE/yfAxHO7rSODhQ+Bs0z9Xa7lKJg0Eq78ChL2j
nbEVYj5FHaGMNWLIPgBzTAPAAOfzdGacrw8bZvG2YzLImr2PP7AuB9MRfPUikmRjDN+sWbkHJCJB
AwLA8MBHDhex4BuXzmHNwKiVbfH2vRk/epoOvUx/eedn3P56PX0Kt2O8ZUfWeGlfP/IDvwi4M53W
rhww8m7li/FyON1hgzb8tXDF2ocyWVHsVg+tK1SbLexHIuJk+gUJm200ZR4W3+oR1hOAcpEwzai0
WNVSjJzUY962+kLZC1TA8ErDb4P2ID4JQxsfibFXT2yor7TWzA3KlJzXEy7vJQz5m7RxlUq1fkPj
yO1Tqn/pb6S1IAXxOtjXIaxeJvWXc0yopxZVBTbyFY0sTb/CaGnqagxde/3uURkSEfltJEXXxx8U
nnnmexko053ek+N0i6iMohM5HlNW0q+nPo2jDQci0QhhpT6pQLwKrHOcLlv+EYCVroWQi+bHShbC
o5c+X+A4He6YKgD0vs/jTVJCufPgGr+WIvexcdu1Li815OQ8Qx/XeXoCWb8c5glZCwGQP7bGMHRy
w/8DsClZp88rPXEmN3MPEz+gRYBUWkg6skItZ5/DTLk4IyLxbxJ//ytA0vmfvHOY5XU8XsfEhUE7
QO5PV3XYU9If1PvcT2F1jquhLXAc41O2nZmkAoV8B+V9Ytgc8qXqh/IgIB0qw1PWfCCLAUOlC9JZ
dE4IQVgmmGDCP5QAm2MsYUy1FoCNZmmPgsa9/k77eDASFQakg4cACPlZOwJO4Y9UPQw/nqbs3WyR
ApSyQZ4UQZiSI91W0h/BNmHJiuDMCbxtbuF32NRltt9ARRLWoShBAXno+1N4Zj5et/Iifl2gjixF
wygWRWOBPQl4ps5CYnmYNdRGZyOAT/0sRFqQIBr3PUl1/k7j+V5HYZQtPYD3WrqCn05yVIwcydHD
QToGyaoHPZx3usBWv9dx0TCFjUcIy9IWq0MyXQlPnwbdkjBEOJZbWME0iQX1bNNsl4Ec1L8dxwuE
J6lcAmYUn4GQeyymu9OkQblbCgklZaIo7Wj8TZSsX/v5+A5hHiWRFL5nWSK1TArQFpJsLUohBOtq
GuPjh3dPIw3lPorUOEZIK6clMpd0nUuNHNIfP39WsmCxV4dogQRNUWfqE1aapn7gol3uUjvRFY1Z
W59mGc6jkwflG5HpR8GrNCrE6DvhFkxStjjzOdURTCqDYxfR1EA/LEDMXbFZ8pCOVnRFmHosVtE+
zZlINCPJmWgUYjlI76XvjfzEYzBpThl+qNY9YsEY14IDmYTdXObUI3RKL7bJIHxoTvEZ/rnaMfO5
PyWaN2Xx2bWV7+4xevohGmKSrMVpspXnzcOmR9O5pocuk7PtGLpSfoamWXw1veMj/ERMddvx0+55
svB5Wp/a2qrl8Of1+jmknTRDGTMoKgfaxhV4FadZJZbWAlVNV+BemL87DsthuBz7MH92Xc2Q3WBN
OolnNO+Sv6vPh/lnpghXAgijuy58R9Z6frwon3eUBEbtk/BfsrNGWSOx49UY5mw5TrEo8bYiNoy5
xlXYes/oMJ2H2/ypaPLK2B/bpejfyYIH5j/3ku1Vtz42ILkCwzJ5f9LzM1gaEKTFLi37u0rKXBVc
QUJ3tWU3nJ1YdbVDoRHDuGtrn1nmdzjCh/A+ulFqDw8/kmoGL1URPdxdC1f9X4YfjWlpXsBjF60R
EcSJvGF8aZ1oTeTzqDz87/dTyA0nQm8eDBAyGV7gh/GT/jKe0dCmmg6w7vB/DQOtLFBIXJh9DWb1
Hn6z/htUFKA81RP7BOCYbMs6X85Vg4PoF8Szxxell7CcBaFh7XKwbhmgpjb/mheoQYsdcAV47JQt
zi3rHA0Co/90Nxie7TQLsGw+l+U5Q5DEW9pkOsyvqXgVkZLTeNdwsS4r7ICAp65c8Zwji56k4cnl
FImmdIkECEJuoYQL5SzVTQPA6g2YyJYtpCiWe+fewR6aEt+N1ejSH3UEYwK0hteOpo0dOLI95SXJ
9QkX4cqFnzwfgEFuYw+9Z7wYDAMH7eYhXvrrEt9tiY+a+kp+hHsmr+phfk+ebsL5WHlgihGv7pHe
KBWGKpypd7JppcqSdekd3h6Muy4PvbSOHBlL6RKcT4sUlLlV3vzFsbPIdGhEHzx1eTevnNnwBp5A
fbZYCcRj6eWQ26vy+1/4YmPNKoBJiRqbLfoK0/kEpbAGin0rmYAaVhwPMzPqIixadr4vLwpnE10e
31d4AVsThRmUNkrVUXGe5exR4VXzch9QSWplnOYwJRMQDXv1delSXrlHtsYZOuXNGphESIPCVYBi
xULR/hhZJ7lwd35IDKC0xr7CkAz1hr7OUIAjRguzrCv9gccXljpITLttf4MJCUlQdyJEHniz5q7h
B1hYr3BpGSVi9GUpC0E06xbv9+Hpu4KIELBVM7lfsD1KOTfXu3DhPGfHa7ABKeVO4XpOtErDtmjN
gjftWgGh3W480XCM3q0KeGt60s6KIxDF03NCg55iVjL3UPl4LoV4GCGqLW29Tls0hcjo5gTC9raC
m3YcDhOFSOlBDQHrlmxR0tBZmZvA5zAu96fbPOjqL0m04JOmHI0ZNm/ybMpym8fvg2G38GsU1llk
uUgWgRNGN+I5Mh5vqOzsO+c2JIJuT8J18i2Ybrv0iLQ8bS7BVqjNJsOLOJ6+rFPvCH2C5O6tiYLK
fMthNCgi2J2GCYErXHCpB9xw+8pVc9/GBISkAZm1tooLSGQK0Pi2V5puqHOlZuk0xT/oMc7TZTrB
IJiD5WTMy639+oLUYyTNK5eMun1XTvj7okUf5Nr1lJkwRJ7uqmn4uqkqns6UgFYHtMTFAi1PJuty
OI2kpg5CX3fRebtYtcTWhROUd7jYXYLySJuSb1pkUzjsecysDOFcrXft7suwmrkYazGBd8lIwiOx
OSg4oipbM5EwKQuHi+ks9/h0EuctlLxH3I4C8WBM7EYu2bAIJsACFySeku5X+WbzPx6K6iFuMFRF
oIqy5GvJoV6h1DvXcbLY3ygaNl647SJhzF3BpiWYg3zpa+/UvcercdRF8VV65++F8HWZZOcKQfKZ
Gla4hkBq5Ys4HD5APxt8xHaLlGz7S47mTC6eXsJC4aMai0iCgn2uC1biAPPDNpUFRrnOT0EfAqHz
/bYWujFT9S+YW1Ncetd4gYINVgCkay8qcGzuoEjPx8b8efnRASq7JgTP8jeUpBeVBA9dDNErI5iV
bzneRhX4FAAdWP0HCrVPojrIfMM3Q0QcGUBQFt5lMX4Zl0vSLffNFQqzFvlVWH09naXzdb5FnY9w
wQaIDdUo+cJEtjXL/+Br2Zf02plPBZII/hmG1dE//or9wuxH+j0Kka2KZUXhu1j/9gTcLxIq207M
ZPYOQpVI0zt0z39i6WiZy5flo3GyOlxiilnLomKf/RSS+kq17Bf8DRP8WIRQiL+GhVWxoV0lmxKS
Y/5QJxCDUI9HcNwjNmBR7NOGWHNOYw0lY8m7lW2vKrEFS9qLgM2MopFXsAmkrBo9wnur066s5MP3
T2JyiQctl8DGlrLk4RyaLgEBLCCTmKTNO9/KWYeqFShYLYrmlsAgBR+X6rO8HcnAHTsJKB/s2wpG
s7ZPY5vuS7Yd22GFwDFNcOFNMuzT0jcO7PGM+Aem+qUDeilW8l9kgWrBgdIqQ+ykeUBipdI3D9Wh
FB0Yi9pMxWbCmCkNeziV0hvj86j/TTpbJtsLzpvy+WUS5XWuzZQ93lfX00dmWxdt6ZvNtUcfS4yb
+zZuu44pvYcEpPZNhHacNRz6ut9jK/dJb0bPEi90+6BZM0tb7S8orkWnK/PJFed17xec/EkDuSLP
UbD10dgI0O62sPe5Ll0ePa9pjo9soi741lOLVVkAQkmxJAGLfVIafiR6wLJs3FH1nrtGau/1m1Rf
Vf7SAzCdm651FF95YAm41xgMSIgTFvZai1DsISGuLHxj+/a4QRG5y5cK8BxiSLat/Utx3mejANn2
P8ENlsizdp3TnL/dJqf+Veei9oWoRBEVdX69I44d8o8U3Wry34gMMVAoJiz0i1jZTjsZBXgSmDYq
ydYnAfX6IYmybp/coZwCj+gkkX0ZZVnJUtKDPTGsk1keBNBlyEg0ZQuxKHDqS6EE2CPu1adscUK6
bgcJgFvdFTEMUXSNz5cXfa8f8LfcoPqDufyIBzlQ1rhSPhQON90xMbvUG8fyCN6dCZLtyGCdl9JZ
bacgwLZRCFnfzt9FtL4MeSwQDdhULAuFASw9yodNULXQPGgid2TuCFNT51EvvIcJo5J+wKPzEmjW
g4j5aRjkc9L1EajFgpY+njh/OHHDgEFj+m/Yq/82LrCvczcmMp7dY3uheFXDcbrjWPL+BbqhbBxO
rm7IeMMG7iMzBR1Q624on/5N6PjJeBcZ38qrATykotcZvJD5FEig8FWb7CklEOUo1RKwI5f4Axl7
LOs+vSiWP0Y6e7Kscco7tKGpiZPm30dLJ7KCNYtAnD1PWf04FKrou8H9I20eWcrLanhGmLaW2Bon
3VrLFrPAaSV+2bQe1jtYPdI/kGW8ghyqDUxJBqSqt2Uti3r6S7RYJs/KLQKcWiW+MhLDrbjrIRcS
4lxOYKhBj1v2pPKJ9WwWn8RItHSJF3KwNdBrjRFFa2kKQU8rWqMwO6cl0xqsvbKOnvplPPyIzORN
RGtdAzwXJJE0goUoH5WtMJbp1jJut8ed/k0vB3pZBzDgJMffB9EagWlcbbvd2p2yHxHB6m2WYdBs
8R3EoMzGTgYaZgoq4XF9dfz/MES7GTKHvEueFnsOazIFYbhs2Sy8W9aVe+BeOPvG8Mz2FWe0uI/0
0+swnBL2Q3FGwHWK+Ra31fbEuN5WBlO2bP+hU1weOI9Nukh+MEDuGv++dhmlYXBs+2uHJkgeAMf+
ZlWk8h4GhJ9LtAqboqDDa3iP01JjGQoXeFRF54UUBtBtFykHiHHhFdG65ip8Qba6k9e970FgGChb
6omVvVreB8lHkBZdvd1yW8uwnoRzVV8j6zCgLkrFG/4IS4COL5NvbRk0lwC6lDfM9pYNdBawir/i
6kF+hR8y/2EjElE0KVHgcIopdZn11yRt/DfK7W/UD4gOY5hdvMMc3cPFozXDeIg0SoKRi4ZB1x6u
02bWeSAxtZneIRg/9bZc2OQ3sQEIv0ELHaGhHawto9X895NraYddYGdhvlbXrG6IHqWCOyLX7vmg
bCxt+zG1/eG2nM4L8m3s9WqyMKh2BcX7ZdGz0ZOxhSndpW0OxcPYOp/f+mt/GWAC9om1wZi9jXuQ
lq9ggQAzTYDriz7Tng2n3EP7T3ugl+613TjReNERvA8zcU6hkOgIjPdDEKwxbzInx2jB8vjLKo8o
6B1Mv5e2+RrhtixoQtg0elBkmZJN41nfKhfOx25vjho+H0NnyfdA8W6o+NLO0k4dWFHYeCmbcYpk
gpV2bA3dGaPxaYD/8LThuSylbV83D6FDQIQqF32CxCntjCAAhI0FaeU8qQ133hdYHApFBtZjCh/P
QsXKiix4vMOT9miPefiM7LI8rGboxWUKIhXOOmHAtfvGtXN3S440sMLY2vLd11kyG1EmXz58RCsX
dStsRdplR0hJiCSx6QTA08ZS5N4wrX6MZWgpcJH52taFgKRViLfpKkQneUCEzZmk4VdKQVObvfo3
vdqLfoy78xS160/v/adfClMPhY45YNV2bUu3OWiM4XDQemSmALVYoTohRgZVw7soG+HcfwhlZ7yi
CwHarNYjuPFyUAdcYIfWJQqTHdLGwUWcYsSIULrn1CZs2Wx8HfYbO4pneHYc38n2ujBA4GVvAntI
LBTawWbJALPx9CMhA1Mq7fYXTKegMFiMV4PQWzEXVnit8MI+XoSEEK1GeoSnc9h76KljBOosE/a9
PUdoGKYZeNRsR9Ls5dI9RGvkV7MOHngkKRyvFGvA5H0NdGSU2g9Ppc604nMtfQr2YPBqO6RV274b
gXmZYlAtu7LKLIBKgVB2bQU8QlFtG32r/nSKcmXGxBKNZamjgmkHceYRwUR1XuF8DO9hoiuy7af8
HdZHiBFKwQU6iz9w9F+U+XDqD8ORfAD7HsIzsDNyL9yllb1nZMB4c6zpD9dSTE/5VqJRZueudFVO
urmwbnYm6MqYGYWjmdmpAp/pc+l/I+PoMt2Ow015bpLkzrkaYwlHL2eAUROwZ+jS7KAUgN4Coz7x
4aiN9dijtMU+0a0Muv2Km+kqW3IcsC1W8nk7CcxSNV6Q9MQhdS3wHuPgzpFVRrhw4hHgcMWX630q
W/7A1pB+hunspx2GhBVZrJMjJJwJOsmbN4lwSvsmrE748U3IH9WOSnhrHe8/pttjMcWDFRkz0kkx
12Gd+ag7xktEd3SM/CgkmYcF617tVlhTkS+L2Mh8nYnH6YcxLsm6EJfoXNQa9FOiCz2oYOKDsNht
sfhA1WY1rinCmWZsEBeoMc+jSkq0wgXiqcOvxAW4ILqYGQN57rwOeB3gC8zC29Z5xNiEufXXfll0
qNCUwCVpmgvvUbr2UCH5bcLhmIjhIYb4C1BZgwCZyVRnQ4eFHO8z5D29BKlyz/hgfcTflYuDxuvq
nMfj0dxY4Nk6akR6JakAMXffNN/LYYlAKDk3Pir3mFvxJ0g9RsQUOKm8AkXvOohJk5YJ0RSDR05t
CvZ5GV0JzRtvFPI3JWTBJeB0VitMWTPtDh0n6Lcspja/6CQVjH3tTkfBMIr5yJlrrmYiF5uSbKHw
g4QMeyZMAnRdwJTRc21wVoWglJg5aKucH8wZbWYZORg3aiwyWRhuJU1jxykzHaIgbBifZBM2TcSI
I2LcejtRoy7vtvzY7DiucM42cs4HEzvugpZdhJp8JrZAnK0bEaj2RANlg7OqIgZnMIKzNyTWMI7a
xmB91Bqn0sonQ1z3FA+o/p92BwUZV7gyrhUMxpitlKdRQzvoFbxKirtoXSH3ABZT2I5lETtqFTVX
bODGmN1SBKcKR3BIOTIuF9RZtbV1Su97fDGAnPEwFRvsE4/7Cm/CyTr3mmWbcOqOqGQa8vIJh+E+
OsJeuY0u5ftN5Ezg4CISNA/7upJiKKxwZGMZQ97kjmBktxU0WdDPFRVWFVYsht/gIeZd4bQ8Hj/U
UwkEGNwJq1iFiNOmMejZg5FxhnyhAFtYTJNIbQ14bChi7VZ/57szdkK2ju9lIf/4oebfdPCtOVXd
TgTVT0LlLQfN5RMd2CRqdVPbvmrrjM+yAyfXmPIPgxe/flpWa0yOmu5ppFnseqd7fBx4VvFrV3be
uXEPaOyWng2MRTJCMXjq73fQYxd0jU30lfP0AU62d6KjXL9BiWm+NwXJ+/FRTG9HZKdLzntbKGxY
PvY4cFdqHi7J2hgZLSnPioceFwNfyZYL1KmDHXuMAyozXyvG4wBQW4MRKyYuzLYR73II1sKGvLNr
Mn3tn7n5fD+dFmVRDzScHv41oX9P3hSZT7tEUsbNY9P1WtgfcCGiTJKG5/JYNkADbQK6VK5wEBCZ
+8ZmLq/9dVj3ZpKk0J+TmHD/A1OaMZ0+X0yrk58m4OA6uF+0m3SGH7YVU4EpFgBSOzMFRQFtVb0f
pCmDpEm9u3qX8Ufa9UdsXb1pOLZZQEXC440mRYp6Ku0aX5fece5f7N6yBeSMVBtNTUD1djpkIQ0C
pqaj2CBg7zJAI+x0ioji1LrgR9bK/vVY2xPqER7qYyVnxBVhWcbWg2BAvbXNNMlyGg+4l+PijLkR
HiP1D9i8Durryw12XOgmL21FzrcTDBMbL/3lFheDVeOvfXU6yYkqSVkJrU8VE6mgsf5/1v61yXHk
SBOFfxHHcL98nJFGu3pN2tEraXb3HLO1NiSJzKSKSXAAsqqyf/0Jd49AeIAeHsjWjtmUuktCMK5+
ffxxV6BAhBbHEbDdS1KCBmjcxlfjHI0BcHedI41AmYejnRN0JIJmhkyBHMafN9hpsNbpM2OuV/Hu
nA1rKU7ixqIj7e/A+Ob1jB8wThMfp+Ld2BkARRonz+Pj1KwbKofv/KZ118q6eftzRDdl8XWXyrpZ
d1OSc+Vvn6+yLw3vvcwan4jz7ZX58m7ZDB8vjtMp47A2vryRhBvn+vh4wYUvt+HqmYCwYeIyfSj9
Yms+Q1ZHKM5Q2bEqk5uV/6aTKZST4f2lsTajlXdirXfD2Hpi1Jq3m2biKTl7dU/qfntbw9N/XGPj
Kutvty+/2rt+baa1vv5Anijvsy4izcOl29Qqt4mfB0cFS/NR5E7N+ilzD1+cj3I/qvwL8jZTxun3
v7Zcu685k6esxPE3vTblPBve4LrEQvD4/il6ryrZujtforPjfWmzY6fSozWQp96CsqXsYXEfescU
NXHFFWz+rLCCDVQuclV94YEqB1Gzg1gr2zftsq1N+usfsWEahCGNQ3n62/3zolLVtxJZoMt6+Hih
a6vomtdrQzJ23yr3raLIxHVOl/EYp7tznWNBg5wjAYi2hImD7ZySUZecI1VpONYAIwgunw6nBzZx
oY5xumPbcFZDKOPqbeu588eL8QeGuzOWiQ1lSTkdZS61Lj4uy3p7jakAZvNJca4YD0Sxhph5oGUB
z+owXi/Aor4jJlI2MvQ/cAOIDWBPiULWRwhJtjVLh/tZY33g/Tx5/n93rxCly0fWPAWs6pBNYb3O
4zLO38fy5IFLSpwzD1tcr+/D+PWn8QbBtOvxc3V86UYqG9mFw7XcrxpuRCmxw7Wqt41h+sj5KlOp
t41uSLYH5IVprCLFeGo5ZgtCE3BNu9toUESvlj3lII7H+TyUp9XLgTdHg+aIJ3hDUWQG9gSuVBYF
Zj8j4ND453h/C45zfvqNNXz6kozucSJQX2slzJrisl+fdMdbHjBkHhVeuegJa2eqNb/OeS3DRl+l
5pwy0XmqlG1xth38+3wJ68W0ExPJ4Nhg1GfIjHhb+1DsGbjmfOqldmy3cQZZcj4+jIi3YcNdOxGw
CDLJ7Arm8NGxGBDZHNqp8c4ZQs85NumvvAlOtsbSiuK7w8jXjjFz+Z2tRPdreH7XJWAk1DjDPF52
uTZ70+oPc54+pkl24k2VBc6+02dPjPR8tdkCT/bpe49pu8D5lbkkZ/N1BEh7KGMrTlbPVT4bb7mc
T5yBS10wF1OsxOzL8hvumPY71fYVNJG7lUyl8LZCpM3q3YJw1zvouAhgmWPhB4623P4rioG3tGJ5
MO2VaY01GIcwbmxWRyS3FbX75GwmseD6Ka75mPXqajNsNivWnuyeO8svAHqE+X4RsE8S8keW+eKE
r9oHiUfBGTMpRto+6xpBXmp7ze2a3u/NkwBbPYwdIqeQZUTkxtpeY+ldZpSxNiRU+eycJc98G++W
MRRbKAyLwiHIsQDepgvdPugO/GPa4fB1MpWcg226Bp3IVkeAPiXtxdy0fE2k7XHSEu+L/LRqy6tn
aT5ZzhRv0H3yPjTNf7hcPjFPO6u/ECMX3PsL8UYLNHzEuZaGt50JkwR7bS0T7CEOnBoZWNDadcdt
4F6mLxaxUDw4x/P1dToQ96sySim5viuRw5l1HyH8y7ID5tQXKijHc/IcUhScnJdyy3nDQVh4Dgke
105mnuXgbMS4BHBte97Qh2QPHKnKZB/ZrHNxbmiAWgGghv0vtYBWHzbXaATUGHKJpgZqM6kPgR3I
Ye3s+94zXB52mVhlJTUh2ou1y3jMyN/Cj+H+/nFJBeeqJqScLMMb/IVby6JAgZra19ZT0QE14+Nt
fdfrNWgVR71SeCqLt2deu4Bi8HXPKjMZ8sXwUjvYpGjni+2GFXEkmtJshKBo/AqgpRBART6gPcDw
00aElsftNmlijYla1tIgGltScBJZ18nRJWmVyvLYKFDRk1t+fBFplrCqCG1WSyBXV7Gy4aJeQzqK
pOVAncrn1FRm3VIZj1sAmc/1PaPLlg+jkBnHtRKBzEIwUR7pE60R8WScMIfFwPbaDTYdoWj5TjZM
nsLJWLqmH3Lfi4FpBkVyFvnwfTqn0El5lksoPYGJWlldIdtFGxtxPx98Lwtd4oOHcj4Ht8NOQ7sS
GV0hs2QnGNsVAcw5vBmL78oqvhdPzZuLYzI4DGxsGiJ+ncM5bzj+rPQmplsjfrShWmQ5AHHgjvvL
WVB2vo4UnarzdiNJnY7jUDP8IU/aLs2zVKZY+mHArDXu64aHEIHWcP5M2S3KvAq/Zo6Qk+aVK/PK
/bx4HHsdhqtelSu0483Ws40XuA5n5BM+4zGA53/lKnU8y5utMaEuPm0tcdfxFuzZSsy/2cvnjuPz
FO251PH2X9mmlEo6HrP4T9gUWrtyWC6Ql20LE7bz/HWcXRNM7d13vBtLttE5+58P/Or5+ojrx463
s0TWI/xjs8nX6f5/7Xo0bE2ZF7Lp3S+U3Wd3m/to0qB0PXykWnmAHRu10C+KMW3QFNsxKpNaHLaw
jrpG5aMt6TsOf8g2oM7tOHEnoePAkaj0M2f8uJ7pZSUlH3/7nSCyAnJhbZPqhLBiAyn3oi22T33z
KiGE+hsucZslbkbyYUbskI5Xa2Sb1h/KkThTUxmUaTmea9k9ZWVoJlAhI+AotNNDK9cy24qJzQXA
OmbWYEOR9347a3Cn6jJLKCTtcJqSHQ7SaPRfPHpNSdfs3nNMnXTvw0aSabnDTomnmrbyQvf5Oh5W
ylZ0SLbHYiL+a0cHpFj4HW++mm26EUVkidrWrePphGzD0uS1XLrMvuPAuGwDK2ctXn4dnc+L3uUT
wi2WS+l4WjRDtlQITZXh+OWJYy1SVkTlJTwW8vfxyf6Gh9oxERtAGqOlK5f7/JXSFRamAxO2aEop
jAV3bZpvZhnKWCwkw5o/7i6i3VHPxml1EeVZtV+JBe5uDsQcyxKZdWkpGMPfdG8ScB6pyGgbQg6r
ZKDjOqXo9zPusPu403NUh/ZGYfehaAxrVeaZLqLlTEq8qS62tcqJ0qhcGSvbBjnK50hTshlZkUWK
nF/moL+5Pcaf8WSa33IAMFcBAVIQq2UZ1MtZYY1ueAu2xsc0bafANTCNRY3H6bKn/LXZgCjrFBhV
CXtVclnuM1p2eZ8f1287UqetXJK97Qtn8QjLt7Nvpbu+QyWw00ns3i73AXgMjWs8513riFYlt8hK
6/oFfcGSz74Mc2Ytpz9Yy1R3JLN4ZelT7ea21jIB0swZnzors7R9bw/w2d7Id1sF08p7IYe1fJpN
+4kNQhXpU/RSYsXd1jWFhHT+Kug549FzbpStaHVGlc9bjxLgfrq/m1uYQMxmdbfFA9MeukcaVFa7
bsrwePGSR+nzW96IgAUn1s9XqDKgqr/HE/84GOuq8YzlD6c1Ky0XWGcJziYmDXOJL61jbQZIi8dn
Q5Ig1Zejb1kTFh5bloZ8iXe6aNvdC4yvrtj2fKD7a81fJrtXDa+6lzgv3+4BgwhVTkbg120rNQlT
lDL4W2qKmWK0IZnAs1e9r8Cl0hFB28alJxPl2Uq35yQv4gMgikaPVxF3TEjVuSfkpWvmO9viFp6p
D9IOkZzzvCbI5FZoSvoVgo5im6WrVkw/FkLtKFTIq0rGJQWTWt7PrzuqDPKyllJeHC9rpfKOVDcT
713r4xkchuJeyePDiOiPlxFQQakrwngSWDds4wffzgc+NoY2yGcCBgFjPd6M43RZkcWKX+A1bw07
WodIrwsk/jCHBa4j6Zcf7+N1LUM6QGHX43o/f2jtWZnz4UmvWEOhLxYEkOnWSMdnhet1BdgkrwEj
CIJKEQsG2JT5KO+kCDV7F2Nh+GqCLeiJ3XK+g8tluC3ca0sZzLwPMk+lbjbLmqSn8+vrOI97XO2i
CMvVAn8hlIX4C8cLsFeliDeUg31CYqFBo0ywl2mwFNdUMb2yrS/TyS6pgisQu4Vbned7Dx5IPcWq
LWmoVnZDJQWqKWNSk+wg6TRzjYQstevthqqj7dTHueuZ+s1HPBlZIDyNjZ+hc4AZIPbfKO2hWNMp
PlNxmEOlDMSanfGkiGt3FlBvocwORi6UkZ8abmlTLJWBeL84dGdyZaBaGYiZ3pxrSx5IWxqzK0Pv
e8+mKeNKpjNnAzI25OuRkCxLChPHow3cvnoORKWpwylY00vacPlue1Z/N973NPmOZ9ZxjZiAZhBX
EFAEZLvL58fLdNn2OEPJ635qM0zuh/FRFZjOaTp6qCaYpMkpufK/YlNBAKO5de0bqGdr62zLUalh
fAKPFEClWJox9MWSGCLuTQSg22d1D3nCL6t83gmO9QyGYCneMLJyFdRUXlcSjHmNxZzOM3XdNO/r
7kIpvwn/U22is00aw6fEQZ+BVL4ymhk6jhlQsQoLGWVOz/T+edlgo13p/+OicO50nA1prcpngzrX
g2vw6TLNCtFE67kwKpAIVZ5zWP1lfL1bEBmEXgkhHq/qzb2XTpQTrB8omyUsU3cKaG6cY6j3mmLH
ipVBOUUTGItl9TwoCAULuQUXYJ5u4JOPCg1I226JNuoVBw+OLiX57uO+k27YyqtVllp4+uFpL5WB
GHHMU8dSGuD8AfLiCxvIKEVIOnTC5T4YYX8e/usxzp/KVWEsJ7wmzTFgOBltJ7qHNTL3HWnlRePd
CxKmiS1s+SRZEcvzjV5u4/H8CjQ5yprbXuaLIUT1usLHAsypNHi0hwqtlp3HqpueDhn8IPD5tStc
b8nC+m30wB3uzl5FND/GtsPDrZv5kU7ZfwsZ05NQGkajpsZg94R7Zct4x0DcV68d27+GwMZoRVKs
CwP+uqFB4aDsie8RjdrB7DPx7BSnf0GX7DQPP/7l9Xy5/MvH8PN/IZG2kdSffwI2legsm9LPEmS/
s5lxeJIFf/swdt+7OeZ/v8YpXmCstvRiirdmOh7HZSG8ILHd0ujKnEJx52y+43y+rSFDO8PXAfg9
j/H30PFTLdbBYLMOr5N5V4fzq3n/48kRINyGe/xQO8bgBTaN5Zi2kwHNaKx2Y7zD8H+EzfuDeRN/
NUcc3zTOROcx6XCO2L/mDRKbK97SSIFbfOM6xpvGc0w0O1iY6w1jljxAtMyI00UlimuZeGfEw273
z1i4oGxYm/XMoDD/X/Dv19bYNJLtqhy/GB3TqlQjk/Phfp2mj/jmlFVgiLhs3tvLoBd64SUqZKFq
f9g8i+uJYDFGwlDRKL6d+FIY6VgLRmtry5Cg8whUwwz3+zibI5rGhXwSVdh0nDfRR3Ds9N7GO17G
3w/3wdz1N4ofL9NjPsZn2BZMpPbbIf1VN9Lxb+/DKVYAjVe8Ue4Qn5wymU65Rn4ycI3+HmUDw7lU
4aqCC3S8jMOsPteG2ShMxj3vyn2evo2JqXTKmZ2Xv0zmLfzx+hd6tteTdkHbgMl1O9Z6Pcm223M9
mR9Qgwyu80DSLYkT7zlBrUfeKFrF3XhFFDFVhd0kXGUpfucEyDjEd7xjrJeYuCj5tMbL5QwB7LLJ
0vud+f2BFJJtnGVHWvMFdCHhQqV2rGMXHARVGWz3i0XdGfE/g8vwWJSj42S8BXLyBJeBPMw/GfPq
96pEKTcrpCNc1dFwWrsoLPdhvh9G/KdIq3bSTkwMMBa5zR1df2GXFGUHChetDG+aO9JV5ikVnXSs
deis2rJJa2TotAy5J1BHMWWGsqA5G3FQmQpxy/1qCEkTuVSWCVC3VIo2MD/tUugaHqbXV7Bq49TQ
HXPbWRrYzoVQbfAfoyLfmAEMojK8hr7MxVgiyio24jp4sV7IOrfjsJq+0RFzdq/z9V6bheB3f4Ul
/StA9/6ARYZ/RTdMMQzqUC+VCXtQ0QZsw5tVutmRLqnn2jIqV7x5jbzZy7fxh2LCd0zpQ3SzCp4T
ETOapSgviL0A1lFwPTCwbYxaA65RAkjeHnvUf98pomP5dh4O40/wMtCuiQEuaST2LMqV9uPVPM3D
43aK1VuR/PJ3scGWEZTrIVVh5N/jY5wHNYTV9Y1ifXjJd10tY1UJlZnkOgSPA3UPuA5/M7vy3+wP
xOeX9YoZsV5iFr+Ki+a+D99ZKUp7Z+eisLf/olglfvsacOYae3z3Ca7Pf/71T4fhcnsfFKnGVFC7
FUnYeR7BzWlXpGUGN16G/MnVMuLenMHjaHS25l9liswnd+J4GT5u2kVoWMyHdQ10e4s+n14NQdZR
I9lXdirDfIQVXSFOb84tWkiD82HWKNoO5epz0/2hWgIsezdi+6EEUrtqE+QuBTVWKweeh2ZVu8Pm
SF5DZriXOSrHQtCOVr4hBTAsGHINlHJQVCZz4JutA28jH9/P4w+IRB8A3YKoyekOTaM07yBn78b8
f5F+i3qsrGFRlRJUT1nL1pyK/SVztdtweveb26LcjVaRViT/viL7csXf9bnfy2WJU1jjZhfhi862
zwgjOfCAIs0H6QlpPvNyHCC+jI/g3y6PWVF3XrxAcKiuZLPAZuI+FcOglKIn/LhTtjoz/0usBrKT
2YiFt8v0Mlz+VZfjjAj+2QuXojFvqeNvGMU6XMkmWODHOCyP2Zqap3FCFvjz8W9ReDXZZLXkQm1u
VEIAtoyynYmE/3oMJzA2jr97zN/Hv0//8jMm1HvJ3EVv2b4QBPWgKZ/wKJhjyUQxd+qTcYHSnxs8
3qoPruOqxf9xG99SEa+CubmclsaqhvcHZLG0t9ExawKxOyTBitO/WHf7b+Bt/wUQi38Fs06JV2eS
q+VCuL8k717H6PRhk8NXKkVv0teZ2RUl+hNloEvMaf89aRG0fRWYS64Pr/nt4eIEKkSTz1eI4aZU
OTd1/GjbVdqrqYnYhsXMwWhp+nhoEu/471Rl1jatHjz9nS12TOW22kLMda+ZDxflVuKLHfNPno0w
F97cr9XaQnu0XgEYoXa9a4nKrsiVgZzpkLYy23YTgyNbBO/2CeLTttxnOTyM4dSh7Wv+i3kelLkx
3xnEeGjfrCG4/ZuWt4p6cYKbxGfKGNAUVRCXR+c6IfRaHg7x3d+esikJTdwxbzqnXlqh/YqpZ6UL
BpqqzKaE7HDZh9rcZb5+Aa3+dyfa/3X5m5526HivK1+95aaGosfb68sNSob+PBrrWnmWLGaPed28
DoP+oP+0nH/DzHLQp6Gz54KMx/N8fHwgRlkzCrIyjLAEc9kXDWGYASzbroI98lfqZXwfvp8nRQc2
zFgFJVr3UtQpLfiYaQC+RpieQdn5Miyj6jR2uRYediRYv8H54YYdUidEQoj7PYW8DEVhlbI+0x4l
UxwdNYEO1aMTYorM6pSUyyoalHhNEQIByqfIHzk/iqzzM6jRihZc9Upx1bMwAPqcvF5zYqTVlQdS
KFFM72+krNUskwJ+7pyRX/hwXBQgA++v9RRuWoWYCw7oifQyF40UpImDnYUQppJa6CXLxM5kTY+4
B/8feFjKc++UqDdBDC4XM+jF+LtvikVYFlLSC+XFLjew07KeGNMdfwLDzH1JKtZcCaWihlBPp+Go
pgahF5Vw+1tlKWVo93XPUgozwak8Istg4f8HB736aVirpWiFNgyFFM4zWvPraQeEnS2Y602YIZ1S
IKCO22DFU8ifAiC7t6Xtc+kp33yKXTEuWbSvW8k2nDBxyGVFsLLH0q2VXMFjuR6nGdE+iedShjPJ
pfjJBt9xOBkTVSMWJaNLi1TwnK/xiW+HcZ41d6ropZOz3qvrCZQ8f9b1ktn04XvKFWfTXx/GGfFk
Ka8OS5Qvgs6QiYcKeUpC53X89QwFSQDsM9ofr5WiFYpkyH8ZZ2Pnnn/Vj61h8g9wLU0bSQCBXP//
mUkpYqNTYVq3T4yDKKqu38iv3okMDZv4N0gBKCLEW4TIzpR1EeeVIhCa81ooeTcZj5LMALHZMbty
9YSnyVpNIOsQ1KWImDoEPLbp6a1BBWWCbYh77je5shXR/vfPmxa36fowhlwmvR+0FBW7qpB0Xfi0
S+Vpb1LMTURVYi4wrTDZ1QD3Og99dHeeH9Pp/PqpmJyNYkDAduCUvOOa0FfMxchhkblLpL+P1NkE
Kib2OIsdA9M+J+Rxi54cRs1fZN5rufVe6b7vQZUyA4MNY6TF2c3lv/9ekQtlGLh9wuCxqqlUv0z0
EHMtHvLLMB9/waUNUG+q6WftDkhh3ESSjcfuWwwGBiulK3kYP273T9WEaVlTWmY42Dzlj/cz2FID
MG4dwXJQXl4eaq7S9lI8XqZlxXUfCiW6ya41FC2WT2hiNRDT5loImaRs+kk0fSU3GUeNcgGIio7T
YtYAC2Equs7ZZMqVroIQVZc9Ob9kOSkCqJQmFU1JK9GyMlRGgXjFy2avcCqq0TKj4tnpXN+DB7Yp
2QwW8YKi0GKjygAhjVNTtFinmABgIOFRheAkb0Ipb6sIE2xFJG+ojNBokRt4WuTiULl7wrjsdmVG
1fvd8EI7zkL8ZD2nCjmCCsUS0RLuqfiIFPf0naJUHsrm7dVPsFRM9qCfYp0rCtfrsrZjIvIZeYGS
6Qvpg1yzNp9RRorEbMteuhxGJZVNpuxSH96CPlr0oviEzDACpzDfGFo25kS7TNi5UyJx1/b8sQCs
IZTgzpjcg5Bos9A76PJoaiWdtxNrcLZ6TfE22bpYxZIOM0opf+4T9E+1Li8apKYOl7NnNjsAEgy7
mJW+qaGACT7c0lnzlhcqPumZ3aFehpOJOQMJWAOL8j4rznM6G8NU9zPQ0Q2hWNS9lEz4vQvq/A2l
PnrfZivG+1GTja1cIP3sGh2H2+EfekCgDCFjIXzzTa+1aupK0fwY3zUP8u36oadZ/DWGYFAj+507
MYlttqlTLmx+YvvKFceT242M+pVZIbor1rVSIfJzuGavl9hlzK6HKFcZZgJ9KFCNE9TczVhDN0/i
AtV0AmDbsPIqlind7rGSBWKVQ+ghFJt7t3JGYFH4oESPGKjGlgQn/bE0AJmnSyFf2vaCvCEjWY+B
MHj0cxBQhmTuAP1ULO+FediwXgJ8PPMNVhGli13bTsvIMmmy/75yLBtYM00TL01Kqu2O4a6eL25g
AWANuZolLrR0A4sXk+xS3wDDXOYZkltmtnTezOkvLGjzl+E8/31cNGAYy+ZAMrGqGVzGuAJQjQSA
iOXxsgyAyFdijNwoxQ5sfagsvRxLIO/yXhKDz2JsZ/yN+wiQe8jk0FkyYlYrAX8eKiPrUj/DNuAa
YV0mQu2jaBuxlMtc8LeL43l5A/sfgGrKfiNO0tJRgR1f49VkPOY/7xT2QP6o6wmzPVBzEIt3YXK9
9AO2PYZS+s7PD++4cVoPL7ay5QY23Rzr+YZTrNYRkX05twE9ODMjuE4jlIqcDi+fByIDiNi9KLbY
5LzMoYlBjc/tHo0s4kwy/7kPDT6uZg3E6agV4WHO1C+FwdwQf/byAAZCG68AfqZXHG2OUNQ6aLwd
DRM01lu9IKnr+PNgxPt8fol+bpUhBsk9JII2w8skbJYWX1DnF4R9PqwPboaAA7ZTOFymI92ie0wg
4QT8XWQ5j7fLAvMhMs4Y+AnX0/q5YDGu+bP3mdi4nYK4Iv8xe+BmGUaqmksfk+447U7aR/eAjGkS
X7H1euBTUNl55pOujo8G0UlwG4gBODoUfyVF/ZRpKE6H4P3FL5W/FYh+7Vxnho/RXlH7cpfD4zqY
vwCGESgqU5oR4Pz8BiOhe144bt2Tuaqoi+mKHKfbGem5Tudj/OaV1sTBrYP/d2+RGv6QvpoX9cK5
tmk4J2ob6jEiTEbBSsfdK3X9yPAas6oI19PEnOtgXIvHDUcCER2/Hn7PSvojXCUKjoMx594ghKsx
9uK8eiZHM0s/bW+bWaUTQNoLbWv23FmrRnonB+jhGT+xzl92Vr7s9pqyA7jl0RVUfgUAdrBp8q3A
IxV8XpaHdn38c8GYb+4mYy126qKN/L+o+u6ft/iJVznbFtbKcJ0ZTQzF0DjH5+Q3CEVhs5kTzMPY
YvbfCksp4yIkby9DXdd5XPf5y8TAmPtHr5s6PnYtXfnU2PRvyYmXfndhh6w1AQdyoheAXH4/pvnb
OMc1Vd0x+VN4nC69IQgr7ZOzFdMy3pT3o7iI8DC/PVB+x0dq4sbIRv+qeAGUZGxWBKryR+A3/vh4
AYKvW3yX2JwYTvP6uFwcuEaH/SLCg+00hXbrQAKiFTl9jgnTtGTGEoM2rS2v4U59N/8yYSYFxHT8
ehbSTqeu53eoxYrfSmb50B+BvtURFKhovTBj8ES6xgcsVgA4sq7A2layJ83C0B/5u/Zp1YU/33rL
wz6qnXZHmXhXd+VVlkyiswArfWsVkn5J+DFUKxs3DQAacQZcdwxuijOopfeMIDR4ddN812y/tmGr
z5EjlL3ik3Eo3lMWl+sTh2IfAw/BIRa/X31L/TxbSbuCX3N9fOAtUjSz3wME2H9VfFfm/+IPJQuX
5xgwjWuKgXzIQB+/JUK2+Ir9QCz65+GNTr7sFVRlz58wsnPWEZMUcdC4aHspYTdOsXAsCkHmKvKk
D0DJEHwHvWlU25S5quBhFNZEoasNsOPEoTIz1IJ8GnY1n53Ww1lxwZmr6LMQuy5I/F54oQwJrr5a
1TrMyDzdJeUwutbWuEfUr8MW/e6SniWLfQQs42Z76GZCKPMcvz5+gyEwYAPAXzDX1GdTeMlSo8lG
ftjjiuEXsAiMULkSb5Oq/cq2l9xqugZ0m5zNMiMzcvxKcmHX+jZMa9mMmRySEZ2cd6P6SU0d6Pf8
KeOBd9SG5M/jKQ7Xx7vArqgP15K1YB/t+vYGLYJVFd7ehBvSrv7bch80e67x37EabxtCwFiVQoqH
Ypi5ex5IdVxc7FpDROBB+wvJco3Ma9efQ80jd2s9SSyS4ypUjKEKCC89sMMCVR5t7W7dDfriYSeO
4SN++bJGem2o35DCe1Vz8VmI9iTAjw/xRxs/ba886NyYdP4Yl4UwTMuiWQ8Vi9nUSB9qW6SOyxon
fR8ur0TXz+VHPI5VhpeXOxXrO8WtHsEw2xN+bSRDUZ5ifFpMdPAOgRA1sJ6/fnbZdqeqIBKyXksb
DLmcP853RZJl4S6tUQxrO+wIZrBQBIB8qyx0cui5PO6jhcFaW3C5j9fj2chdzKyclcfccJ+l8v6F
1226YdzmbMdX2gDvp+JlmuKlWHg/u9A2pj33QvmTlqbq6JyNUWNmvH+28f16qNOSsQ7Ny3m7xq9l
WbJolq/OYgEcuPJxazmTJJL27nRvMGdeRI69mAvZlMSxSDGe7OrjIs9fAcZnYbcM7wHfxLhcryQX
6WlmxuI6v0LkFYoLPobrZyoEW2UsMJN53GQQciiUaB7T/76OcqNvPoYbxHmgn4fyGMvQwinFiRxe
hlO8BgpnxDQE9AXL3YzMUKoxW/b8tWFrlzA3TsUQSypBVDKLllXKWKmEmS7SvakYTM7kJVIKl0UQ
bb3eJsWs9tsJNlrT7g+XpAKFJbPSiCSVWc3X2+PObmT8mNhx+1JgtzTMoNm2XtbBZE5XfNH+7CGv
Zq1kjHxtlUz8QXiZhOTzzT4/ac20Xz59rv2Ucp9Y3KWusLbE/EcTWFb/+fc/HPImPt1N6KMUBUP8
cz8DSL31PTM1XHeCuFXBPsbqq+xrlywRMuaOIUJBvhjSUIPdYrzmbb0nH4ORXD+r1+9xaVEGgt1a
opr20e9CXm1zazZWgJjuMzouRx8t3xfYY0+1oqiQhMjUjZC6CcN71VMyUXfQu8AhKgPLgRqiqvSF
uIw21PR5ICxUpkkUC0UYVms04yVuSGWhMeYa8n2A+b1gKOinfsYlM1nROyP5tPXKdpm/JVsU81T9
nkCR6G2eXmNNmR1g6Hlj9kU/4k+rCyeWPz0MehMAxhwU7ZezawebVfHY2dv+XE8pBfHCNTrl4PAs
Lw/FwOBGK7UnKWQfP5XwKVnQuIBpFvYAzotWy4Nim0UZ+jXKkDo46GKWUEheCEEwreXRRmT70Shw
USWwG+XJBZz0Mqel+hlZJaUgLUbIPLPjGeOJlNKNX8AqnIPtbDoDJ99HwtFhaqESsrfEPziPn0Qv
oG9mVYTRv2Zzf/GQzH9+IDmRClfFiywmwDhExSE3lYBHHRg3tiLif40v/+1PlsLs378r4fuyFI3r
FbWtBaZYqKVcdzaiLlOiwe9ECVtRFq0YSIiHDphsqZDNgOe7GC1v/DBySap4+8Gq6bj1UIgXbT6j
uo8L7EZyt2QTIX6IPASMXYOKL9pteq6IpcQhklVA3YZAQ8GS7Bq7b6WUvq1FeQp0vQx5p0oROupQ
1EkIKcP3U6K0Coz1teQpAZDlLX3EWrL95eltzsvTqaXD2pQKzQCNcJGvp3wiPns/A24h2UGpZUwu
LE6l0F0lKptYvYHt4pPprHj/Y7oCLMcI+MvvdxSXF7VSWLTON7HxDSMQAWegbyRWgDTDWss6BDBl
HhDnLpMGc2949XZBbvkGN7hWKdka6MN1sqScSt1RHj69NoIFH7Bf4QK7jkHgD3MCUagV4cM7rYfA
ZMTZ+XsCiUuPm5MdFkjPsKVS3tOrpWFC5rlMgFT9fk4wVsPDIi+uTmBBoqlfP5XigEapz6XJ7O0Z
03YiRQ6p16/Ts7LSnWdWBSxBH04nnWeAERY88yQeHzNEfHQu1obxnzLHJyg4P8zTXadT0epCWOMR
bPEN8L/zi1Y5weTJ88b4WNbxEzVrmmqvKzQytpWj6yvtCBrGvYe+56bwjxoXssp2neCAKUJ2SRlX
4scZ02YJ7c4rPJ8Ux47a+o7TPZQyB9ju+hBW/498ZM0zdcRf7P3a+wAbXqzGY8ohlY3Ch9F2EjGH
WyBGb6h3EJ1aqn0Aby8i0mt8rVdOyyp9nm/+bjHFiD3ZcwzoDw8q/VbH+AafyfDlYrlUfzPGnFVg
SwS+V78nvPUfr/fpb+PlValAq5Xa4YCI+g9mt1I01LXSgMDDTW2RYaIIjemGnirRbM5lvQapwqw6
VyqAmSywPMjJ8fJC0Xwhv6euZXiP6icSeaw+Xxs0W0q8QNAfjneN8ryUOnhh9xPV6G8qUVat2sYX
v+pdszpePWjJI9Ze6cawxm9cYe/vsIev8ogR2+vYDbpAKtyh+4pt9qzSPuEYbs8728zWWmLGmnMt
t10TdNe716iIj+F+fNf2DY06x33bBeWErh04cEpAk3llbk73YZJiLRm+DW+W9vDwHTH+Z6MvDhdt
kc5Q7AJ2bbfzB9gwNq3Eukon9rrADTlf38f5fLftl1WjDEfJcnVOy3jR+Cfp/DNpg1+hMwtkuOH0
wBm8x0M8dFBdFk6FxnEfHt6Gm7lJ9x+juQNm87VVFT3bG18JD1/9aXqDgyIG2vXclNU5EUyOJIJP
bOgMN/gHsvoA1lu7gr00nfjKDnbztBX6aWEIqeSTApIrbXtcQ4LO0nF24aFfzunL10tvHkgbEqfs
8NI48RoFmS1aNJsAglTnsqKLwn688+3q/dNxbN5YQam0IadX2bJrh+PTYl6MzfbNGkbD5QekzV6m
O7RJ/zBm6Vl5EUVdBtLMGuCvj18d5hfdXm2FnTTAB4J13ToJ+Gk7d05ztI0gnRcTPbwN/B2RczPQ
2Y3nt/c7eQXq5FzJIo2VeauUCbKzGUHb85w9qh5tkZzfX+iGvqLBD/P9ot1lvtelh6SuPH2PKwp4
XKn2zv0OMc7ptdaE3S4AK8735BOpa0k+U4jaKg+XffypXQU/LwRe29XNxjq7bqi1jSYbjtFQBclq
drGoGxZ/PDDOOJz0IeosnFC5ZhLO1wdDyytraqtQHnbbB0w2O0bSjV9q/oJup/aKuYilnj1bNf1+
eJ/m868Terwv2mBlpypFmh3YI7aXxZ8wuWXMMEKwaPvPjBEAsTrSkHVsDO+YY13u+inkbbiF1t28
oMsDxRAL3IbrNVZ6YwWV3zXWbh4hL5dhuf8BL+v5StmlEf/VTOs/ML24/NsYqzW1a21CMc0lzunz
OnycjwcYNs7SQ+KGXxYG/LR2oO3nAjGH6bBuo79Lmu1TS8e8quXhxUzOSFajm9WFFn0WSuuOUecj
mNGeBMLAccmQt4DEs/ZGaslmIFt4+Hle9tmcBXutvFjRaNrPj+mxWOMaJWTy2XJN6XnnLLRqv8VZ
hJZLweTi8H06n6Il/lYg5pLwOI7Q1ul9Pl+/xbMNtCP85aC9ygnEbRNEeIDeeKW6n5SOzTZ2sMMn
e/XjfBccVrORynCJPVeOcJkOFt32JanbeKnGGgeyG8XE4/1FuweiOUsnCEyZJC2SHkzR+WUi22on
OQ607WSHac+ll5wQ9kbws1D7isMh85z1rYo+aFDwBd1No9TrKJg9JOlqF3QbTjaq9KbR5+NAtp4W
p+Ml6S6LmSay+T5wFo5GENkoWdxvoGHycJjQZkNzmV7KcDFvOKa/aKhsHYqxRtMYPryi7Ejvp+Lb
Re4RIvTzpf/cS2xcPn/stsQlPk7BdmRr493nx/WYOFirxYs+8OKs8NFcF/p1v4mowXP2604TKr9d
+a+rNRL1T0hBGrWXduRrQpAWVwQnHMrA1EX136JZ01KMa8e+WsulkhxMbPnIH41mEjBZyzIc398o
LQlMssuBCfSrWuZsDaFS0i9uPOu/YdV50v4uVcMHcsar60zHjieWMsKLvpAsvtUTs1PVDG82AMTt
covaJcEAXT3o7Fztmd06Tdtz6zH31mMQvtup+BwacKNkbBoGGIEv46tq/XvTg+UZSF1ah4IsMdqu
lIO5uaVF3AXY4WfW/sZCeMjyJl3HH0FkGDL1xved/WnKKGkoBnFKtNgaWjSGnVsR/d5JgGITs7D7
xebQR8ewTjiNgWm0zu1SvG905rk48UMITudtyX/cTr6J/rAFieH3ENh0OM9dcWcYwN61p9WTcgUS
j5/0HvPoGqxNRAewyuJwBVV869jX2NbQclE6cXVbxsdpci8R7bPoVHrrItFqsHC43222Z55dnb7n
mVCaTPwCtOwceXjo+RK18Z1gR0F8/g2/yGyMLv4Y+u19qqTdxG2Mn0nHrnOFLE59ZCbxo8gL+Wa7
mbye5yV+LVv+qNF8yoOvUVsoAVK8DLV8GZISwcat6UO80e0meoK9NsGzRj0/R8MfMFrJjgSqt1xn
eMCtYQhy9R7mS3w3/cUuIBharKXNXMiRcI+fSdHLt/R5KhFnHwbJ/CAFRLAK20psfrx8Hl7n6cOH
R+7mpj0i5Oe40fyOrIpcuqtl/K5WW/EfezXx11tksvh+fr3xeVS9LInRTTgE3guZvVEhxK8fNozq
8q/6hXhO7PqDXMxt2ST1erN2AHf2Y02scHOYYKwpIu8Sw2foW2rfooXwK+YSPsxuu929N7+WQ7Ga
X2VcUDP5AE5vXpXRuxN/Dx27f2S1bVIM1kFRvRw8fHaBkITA/Fmm1FhcAPVMqzfo3sTudHyMnCt2
ZuOGEiOuSYpuq41qbhh0cXPA37ugChhqLqGXSGovc7Z479rZn43fiJYdQbc6cqEVEjcim60EaDNh
t+KvvyjlE9sTKsDHqpthVXzZeWh8tYH1hm72Ev/YnzGCeqU1x23PolGesRJJy3yfUKabbVQOc4/W
ycR+JaoCydixWSB26tXFrZ6ezYknrcApBbzLG3hxH8NN8ZhQ3/OHw3Iv4pzi77fjRgjjfX/WSfET
qgv5VoLqGBx5+nQB5PWNBvinnHOoH7L+RF0F8ZQZ+Kh2h5FxnNqP4/unk55aXMSIh3hIoSkDtn5A
lNAdB/8sjw+jwT6VzzP/OU8P8UjRmidXhsnXYQImMK6HN0rH1esZ+0wZt2CrWy0pR52Dqt4nY5wx
Ek8PwJDWbq2pNbt3Av4N0Ql/n/4+3aJhDPyebXiP6QU6wz+Nr/e/T3/FF65+3/mtwmal9VfiPLgp
FbuLGXNB0BHEjpa0E07eQDWqHiencRs/M+SiznqK/D3r57i0yWtZ4ruQAQZ6VKrdzHeiI2HDelwN
p38MR+xloGVn0dpsZJeXZ+zsOzNPOKW9O2ZSsT4wyShAE/FMnNC0D97mc+NCM5ONnnVTN20V4/vK
JSeCT0IhngwuoxP7FE0IdiMeCWi5X8Sqd92vx0EmqMeYR0Sk/80/A3xA+5YN2eMfkjEZN6+KiCse
mmdx86p+0qmKda34ityLaTG0wM2lIv5I+sBRzYPP8ixuYHElviaArJ9T7vFz2u0VKqJ+jmJLlPIo
z7ZE/AjrXJY0+A7e5jNo41WiKtEQtqAO8+qBxRqPMjbs7DwqYH2PH2/x19TK3n14eeOvseD+eOPZ
G8PvlahLLhuEa9QljRdCW7djcReEZ3d85/r4JWyky/t89vEVVC376d6HfOxPt/GfrqT7r1jn8bfL
JTIhr5TBlNBmvzWJWym4Qr2P0PKPHwjbV7jWuavQoloXN7HT2SjR4TP+xHs52rhMlzEZSmkq+W49
h1IO1ymRMcfJRBIZz36ZPfv47hSyd/i4mv/hdPmOOdrbOKOV8jH8dINHpVieZfl2p5oApQh1az/O
p+nHkpxdtTFT4tHU+I0sc9nYSDrO3GcnY6fZm1LHna1YgAUZOer4S1CCX42a60BkXnwJvXzvuDZA
LyapD9gsusobK8+mdFxA5912PyUBHZcJRRUJ3kCK4nBBZnFbWxc3GHv1MsRvEddrnLByI0UsEisl
TIIEGPMqxFeXenF9sKjcW+UWvUv9KsIIcPygq61FXeqSRZnXsyBo+WbHjRgeJAySUtSUONp6EQ+K
u1qFT63Z6TZxJVhKAU13sC/jcfqg+NLjMswpl4IFVxHMZjvPkrfmxkpoja7jIVbm2idNmcBZZNdr
B+ANz41ZUlTkkguQ59+2M1W+jVe3ETsnfq+qbuOm2OUhLc+4IK/PPAJjuKJZGnZCBWuQgU9voTKn
RAixZ2N47OrzSuLR+5r7gBjt4mA8qHKc5vs7vF8jWBYVocDXg6i+CEAg7j0xrxxRSo3g2sfVFL+r
jGbjeTcUjAF/9rW/G8kkCH+6XFMnjBjFhClkR1iyPOL3tIyEOZD9arFBm+E4T8uSVsCl7Fo/K+C4
QZO38v4GwVEu6OO3rd6+nloIFMR3pm63Asr7y2vxW5Q1AEVcLRsDWqZT0aDMcyKeoTomUZLBvr6q
ZQ30fFRxcyOv5BvN8Vzx0/FvEcnCupRtoTyETA3F1HFtWgR5PhvpdhZJygip5YicfTg7Apx9WcgG
K6/DMHfDvGCM4RJZmCpgWzG2hEk0BRiceWaKJzsofC1xdV5z47uw7UGfa0ZX6L6GyWylcgmhOjuG
crElCZlUkfjl12KRi6yEo0L9EWJZX2w7XQzC6OV/rQg53XHZLaKT1ShR/796P4TbVjG0UjUEc5xX
zGqi6iPPpaoPks6YwNK2oZOBs3jOcWJ+CyyOfByrnVMxsuWmEMMrdPzfu0Th+eNjPJ0RLoNJsLfR
PIjh7nibItkjZJW07JW5ZfAppQSk2/N47hGGchTEOfXtrBzMaYXg+tTcjxloyDWQNg7YrANiWXQV
zG27Zlvo8KmSN+KSO7/kfm3zSqGwr5Zy4XiZnyYroSK2BRb0W8Hq+nA1WzXrW2+UObzffRVBuHu9
H8enlmlar5fxZyzRinPwt4LFjXDnrV1grsRluEVN6spzqeF96NYa4NP0AAX6Mc5Ibhhud2Jn2Io8
0N6PQYe1a6TCj+SVEaeLwCu1f7Mbf/cZLEe4qvwlJW9q628W8vBzFws1+FpAod+ETrpRvzVrXnmy
NxyxDz03I9GmV5/Vxy1I7F0tTY8TEFCF7FeOg80vjEVIksNCDOn+3LUr3fi3ib1buqS0VHO5eDiF
LDXVmxMfLV9Hw0YsHZPBNpn7Y56gUA44avc8lbaVHt3lvNy/cgWbQjoQ9nQt6RnSrURD2pUnEV2P
wNLNIhXyRs4GN1yfX5eFAq/8J3A4uGtVqBP6nSAcXOHmuTbs263AJLIkKt3escy6DsSUte/YoHzH
XFWsPmIuPV5mf+yvw8F7kof71u6So6k31vShHLXmv1T+rZntBbe0vdj7asmmrR+upFLy1SNJWJlF
X0nFU1Y1BCpaJR+pw1GaEHq0I7ZizVS/Mazt6BeTjdYBqKWF7V9Snkl2fyrybbcjT5OMaFNvJBah
WG2cyplRFdJMFnMelwsH+GhuofdDkButT/M8pFybjF26dkOkMwFbijlf8rAStEX5E3GH4CPtpAHL
wp1qHW/eHfFL6ctbtJzeihXh7MhT2nP3q2FWwVplSaemE+YUnN+GI7HctTtZzv9UGWPp/WdYCq3E
ZoshDm6TyFpsggkmz4ftTwa/4ujIl7h3WTK1Wq4hcfPR3ycaIeb9wsdVLxmZHFep/bJXwNSZAT/G
z/4+wRgxSY+/7D/GytL8CRGqfFwyg65dW06FcFAgcIs+ERzEW13U1ulpEG0G3kpFSoDiafqRF4Uf
ew2Mhezd0y9rHzOXz7MZhbue1NZVER5dx8v4V4rGJW6SZJJJwiehrKDKpKPnH0Ms6keUxBHHyAPv
0lpZ/NZrd68LVm9JZnegiXH/O+na8NlrT8a/N1Ti7dO0tX1jF7ZYKSj4L2svvU79sjLtqpHExObO
pd5bVYaximwvBhw3zn/sTLmvMoJYm7AOw6/lE1PCm1qXYU3DXmLYlJlpNCOk4FSdPYsCkTOJyO0U
eV/J+UI54aMDM82jRpNMdf69FJT+GvGLVbJFYL/YkUL7JWW5RAjygCmCCF5/p5NZlJyKyhtRUgpB
tXsakbbxC3UadOOaQNm7RuToRqz2F5IHalNhBJhobYZsQfPlS2xBpWeBYW2Tv8oWVGYSHwvsC8Ua
lC8ZW5EP5/4GnqGilAbazzNUlhL5y5d5hgq/HixU7L5G7lN4tiNW6bCfW6ioJLal30RzVHgGKN6S
/Ms8Q6XnCWLUuPt5hsoi5LPKv8QzVDIeq35tjLmXZ6jwjEAQQWj+7/AMlVV4VdvfyjNUdhIV1D6e
ocIfC3YisWp0LyrJer2FSg7MtOAOVmCRG++fKasicek9VgYvWIMurL7AyArN1eO8dgxbEAnfHHan
cUvGSep9p69hqqxr7XcQ/b+Wv5Qv+OhlUcu0lXLAQM29V7nEL6nFRbSIiEiN7eM0+yikS86iyAyT
NS5zHi8nYEWibApCZlVCYMaXVa2xRVR+9/fz8Rsszwxy0O9XzSnRGfmA3aovU49mbJEcxvFVOJcd
rQ+DbcF9cEH6ebxdhqNKW1o2IjuZWCCsyYpSCtjtUpPWNhUJ6GVefP1+15L5T2E5ex2dJLgQfbuT
YPCup7fpav7mx3y+I9BoOmlRq7YVSdSAN2ZX6I0HXJ/LjQVZE2vPQrPJwmu/E/Jlp+I/Zj2EPcfL
2ojIiggE1CQwKEUuSgfqN4N3I0EO3UsL4vkeaOGQCglmIs+aX5A1G6wDpHkunE+u8gUIO2FldjZd
yAxe2dTx8WEOGNFc+ynbNsR7JRkMPz8u7/f7bR7/62FeMH4a/hU09bhN1wU7ox1O0/ERl1w+OoGY
Xp8bjAz5v//8pwMMtA4b/thyn8/H+E8536O28bPqn/ip/3qc529L/KfYqnyYd/NTYDwe5/FE7dTX
/KARZ9fowA6TXQf6dTPw8nk9QpUH6JBTfKjSD+Vd5c1QrkGSRpXsQ9E4lg9mbMZ6GU6Jlnm+YyHu
XIZ/tNJYp/F1MJ8dqKX0467MrfDHzrrRaJc23hHM52SLOujTmbpF1yn4ifhGtn50D3NXRncHZP4n
8UG7HScd7MA/lgnpsc/x61N1O/bh7Rg/Fr9SNNaz5KT2vI+qCpcqvo/rdB2Nk4Iwhmjb8NzHHlFi
eJ94u8bx/i8/o6tku9TGBEEoxKBhMvgR0AsaQnjHEXpExlfcswcTe3rPh/u4v+ZNfNBWGhTJ9ld5
uPkJ9ViK6qtvEFv7Us/6+CyLdVTGAyrMy0JXzq/z8GEu0BVakR0cwDna1cwnutzx2YTF5hfwgbvJ
G5v2OMXbUsBe+ANjjdI2Y7qugnA9D+PP43iL+70+r4TX3seB1P19McZffGfz8PxL+RnR9IbjcVwU
3eBPiTX2U0Taz5jWjf9Ev0Mrbn8Cu4nvGr7KvmCj0CMGDWz/m7gmyb56aEwC7vuJqtwhpEHi7NqH
utih5Z9FjVVR8Uk24bC2zdt9+jZez7+ORIdvDmucwXky7v/5dvcXBJypMV4jEjD7rl5CluVKWUkp
Vc65F0lgOvBc78ObVmnOqc28Z5BllfLL/hM4uarmLoldOP7+8j6OyaUXYpULDfOL2c95+OV4mRZl
BF7XVbLIpTmKDwuc+K/HdEdWn+tEIyuj1RKRQ5Zp1fqsOMX37rI7QUIdZXqsjWDGI8rhIKjMznoh
l890hHPGjSd/7HZxJ7Moo/ThKD2LKxNwS63l9OT9RcDR7oLiw/Ed6i5SswjYGH1uDMTg7TLEK558
BDvkRTRP0Fosw3x8V5o5ZrwNQvgcaCe3jztqS2Q8wxA+aRrJiBtQ7vGPOcum3wRxJxHS45+bsrHt
foGhyB1OcOSDVEYcKZtaS1sBDiW2/NQ+ZdyeiCmo3JkysXqYsUmXEbYfmpbPeJsMN/tuMxVl4Yyt
k+2fcRdTEoXR2bgYhSIvlZ0vpbupq5xfFLGVbyibtseifeqFFQP5vF4eC/TxGsyB3G04aLcG3FCr
bw9G0Ud5JWmQ9GQO4/fzRRmWUYbWKyLFvsH9UrUQCbVoAuEdSMiTTjr94eNm1gYiAFCGt/EIjaPM
C1Zuo1iEaS7fgvmAVWkuMAxJFwhfaCsU959WeBtm7GWFB/mpCLw8nFWn3219q3JRhaMq/akJB05z
sxX+1qjVxTaneKnWAc5vV/gUt9OcEvl3ynYyDgHvhdIsHle0hZzwV/azeJLSTOhg0JqqB4EP1TY7
VFA4Jeuf0D91j7hQx0RWrjPfL4qxUDJaoj4wd2IWb8mIh8MvKGnuiqJ/vJtdgqaN0dR/zyEVPjcS
M3hLxv67nWoR/6KSYRtYkzKezpQ3exmMVx9Do5eMdin84aAEZQdAp2TM/H1QwaOMdIgvjuX3mR58
P59uZ1d2ALAwYg14vNzOP8cLRWYJfbyDl7JkdEmIkcCu4X3QFW3XWVfhWVto03w+fvtMb39VhUCG
XrV0Skb+2Af9QfZXOJaM8aIPhFBeVX23vrA/TPPvpmk+kaCOT6eXIB2r6sKdtOiQHZtZZfH3t1JG
7DmUOhyHg19epn1zkeE3xjON70UnbasxTeNftJKg8Jy8l/Mtvld5+GvN83sjjwqy+fED5Cglqghw
uNL30QxBAvswzvM0w4tIpBmg7InbSoxb0oEVSCesxQqHYR4H/2KBoPzw/bycX8xhm8krL7hirsK2
InYzvIMPqPUsFTPeV5BtxcazjdUPUJUYHyFj9QTUuqIS50QhWFuLaPTZFxad52G9g/IDys6xQVi3
M3GW2KBsOf9K4lWBeVXMusCRq8TIe0R1xdyBtdqA36qXYT6A8BtP048r/dPjFh+K1R4w7RK9kngw
F2UnWfkJZ1dXr7ilnsMMDFhsVAWp7GkR/kan7KnHBV2Ft6SXlK6W7bZG9WsPdteSKqk6Xv0hZbDu
y4PxWSfPuGjFitHdZ6yMXMZHhottLKZvxub5tqSqC9Yo5a6H5y/Jp/HD9k01b58qELRNgEL6WCSs
Yn7rjqVj7EK5tKwOiynDuMiZz1ho/VtkbxmKzd0P8Z/82Sr82WbnzyojsvKtZrOQrUA1nldaqhah
UqqVGX5dKPW/Zfmf46IM2e3Rf1GJQcd50h528ySy0cue5m/jvOAn9M8H6MYtjtOy0Cb4RCw+aT9F
h+9nFF/Qegb7MkSiuu+jeY/W00RjYzJcj/nTYa2B7v5xvAMceZ4iorn1LcVK1zC65z9P3A63WAa2
5QZVF1g7jtsHWsjEF++NEVwCavyST8ARipk5nK/aJPxO8AAUDWLxn4e3y/SCTdXXvYkPmBfhqurN
qVxHbVdcUyv4HBuu9daKsQOsITbAiwOaXZlI61fmAwnufMZlGd7GxAF1finVdimn6eMRAZK2vnvZ
ejnb59ux3If5HpE8LbfZ0f7HkEHFuJbsWNcp7hO3nsC5dGj0YBtezQuFSK82wsqovdnJ03g6HzFD
aAe7nF/H4+fxEn92Xc0uW4GxyvDZrDiIw+kxo6Afvp/f4hUBLSMJxFF5DzI3remYGqBhT2l17Ozn
2hvMvAhgnbHMGzG36/CPxSxnPD6033b9m3DuqAtBf0Uuqj4VNhAItLzoJHGalkuuISbuhievMkrS
iCTgKxwV/rfWc+fjpmSrQ2PnYYPR6HYrF9/vKxRANoFmIBH0mEe3N8o4DXtA24N1wi0KD2q5WdQF
XoO7rt8RBo5As7gocgTZ8hM8xhoqtr5TbRkWO25loTJ7JoUy5HDOqj683YVyp0pJw7mfhVeK8S+8
m/Yslvi18FOhKufN9UxpFtd4DRFGzUrI4fbi/DHGAvAtN7RgFqChNsbG7fOwvBvDCOu+Xg6qZGeX
itM/++sZgyi33A0Vj9TSg8KuOthnSnw58lgc0McWnXYg+ak+Ni/dgcqj7Vzd2AgJGwvOSRR91kUY
I3e+NdDpTifb8BUAj9BDLiZ8SrqeUvifgBTLfIy5XfRtJYWQof/ubETW9bRg3Dqa4qOVlFKEdZP8
VJEwJQchhOHjzTCFUgjItgFfMcS1WLsBt5AD7DH1atKKJnnGiBe1BEMlhthsTMWAOsp25lLyRLoY
yZHE2P6Ok+ikGRg3SinDrFrpEmBzUuWjRnoDeHOVj2opMbAj8V/yzG/vBAtYvfR8F/PmzS/T4zVu
uZElv665T0opRSVK6SVci+DL/8NGPJzGO4FolGRs6wPwJSO1ol1EuYZfxFKWAPUtmWPCYX199IuK
KUt/0rHsJP5GHRrpNkuV1/HfaCTp7YBAp7tDAUUHqJm05rmUIj7JMlyWrT9ae6cQvWP086YO97EL
Zuym+zM6306y/QnJ8V4u8Z/NxePL48dXZ9IvuYkOpxNa1cn9rcVLEEHC45G28kzj16baqHDLYg3Y
2CMKU6gPPZgTWt6nh+VBxXjE4XSJJ1lw1xptD16NEZ/egD68YDrGDC9YJYUAjNaJb4D4G+ulOMzD
7Xz6MQ6Kf940Wbjtdp55fJ5VJRk6WR5/OlUpPra8jX/RSR5DLDmKu9eKz9MW/eMLhf6Jn7bgVyOU
xm0p5fsbF5RVIW5LFl9k2UlTzorsX35G7pQYAIglgPEnGvFRFfFl1KK8N/+j8+kBKKaoAYq7xuN5
JRaW4ef/eFy/HU7DfYiurBI1QBa/+2UvyVM63HC2elilaSrppK16/Nv//G9/mJRrUvtrUkIMocrc
3c7iFyXXNMHpkhYtzdOM0YwEOjGC8NvKGIUFqML4hO1DXARLN4bo+Whz0Uv869wGKOBrxs9mMcrH
y/mItIHo3L9Pl1hGl0BmlgaoDoGKy/CdaO6BE/c03e7/Yzppx2nHKv28fJZqVWDHeH0PNk+2fmUd
QgGNGfhAtmCbaYmzVuIgnbizEON/NTblAuC/eTjEbCLaXxuTqosNw4OxfoG97TJe38A//XA0QrG+
PDha2ZbSsizigAqV0P4HUh8Awylb5N5eHYKhaWZ2RNsG+7GAK05/Fc390ZbZ8OFmgoTJgpgZpUuu
Ho/lkETKokt/RdFaaKpwqnfCdNEE9WuRFdJp2NseAs/iZdh4P9teWugZaj3gcn4fqR6UIjvwqK+T
/YtRa5uOs3Qdy8PyBdg+/N9j7NHSJLzNsRtcsvwBkZ0xWhaqYrD8UQ73Qlwe2milH416JLvaI3ey
62FA1AUgQfMIAQNNariCY3cPt0/V3JSP830dcM8p9/4ScuTL0yvB8amRwZ5xnarf3B4gC4D8VvIi
F+xc+eu1IK4YewP+dF2HP+06iBAXC3GaOWIWtZQd6CS4O4FP3759dmONzHfjxYdpJfeNRCP7fsd8
Gin3uH5vTgYe4xL/3hssyHnbhN+rlkNd95KptH4crfDDH67ViV8Vj75mFguDSazfWnqPi72Vxgs4
mf8Azan5PHUTRpkdYd32KA5FfITsaTNJsp1GPUZOwrpiCoA1UBiW5cc0n7ghQRWlC5BtRKk+UNQW
7NlR/2pLg/e43+1VBaOJ7ZbyBvNMesNGEloJgOyL+hh56yUWK/e18sUNozxmviDvZDzbFYVmV9SS
9hZvzUG/NrQvzGBirOnwEQhIeAUkMzFdqsheZqHwbi2kYR2MA1j+Lgc6P03H+rHABXIdLkgh3KfD
y2UwHskKI4a0hWLqNq1X/jWY/HWtY29po0vRCCTbA2kqUgqu7JjR5uPFq8Kh1DX6C0aFnqbrRdlf
F2DZ2NjgCM8TltVjxoTqKDRyNTx0bgKy/ACujb9Ui+/9fh5/aOtkihzTY3XGxkN06EpPZ665cols
EGVzud1l3GMCtDk7a/P/NAK97IPr80s8/OkHW+eFpLj/J6hLI7r+hq4N2j1/tv6J/na5b+N5nWmb
AK8yzNjmM07sTPvNbQKvf+0wIEzOl4vqTdRtsCwHh7S2v2XdOp1ne0+N5H/MkQ5B9nIWktPmrUMC
SKeuZZu30vGvGhDNth/vEAJEeWftAx9LxzzIafq4z6Oiqmq2f8zMjoXR6ei46PY1/TANs8S3kTHs
HOgglHvgyITxLberfHPX/MVcLo3uFu95w0zdZs0q47YYlTsdz4gpcTuk9XgiidA10taHN32G1/Of
IPZ0/zmvRR2Fat8JLOMwzRDYO9Jt18R355daIRu50wd0X11HD03LNVkuaf9nLXf8nM3jifDCWwnj
7zrmdfxNQPKx4QL/CAWaw/wtgkuiW5D1oTVQBaKKIej2CCqmMcFdtvj38f67x3KfPtw5Hiyfz3HU
XA7mhfoih8v4BpqKypsP30bNFqiL0E7K/RbdlvFxmshHVsKRtENM/LIiX3vu5/v4cXgZjt+MK/ww
M4uWw9gb0AZCM4ygrKaEczkIPYCo1sNpjkTzaOCcXfYC85zNxpGlMOZ0mWYt5tRLNxTfDAkUhMlo
z6QKBggXSI/E3q2UHG6yMny/3Xp+H6Pxxk9fE3Z56JS75kx3a70be254ASsDrTotHCTeyyftucNK
cKR9KUW8xum0obLQ7i253Wt0lnGeoJ4MbgC3fsnxV99060fGhlEsf25J2skiVibHArN5TwBINj2b
1qaIr21X9pi1ulm0ZF2j7jastaFxlnfkk4zThdAQ7TpEQLnptYIdDpUDPcbTeJxmClKEPOjKz+T+
Z56ifmApOcOE3BP2C56CN7UZxfoTiKnauj3jbxu18hP3zrTb4n9+0rUfnjV2ssOPd1T0iRNs2AyJ
8jUYBKrBNse2KKN1fhcDlIMYVbUyLZFJqJjHFNBlwPVypqmaIeGRXvibPosZRf/xPW0TVZLRvprI
3Oty7SjAkoPQtCbK2jyXdK3TkcZYA7/pftcc1SarpdgN+JRAG+AdVmIS0nplUAqnCEIK1TawO96M
fMXSAHNbo60urVrsQlXE7FySgdYgefmMR92sudWJQVgKKpDhnCDJpA71rRQvofgNXXhbLKXw8las
v/NGL1rtgHp/ZcfVwlqiJw8kY2fAYXpFrXqmNXcn/FvRM1xMHz8FEdApHpbr4+PF3JjHdXncALGo
6buqaEO3zFtAGMZ0OACjRd81S8pxg9ZhhfFtWNBcMeaGe3TKfrDgD9Pqm5fvusCSS6O9/UbKS9BO
4UkDKYNmHOYb96Vl2bU1xitl14zpYXSEtd3Py+EG7FOaGVmyEEwNv1Xn3NvCb8iMXEi6jKcUtThc
LU5QxogAnEhguZlXM2p8GJGVylsNH+erNRmMFXc5u5YcxDseD6uYUdueDU1ps9L5Y+Bg3GzALyat
cHaFSGxjnczpSgf+Cg8zPo1W4vyx4lxNqOAMWom5xZr9Vo5rC2CMfv7Wr6e0cwW9SKdndTZF4PC8
MT8aiwfidJqQ7yoXPRo8nfgYjLSoRt1WB0F7+5JR08UH6SWyqfVmpI+FEXf5EgCaArRcOk4fH1A6
r7LbdYz+K7DacCHGVADSFKAYik9DZCVy95MwH5NrFfkyzPEjzqV7wvKsNpiiLyfTXsv/nTfN2JBa
rP3e3Og1LaakfnCgTh7IzXYdBzgwVr8iPlzB7gNsYOuMZ+z8DS5xQCge30ORunKd1Ty8EeXkdY1w
xOfkJTSP+qzHETTajo/irxgrEHnaJuvCABrnqqAPcMTyiS+EYUDu4808QPgPqEXWACB1LKQhxUsT
rkXBknDY1najzqzAhSJUzbStpZCyTTANEEIktNNaTLy4v1itOi0p4y0Y34P1KcKRSMiUVSdFzf77
3//8p//ANf47bdgvl+FlvETAkmQDVRsfo9lYdzYDqjkWbbnZsU2Sm6TEdYLSwbtxQs+vyEdn/vuT
BqPjgTeMFGxcs0QovuGRu34rDeNsnzYl3EiuV9UUXRUB6Vvju5NC7PZHWedzBShrfb9KSnP6xV+B
avBOjjeGIBe8P9eTGuWhsRkeh3P9WGNmegDaUxUAdoqZ5Dpzz806XjM8G+bz4F/DPQf1Dv/9npfT
NMwx4wV7W6hTKvrmejRsHBqnsPVbVfPksd87S1JFVIAqUMc6mbmUY1hfzFei8QXbF8Y0gK4LGQ+L
jW0u2iAV21zQz+bPJztEk5oc9VpvY3qrgkkn1Gu2NeD9NsXWKXMg2CXG42A1SxvPxl6QlZA2mc59
mjVxy3JL2JYv5zEBms/v/+PPyvbKkRw7QNrYtTGFDTQ43+4MFPuSAY7txXQIW5U34vO1cecgKE4C
RotT+Kmx3sIxfaRFL6oNvKNmi6SSvksibFayUBBv4YiKzAfN4gVv9onyzCvr/B56TGuqcjK+Pdg8
mPQywuymyZBe0t5rAynIw+61eHoWnCF8T+kHc4O8jdPHeJ8/tSgciw32LF5uIVQQsryqscqil5G8
VtsiG00KyNUUpXwlE5Fvmx9luVbQnmXWCTf6jIT+RBylIxntzeYY09w3pvMX6cc8Xd/ijQcIiNGF
22tjXyy4DArddQWKOxc2CsatP7QyuqfxFo59UMaquBQonl0o7zYqzpPNwNdSNAxvIqQV4fjiRO32
Gm7KBPIvmRTGocJmJs600IyJPkTGNJtDXVE22qEyeVwhe1e1hjTRU1iQ54bXyVEmCPXhk3ej3cIy
U2T1Go/W05bsCnpQ7gdGxY9Q8PrxRjs8j29nKOpKgbrreJgZ40hWQprlTlcSvt/Gz5dpmNVgcyY5
X2GAF9zKP5+Xj8E4E1p0V4w3r/ZiAs3V8jA656anpgE7nlbRlJJh9qwUHY5Eg6jxZ/oUZLI7TQrI
aCL3dvfoor6I5b+4/zer2SDXmm6bqEKwKzKS4mxs3moncrmuS0kWrOe3AwTQMq3WwXHWjGFoHeg+
vQHsUG84V7GOlGKFjrNsrYWhyDimstm1WDUl8bakVWWlPD8kw0nvT8WAPNhvsYwnP0GfJPRSy2GZ
TWlZaR1CxRgAKhylCj2iIsyXnpEsPl3T0WShVbu9NV7CY8pl/p4Qc21RSOgWc3n/F8iPv1CzVE1M
in68s6u9k6Y5D0yQ4fMKjGLnRJx/1fKjrl3oJq3JT/irlhG31Hv8o3q2QkD63FS9tA1l5fE7yIj8
Cu0aiil9KCkYrqe9tmjOS/u2hYJYgPcxnc6vGtyOXWnQRU2Wjm0WWnCTTQhS3Pma4+Y5crQzWEcL
zXcQwZfq/EptfpXiAbhOFumoEk83F2vY7sn/nx73VACgk16eS7rFiVUsclOMsD4FalOYvbLqpdqU
Z0g/Yi4OcY5mGz3upKsNR/aFEDTDJgDrgG3TheyFFjfojGzg2NVlflHW8iVCZxsRljYoqbnaIr7c
Z4NGe4ket5NqMlS8CJQd+eNOGhp9IofdObwOZ1Xd1yxOyLI4z2VBWrUKOzBWfrP6RJT+GWbtBmVi
WQHBzPALnrw11p8FoBEoCLcMokHKOQKhvIu6ZcHO2aHSDjgOwWpb7XZZMqIR8+yOk9U2LSPpbkte
WbcRrQ6l5s545mMyUvm20e/QUEOL6lWSv+rP154yGHWTCs3Ou0wuPl4hN5qWaMKiql4NnWl3rRLh
wS6ipMdvi7JTKtnXs7MJwpUMWZPjWazYgKxu8w9J+51VdzDja1tUd5kmFdFfyK4qSZMNxMypO2VS
lTip5f54fYU0/UcC/WDjD6qyHCHKiTd5x1Clls0BuOL0engBT9AigzTMfC/5cdv9XsH4CW1V9KWM
wdacVs1VLeOvjKlkF0V7+ZbA9pc89+nrPq2FQMkkcy0+qEMu9h3R7GHuwfgs6J7CjJzlPFq4GW3D
XUvKn9pSvT1gyIrFLhhaaVP3BXTh6dKvLkTkZ3yLILTjYViJUqaam+WkyOimrgGCtHFYlBuvt02V
e8FQGqouk5a3FjaStCNN6tB1Fl6opcKahDY4LAM4tL+mQmw8UVn4ICVPF2kU9DYs3knA2KtxDubz
8eBhDcrJ8Vy0FwvPEeI3o3K1jBNTuOCONvlz/Zn3zxOZj6bbBK46B44e91Vb1o0I3gx3F7jKdaRv
wxxrFtpHmYlx62XZsZqSJ+O8EH92E/a5wCV37ZBnpMk2xajQ+zpd8l3WYkAeV/cUhNds2FzTwFAe
uhaNEjU2mG6YxETOWM3brzOpaJb5i4Qw3hUO8/cTTIZ+Izbn6QeSGiyavGzCiFrBG7zZ6jVshbY4
3HTqCAoeXOWcMa6kI95kwwb+W5Gq5MkF0e5TJqIebOiJcH+AgFBWUfAbWTDAJ4X0BwjJvPqS4SR4
u9kSUnng0r+aw/qT8ST+O2nMfb5FExBD0S987ZLmms3Yx583M13869aeZCXae5Qjs1bV6zy86WZs
00TS/9vSVHNbH4lQYFNn+zzlUvOhRAnowjUQR0z1f7NmWCaZCBZzuavKoGA7zGKlVhgPgD7QRGZX
S4ppY3yZK66njFten+nhTjvIc+0axKpMkhmU2SHbT7Nou1y6Il/MCtQVZzXoN3bfes3Uy1EwJ/m5
tjHEqlDQCfjO1aBT3WzSg9UTnMx5ErZFJVqBqRQIQzAwSLqH7c0ztFjS+z5YkF4ZMAmULHoMZUTA
xwoPzLHUabZFKaeKxCI+Gx5Hihpj3xtxcrqoNTDMiYIARFWLERlSwseLkS225fKHMVzVKnPO6tME
dUcUQMDe7QmnrC2VyAzSWmoB5EZyX1d3hcltK3VfPinbqSYR+Yxquon2ZX+AlDPqxOUAU9gfVs7P
zPJtK2udH6ioxTANFYjhF7ZWDLfb6kJcJ644XvwOCQ/WpIaJMDvg7pITIMFi3ZDQTyv5SBPomTnq
OWLqpQqb3TT8++V2vjosn0pqypoJMCkkjOJoOnUS8Ya1wGGZYDveZVroMhCf0cGNG19jERKYBaOx
yzrfo+0fatbeBKGxwYl9d7Ia91rl64T58B5O/vnYsegF0h1QL1HNOkDgJsWOztiyCyscmXWsKW4/
o6nLapSxdcdHf7k8zMX/cT7GWeNY3w4mpJ43nU10HxgWB88kvubnpaMNHV+mdve5Mkc7/nGFiNWN
KH9VJv0m4+TrzMl0FzjPNJQljuAXiJmo8GxTWQccQexu5EY4/6rM3t+rFkNu8av+ULl18K7nyttb
B3uBXuTafrA+LiyWwIchJZ3oDdSwzjiqKGB36DJ8xvnM614kvHfbHFb7kKuk8rDhHGvevQfZBkIB
ETFPqII6PtMubMwQylQIEqr8FHgz8vBN98pi48trwoY+gWDYx+qBy9lw5rebG+GrueN3s1K0ltEy
ywUC1NCJ56KFJHFnynBz63BRH+CBUtGCLtf80UPSsK0icm1PdRvutZ8WefF8vB/vo3EOdEOlqJUt
Wp8vmCofGu4QhypDDdqKQ8H1SQ9VhENFjZbhdn/M6o3etKfaIQ8SoQg8Rk5q3/lsrDBDsvUAfsNI
k+L9NVjzyGed/238xHiCdlNr3pXM+mEwBNQXaEGIchPuLJ883qtlgUAfWvN6y9D/rgOKbPRbb9Tz
YzHnN+oJorLfgHfrdHroifIZkUHY9ep0iDfusZmHXooePAd0Gi2go8S8UuRyVVlKxBciKsw4To7q
4FPDgnZxPBfDK5dafLiXwBxxQK9203hUJAboRbYeG2tMVITWvRgV9CdmDe7FoXJSqba823BsBoDM
65TIGTWMM1LiLEhUkzGwOrq2AUu/VjJtQ3C5hAN6DnmXWsi7CqsE6YA64zBr8qOOQuresVI4EXMo
s1ahMt7BrWBBsIV0uYREG7o4s4rj6HLpJRLJz0sKr8bkKfMnPbocQWda+KaUkmuedmNtf25vtRlg
unzXopF9/4VgGEUWNTElCpXVfLmiEzkdv5mJPRa1tk8sCH1KEKTrJ8u6kICLz7l/LYnV74aFuyJK
vUa1zTMJmuQpWFLSqOIFht3KXWXZPVllfjpZUeZZ7HHQnVzBTi8W/ZjEHbaVWERxMmu6kOxmxXip
qF5VxA0HdhN2oFvErL3XCMbieNOQA3knVuPZy52oky6yMs4KudZKpGgOerGuJEzR3ye0yXgsPJWy
Z5l/5sYEqabH9XyEEHgS9cPeCsSCeiZq1+RIGstQi2VvwTpJ+MdDPTYT10qpq0Sd0NlW+Kaj/XUv
JvL3YDw1WGcvSQejKle+1xOwRcwqmbxI27ZOIiitPFzGAWGn1/EHTF3LwjQqilGgYdAGYyTo5UqC
jjWRVLIDNy7XSqKyUArKiTStiKCoRfqCCMJPw/ZVUnqSWfea1iykFK2XwD5Zmy7KahkkjNknnOnT
5gd36POaIZQYfMMW2gzmGam3paw7mc3GSDntUFipCdSltvmXOJDp3x08DYM5d/OQ49FPa6BXcRpb
4sfVSuzzuG/3BO5OFGpWQalF5lvck8R7U4k0GpHmN8T0are4iAEl6SZCWb9rlaImqawdUEns71Zj
WvYCaASxj8ig4C4r5PMd9915IQJR3QWrqk46pNUF+1pviorjMxghDcIukeMfsGAe8aaJ6l7KkT9Z
OPa+/2GePv4ynVVyRNmZRnseu9xBbb3LuqRlW94WkkgxDiOUfbHSKJuMTwFfCxEPupXauSa1Reee
dTDbU+mfbdDYQd1pWrjVWyOFju2nETfDw6wBmHymcXEWLjyX27T2C1MeDTftvTXm8OtklBGK2lis
SVMq79IMoXpLiW3FVpFuLqIFejizDmdt2dOYrtBedxZSrtA0HSQtVbZVi+gvS0i6fAwr7JnQio7a
yDJ8v0/z+VfgMrigzaKZdhxVR9A6bf2+OoucL9qGeArW2hMqUmTt0UcW2+r/2IdrWeDx71TWclvk
Q+ToAq4ryeJDo3gKcWZhyL51oiSQxvNE5wzBzmFMO1jDu5IRj5fob++aVuSC0pie5B3pj4psM2bq
JMiuiUcWiKG8Dw/FNoh/zpViaY5VfRqaWAcdreA980xQbR7NX6tcY5kkdK2u013ostrwRzyXbPtq
BzwOHfBW8pg+uEjFb8oi7M0gbPyxRlbytxm9pt+Te6aZ1iFaf8NZh6WqRkGDE2uGfE0mGOq+lcIs
+xB1eSuW4Yb++vLtfCOhACa5Fo3IJP331FxLVQaNaFI5fDbAZg8J3GxRZDKBG26wmw29Vxt41VvP
NnkmUyGiYxYDIVk3rAlvvljovsNJ5SmoCv9wDD0I4t1Nw17W0QZY9AEynVjWYYe/O43UKShqDEO4
yCX2suDw2XhK+9fM1+wy5CV++4uKQ6SvW1+uy104Rs5C7QqVyYtFwzT5HVxWOISfBRMTfD+By2Bt
JBaN6+FYPWuHu9rZwX78YnvravvSBaME9SSM0QYA3MOLMhlfDb3PikztdfZUXY3lTojWpXm5yCza
UFrb4EyaGt9zR9SUhnnaPWMjdqvfSyPaKa6PVxumCdaY82Eu22Yj8YwDjcX23+MwaCw930Cf1/Gp
wCq02lc8roo1evbVacFdjLvvNAV2nUv8o9jSKlmkKfq30W5YOJ0mPHKp1m2f0MnzcF/5g71Oh/v7
+KEjrOzi2P5sGaPsPb5O+65f37OzajZndTWLM08Vi+cXbT6l9CYSILTkm2WDWtdv2/V+NavM+zg8
ruPPG/W8xZbks5aeqboNrN/aDcOvnzaaf8GecoDEOU6Eb9C496o6jzOefM3+t0l4zurRYATBztCc
BX6C/2RcS2NxGUvTUQ/Zrlxws0EuIjbxJRa1ReIJJjYKVM+F/6HlcMR6pgREBMbp/NVmKCk7yhqG
hUnCvBJXqu/84WPqOuOjARmRNVdTi/NSAHGE/XYY+PIP05wcx6u1qliNBTuOldE7h+q8zkaW9Y4P
ZVcFImn3Tvn3y3K78tQSgS4czl8HBiq2w0FO7itj9dGpDWmaLNx3bmahs9EKy9t3Fzp2hvmal3fX
nGTlVxbntTaGInI+3PTjipAx6Oxzmm53xZbsuyo04oK7hf0gFeIJHIApaxu0C9zuZJ6uzUTOr9Dc
IkHw7/Ospc3zesOdEECPzteP4acm88SgHGPC31Epy/oLcgZk45Sej+f7rhB7yXottfAeWtui3XUL
5aG97xBxO0L4xXYYToX0OAcDBovqDVG4cfHSdNZVk8t1zSDUApI2m/89siyr5ptvfLXmybE/TK+v
rgkezwpD+JpoWmEF2k+0EpWqrcAl9fU5PZKR72ZLQNRrbi5pXJUgTsz9Gy/lBU7VNqiMVyTZOYn9
WMOHdJ+mP022zYBeSpuz1D5oIPNQlfESlNw5S6/CK+1rIZGSSvEWRSdtuhjphEYhN535lHeZJZbw
wjcEcK0YKJfo2gdqT7+Q4gxPNTqOBtNnszQgMm+XCEnEroxQqh8SfFm8YpyosEupdePOgvucY5o7
/KPatqdPAgl4qXWP/SAjjYQcJDfJ+1h1mRQBXr+nzGsivdJUVRQHGpCCjKiXMKX1U0GstRKzkE3V
uxWm4GC8+6NXTXR2yf4QOatGRpHXppNiGst/I3adSRNnr+3mwarQAnYiaDWoEE/sV5E3cbJfROvY
RimpNgtZH3ertvXRu8qi27SlszkJjTROJitiYd8D6HQUO+n+1CL9ouVfAf8JUya+d7Z2gBv44AZ3
5QiBMf2yhxaYCZtNPYEFfdqQEEFfdEpgnnnNvZEnteG+j1q2qSxKnaLc6J89qf223AAWUkzjWvZb
5D0VQxbTFUFIiQ5fXSWSrLn9ZmXgGnahkdBm1xFYFL6PXyZ7qTkfUdN4u2S11K2h7CBMjysULNwg
BO3+Fynse8EJJp6aRQO20VzbkLtCY6uoJNJwBwRiFoKGGOi32jLCnnnFJDwaZDvkkdguzTkDlFZM
wru5UEOpZsWaDq3gVAp8h1F20S+/Ttd78uebKpcKe1ZozPHbG1LpH/SMV91VSk3P9/PyMBLrfXyZ
xx/aXDKlgxii3P+o6r6GK65mm8BwyOtEN0QLv2biCaPgq/ISw6I2l6ty43GEnIJuT+M+y21HhDZU
XF9q8NTkhVRnsjVsIer7bb9922zbg5QsZ3NyfbKXHcVrNYcl+Bp+0n5qKrUoCskS/bC2AcWdVome
at3etzL627aRHD3Zt94ppimjqE1zl4bDeD1OOma8ZM3nWH5HpN1To9S5KFgztWdiWcV6JhIzzTyc
L7vg5W3RyyRcBNeHpCfs6qdRlvN0TRJG1p3iKFBJAjFaXsZX7EsN1V8aMLeOY7xThREVp4zzep91
m3e4hkQrxqprJasyRpCsVaRWonz2tg2xM6WcTl5cWLIOZaJM9GA+TSiWamdDuENoCqrJawqDZnrd
7g5jMuck6p2SB2JUlLmmRDLZ1XtGYGiVD2UlmaXow+EHMXZVxc2DTbfGS9ELVUqc30kfpPKDMOEM
36TxdzhA6QewzkmU1tb6sAleWxbkYi5K7M2ojYdEWNBKAKzySddcgADHyuZiY3bBqUNkDVnBMwlN
1GZNvP3NGiq39uzl/KHzwPslVsDEXNkWaAKIMFWvyoovWQg2UTZQyC/uw2iRO+GLsLnXtvNUiuEY
aBDaMqTHsUh2wGUTNyrUHtl+rEj7A7byHJPHyBDlaXMYay6OSP1njZU0znHSiK4ICU3o4OCOQ/EY
cZYlRthw0XhwWGyLivj+FBJbB65mTfhCqGk5GFfmxw9CsTzmCxooCgtNV4e71NnMxncQJ6doTQt8
2njmCqSjKKxQgi3CQsfleD6z04uvrZd2ep2DwkNUt4yXKVtTqPIWpwQSjpeHvDFddJt3rKurJC4i
X9f/G4+s3RxZL+z6cPkxfC6Hx/310MUHYi/E2wfBQPG1ZbFvv75PLdsn31hJ2vSVD+GwmuDxGZbS
zd5IlPjXnfR17GofLpBDiVgXuMQuJkzCFcYHaKLSbOcIXfN0G3k3aVe3ohntvOMtYliKLTUJVYei
pNZtUx5QLDe+vw/wPK7L43abZtVVL1uxIwgFxgi+QzGyKCgTpRk7IfjHbJPZ/7pB2ealFKwRlLU3
4DSNnYdpkSodTtdcjEZMnwqTO18xIYj+wst00phrWCNENCqCFnLoh0Erh1QXuaf2C/ZyFMZKU4Ns
rRRAkAssZj3O1rIELlrKrTJWsh9IW9dSLMnxLLx8Juoji1okRl/BfXtdk7qPdzlBv/IDmN7VWtyq
VwKZm+Y7WsudiGd6nHFLhstOrqSyFCtHV+bbnX2KC7nO24oNzt6ioU3ENBx5s47LBqt01b4hLEjN
krpBpxdArCn4K6rkFDnn1xQsAoNxlxzRm8bzUSfyi1h0DH6/FqERA3KSc11qzrW4x2vhMyU6CWq8
hm20XWqlIIQqUjtNpHZKVN23StI6JNXxiAbmBnZUTJaNGJf3sNAQYLAQ+w943Fo8tZfGtF3XLFPe
NRUILwu1Ty4j3NPyo30QgiozsWxWCxTUmSx8tmEjm/49qfMpeeUOGPy57d1LzAT2gZwxWeVwwy9a
Mm6bd6iUcPHyQKvt9XGxEK50mxQe6Mi21Wk2xbn2y5mIgUUrThMpil4HIG4C1L+lD90DBSx4eXWz
wTNakgPYzPv8uB4H3SJsapUMxbxFvPR6bKrlxexbwbe3ClHDBGXx9NeOJjAlC8YgFqjqAvDIcbgC
IOVltKUFGn3DJk1gsUkBXYxZ0XG4HLVUtdgRXWx9gOl49WIxtAeWjLWhArOjJsAZBaNbYKwZVpsS
qP8LfdPyRmp0YNszj38wT/T3SIH413E5nx7D5W8611jNCdA8fta+ZHzxrr3p3vZFDYsQsgU/ww+0
YyykOOqN+kevNx4aM7nENVLyoIGj7R4zz5lJvcn2ns4fH+rL3nap3rAnEYRnBwpbJH3UPaZy07WS
v1dny5szGuC2J5poNaJkoXgVIp5tufkDG4SYO/Ut5VC3VStZwhb6lYrr1qXkDIZVVy/z9G28pnm9
GilBrSZlNHLLvpDgVSvc2oiRFJlVzUzPgJpx0z9IW1MhGeW/TtOHbwClse1sOhgFZp1PL6Ya5FVy
bzJWop+qdS+DTuhbtOEblGAhXYxV25rGYGXcbchyaOXX2c5mR3/vklOh+OD2c2E5vY21jZ8G08mk
/LIzcy5nMx8ryYijyhnH8bpPMneauAwDpmwASdCT046xUoCMrKOqndmdt7vRfAcGDaow+hLguIK3
R1x/aO2pDdl4Wh3X+8zssI9Xs67qOH4A+WSMUYfuiBZ8aKQGPs9cz5qPFvQb9GAcurNGpwHR/Y6e
ZK3oX+t+R9HH6DzDPnAa/WInwSdXhlzgb/UgMC2SKyYlT+Ora8Q9ApnVv6cg+0UVhYVartMJgfsj
cpIB4mpGuaBbba18V+TgW7qyo+Vhr22TNManjU1ir3STULFo0etcpvIjHrzhZ9rT57FhT7Zko0U0
H7O6b+Mncq9rASPGjlevVI1Y7+sx6CiIE8hVuVtf6FjbeM2ftYYA1sn268PaxnqLFPkS7K1lqg99
w6cYlLUIUnyAVS5Sxa4gX7qjqXqoOhOD56HCMipZRZZ1aVr1dUA1KFt34lDrmoxKQYFvtLO51Zp6
k5nnrXC8ni9WcZAzrrE3kIzcPJJaBOwTPWTCQG22MwsoWgJ67b045bZQEe0fI1AOqleS3SRqCxPG
+/RAeimCQmUcp6bO2qARbJ5ZRMb5usZedvpnFW/jV29sGyojAQrPBIY+j7R4x3Mig1m7yAzfgoIj
yJOkYOy1eHvnkaCjX8WxdlKQ0LLKEWJqR5lcgN7vMScYSAoXEdQvS9U2CtKaSJIhrWC0hfaGGMAW
gpa2uaVUaIuW528m0uPam9wfFdOl9p4Q2yOsOMidmH1u8+H+rV0asMzHOE6TNVFoMzQHSnTB1lKL
FNc4cwQxh8tJYK+OmnQFaKLVD9VkCwlelUDKHy7r4mQ9O+qRhia6NkYuJj0lp4naUyXUUl9LRtLq
am1D2uZR3q0zkDK/WI1Ujk/dBanEsryX8QDFP9jpCZosXS0FP9X7L6nGkzW328MSSfDItOAF57AO
u3s81V/tREtm4QnV64Bfo1gtizbKrj0ksmZFpxWzKP4ryWFNJ4pM/CICgySvkZ9ahUrLy/waRM5E
XQmwjKh8XwM4yAx4MYhBlHKH3BI5YOci3GvFWiojVlSNlFZ78m80d6aQYN3PVQ5afULRi1SDayre
tRplrG1aQj6XYiSuL6XN6t/Pdy3mUGRiU4aVpuB8XZ+MJbQN8Jj+VDWbo5dqlbevWxNlYtVLEGBJ
1ozWcq2SMzLeIbIBXZhT9lfVVHLnqR0MwFrRQCG5us9hG43qWC5Y81WxFyP5rbvzwxh48Jp1joCW
IUfYU07xaLnrrC23kajVtyTalVYJ1UZr8ocTUJpCc3i9PVMhN5ZC2BMrQ5ipzcY8vWGHN/M6gbwk
Vm2O6tZG06tuQ/W+mKWZ24psCNgOTMmBFCwNX3VBuYUdhrxCLbRfsDqZqttw56Hbu6P/JY1i9U7V
BWxFs+/6vAZk7D8U2mC1n5KPNs3OE9drLOwQfmeeaj2CTpoajI0Oq/cr8xzO4v7saIZqZ1esY7Ie
EM8NoPBHoiV/ND2/V3mTeU6S+7tZnr0JyWvkp/PU4GE7HW0qDZuKD33QHHA+xpwcQAQoke6C9cur
upCelkZysjhaMlgwt6fqNiyuVPafhLThGEUe7kvGp2HBKcQABH49Aotwmdq0/L1k7rnbIzO9BYH3
J22IPr4yCi5h6FrfHiu6cZAWo0Eh9akdbE8PYnv4fkDWy262UWEkL6GCNiMClOA17Tu704z+lM4u
Sn1Jn5bha03JIW2L/HVmbN401GoPEEWPxoBJ0/JClpFIzZwUAeJNUb4xGoRJe86htQrGlLVUsBSK
uLnhDqWOqWyV55Hek4qJi4KxguJEUFpYT9niJvT7V1ahKqz5ZGyUIiUHK395WECRZrSy5Np90VwK
2udG0kD+EpMbfZ/e3sBV0WvgaUAvpRm2i8v56+S4BekvNJFfhptfCbLaCOlB6Qps96xTTBBeVZnY
+1K8luv5pXtD2+n4TYLSnFYizAF17dIvaaVWxW0RpZiZTozJRN+uwa7J50sSF6mqJe283kq9PbKd
SKtoHc2lKRhJoqhwFsCq43U2BvV40p+oHwcQLsAQG3oxnrBiR+UyR7XkjMQ3wEIl4lJlX0vu7caP
hZzIT6TXPdqQ21lDAvaZmGeR+hiCf7UL/tJwQq/Cc/5fhuu3JJ9XkYkI0w1dmk/hqmW+RSVWCpkJ
0CjpZHKdZ5J3F4ttay5tKfd3hRwFeWiYrUi7DMjdWkkk4BQeh8CyVUbTq2eoVxQkjlhLLO40pxGI
SS0q1HY8XKz6jQtKHJQxDdssrtZih7B0a6cdDUrbyrkruVcuYqdfPi29GlStzGc1pVH2asvG43x5
1RDrtdxVC29s0HF1b1F5UUR5GGxy1uV80w09RQTHj/Plko7stJzryUe/fN8cr0H16pCGd7fzwRjG
r8q3CRqDY7hC5yzLGTICgr+WOGsCoj5IEWh5cK3Rly+i2VG1V/edXBUkpAASVfI2cF9IGQBXYpfA
LRS5yPTFyOUe9wRwlhNQFSvwiccr6XlRSyTXwtloifmqQg84VR0ks1ul7skh1+AN/0M7R5lSSA7X
pyN7bV1JUiagyzr4N6i9m0iqnXc08fF7re8wl0w+tprIxWgpmErCRa8Kkv5DBbbUWS81hveGkrGH
F3OUK1mjGY1KBs83tddhl0tTC+Oqti2wxbABFvNDk6K9AhJVElkJIEJTitASqrAGqxdbKEDjuj0d
Hv27qGHZtSNtcXkV221ZTcUWvDu9F9Q2tMHYQRnW9m24HV4eGrEVu8XsdanVc71WPddLu2ZLzJI1
tiVH5xcrixPqDaySTxArWCByLuGjnzuuawKylEQsF5D7SltrJmnBbuorS9ZDlaTA8rhjOkUpSnzK
3wORgoYIqjOpb0eAtkLMpDVlXJRBs781FjH0SA+bOkWsUKwOcH/432kwl3oHL7gRq6sXbW6Gdi1z
iXYNUXnvxlH7scN+LDKxTSuZn/uqi5stD3GA74DXrwI7mL5hrReHlx1o3KbdZFFbiWY6CQasyqgd
pMLay6KRETcX8pLgHw6sQFYLScAUXG9McxGBAcECAtgop/OsXDEcIg9JsBxLubHjrgDfW+kv1qux
KNU7uC/tOiJ2YTXH7afFrOg1xg7RsvH11Ux0iXN1dX7QGtMauR+U3hqgBOORZFxrw2bWevpZV5WJ
Q9msUXx5nnbsqaoZh4hXs+Pnhf+835SsIs/txWwwZq/ezxCh+FRqlHC83p8fg177K+AC5PFd8TRo
GB3P+3I7BsK2MVukTaXzOwNpozrzw5B0OF/fx/l8jzoZOIg/6CfgJg4FKHyjbq5rceqbWdxjVnbI
r6+GLa9DZeyHjo+Qs3vDuunS0vZQzXWtRHgXPFQl6owjsHtTehoR+g7sERzs5bF8Hi7TdIs/JP4G
GK70CM/7wGZkntPjCsaG1gAQd8efGBp21bNifdygfakGY8apMcHBpCpMaW2W4pihFRpo3K2ePVLU
MM32HsVTjrgoxlDI2EVsayUIPTnH2W9ZbLA+y56IBsPTj4evcTH1Rmw1/XYxROCGwiO+JH/yrOcj
fr4GkYJTSx0X22OfuAAWKByTzjw+m+zpRTAqQYfyPI7GsTDqIcUS0eYbbFy7bchMsP8UvyHn0PDa
EFmxiAwKqBO1lqWM1wi7IdQis1FgsY3AOKjZbJlMB03MsnuaKjSdCKoLIsUJL79mzoQUNTRnZElu
k/y2bSaGEH0AMmwskwj59ZW0NCo9wMukFhyEEDHnM5MpfJ9HY3/9NCLwMas1wlVQPVr2USQ6g53v
bfrEvVL29MlGofhMYodqBs2kduXkej3mBfuVYeqDHputsXgB0MIwqyw6Ym3DMwpOo3OWGWp9POvP
GtKBIk/+TiLUqX6qRMZYmM7QVcpsMAJe9Gr+yszOMtyiOfzQ4JS9CKdcy6DWcCJniorKTItpbHd0
i16dTvMo8Tj0DuVNnkvVO9/NzJCpwVyLV7OFKJUpco25Ehud0o6niMUf8J2/Qw5/JVlO5Aebvo2T
Yq8YkFRziLIRC2Hu5w+niZfvb9i8QIuJNAoNB73Iy1ljAylENKPrY4bVKsOi8mIo5cep2uWmbKVT
UbufacjMTqoBsV4D0lcYWTJpjEOVVHusFmruI1LMa5H6Q43oaRnOppAm6qNp1wkv84u52t80pC4P
GmW+a6oNfvgeY1oEpBCzyJD7B4fIWKfp3G/BafysQie9NXxb8IvYdhSsnRs8RXaHYyXjBQtQF62H
b5I8NKbm23y25Jbu3w6ulVt8QBvexznk6xz8CBDAOI0WqbIo49TrOMzo8+MkzqRgChHnwls0uDEU
1iKag9/PDgFl2wFuw7zou+G3l3WIxgGITmPGrDkgQ7S9KMI9LZ/29D7R0WiDtOFmVOIo6XNp/DC8
LnldEfZTSC0oCy9qvR0kvbH5OkKgxs0Iy3W4pQeo/ADM+fe7YbusLYqXU7C8By7FUmzZOMbtzEEW
8xHCYWi72H9Go0o1h8m52KDuGIgDM0isJc883sZBw0q1DCLZbiAXdlavs1adRTNqA+SnTaSK69RG
yUUIOh/FVsjYPTJmP7KyR6PYBTNgN1DSYFjbs6ZQwKQOE4Sz25IngOWmnVjjEWld7+n6gjlAWRko
S4dumZUBi3wzmUJY0/e3QlsOgyFij6+mex5j5eA1g2k7zICpPRIrJ6/kGhaMJxELlqDb3InX88VY
GoviwRasvSri5wr8ow8+N7cpmkAoWB4GYYAQaqqkm30zNslxMBdTuwE9Q0XiQhxPMRFc0YDn44QN
hz8PKCy0lW0A33n82R7yf6k1kHTHYLeVT/lBqs+SUaZn04YVMZ24SdrucMQmmsq9eKG1+8zgsNhL
txNEmfkPlm3OfxpP5P6uDcrqahp5YRYrZLH6w+XySWmBf6i3oQ0LP/rtc6H6d/oLaMw8zOdFlcBt
LqGBn29X8iirsCpBECyuFeTzis2OalPcFDzkm0UPS5JHqGAk4huQ8EZNuLxYQrx0IeC4knQDMDQe
lsfr6/mn8R6cdNZuTRmcRZ71sVHRMto3Zh5MtJUEPvI1gmS7ktAGxAdccEYVqt3JTiohUp6Pri3Z
IbE4QMTy0U6okkoMRKPgNBKgRy0l7ESFYv5nWD6IiLHUIynyPDCa9OdLtoX2LspQyPRpuaVtfCOV
dbxBYTiEgyxEbkAs4fWI6GrtrTUhlL6M63W1/VbBqKrlG2Yzwza2mR6srfTBrIetBEZomE3l5NZw
Wc2U23iEN3rSODFpxFbRGautqQ3QJM1gRQQXqgjuk6ITqwDgvu0pjerLUPE3KYtdGyuXvBpnqr1j
lV6cBrRgKRg018CZcOTEkq2vqqq+T2rBPVLblVw426oQhJeKDyOJVQcb49rKc9VOrxokWFK/N9Kz
cbtMKRVth/2rw4a5VW0ZJMbvZ9CSIFgOrwMwqxmH+6yW6dSdJKkiUnSHQCiS+ov72rvvZVco3nZo
IswoCcfTTpUeFkp14VG47IB2GH5myMZQV+GbmYFacYxCxWkM/4KRCavuysi+GeU6QIvntMbOdm7Y
zUxwt01VBJtV2SoOKtafHvORkFns30GXLPf5cYxqOAQ4Fr7kxJsXfBgfbb9gSVPUMcfh8nA4G62l
qhII1eNX/l935b9Ai7hWTHXwWNhAjk8hPkK5jsD0Ep/K4yVOboIjtIk5xJDP+HHuP/bpO/Yx5Upj
EbrGssG6IbyPw3/fgT12jJX5sXxQWhpLW5TrRhddFJUOvJ/f3i9RllWcTrEOhP//fDjhPXFBc2QQ
SlA/4vi1nyjruOfHT5x85z+vfBuvj2H5ZjYZv7DhVcII3wboPTFrNjSrO2Uz8l+/DKcU3UBRimra
zQRmp02gZtJz5TDlHx+sBIhzmBasecaq5OvNShL4YR57xsmUQKoaTIaN9T7oc2HV/J6tmJ3JFUsM
EIkNLoF6QpwRBBYG5h3pl5/jybJhWTys/4toXDzLfc4CaQlLm1kiPU/JLKvzYWoPBLCuXIAR8poM
yEBsAsKm/GwwdL5f1m+L6LcOr+dwKQWnXEQLBg7AlisM8UeWQb2Xn0dAvBgYMkY5X1x5/XXSUuEw
pI2s4ZAtkRtark3YcTswcezZTYsv1fXRDZnOwh1fbhekUY8WZOF+52ydq/sbDqTRysEYGdurDr1L
Ya+WCxiVk9bFBTapZWP5JGcwUjC5+G434WVYAai388GZdnYkKny7mWO46GRZsNjGn2ILi237TNgy
40dDJDGSzsVNy/z8vLoJtwxd+/hWsaPz6Z5ghPjvNzbqXGyY/INVaGk2XEPnb2G2GeOvOMRfz6e3
UdmFOld2QZIc8aFy/yQYtsm+TlQBAB8CpGW8yQE+LT8llnuki+PoW40MvoEsofyuBZzFyhBwnb2/
NZB3bivp1kB0+DL+pIZa0ZPr2/Dk6GZnt592evE3UbEvO+o39XRiv5/u9/GkSGgHAQhBGcqRxaVY
XgU3WBQ+BM7x1TLaDejSV/p4no+XMb63XGqgKdNHRFl8l9s2FKm20gbJ9Z/vIQS3Yj4YvlN2HfO1
fIgrxPhRdeyoelZ6FGzI+/kSlzG9lxI9PqwyfUTx8+ml4w5e1qqlSYDGpbDfFexFUFuPO7zJoOiV
7akyRYCuM5lBhKXMhb5gkhDH6sXByGZL2R7sHnfIn1BEDAXFQCgkaRhsz7C8m4cef04F0xDVZojD
YNYzXM6Dph+a2otkpGvonybxR4rc/C4KpsZz6pM2AYUTfX1TdEpNUmXZa9PFp1OFQ5SxrS3jW9sq
VhcmkkizYBroxUjk6cM4sa8YAror0HO8PZm0W1xgxOfVlZLRRFDlhHJpuza8Li173dbmthOw8oKL
ENtu/DZPpweE3yYI56mGa+MlddC8zjIQmBFv7wO1NIk/ko7dT3DVm3arSx3G0DKgxFUr9xdYNYRg
A39Y7OOsDtiy10ccdd3zgKQ7dln6TVNJzznufMR3jd1/X5YQnqc1u6K1xWg9VqHt16UMiTquWcS7
93I+naFmfIifWh+8Q6sBNi8tefNlV2Njys/Dx4tqzRfKbgSnDfwH79N8BzR4/LSL0BYq2Wu0WZP3
4TzjKW2UVPzJ+eeC/YFre/Q/xpdv5/s+v6zlys2Lp8AIsG0BL9M0q9PxL6SGIG1dR4V5XE+WXdwG
oCH+BrJIkZl1lZK3cRXbbVy4PBKxAJM8aTUwgdFgbLAVRyPZmrJnmCLgPRgELdfE93aXfZWwf/uc
aVtQt5nwvBRoJD6GRvIyXVPL4NrFpV4Tipg6th9xKVX0iuBc9+M4zVBAfgWuDzr5+JGzKFCG8qsT
h7TRiNQFYkKU6r2zlESOv4q8DgNU9fOh3efHxy2lbZpWNv4i3lTcFGUGerciPkNjIREqYzOBC9XI
e33CW5Dca677EHzeRQRPXHQx6/rJLA58+bj8KZXoXzBE/KDLMu50OxvfvG9lElWXDkG+P7DxTpQj
Au2JUvS7xbhcfFczMaomO6noGsb1k79yDdJFlIHkIssLb178mvjJIAOZIPou0/VNtQRY6CniCf7r
hToNwz/8DlFTcfVd+E0G46kuYzcmLgbLOm4u0RD/DU9JOaSqTR91MpKbe/XEsFqC9dDH58GkXL6x
soQYyRpltsWpwKtA6c0oGT9eJC8samR5qPpdroAv4b/E3cWmlF5fNGzqfmcdeo7nBRp283Lc5Wfr
6j9wOC1CnClRCHfUxJEcf9ObwFNwXWxc0efRFOO1yJR75yCCJ7BHjBt7V/McpWSSuD5Q/8Z2KL4z
zBz3jRsDGzq1MUURxrrj99cc++g8ocPbBF4iELkBqVL8/LmCgn9pymisJB6lK/wyARPWSBFI77HR
ujMl8dH3KYvfPvs2/uw3YZIsMCam11fkoTIPPKGxeKim14JRigZvpamoNiVueFzlMEMpR2h3EbFM
lDerBB/3Rb2bOu4YBTujGCZ9anOtmlEsk0bJT9jnjrCC+DPvJIGRkq5xE9RfGMgLWN4XG+co4mGO
Trkk9oehENoGHSFKFT+ZXAqg2gBfvgbOUlefJ8N5Zy0xYB6/rH0k7I47ksd3pM4Ux3vNxgHmDCYS
9076TTSjjplDipfchF5hI7m3iKH8XON06fDPLrFgdXkqFsD2Cgtlozkxv2VaoKuSYnUIVZ6uYYw4
4ZG3oZSR45AWP669qqyWEqo8ghM3Zrs66S7QBq2ofYY2iOv2xu85ckU0tipYCNfG98dPDZUvXawf
87RyOdn4JvZicBu2IPOYZjSwR4cQZNeJQ9DqcQu+aBSzjqZlqcvib7hKIigQoLMDmcODgIh/D96L
DYujaR1fUB7mWi1FI1Vn8EnF97WJG5eBLFGimZsgctSliYujqkhlt/51Pi5a2lB83+GzJLj2Bk0R
d9QK5a7QQRtVumBtK+x3XCpmobtWxbYn/t6rPJ4/3MRY4wKVJVDQ8yz6CPhnT0Kzl1zQJwDXE8AJ
WzDEKwxQLnoB27dYCl5FTMG49c5hRsXKhC7AnFYBGVcc7PQ8TaEc34mbhdkmMWJR3WZ/DrhB+M0K
8wz/DTiNF1CXrh7X+L9k7StFB3VeSq2U/KBgmWNSx01B681HI1ZP1Zc+Twv8bcvhfYDXQH8TV6Ot
76lQhgVwyDcBquB4juL14GtrSOHXde+DxgBlMi7jCWUnhTuiY1gzu+w2gpz6eFHfYNykTfwkPmAW
XxIaFmTo2igMtICJr6+Q5mYNeIpCE7u3PqOaL7Hx8V6s85leDyuZuToZGwgqt3XR5sTPt8Wo7vjF
wW1p2SRYgJ/x/ilZbrwrbDeo314T2Q+tAxZuCJvLBjKOR40dX401iWUad72pG66N32IGrnUK2Nc2
xpUwbjFbIci8vC3dzGAe0ELA+vf6q7J6ogwLZ2in5+kH4gpAmsS3mt2YBp3o+v8EguowHI+Pj8cF
eervE0C2Y4FbXFgbTqjdHn2iXru1SmCdU++JlNiyuNxJXabaj0ZNuPvwNqtvwfq07CrSQVFDp8P4
oRl9MEDHX3aGJGGbDT5TO/XjdPtEFYrscfEN7tfxSq/pbK5dtXHwa39/kW27cN2YUGhZuhpkYd0t
cyo/ISLS2SzPqMo73Zr4ETFByolFmCi1QtTW+4LrFx+u9vcH2Vts92sXSiZyoI/z6WS76kThI3h+
eVIy2/7tEGaP9o/BebGbWBHpXyCdl9tA3Mcs0OjsKOXF1YEWsq6h3Trg39MVD5P1de3pqSxV+TCP
gStJDJLx0Tp2vVhUb7UGLZIZTsAmK9LH2fDbwWI4zurgGQ8UMVECB7xr3fauWVZP6tRuFMK47NCR
Nbv1FZpbtgvmiC0UTmuvJCD8i+Z7cXn+grFONVYRoJJ6HxZmWCdtpYprz9xzWrPOp1+UOZ0/AWTj
rLgItFn2KEExDlBuzbd8IyXAkINLQkVBqobxB1iC4CitdkDGrhVsYR5mvIcMDtNsd6ncPpzwat0n
5WWX21fUruYpXn0jUWlZ+6tA8Ci57oKUsfmz5LrwfkmaQC03gRhpP5zYybIQ6R1ecBR+3z3VLBK9
pdVOxS3K1nfC5a4Et+cOpyktTttKsu1IJN+wkHl23As+MWqvm8JzB0OXfrW8M87DNTS3hWtO8g/f
p/OJqI9gxupWlOz61r63HJUPU1nkBP2ucR3Y7fj8Ye5NhJcL8nE2ngPXDlxpxx1zfCyA5yVK14dR
6meEUv8aIw6AvFzhh/IJFRrBVTJDAQqdEPWAW6KjuZhlHbhHaxsW19sy3kQVsg95MIZVbth13ewR
ElgQvWZ0fyqHBKwDxON0Rd56qqnx/ewu04I1duammGHiSRfscFRI60OOa+h+jSxvtHc21oy9aI0G
fBtnagpG3eMVFmNAEPldZPAB2ybhCill3IXBPJd3oPkHuR6dcsn2ggjHrRw2wg0Jiqk3AP7T2qMK
UcT2t5aYFITgsctX1gFViP2SLrg5rZeXWEFBzqIvdZBDt92AXfvBTWcfoEe9jOARKITZQEsaju0C
8MTjY05c3ztXD1UHtZDssULHADiKx/U+P7C5AtVd2ztwBfKc9yl+1/nSvTyjO2ITX+b23HwPLG92
2nLuK0igKxDZA48TL/SOd+0BYgT2yLy0g11GTl4j9OguaF10wdSuQulRi9JjAM/7HZoSqIfl2IOL
sE7+NmGzTHeb4lLRwZFqS2NuLW0isjcrorPAvlDWAzhQ15Dozcz98WA0rLUZyQ/YcEgAAWkx0J+u
0sTt4Hii1l46xQAsumYnUTFZRU8y/qxb6eZYEWeZvo23G7UaUZrV0n4jpQi6OuaPb4dhNt63GfH7
+U3p0AeYrUqSjXQZjds+k1Ohd+kDPFsjX4KnN/c6fBuJET26wKYKz89V/r+N5iH9OMA/vAOoBroc
DOZ5Han/LBoOKBniQ9de8KF9XD4p4LjKLZlEXll5gaSSlrMKXnrs7L+w0jA6cuYvBVb0lWzvsJeh
2zvbZedAFgLILXXKdcMuKa9Zt4+LHvwJsDsgmkjgR084Yyec914j3VjInqlJ67hE58ZkEIR7LYLN
tc9ErlTkCzNy8mSWPU+fcXOoYjKESXxjAFIvMToGPBHtDtfsYVU9EodYwkzrhE1XXGC8vxjcqjKc
iut3SS2OcY8VuVLnvfgcMfcDsUZ7dHTX4mdVhnqiXq1i+73RMvRPaCPb5Z2de4l/eTp/j41fcEsN
Xn5ujR3hvSd3rG7Ykj38E6/VdyMJX4xUu3+6OZ7MY4K6vmijXmRKWgdEUAwdgWsmaNWc9ToJoTAo
1nFV1pKhY1+7O1giK4YBz9hnOmo8rOgJZ3uVnGNrmiGYwLpKx8VRFyqgRphVF51El0viGsjmAKlD
fUXx+EKjIG775tJsNg/QuBPnuNaumXxpkUc5f1JF0B3JmJBxLVQGJri1a5GUHx7PaTbG8+vZSFD8
K/gDbIq4kq/DZ2TN5PfRTIlkp2vtZ9mG3aWn04xOs2FXwHeDse4atRQiJWLnamZN0x+wnw2ZVHGN
zjbBV5VsttG2vyRRTS73+/n1Ht9ZUSeTvF+JpNUoCdqvjeR3YN8L521Gv81qycF8Me7bPDpPyLw9
3+3TugnRjSqYn4AqqIt6QXEnKJe2BeJth9PLRfUXG2Z5IdY234pQyw6EhFApddoyM86SvzGj3nPE
Wj96FVfRu8+DFb68aTlTgumEXYfjrQhhfczWteUOK/u0WRKJBN3RKpkfyKg3zE/TsqxOIJbmU8Kn
ZAYHtohaWbI2BHBmb+6QzV8NVviNCxVfHZ1NEteMleShObMGrvh1vBzejnFTppaMQaa6uTMJwQAj
fMyG3KL0cHjTmcOaVUjYVIWWzcs/iIFM816q3MdRkMwqEzy9uJrPpOgOE6bYLyyuHry+w1SRwwS8
AdrbSMh/x+altofpv5LVHLe4e+lefSUgZFRbXBk2kgBew2nLeFe4z8Bm8XcIDFsbgbdf03mpDlTJ
bFDMBGSBc0rdO43vNJ0+444qu4a+SbGzyK8TGOWoUeJvt+Z3Dv5oBBP/ooU76laypVF33yfn3EY/
L5tWMixDEynP4jZSGfjqxWYX0fU000BDFV3Q+GYyjewZclB5Qmz6NJrhUlGtigdp/XToloLAiu9D
n0nGHnt5q+GP4eK43b8WkdecNQ40OF5KZKkcPj6MMXDUb2iVdZIhYN1H7IoXtyH8aiDpUtnVALBz
NssZLtiNBi64upJGktOg1Kzid32sD5q4r0qmVJpVqeDazV7+J96U8fQH9WAzZkPU617Y1gN3qELC
E7Kh9HjUUwzqbfdlDVOkaOMZkjD0RSOOGc1WdcvYcyR4R/dsnsdtcXZjqH3qemRmOVfXqkF/Q1Up
xQk+xtN5WGPWJP0V+V5VbF8Ix1hFtPyhjMu2Mjj14jnudnpABPLgVX/cOGeiARCFbkJ0MtZuwMAb
vTA1gMF0YwWaqLKWpNtoYKMhcID5m/gLr/ytRkFa81uNHFMHF4OI3hgeZmg2nRbPqz7F6PkaEotH
hf26sFq7XfMpfzH3bqAwqe1RG0+c1JLYEIxIVGySBfkvP6OmYx4K+FwOhK/omHT7Ulg199sYI4DN
pSRstp5ZMqDDi9z1E59Bgd/QAUjETZlcqsHbra27KyZPq7iDw+w/sKrKut8VFo6HgitJKfMHeJtJ
Pe6IfreSpCRDBXPNiJ+5jEPc1eEKyQ/xMS2PkZoKXh0CIHAAYJ4JDlrwbhsxYTVeHwf3rAn8Dc3Y
E+Hqiqc+8tq7mkh4T+aIMc4eynaVuTQdZpCgmMJ/P6BvMajLW4sDN3bi+XvCTq42BmIWE+NVfDPY
LfKNw54uZfwW+pPBSm5r688jPCyf7cbe4BNGFgdoV61nKsTg3nZZXlSd56Nx6ueDuQbmCb6fb/HV
ipc0tJrWVsbQV+9l+hm3nYrQTWq2nu5zyi9OO4sClAnnMvfkhNT38cADO9HzyLIwy1MFGdZ//76e
RvxS1VIoVLIsld7uuD/ca8A/Wu4IrlszsW3SY2gl0wb48NqIjQiu4S4LceOg1V9Wh+mASiahKoyT
Ppj/lZXQGlCG3dhizdp9PGyM3dpYFguocF9iYLWLnCwKUBeEcWrj9zTFuIGUyQLfSD6KkFnTHyxj
F1hVMkdV20pna7tXsIRfXCqLy6O5HKeHInDyiEEMBv2vAP3IsjIeaGTBinLFAGP5p+38BPFv2gwk
GRix/dX5MqoOQ11m4n5EzanLvNOi4kAncLTaervYIr5YFkGrVrCDgzg4ZjgzQ/NYfh6i4RlH+e/s
UNu50FrXlsDiHZAMqqyq+w1SwipOG7k+DKcTSrw/pdI/pQhJMGpgV5i34Q4VAw9chjumBn5DpKIO
QkcYmbcxPjDCKP2jRq/LvA3NQ3d9pttIXZJBzxGVwseHeaOLwo3Pes+inVFbKOE/loPLSlrLCRW/
ZsmxW421YzVrVGoVg66e+l6yeVhwElFIaJzHA5Sl5AWJBn0Td+54TNr+2f9m/REHGBVtL8VXsO0N
Aa0BjAegaNYNxphs1/v5/hm/8SzwA62Sci+9URvYFh5w0ayR7q3244BhLjVb0e5yffWkUJP7QbBh
ROOdtwACkgKo9LUM/Qgfpnnh51+hRuBiR38ZELY13+OeQMNjX5V9GluEyu19WBRcSif6cejHW6IE
awAmcnmV6CQZ6/91Hsdfbf3C7oZBcCe4m8OA6yjnAV53nQholrgLuQjRIoQXxGBSwfyC5/LyzDNB
rmZjIgzAYjkskL7JKPv5xN3kXEoqoIy3UURr89isLsbZ9b3JKikrvD4QFA34A8ikFJdozIOsMWfj
imvOzqm1AGTrCcQPq5GsqCDpQRiW0+rexd12LyKRz7SQwUB277Qr0LAgM7OywlxIE09z9+HT4MHK
NXOvn1STizESxA6YvaCDjyuLRtJa0Ru4hm5OuhHecKCx12Qa5NyVJ6RB5yIWJdzxPp58KiQEtJ2Y
BW8g2hPMD82h5aGpmimSuyDKDhtQk36gRR+6Vo0PetmDUUprc8uwLVr+Zo2YMvmdarzy3++36T3r
ax+HGyAm4xe7kPAbiBS0xvRtmNM+P9NBbCpg/zpZH89rF0EmzJpAG9hG3J/gIQ/0b2uXqHXt8Wyp
iu0g5+zMRPu81lIou/oXfzxbg3XHQKymCCkiOXboC6P4MjBMKHB8C19ufABfvldTUhpHeJy/sidV
WNPbrjEratUC0XDCA+4esqylstUf48vbZTVuvzBBPxqjtaVQ6hdG8aVP4C8Yy9zVJa5VEruG8fWN
rN3Djbh+jeVNlaZfuAJdWIDJqiW/OhSrA2QwGxLxXzg7X7HHcSS8nmvXML20Lsui/tuW10q153bE
4Xr+GL46oH99WKVRc/QdKqUvLLcJKxQb5sN+4TL4y4V0CGtSgyytLwzknwxDooe28b6BNptehZWl
X9pvVnzIABLQ0Ptri2MV9swFpKoestq+sD7/ZjCDumK+DywPuG+kXlrdVyUnY3XBy9CxAk2EzjoT
DlX5cIlr0V6y2dWCsR0FgTUDh2KNR5n1iRwj3JG19l5Hjxad5mew3FW83pKZHtgkk8OSvmP9KAGU
4pCkDYDWMS5Q3DbGuYoFfmIeHW1HKF+Km4ybnBE9MSB0A5PNbB0qFywxjKd4Cum3oQjgNFywUJGa
UluYmctnxeMGWYgB6qVqOjM1dWHcwSkZeYXbyjiQpBCTmCSZCRRtGQR0C7YO44qlhJWLF4N2YgA4
/LyOW+Gd9LV1LxPBqYY73JySxJUeA9cjhuJS3rYMk/O5SFvjdFt7su+tR2SIGg7Ip4FtBgoh43r2
ruFn5PXm5ozK+Bk1cu0hiV3zhpI9tcF2V3PLDtO5KJjObgtUD6CliElYUyB+r9VAZ8nfgKf2fdxO
Ri39CQkA/jDN//18/7uCT2tYyoD1DCZwGBkncAm8mKD/Jnmtal7s0SPOZ5MdwYLNs8N3xOeXp+Gs
bfz0sx2MAfAx8QDCP5gjeX1opaglj1KwlOEEpIePCYjY/4kcTslUHOVNimwd33xPOSpzb6erXpi/
DVRUbOmWPQcu3/X+7wlRXzKIFgLg8xASbM/C+Nq3cb4r4OomLS3zeDSu6yWk51oFbtH0I22vK2yO
ZzJ6SSyIyZw8bupwsHfhneunWKUepMwkAecS7NfHx204JVCHYoVCuLNVXA+1onCDMJBDhxINMbrT
sKr79Fh3PJ0Q6HOpkjACn3m9jD9V+EwuAUgDSXy+AnDq+w7dx+wqdBOq1R57o4S4g43GwVQNE+wQ
L3KhKA8Lg8rIPeQXDUtygnFVFQIyCJTFMI9DHDjSSJnSCHr5xiCgOoi5C0v3eq+8wGtBBX5ySl0F
NLOKOixoeYI/PW4/hvm08LnFC3zyLV1IFnixbmI2Lem9DaAbGG6pdGRdbSpKWIBzIS2Gd1bheM9Z
+8+N5T3ef28u2h/R6gaSEBdwd29OD0NzGJlP1MPU4CAx4YrnfRl3BGPFKsfpSta0lfK43JWZK+5m
tJJFjSVb5w+0He7jnrNtePbNuwbLY7lBMShJ5vjHzEWr8Q9bODUcvxE2yJXRLIiajd+wMrSOouVz
mN1K1i8XzHTAN157o3283p33acli9Ch+1WVSnW5YGmr++YUwhGlSjILhnpH6KaDpcN0NaXjzb8dp
VtJAnWSahnNzOSW9XrVkVf1cLBJ4aPy4GXGm4l2LtpLSeCzakCDm6EWaBU4/8/q4klzBJe0joykl
lz7coH8MxjA+zufbfdfp9SEmNwun6VSk8XWoP9t9iE+OG3wQ7jB/9iq1CVYjWKKOeC2kN5fgXVmW
iRXB/vN9PgBvVBzdxGVe5jkNreagqBedKCg0ENNQhx83vCrpMZ7IJcVi2Bn3CZBx59fzeFrVbwoM
20vw6BUqyXFLcZuuDg2dTrggNlkHJtlwShfTlczSrAvfN2UzpjnD6//USjXLbGM3baUYyS+qK0mU
9xVSupiohf+3pRj+f+LKppEYBTCEhUhJ/ZQaEYoq3HBnSGt3k6VUmZChy7iHSa5kbG1McYazgbpL
gDe+XIarEoDd1Fi1Ah1EYFVeU6ZpyQmEyFKu3FtBWxuUOtC/m0tk1nj59DX8NqW7WKkYd8hYwAA7
prUra4+M+0hxwRTSJnjQBk4O/jl+uXpJheHuUWwGbpiRre9x1dVuog+VFH2Afzg4aHbcB4/U8DG/
Bzkg4r6OyNATq7c8EGGYZhvVfSFSU2Bt+maNNqKrLzEXI5EMYJzHN5p5hTlWbDUM9wrO5S7wayez
fXyJoETJPPTinVzVgiN0uCo47KoSnXWLfbbAQXMn47NoOKMX9jHqbXyJzE1SnRosqcw38a/2qYwZ
4lNp0iheaQs1FS6GveW+eeYWVMB2ohjdBzMuW5Eaxacj6ng6opeujqUUQtKQ8fJKlF6POHtAwbUI
d2g9stRuhp4ly3lcCsfJiiym3c5rvawxNOO2Wyv7iBRGP3+8WfMrzvFRM9QZY2nm5GkJip9G9C0d
WsTSlGHQTLe9i0bmAd3WA+0McDVNJzoISLbEqUBTgOO6j7MNkVGzAsHjCOqNmLdy0FXSoZ4Zd0Vq
SpGu6RlzHy/7YJVDDG2S5nJdQyFQmaJkIAspKLUNdUFJpvn38Uc8yrPZdhvDvY3Hs7kKXyVHaFhk
mfUjfZLQ8e8rqTZyA1reVbRTV5tCF5ljjkFt1CAgT+n4sjeLMqeFWXMCKV51BDPzVhHkmzN09w5n
l0lqDsoQ8i7Ur2C8GDfu13GeEhG/IE+3Fs7h4zOnn4hUMFg/Ay7HXGaqg0yAKZpSSlNskh7AS5MI
dZe87o41DwtcP3NDb7Rh5+seIrE6pCTpUxpmjuuGppMRyWRb3TUG7g1DUi9wfZK0M0/FvOeTedRT
nEuPxS8tx2On8X3Gn55Ii03iY3/FW8XMGQau4mZ/XFtyLiP84wncn5SNFYev+yQivgcLEdas1bKp
VObm5fN6fx+BN4diB3rETAYtSwGR8x3MrXj4Io/FzklPoshwDfUUOvFOMue9tRgvn+fR0VhOO45o
aEVEA8pc621TbBSeYNy7raUy9E0yNo5d4RwlPq9uRm2avI9Lbb/xcDttPc4Z+Z83cMFFBVLlIoZ+
W9883DBXkChvFrsAOHga1in5PGA8fCGTtlCXlP/9/xxsfzUWx4hbp2K8e4vrSVTRd2G9o6csQPN4
jVerWeWykwxACzuwYYth/qbJ5lYinLNsGVTaHN/QXrJdbDICHPDlcP9x1ipRqmhrBjrLgDwpVZhY
Sy7D5KTOAVrzxZEPRSM5zPbn93HN1t2mWrjfYgApf6TfizrLpfJwjGd47+nHO4a2ICjh0+D6wCVL
lCHPJOOCcVdWj9iVjdidYfumKS5l01DxR91IkAOzWVbAqWz1vLjOnxaLmG7pOS7T9e09WgyNab8+
Ukrqp5Mu2imlhOh0tTWfSY5tuXlKwF5HVJCAiWMg6fiNLKUaK4tDdhLmPv3trrYU6LJ4VXWCBh5N
fZ26qmYQD2pQlBVhJPg2LMuPaT4lKiUzCW76RIKxK7NTioFlWFZI1p0ojxVp6kLA2crysL8ymUEB
sDDL5q68VRMPbxaNbMOvNfbDfHxPbHMhAS7WSKKrTUSpAljtdV1xRVjK8E9W7BYXBKKZFtZuWlyE
/lBEX4BhlQlAokUmuUzyfim9EqRptbBh/erVHMnn6yJCq0/pfVNL1ZmkHixUNAE1qVgunoGCoaGR
Fa08xJKm+Ko55T8o/LxofJrGRZW23MFpCtV+Byw8DqjrWkn7RFMtuhnTl7uBinU8Jcj1D3Il5nZR
YnQREo07EGsVC1cz+86zZZOlaNw9gEnFOQrLDWatEDkKUTkp0MCmkjvyRJnyjIpKcOWJpNRBngNz
brhJ5i/irngnRc6ESMn7GWqdPg8kF+JKrZEQo7+R1FvhEGHCk52vSiOlpb/ELkDMrkK/+zoF/Tgo
yhCPQTH1Tn+0PtDydyRtHr8j0wnURZHHgyr7aJzk8RLXZZVU3UKiiUQdBN0eN3PB1xqwuCdV5CL7
jDMjIQKDGVzixXBoMuVmslgIs7Z9Cdgh3vMX81xiFZXjonhJsBhzW4i3ZN6U0UNwZ/hpC4OT7UHE
Thqvl+ENMAULNXn1kau4G7JJjzaC6LV9HzAeb7uzxaVvHSJmXNYcs0RYwYDa14Ij48N0Eov12kHC
ttKGFruh7Iwr8g1PU7cJ7Smn56cCAJimEli51Qx0J7fO2gj942SuYDxlVnLuSvyjjSMh41MRuy8a
wQEdNNU7XHVSMcFEvWwUFuSaGe8s6bSPrnbtJazQ9W6T890TS+iOeqWGd5fzhGtBMnK6Om9Fh7I1
O0yhPG4KVdJ7XFUx2C1KqWVdc/4W/KN9qvMjc/GcrvXjdEBYOl0LwCiX9kDg398tUVY8Y+ufIQQA
+yxEdNhghcqqLQZzo7biaRwVLvRcNAueCghUH6zg1ivRajuhdwStclpVaMLpYWnMfpWcm80eLS4H
UZZmsYmOrXUjRTVt/C6N5K04XtCnEDaXOe7+VFHYC+zHL+frL2l/VOYUMvp++DRbu9w/jc2zGlg7
4gAl762Yr5KMd5uxhWPxgHMej9KCaZKO4fRyVHEHw1XcWuSenbcIfi4X167lZ9SW2NRblHGPqYx7
TJxJsUQtJQRY7q6haTygUmqBo3iGo2zlnhNG+GMc5aBnRVmZFCuzcc3k7tQ60skVmEr8HFqx18OW
TS9+NxpZnEip51X4gv9JUeO45V9JDTGsNliLTL9kpW/uTSU00PNBcj06tyXgrcKSScQlAoMdL7GJ
H2Ylib1QlHJ1dbh/3rC7pS45ajE5+1VTRkEacpwgOGp5/8QZW8V9lCpMB+S8x4hGz5CJba/pOriM
j/mXcUlBLTkptj9Df7cS9e91JllOgNP3wBS0uBPQjaItxXzE/Q7FLy7wNzj/+cc80RlBxcIcH7ST
8XyMQTARqhVJ0U8TdpkEPqHLsKS8NVbQEVSebqk4lObpfhYQjLKkxCsP3s6eSXVXyJ0CBPpCPSLG
IUDeX8TKFps31cv6+kJqsBxMBLJYM6S2lXhTtYGR5iI7h/GB9dRMG/aodpj/sFDxD/P08Rdohhb3
IboQxFLLPQxTxSJFL+IsEYdPct/m44BB/6piG/tnMhS0mhaijaNe0hejYK9Y2QBW2WIU//0gh1gx
uWQ1PRYBe01/Gs1lPFK66jL+PLxMPwmH9uN8ApTJFSyrBRAww0/6u9gvdNZOoyrj1dKzYKIRUIXz
QilSzNXExunt4nEcn3/6OF/tnCg+cgMqHaOpRmiic/45RsfLc2tWrxNzzFYQjILAIOhLIssCAzs6
LwvqQECHtzRofbZT3zuKhfP1fZwjOT8YyGIxcD7goeW2acoV2pFgkBLBna/nI8Afy/jCKjYQAtRt
TQq5K2u4lax2+5ri43WW0ZaGY42pbWnlx7BY8XA4f4DNEl9ivjKTlYHE8lDOXxaju++QAfnF3ovo
WBW/ED65hI/Axe7j0Tu6++zoPEzthdoIzsPp/CBn+I7338beXNjzMl7f4tfe0RPg2CjMLJ8wLtCM
inygeATR+TlJhisEJuB8rQZ+m6cHazWQulsNf+X+ERIA3cVzeZg43vMQt76t2VVF982BpOFKuVLw
2zxhIUFcd+BgWSWdo+Xlw+f4832EstfoDbU1T5tzxE8dvYf5h/M0x0jC4flVlbRFdBeMHXm0cUJ9
Z/K2kMSpk3FGUq/oAFvRutZsLvFB+zYUfflGhJr/vytPpe/90lj60mWCjbWBx/URpUrGY6pq6ZiC
la2i5TgsI74cfNbGdMVdi9jctER/hLYFAInjx9V8Pi/Gjich+l+P8/wtLl8y8RCfeh4Dvzi41BYz
SY/RIkNPn9fhw2g2W9cUf521P2oGpCQ+kPkRUtR7WqQ8vsNlFT73QnikRq+db8t5wetzjEtal7yj
DfXJu2V8nKaDjorA1WVMiTDktSB7FiN5zHi/jnHps7l/jZPU44Fe9rq+uKyuN3aKdaxAxT8ZJfTv
48/j5XEyx7CGt6JPrGPXjz9+6GsyvaJjerBbdzQOgvJUGzaQj+3Pb8b7MrZE/Lxc0SV+6N02oq36
r8c4QzmHeUTDXaV6JsMmD+awtoL0L3V5GJPmDTkthrMieYqyDu64rVy3GpIE0CsUIKkzciHIjdaf
5ptR9OPpF/PG78sviUXJY3jbCGASZ8vG+DEtd8U8YjvNmf79a32FPbYsMasCId1GNGUHjOLJsbza
swzitoFGKFpPL/oALUJbxwxX8xtH+Dn7HlDMLdEqGfAbK68UYG96a5SZowEr+BjqlgMxHv+M1wCh
+Gy4SEOpUW2f/WqgOYP98Jgv8ZfP7o+PJlyhQAP4TMhv8f96GJfjcBuXf/kpOEAFLJImCBYue6ds
AMuwroyQ+RH8OwPOxtgXFnO++U0QntEvKv+Ff4BZ1sS/6MJZNfaLPP5FGc7KfVHHv2j9Fz5swTcf
WEniG5fLG9fGf7D3X7An63/Q3SAjF6O/6pcJadO87ezPVvGfbfzP2sBT0vup494P81ggYZD35fqU
jcGwygnVlG+rUI7mZfUkk9H8MpvSxaUx88SQILLprSR93FGZ2oR8ynPKO9EeRGi8HUrxmURNyXU5
ygnt97O6Cm2Ler27MTmStaH0tzwViF293tFdB5NL10Ntx07BY7X5IYAWKZUDYEZVjyPUX5Lr8fux
ddltaeAEkhyoglTjIefGA0PbCbcrbvEVzOLDp9vb/bGlkpDqmxfLFQT2Wnw6ObsjReaTJwiSQk7O
+bQC4w6LYjrmecHeH4S289am6UCbLe8zuPt73bOeW0ZeBBpBYlYHIag3aPKDUb1o70rSk1Vo+vcu
u2Re0MU4YxClHO+qsu26XrL2rZVJBFEc+RA/t7aXXhNSG2EkWf26zvh7Rr+uiPsxiu/Cjgln8eww
uLdh7s+L8Q9Vs4Ebw72XlxdwWYFb8kXzl7PS32QWAebP4TIo8qlgkUF4Wa1g9ZL6SMWAxGhXrEIM
5ZwYpzkan4+Stp7ZOMbFiimFNnRC8lVanj8gdKWIgbZrpDBrGBODd3wd39Cnji++k94aGOyYYvlS
RJO9t7xGcyLTfOPBTPATsjDk5S+Kl8z2G/uM2Lr39+UyAN2iEvftinB9fSoerThsrRRaAUIrsxRo
HkT0GUooVAzih4e2wjW/mzlGT63zIyFuJe/cWE8BUH0gNiVkfM6bRtS2ffwZFkzKgrdT2Chj5NRf
oSz4PgM+2th3sXIROna24RUasxVXdST7qA+4pdw8HWg3Fde/YIfQoOlPW4cVlBOQRlBDaCWmVPNH
w5Il0MkATCqyA1IR1SxvmZmyJqEhVWNNNHDfkpmbPONxR9ZqwZ4gQWQBX2WO4lOJIfhR+jWI7R13
sy0zhGfH1/PP+Oby8A9HybPL5EZULlQfvrMiksfAFDIo8MsIFElKOqOS3h3pBug5dvmOwWNz5kZe
z5bFNS7nHEaZJsjAfkfClhpn6c2IhBczMLgwLPqP9vdLtHQalQIbG6rX8q5YCZSIBBKk1lOoFMaT
huNTlbJnWGIAzEfwb9FX07PsIJRZ2zgJZa13mPRdIYbNZoADY/QO/wkJWYDGyGwfwkCM/XE+xp+y
Y7Wjp9x4cxw7K4+2S5f9FzPLl0/SzoiPiTxvwFla1CREh/IKH1XNhwVKEwh2j1YARZUGjGVxGjgW
NRNrwrFgQtQydZo/4lPq/DCMKWEcb1qxKk6gWL9kUIynpdgUaPwUcRY9W8x6mUAax/xInEEbziDc
TOomGjO28Ff9Cnjxu/3+fD3OlMcCeplFegcwSOk3sEX7SZjE8ni5z+PogLWJvajXAZHXpba2ztt4
/x2NGme5xF3x3/NkkaOyG0kenQ5uilEwEQ7WSIM9b5G2zTatERnDHVMR35Ay/D4Tv8/i3+f+++7p
e1uxd3xEk4M4RsteLuudQGOsZcOUQo0vpfRTgVCrDTy7fKntfGTvx8/omfj9ZHgSeS7xmRTSu7cd
bvGyzuM0vyXuat1J7/bIrukfpvnfaXn/9vnHuGSs/cYwRHphHeAl+l3BzjanUEjkhqoZJtyRVpNn
fiCWaheH2byYcBiqBCYDQd/aog1OuQzXZVFIhKJTM0I4lhevcJEbR+RgM55W24DtZP7d2b2k6VIX
YCO4a4cWBKsMJItydBv9ERctyntiss5bhca9NCcE1pwdzCZtaPMv2GImtWNMZlFUxBYCABXi9LmO
nNgdJrladYlx6VWyMTrE1oWyx5i+f4+FmfD7LJBcdRl8TaGUlKzoJVkRCmD7Kg4vj7eDsXMqRZyz
raVaobAtQ1bEVUnRaKI8dqET+jaTrrDLlyWMoMJfQN6ZMnylbmWUorSHrpiJhZeqsFku+GWJwqlf
T5xnDkcoQ3VlUyAC3kfB+PhAEIjGKovGlGslYO7Ne+r891zR5YCZ/67QTMIul9y9rj3tqkt+GA0O
h68GbYx66MRICR7U36w0/Y/r74zkSsynYTEERsdF0UHSo7hP8TZRGETyHimjlsI1mJOeZ99m0AdS
o6O1bIvQmSpD/3b+r8c4suBYgu+QPNxMBGdt8T0sr+ZUEig52AHsThWPN+bsWNvaZ/jco4FI7QOx
lODO/Xg3nhxmD6MDshw2S75S4PNAeWu0wtG5vE5WOcSDIFnGgHzrE1/LC8gnh4A23sJ5+gExPyPS
u4jnnNc8PVIS+MM7z8un0V4ffzD/+MffpzJ5PY+KsAAN5RDmEVAEgDR7j3qlBPXh6bgekwJSrBbq
fDkGAspOP86/xiURBW56KXNHdXRP8cThZ/z5MzwlRmpbC2uxCTaLAfp4A8JGjVCEau5bKWzghJv1
WV8VJGtRlRImb7kD7bvNLQfG2SEO/Cpl9JEN3xKhtBKGahhMlKU7KIWk8CPDrtaNmG8IQkLP8Sab
Z74TVF16hFkd7m/7nCC7gaPyUG9Px5IRDQW6FYwdSMfbkupASNmqTALWxmGCNi4cRwvGz5Zn/kuG
/p/Xd+W0oa1hMZ46BE6ie8KBfT55T6dt58az8XbPbU5fvAMiZtKoi7ezEWzTnWC488eK69UxmBnP
evm3Rf2LnEVkJNIyKmi4XkQ+S2MAWQgUPFyUwTYTekauWtSQkhEUw8/O9LgiAfCfNNxE3jFLqF85
ouzFQl1kbxRWbChZhkI6Lb4Y46MYiXgasOj+4+V8RcwgpZBOLu+GLBfKehnSBAviWWD7viEIV8LZ
/u6b8+xFxYnvy96seES2LriOyvENfx1/XCkLziWgmksVe1lOWT2Cbq+V32qiv2WZMBy6WhFM0Syw
WJmyzZwpUA6WAGp6lMftmp08jd/PR+j+dgMdN4MAVjKTHPTNmP15ZwxKBGnQkqyQFZzHBgDu4jYO
9wSQlNt2rLbRRbkP03wGoZUsHWEakx3J23j/i0V7YuzqEFrOUStsC7WuNhmu6XR6upEKPJXdRM/r
/hWL+6c1uX9GbW52v7ra03U4W8r3kRpSpSAFQ8EzGIslVzqtOsOVBulon5In+nkVrMsqgW2XMooL
EXiQNtj7qMHOk0wkfIo1zYRuSQxWqODrOUYDE+11t45J+Soy4xFvnvDVSw5pZuHpZSkxLXqfvpl7
k7AFWwZoYAFQQtiTxeVCZ1Bcd6MgX8yo6PkhwFOt44hHRSyzLGMNLb+bjPTmn+lJUrvoaKPo2lPT
bB4nuVorlBlpxnQ+1NqnZlaXv3m2ar25pYPkOm4l1bKFvIGxJDKhbS7dAQz50JV3BUd6NRZDIoIr
mH2hgAa4yZa7En0p6zw8DEfwM2Mt+Okfw3GF0u4oTOQPHVKruWVTMHfLHKctmveHrHZ6xjKyIpxd
uVbOq0Kr4hDFMAmxCWF8QP0z9kOzmsVs4aCghrnvHAE9GDsgV56Pnxk29eh+W/Qmj0dveLAFw9xh
hI8jExK0p+jki/hMeqzmCIyhff2X5fubGArJpMIbt1f4DNaonOLVN5JXD6OMhwD/Z80VbEWQqFzp
xXIc7qOlsHTGDBNrXddQbupqG9utkUQXFssmwBDZM/iucObSn6ld+e/+9jdrOJ2NOEdnRu0Mh0ZT
LmEj01o6j4fV+B4xtmr+XlSIjDFuZeeK4mkrrZWVV9CmGMZV8Jx5yQ1oT6pqXViK6O8pLGsabrIV
aLc5Arub18zJMrpSLpoWcVQQ8FNUM5O+CJItvItIpAPjFY2GZTRy8MR4CaYrMSnB5VOEaiFhtWxU
Ym2EDby47u8AfAMqyPpo5zivOF7rLttifLqNsUnArZdH3NQM8FqMsSJ5jfNccXUL2XSyKbZx1WTw
2MafiZL7bFvI2W1as+nSq2zFSGkEgsmsjVmrd8irVjQ2mUdoyw2INv2iauCmESWsjXRQrt1sOkx3
Bvo+aCJ1d7RlcbxcJQWug/o6ONMXY7ArBckcYNyWvnxBULl7XUTXQYyUFK7XhcKx7oY0VAokWlRi
2YD5X4GiTaK2yFtrA3UdVofyQkE8Qxg3aWM3vDbJY1fTD6pQHhQH1TdIrGAvyIgcxlYAu4OI3wix
tp8wP5bejHlFEWjuJpC4lTnYrJ70wjzez0repi95bKbxwufJ7CSCpR2ZM7HEeqsbwoyQUixVcjlW
emz98yD34e2qxetzXg9CjCbxbHSrmMN+gVii29Sdr68AmLZydG0hQ7NPZqvxZl6mN/xPa9OdxuMl
nvblDwcfX7OJZJ3G18F8AcEOszN3pdqq6sRjU4x80o/f40vNeTUalqNWu7gNCiXjUkthomdrgRxg
byzoRgKfqDcS4DYwFblXrrZ9iOaWdTmV/BgL5PapmQZG6oiWX0DAsOLMg3DqrrxqyaxdlgZac6mO
VyFRzlmXyXRCYA8qz714utMdq9mi4tJXe3kS9QusmKxqibGfhpp4KB6HTIzUsuhPhkizQvShFaHB
pD6yw9Z9w/OrRvvEs6vc9KIohRxofokTn6OvtMkgFL6uhFlM1iX9qVSX5DKTE3uGxlA6EUwY0Xsa
FpVeYCNGHrcq6KJALFq+Td7pHoA3C04Yozl6XoDfYm/jYuwC5BSJACcANBIgXv4E2KuyCuoaPs6X
zwNFA76Nn2ALxmOFPBxX+bNnEbTVflZaq1FDR1l4+u7KlrLG2ro69qHkECjqFcmZa8KiMarWXGu/
FHeNJ2zRE8rCEDmPZsPVH3S/uayke4UjkTDaSccisuAEUVbilY2HVVnMt/X9vayxsa9+MeP6Hsp1
Xe1NGDqG2i5r+6n13l3bSrETZlPt2pys2ogVV3VBwagdBVV5LuKPvDULMdj4w+8LEX0Cn/95BHoj
Fya1dxK6IhIkJR1262tRMElljHppfsPCd6h0nV6z9bgn27zCRf2VvG5ecUlHhfHCPbAxU5IMxrtf
8axq+J9JLtYEXjKQlXgxK0RlrYCD2UHpL3TkhsHOTB3HuZUY6wKcRFU8G0KP63AzK9VAagw0x1K2
dhRHJOIMqvgKGeASIVyFFcthzoF0OwUykZL2qFtjFcO5shqVL6TaOx5u4EkEH1JRrlUuVFiGlib4
FJjpciZnqgQur7eV0d1Ok93F93QgS7Wt3CvjlXvWnBhPZ6ujUuV7uVwuvoq2ixlbZUjhseRmTQUx
blAgk3nM5yRrKbsYjCSOieqvob+M0BZTvUpZvUK6xx1+XuboIjgTXB2QH0DqeHqDDB8GcgYlfFOL
GoFLEEusdxhOp/iD7xgbKtu4tWhZRx5lvZw5owDZ39YrDDDbv2m5vaLO5TJXpOVGWnGoc0WBbYnG
scDUOY1xJhIxuoi93tjZxVVJzk1egsPbs6P+7Cmlxna3WRvxIDWcc6+gBtQ8Q0KoxX1mRqHaYp1S
FYtvOqjkz0hUs5J22oaGUHatzFFP9vwBKFzO1wQtm7HDsy3SOZfZiONUmmVY0JDKjyciqBxFDAjn
nJVZYJ8ZLPp3JX2pRKPI0ClKVApaJuUoMxAb/KNm9QkqDLStxMJsRU7lipx6uuvxIDoR/K8u0XVa
wYVatL+pyphY5WkEZx9MJ8Uo5rlaCoS0PFXnp/o+7MCqlb0Iz8VN/BI1ZbZFIlvDZ2MNIxmjQkn8
f41gVUGJlKHoD01ZZ+vR+Gn6iUrMeKYTzVU80VxvHq3NJ+BZfB0KVvF3y0MF3twwDvMVRo97UrUU
AxafPhiU5iCG9OuPkO6s9QD0MiT6SqBhPY2MTCLeDhExWo2k68P944zZCcuSe6WsZokrNx2wyyOZ
vScIDUMjIelenAZJrH9ZSynWzdQZ3oqmiNGfhqkUV7eYSmblec3j01gk6GJ3jvHGp4zg/iB3DRJQ
WXoTYF2Ll6KJcBzuCbmSUUjZR3ePA4d9aJDTgBHd4ME8upsSUG6lBLH14EETUoosiDbQMSscQrkU
lDO3rLA1XEhNGC/WY0EclgH/DTUoinURLtvqIeIURud2Oc7jeP39eLu//2Wcf2fujvlBZcQ8E8Ny
R7ge4y9W0f5C3moUfdzWCYzv9zfInk2nlWQoLvb6hHcVyBBFNVZKAZYxKV4v5+PaOcRVpIuvnZcR
AM4q754doONwM9ce8uGnA/i0axdsHd8pcnwZdX0Eh4OIc+F5di8w4l1dcM3rWSgQlW/hoiv4/Y55
bfWmVbVYUPVUx8qKWNGiV8XwFgzYcYCCGfRKNDO2MZrLnAJ9o179VTaisox3T8kVXF4fMIpaIkgx
6A01RlAsoZcVm6FKqVCIBS7XKMbOThQ9K2DFbK5lEFhb3OJ70fLV3bZ9xNY63pPD5/0DSKsWos/b
KD4vt0gy33ZiGwXEDn5fTqkW3Lcr1+5zT7ksa78OFwD+azGMllXWsaKi+EVTMghbuOTeooY2bsV2
Wyu2l6DxP2wi2VzneK6rk3w9zE+e14z5Dj1dc86BZiU9cTGAmNevcrVW3LMrkC07ewLg4pHozViy
OgLjNW/nDNreXkKtfR2dZCurCMtf8DuUmVSvxsut46h1FoHxPRODt4kCKPE6C5mA+HgxFsH/AA1D
iSliZvtrmmuZq+ZmlYyO3tZqUvbuFX7bduse1THvf/w5HO9f9/1b6W19DDcqdbRIHBuoVbAGTMA1
lY9SEMMUyW6wmVPNdbpMyjj6lkaP+7sF6Md59bpSDBNLZXuK0CkzCV4j1u7rPcBK3qCn8B5VsoBK
yRDz5CERnRRKuywlCs6Pv8M/qtVh/DZ+UmtP3QBqu04Bjm/APvts0jJACqKyc/1glrXjj6UX0Zlq
84pVNTCT4nT+/svt8lh+uQ7ff3l5vFXG8c3jRyha7R6DQCHUFJi4l4AsyGxHBOoYmrfsipZSnbYr
WXCcI1uO5fKpAi95Oz7BlMHFmOMWAY5nk6qIBAF91Ids7zQ1aAt+QBiwjXso86vX8dDnK5X5qVh+
ml21jgZ3uBJnt1qL91hjQZyYHypo4P40NZcaIgR0fMCGDegd99hwNqSyWh3KuEWw5jqT1ow+Mpgf
yoI7fxI1cgv38gzBIf+MNm7FY8j9Ur2ojS3VGPLxoWo/K5YTfRqKQm6BKlWm1/o7DCqqtAQ7lOO2
XC6uqyuVSMV6dOIU/QHkZeaZ0ZjT/eUxe/9sQeMV4kXm5VfxoUq/g1jx1mqH8Ve6doVy3drgwZaV
NDMGDlMuHNs3Lz+fJmaLWXa8BGsr0w1eYx9PA1pE+p4RO3YMvnfx89499wBTrksd3ugqIvFUolqa
XR3OLpNH2hGWpe1jJ5vHRbEbbs+BMJFSxg8kbCNwOR+V29xk4RlHhPKvfzQv7CdYhpOyf50kpjZX
2Uai0rqnCh9GRJMTRtcZPOkd9G8E4KmWv8yVtSRC/yRJmCzu4q9snyxp8vBAI3fX+reQOFOW5seq
EKIVOUnwmcHt5h23YgAFOtbeD9ysRsCzyqBonjEUHx/XXZq28/IF5HxZPgFhXwcw/TAJpz61utpl
le1ect1KtgWnVPq6VivZ40BnIo8ZFvsGrPrAcqz0i7j7hTT1rmfH1ZsyGJMIHiQTU0k2xae+mJZJ
e86liXSYf1z5Tt022v9CORb2alr8I6HlnPp8vNzOP8eL1qCFJtyHV6mQTt34ONBoatAs+7IPX0tE
d9L7w+SLci69ZA7FzkWX+m35hQuz6wb6AeHR1I06ueT+V7uuoJ1ePMhAU9tIrEodjJITO1Zc95Kh
Fd4R5Wuvwhlg6GlSCl6LNiqTNsq1FtnnHfdF+DqbhDF7+JiuU7xkkOQc05FF3IyyzTBsfy5FJnUb
EyBtg+45wYYpIAw/1aIjv9aMKett0pcB91AZwr+gCmqSqqwiel5gB+El7KGHB7XQti/oQWsM2vBS
DI7q3MbYohmSVHfTupSKKmyeBD/4r8d0t8Ggw4/38UrohmjAALs2ip09PXVy7GLjZ+xbTgvtvp0/
IkhM+roM21SGVbS4FK1ijWafa7O3Y0TqXWgSvmVoQOofDtAqM8jCrpeNOECtzKALm5Z24gClMoDv
uxkQ6IcDFMoAdTCDzTG6ARplANZwtMB8j3wOlTIEa5JqDQKWy0JUk1qSWrcRXq9fsVbk5/5W8jVr
6hg8s2duaJZhiGfTRWA2hH27JvMwJItaJWj6NC6WtJzI3THLqJJi92KfThUY1yjAuD6J++SExFoe
sAlysdhvoEjPrVUQFNk229OwFhquPeBgEZC7+DLLRoQqBrWH5+N9epuHW7zwiWXyWGAjyWGjtYJv
pPyY9ShfzxfCtMTBYHnNEhBMNLh8PUKR9MeQFWI7+ngqXSGj5GQCvB/N5l09wNd5cz1dFdL1VsJG
UHSV1YXp4B6Gn2lKRvkPxasJhHCzfdmtJ/8j8J6xGyApNiCrisJwIGN7JXKw8etJ1jpE8xQOOP9B
iGMQY/M0KbgYXjuXrY8Dy7M+D4/BVpYjk98/hu+DTnaY55lIf+KuJEdUjwqmumhFECBQEdl6zgQP
UcvTmJzaIiiy21DjJSjrc4YGBhCV5WWxAMINVBf23ZJ1KgNmEs5uuOPLRQFn8WeeOTRRsC0CivxV
M8d3Pj/T+CYMU/4UOYhhBylVgowqFxHFW2SQeQv27+IcK7nUXjXAJdu9VDD4udTGmkCxBBwxj1+D
1uUZS8hDTrJqZV6CVLgCyQlqSbYnj1JV1rybMG+l+VzTyMFYBEM9pUsbOaCkZbTysYpeBbsflBk3
fiwPZ12Zb5HsMe4bYrVgKyETnVBi/qFxVd/Mt8sBUu86P0zGgV7MsGftUhAuaqwBza3suBXQtr4z
7On1umJkCDum6YGuqFMEdEkab6VSiNe1YWcpTwnqsRwubQ/r/6tytdtepKNkfZTjqrQVdTKgf3wc
9YAxyugYnIywyTxohh66J8VMkanUYqsL/pJ0BsNWVZRsNSkSymx79g3XSy5E8NyClP2IQvWQd1I/
ZhYoQpYn1ww5HoZCY6WRJYSAn1I2XiwQAMwi00e2GDZes1g3m3U1iQYScRDvpvttvaGc4hU2Cjqt
2dNyZsIGIkbc7ajsz0rpgq0hNTw2tDEg0g11J3HtyvwMfDHZM2MuKddF4UCo9UpArEQN6m4UwDLT
jQCILMo1rYSJkC+2smgrMfKWwscmq2I59UCO9h7rmQR9JP6xrOyJCtFkJaEFJWz2V4gIij7bUgyX
X645VLyKOoIOBmX9CwjZXxIl/uaS5ZKERVLc8wcqLrKmAkfe/Vd/V8r6Gk5D0G9Dar8/f4+bmVU4
JVenAwFZI7reQAy6TNwBSJG/Y0dYBUXYtkWMrGXT8JlIXw7L9JjVzs+VZDem27ESfahY36/3TVPS
/ejHb+gKC6tufW04WR8QEHMUBjoFDes7g/koaxnrUf54WL+TmUThmhsjcD3SXX3wsrqTzLD38Sfh
z8/L789vEPFboFdadIX8TrBWCxsSOp3dzGx2Lt0sy0c2XS72MFUXreTEE+X6CJ3Yse3f0F+l/m9a
JUhWyCzJMSWn2U8FD4l6sThczb3CZRnj57bsDgs3zIZirjhzVzbg1oOnDcbYiC4Qu16sjWIi9nwV
DDQrbBOMs00loX+jXleueF38sAsPQlQ6uHDa6Lgv20oMkNjI4TC8vpqLuOgqvw+KADwTHY6wPF5S
Zbk9F2wMZm3DtEmypbzcss13tttQF1cymfj80Ekar4+PcYYASSI5iseShVxpBS8o+pim+7vayzBa
4Ux21wpkHogUVbG6xG5DGBA9KjgtVHIdozPBP6JB0BmU1AITcv0Qr6Al/tX9L+POhdqpYJcHrNBw
srxEAfVAhUUckO53mZzvW4MkviPi7RBrQHTOmY4FdYoOQyWstZEOAEVSWhay8mj3dAVcEa+A4zwB
Bd4cdvUtZGG2NPCUMAFhp8glzrVe5J7fbTieT0VcpOcSpwzcrikZ/e+yTqqzspDph3k4yCj3Chzc
qSRLlRWiq7maeD+m19c4HXWbrPj33TgWxdAps5CnpH0q1ztBwOvjjBY/mdLD/KlG1vKM0Z2DpKm3
5qsrpJ41H7ovC4lDBdnAvkz80fH7RwEeW2D1gIghhTLJQdyB9YcBq0iL5FjOOG4Liw3o1GVW8WXy
yqHcO3BfaBWRopIrJRMLqfqpLudhLL6DTRUNl8v0Q0ciUdwlk5luwq5CSjI3D4nsmbXjrTPMezGr
BzxjS2EEm6q3K6mCzp2I6mqcRD0OJ6qjYoXjVM5rOS5++pJE/B8f4kY6FCE6uxBswgoBKqUYX+O/
sfmvdv5Q4X+oROq9bvtDGPWUf4gCovt+qFp/yCaLnn7IthOUf8r+lzt/rPSrgoBeAQmNSGAaW+ek
ymv7Db1WHWrDdH+OfzyWu3kOCn95J+EIttX6pWKG5TJ6I1n02SrkCLwFQ+aJdFc7f7GUa+ZRvT1m
BV3DXQiv63B54+V1V2Vyzl1yvkJORgFTUqKpncRxEXarAgU3JcIhrRSzRKtDTzI0LLML+ZKqiNLG
NkpfhacuYM2mOH4Hi2nWdGIXl2X5O8GbEhK3yzaNM3OhlzV1M/xKI+tWyZ5saWd/C+lE14qzBmfF
KCxzFw9FETfORW9RZaygJIHCWVFLPLvkwLpEgyUkUrBMPb+RLHKJHFz3kIcrJenEa8EDOvOIuVC0
zfO6z5QQdS7liOSKcYV7k7fOabG9eS2yG6x4mbVKWu0JmRe8KSQqJusL+BliNhmBxuNNEb2tFAwT
w6NJbvd2S8XePjcbSrUJKBhDCFTvNJmUhKyUHFEvQdCsBeMiz0pwsJQCE/upjBNdSHqhZWbA+LR8
M/YPNmh7PWj92Tqu1mGj8rrf2W8LEqRal5iml9wztgW2hZyl86PDvRk7VLO7q20Hoo6FzCnGoNIW
9iIvm88V+XyJsbRYYzY9412IZFRy8xow5m5KSIsbMXj7XTTJx2tt/d+wrNAqXaBllaRS1EYJysso
W2mx3B6CJ66mPowxVG7JvltGQ2tNRTSMFOhFFWY7XPaE0C+geX57R6I+QAKXvoJDb06ldEjn50pM
wBVvGuck9wreub9Mp3iQrBDZY9e2HJvobdx/F4PHIounPWDm2CpMKSJDUNjXnvCq64nERXlWVhoW
LkHu2nIYqM8v0K9jX2kXwYtvUifziFll4qBIak6GBzUb1oVtZfXeR+7Zb63DPZdSmRaLfJUYM7BH
5QZEphENjGcUrXg6Hn4OdvSPw7uSyO+CZjodYt3XIz5fH2jP/k6VcJziyhezbHsuKQ4Fj4hCUNLo
/2i2GczZBXAFO0N47K2yHheILfmA0lGt0SQzjjE+VDeuj9lwGYMS+skiYDXe30zsgEBvwWbUeNST
hYmoDMzB9URAuSiReKMn6jdAuYtlbxbaGDvc1Sx8FJ8Bwex8cUsXZLkE4WknrVDtd9J28FvzYx5u
yutpBDMMen2+nC9g0L+DGFdaxRsVsElE7yXZa+IphlZ+S6RYySA3JtYBAv17jAejZguxzXsMAgRk
qnsgQIXcvomuBV1s345exRaXRSbZ6kIG7f3zBrWBX6Zr6yThHfr5zynqHa5+H2uF500gCGYoGETG
IMn6rYckR3v7DjGUd8CZlr6OZfw6Vhu0k/WEHtfxJ+RpgF8Youbw0G7w6tAwg1IE3+1OCZlz95q4
gUg8opXCZY96xWuekObktBc4UCMH0IZX4FhZzIpSo46NYmNz0D7+sem2yISfxS2i1a2S4uU1t6Qg
Z+1IJzYQUeJrvs3TEYIc1zcNKyr6U3J8Q0FRV41c24aE1hBhhxw6gKCWVBOuXhKo4XtwsOEE7qXL
pMrCNfLmLJxZca5ZpQJqrvVm7AESAmBrYW1MVuRunH075Aa20M/nHkLxaoBCaoWMPt3HeVm20Zd4
97lK7lsstBOfh3nUxXuW9XJj9ueGeL3Sn6eUmXyd6++S3+5uJFbIIjDMpV4+BmgTN9xSDUfLvpaa
qW6YcJktFi++bKStlrrOqbKh4c409mi0LzDLogmXJqtFpIZZ+Ms0zNAf9A0zjtQRUy1H5BLYL2P5
rwdcD9thyOMYlX3thMZk9kG5KCn+i95FPctFhK1RBfkvxvD/YVb3C8hd84xfLuMvCchEy6Os/ZrZ
ShOLK7neRsJBYtH4WqehFHrXUrbduaC2QgeSUhiOwxIJknKi8G6f6B86oZ3G2wxX2nZkWdMWCjYk
l2uTL18oae+zTOqSB20djV/88nh9TdUNdk0eb+1x39vegwuw3oN01qf5HfzAJGhV7MEpcRKb5X3Z
xG2ktODWga6UjBwj3AVLoHRIFSr73tSTpqEqvM61JCrXf0J3KnD8LGSq7YNA2p4+R11VSQcj6adK
UZmdbAGt7gSnVbXwUgX4Wkabn0OkCVkl3o19qoQKGmkEJyLQ07Y9KwGjGrfs2loSVGRFsIRzqgla
JuUI/99xnv4DeGHvn38aPsd5iSPe8k1Kqd9Eqa5jUI3kghW6bCgrKemlxtVrxeYXCQf09xNnTw7I
qnNMLGysQSw4wUQHBJMucW3TF5kUXROCl6qJ0WfiAgUBhln8L0swse0Rh9utHucYz+n33PNCzGgX
uNQ7zN+mLZUW0KwtmeOZBi2kIuTFcjVJvrSK/csT0YVPP4Rt2JLysi5r2bQnowoFMZT2fvtc4wSK
48ytPqp6jMvORllbJudqSEC9jVcElJ9SpfIdSxWgu2aDCatBDkHfx5zC8ZW9GI5i5+84u2aHtqRO
B6np8b58HATwDEW6n5TMWy/ZfmeAl5Gec5NiAQGq1o73sK/CC1/y+Czqq1VrW6ihWa2N2T6u9pAV
a7fgsMOgLBqBOgiXjoN0xOAMXY1d6p3jtvqwiCQoejH/tpgFnwY1ml1v45420RCCrw9rDVh8Xa30
EPmmUzoczaInq0nZ61rwoJ6TSnt7DeY8yE5UeFV4a+f/eoygfR1X58uQJKra5vSc0/v2WJz3chuu
cQEdtqoI6FzXlsHOx1A2q2NQKuSwtxfTqcP38+k0mqthlOvbcEksKufQKp+otFUx1nUN4F56iKHK
SilPz8pbFDSP2F6HtXEzStn36lMob8S+iOdTig8wLmnEvo1Z1sZjFNEYO0+Y7smV8qQ2wEiQRVFr
ra2UBoj1h9MM5ZT2bN8py2hx89g+Ew0u5f6UMnuDUkSowBX6TmlQt00sfP8YfsbjqAVrclV5jhwM
VqzxtlRX2rrtJVCYKy+CapOzWZMPniW0dMbkJ4vA2ZiMJbWBCM+shmF6yaS1g9g+5sPPs2IsMAwq
pBMdcyYrYsHPqJVvHO2de2h5W/tSXcu+Hf3Ocnnjd9SFwwM6UU3HP3VWDqLZe6y0IIA5Vbtiw6bV
+lZMwFqqHnw1MhPwYenwTBNIKttp4rkSfvx5HPHex6uAWMgPYGYFo1VDCti/D/GaqCZTICp/VKvA
m0bKWBiFDTDA62S7n55WFZAILNeNWIe/BejisuKYGTHUtHL4ieRg+9DHGW8e5kFbUhQLLTQ9RVPV
IhqGBJ41qhMVwq1g7axQj/vwovG/ZLJlg6Q7lnBjcdU/cXBeHkHChdDeHUHroq2ExbyN9z8A0Q2+
gz9M838q1ah9w/FAK6H1xlQzssncR8zIrQTBGpGTWZZYaZtKZuqZD+OKRvrsRaCriZZVwTtsfMBR
7nhMtT/plsfNlkKBe6YIUtEAIl3VSnEv31rBvBPzGB8qxKSUfKcv9U//NgJhgE7TU3K60zLNFGNh
IolOijwLUyDaLFotolUos0pMONq66n3NA5yvasa23cbbCMgNA68B945YGBOgGg7T2YZFPfOHK6EG
ztMLqpG/KdjAvtYjYL+O83R4hxG/jfHWmtswZBt0/X05n86HlSkp4abx6l5WLMLbTkJBAI+B7ESF
dVnE2EX+HGdU/qIQcSNYoA1hqh63QZBXHsCFtsmA51bit334AKzTFBJBHLK8NKb46XHU1WT7hDkl
aW6VLAVSZhBLOtA651RBq5m2SqCn0FE8CtJLz1vsN6jwILI4To+OexZT/y8jbNuXg8C5ZI9vz8Bn
UA5InKqmlDP+/Hl00Y7wMt3vmHWdP3wdjhovM6crkvUFouT8Zi6vEWvOpUxx3XWBlMKmy7Vl2AEt
egHqxrU6Ll5Exbk84LZ0AbqfLo0ncLtBH575+1ieUgirSiTLoQoJVlOS2LhKDkycr0YcmaszzMf3
A41peURTKI5Kcj4+cMuPEDAmmjQlwCEiA33j4WSsmPEZIXFu/pxmgzyNKizyViyeN4pxPv+EKpHX
x/W4I2KU9bWUaHjMZ/Nivo3XtI8uJw2VMgxfsGaeNWh0GDquyttAgGA9XRsSGPiAwvlqyZccp1zc
yMqkS+WjuaDvXs7XAfPJ0wN74lp026exWn+6ycdzceW29EOE3fkqsH3Qu0ZS97s2O11q3HIADKeK
CCEBV+TaVVABIrmTXBiFSViyoGatc3TF7X4kTVqheSA/oTM8MOzviu2zcjDW+XhTbKsWdnRil9r3
HO7fYqseU9ZMzxsv9KvbhSCu869IyzAcvwHoaKGY1B0k7+s5HnPrxVkJxQxY7HbWSPNEcn9H4O0D
06iuULOSQlQiXqUUZ7lMb4gxXt8vsuE8ElZSIVVZ6tUwCoaFXSwQqW0IgnHtB3aRSxlPpZWgR8+t
BYEMXS16LGqxs/ZjvtBrwbM8vHzePaVMgs+7zsQK5w8jyk7j9/MRKLR9/FHRF83mIbpEDOPh2MEN
2NS9XBy1ElpjRFGtie1zzrYDdDsOpcCNKrMrxoq/QIVIVCS0ldhQRIwpKPwIpUTbI3Bv6JWbXS/5
/04wASRrb2deqlONEN+GVdrxuuxOrgSxBhca1yeLY1P2puhlFiw88B+UFs7jTlsVhqhioFNz+4yI
vPJy2QQLY5fnSk91sCfUrE4hp8EFIoO4HhAZUDz76v8yh/07EGTmTcUDynUkoBwJ+NhAhhD32Q88
F2M/H8P1k0Iry4Z3WJHo4etbOzJh28bEY2GpFAZTwizC//sfcCd/p5u/VaNEkxl8I9kbkG7DBr7q
rMobpJaJfnz8CSp+VyFgV4hVWBvA+Iex921GLA4YF3ED8/1ChEKaTivbStYb6Ah73Z9EEWWMHoFh
Khx4gSqqzh9vrgEWRq7cf0tczj/HkweTKLqTq6jSV9PbSz8QoYcW5G9Ca4Xx6oNPMH8StC/tXrVZ
JjlHG1vzOjlgdILjtdI5w22YGsDS6Sg1DxF3nVBtRAdivVIlIN/LxCnD2/j382W0UM14/LKT+Baf
qqwVAy5IgXtyI4hXEIj2NGJ6fm9HtKoXwUMYBHX05Afk63KFiqp8b1i6mPULZUDK03gHMFMcnpgV
cpsHXoq4tlbjYB/xRjaSiJrfXgZjty3wkPW6yzaX+lplWRNHY3SKhvVHrMTyW5GgHHqRY/wYBeL3
YT5rDn+zgZNlUvVNXICKQFMXCiOChBXTRv21L+P38UKNjyCtq6QjxWoeL+CTxFxl10uBthCtRR3o
rqeDgyorRRiVRFpGIfHfCOJpCzEFzLlXzIs9YzjoBYpijI/09lBM/0ps7RQPCcUDQaL9F3gQyGjt
qguoKALaTazl88nERUCgxZoLrLkole257TIpoIIISEtaCY7zHW0tFaTMalKYsZRm/bmMr0p8thWB
eeQhuI7PoAUUI6PiNICepp9fD2CZvZ/jUI6+FGE5ccryeHyoEUnFFIa3qKwVI9dbxspUlxiRQ59V
2wbPnCZ2Npbz26jlqJ8ACJxCXO/81vP7SG3sQxIFqrinfmcfZ9p9hZGhEgkqbOTFec5LqhFOHTC2
oKPbbFrPrCFxAGfMGDTVOw/kFS9q9dou8mJexvfz1bYYUlxhrokqekHPOdIAZTOb96chBjjXU4vo
8+dCCOxKe6ICkPgbYswCMM262dsyj3rA6O3W2BsHE72woBc/y3m8UW+1xxyfIysSK0EXl9ZAc5YE
ZauNqlKN/I7XrvUrHfYXqE0TVGh10YqdR7RGsKVilDbypVHwnA27Fkja3cVA7JYRmWT1PkQ7xxn3
WyYPmzN0oQQVd2ac5uxLvZ7UeqotO+emmAMq2gk7cqLEaAJY13ViVzLMLv0CwZNfoOBFua15lpWS
fbHxspJloN1vIpsoFfqUTu49Bo8RzFUoTh5eqJt0PCzXRbqKrsopFRTIGZ0ORvZ4iAMgD64CMj6H
XCbQTmyNVpPHOydUnmc2tAlByMcNvk602MR+XPE2XKK7T/AgQinDQsz7UFp5Nb2C6Ka7h43+4kBu
MTrJ+8LtyrnJXcbtp5ayMhFp7cXuznaIq9LTt+gjhHdfD46uKTSWKMZv0kV0ZbXt9mdJmoyXc51+
XDfx/LUrr5LQYS5Vg2+nTKuYSlExvPqaSrA3yENAVyD7z/728lW1h6StViowMilARF7P/XxX+Vgb
iUNEoslQaxkYF1aJ1Vt1BF8N73swyhQax9ythonDrUu5ptL20Fj7VCY6lmdN1PWnPaKbi2D2vyX6
G9RS7RBPSJPYgL9Za+WH04n9V7rj0PRipEPq3fcbGu4WnLOM80LBBUt8m3NjDe+pvaibVPJO5mae
jWlyofyNFW0qZXR1LZofDihkNgwypMkUV55zCwsSca6R1ZZmXyFr4vk7cjE61zDlGwOxsIun8B40
hXQPngLZO/HWXE9SdCVPNxKJF9EHNPO5h2+vEVZHNwFeAIpqhYGglan7pSufvN65jA5NM7XVcaa2
CGFAAPFMarZcbGAst3y1eUXF464lCMXaCBhMphkl78+7nd+38RPp5MiWX76/yWnwSuBtJEqXlUJl
QJgXXOl4z+VeRGDFwjHj91F5lxzkwTvJEw529F1avlYh04gpe07ySW7s4z6RZFcaONZSWftT7F6p
KWTRQdaOj5WVmuulYC3FXlFAt3m3J3WAoknF/uDsZti5qltzn/7QQsCI7hO2Ym1FMAIZkHHUrmzY
P5kTYZBFA+6xWhuQhlW7ZSVdYdAkapBbS4ulZVLYa6MMqVxa0YL5lrqg4k0VeIRLsW9kItIgOkNQ
YMqoIUTtfbpo7nTFU9o11jLanAsWXPrHJpUnKBQQpWx/iF3sgP0pzjHD6kOryu9cwNM7IaGrts6s
zqLRS6kVZq3Ee3qZmclaNEQhdhk+bl9xDXrJofsKcPinRQ7/jAJaOe6hQnYXiYoonp3OJUQXu2NI
dH1N6m7+FAK2NLoVp+njsBynm+bLFJKdvz4BEGfWBsdLq9iCrRQR8ERT7HKc15areoewnCN+uZlj
XUaKM+y9GG1ViC3+fENj5FpETx2qU4+DYh02hciZ59yW5T7Md40aKM85C5VHrq7VULQ2CBVAFINu
VHz7W/nOkzbEBAdIVThVpR9UJtYd+0ahhHewqQNqCqNEJXJJwWICGysVE9/XrQjsHW+Plx29XLtG
7PZ9fXy8jJ4WJcVwnsu8iJ5L2OIlLb7t/B3T4KHZHC+B4jV7Ocb1eQgtwa7cFlIcMLAV1F49XZdJ
uUh47fdpVSaKrRLyuhRprrJCiYuKzJ/ObHFwvSzPYulQpo6KDP9oebdDSl0Sj0LSCmsyyTV2VeBX
Jd3AEYO+ZC/Waysw55UcRrdNzwgxY4ouogWGlXzTJUEZ2/H7QySSOQsCY/KGEF++V4ey9ratlDZj
LvA4Qf+H088UG27RitVdbjAEozvqz/dRw00XrIoN81RtUEUMjxX+AUGlzzXFOzKPxqvtty2EWjEO
2SlxSJ4axQZT296uUBj0PhqhYiQn9NAC0PkxnmrNZH7Qt/H+Z8pQ/e5vf/srlsvo7NeNWGcP7ENH
wCki/M7GZRQYbFiabHWuEK9Sy2HrWqx/2JZiDi/LbVogteMpLWVgMEdddT6/ZGQV1iqAtrMNMh0X
TAIJa56/qM83b8D1q3CU9Mor6GQgRaxHPNpXi3n735T+8GJpBDrLqwnsLD9F9rN8CdSeFm3/LJJw
Oq/z8JamGen6XBK5m86vAVlQPKvUS72CGGm5jSxozZZ71tiYpaaUvLHW+U20qfyEOBIJcj/z+aZY
nf0WQMytKo/+IbjDQemOyuU/J4jFkSxdqfGO3t6IUZWaqynDVSFXfLYvgJhnCsqB24/0CLb41vHn
eblT7xxbrovaNQ53LSWo4BeQGXOCQkTEGwRlOvt4Q1uecWBFpP8sYU7Hgu2s3AXx52jKDsgxZQYy
FxMu+ng9xpU+304AujwjL63sjGMt5eSt9aGsdF89yASWIQ9Ijxk5AUNswxYBls3itZSUJSPv7KDT
UpRJNFfqEmo5tRFDeZ1PZwXcJVKlfj2okStBDdZGIMOwTp626xUoCG/D7hH8IXJz9XDXZ5jooyG6
ZIQuHEhxn+Y4t1bP3EookbcyQM3otPGMDgeX5uh8bG8clcPt4SWtmO6CSIVtTLV24aMmRusczeOM
+/KdzMCOYe1djN1ZE3ajYoBeEoWrBWdehPOAMYei8O/49Zl962XS7XjGS8RabFQMFecp8eeikdTx
E3ME0lApVr/YtJJFsM/X6zirnkNWFXL1kyBhlI7Azyy+rWwlatx9aBo2u4idDmutNtRo4batNJW6
X83zJTn+UT+FntH6eBvvnhNIp4nKWEEW61EjdXumeGNcLDRSzWFA0319XC77GLvFm7qqsWm+Gftq
SXI6iV1vXgEHfIWLipWI8fhXK4U6A6+UYmGA6VE86FJKbq45U2MG26pYnQ4tk4Ol2MLzA+KvJ4g6
uZA/AInVDp6llHx4vvFGrcavuxiwcACIFDYwzzvRQNtQcCCKaCf9hginm17+AQbf6/mOH/l/PXw3
EnyCVxkLycOsXK/IqtvoJzbQaG7BKT6CvYU4QoHNZvLtCFBZuXx/K5RB2nWQBmzkxuav+CCYaYuz
T9FysnUcC6Aohcko8+j9YjrELXfb7+kflSnkfgoQXcq7pykYH+zHAaKn83BWRrKeHI1UeoYlNtLy
PsdICmgyhR+Cohi5OJkLsM1HORxoNrXfGrB9i76InLMyRufHAF1UwPGwME06J5KxZ8XcW6E3hCpv
+i12rZaJWBRwQdeIJBIBpxZlsNCGN5rmnIpycObiduWHs5br6ys0PllrweJ6qpIoq1MUONSZOMWk
wBvn8nboYBf9buW6+PfT2/g743UoA3ViWanaFCBeEhRRpgikxWgHap/5qi0tL8R0q4Pg+v5xSXqn
PJMbSX2xkRBrXpWG93YhnU+xJbnTCyf10pm6kNyhSL2VUmmVK/F/rCc8YI9hJXray4SpQTth423u
6R3s1wSJNQuq9e4wkGOtjcLjeXExcBfF6sX9lk4ONTvQmhnvO5LJwCZRhAdOTeu7/NQALHvG1iks
9nmZyy1ufaX32RXwQEKQLmp8gb3katLy0CM87W0S1Wqd2Vf0EkfwJrhEWuYfgEdcdVuXQ3EtWulK
E5MqVvjY4oIXkEFLsies+ECAI8m6PiCsFTdPLNVUItJKzTvvH+ed17XA+fQlcFLH3VhCJJc6Fkgp
RQu2HNHErOfo/i59vdR2lDQsSOXPg9O5d9fWN9FioSnEUiu1HEKBPPHD5KAWFn9IBE7ziqXV1liK
C3+xNmTxFYnRhy+EwtXK7boQuTucWuG0CuZaGF/rMatOaC8Ra6a6yCiY8wB7wWB6PE+EZTgwjqNB
U6uI+m1LuDasw0fKywTrdduJeaewfbVi41SSHGb9ExAMpBg2oo9+enzc/hU7I+FHGw/3dsbstlEU
xoi6TMbDFXyDDHID1gWsEL2IZg35BhQfvYzDN62tQRnRMdAazP7vbViK/k52UmB7bXUMNu3lSQL6
br3zMUwGjdGvYxRQCltkzp4kZyAxBWvQwecl/VGEjQIwtLPYcRTNQqP5yTC+CvfU1rhdcl8ytiZf
30pTAAJrzMjAO3if5vOvgB43LsU9PmDjV2mLJ4Ihgd9pFTC+j5eafaZxaz8u0Qtl0amu8uwyKwOy
DQwNNGXASGEuDthmbECGybRopH3Hao1Yai69vka/ecp6WvbzLLXLNp4c8kUZo5KXYMdIfl+zw+8y
z/xsv7fEXuv524yfMp4/dFRdTVHx8dC4TC+KnQuPuLiNISfaTEff3mJ7r4OpgF5kLSiUJTVeCoBE
KMN7bFMSYDEn5sMEGm8K4bbmbhtB29IWZaCcbQ+GtoKFDcsqTNxwcbY0WiG7RLBah2BhO6V8zG9x
6W+xfURr5c+ut8RW1ghvaY/Uadguu5ZIAWDOclzZzns/jN98gHJ3tZG36BQAa7nZYKTVsKxwis8U
UuRwftEkCD2vWrE7g4QBVMqg21a2jmEOvlSL3G8lZrThV4g4f05HxuvSRUoje2s2xrrSfqRXqspZ
ad2X6aqMS8NKMGp49mLBZK0QG5Rb6I7NgS+XRFh0u8cCp62v7ImjtUTXQc2gN/EMerulYO+SqaE1
ZKakiAoRUbbhR9L46JpaZFnBekACjJqP57g5XQet3lt0YzaBu9dp7dLqWcUCTI/OetNvPe9CYphd
49160Uwhk2gOd4gq/3KZoH/g/RdMT8dnFKWR3LQ8ghjwVWNlz+tKhs64+P/0+rpQDTqauQm2pbwr
5WKNSN9GJTHAM5n0+rogJ/o+/kwmQ3MppO0ISYG71VOWLvMx1f+xqEUeZjU6kSvRCe5GZr4uIUl8
ooAgeTiAah3CODPqCuPjvg8qnLuqJfnF+n1dUWnpDGVF3YtcARZ0dp2StTbmOonNVYfL/bDpIBmP
v1SSdFkN4pf7fW/VlQiWh8dlk/IaGy0DudVrdHR9FTuJvPO8b+SsnWdcP/iy3HgEReS0o5e9dosD
PYnCJBGXbMpcoV+WIqaNguEtogbOc4xscERt2HgZ09rv57vGspZXDGnPuL63NoFSqMSRpwH0MRaF
bZTJsLGwH6c1UQJOkzSxlJhAfeLeSzX6aeWw+TNIqlCSyo1Mu2SMwpVuZDGGhUpWXbcSuy3LTKNl
qmKMGK3OUzXZnqBtV4X8/Y5rQyhqU0ra2ijzN75Vy5ifIgnq+fmCTsxtu4xoFxojWIlVRwHB1KEc
oTtDdHg27CyyEcu8sLlsQUiXp1MyL9yS7Bi50nxBF2C427aqs06pJCIGOY3iAxJly/QwygwdR4W2
uazEwhzMR76uHGLIAH3+riAQO7m92fP+1Mrj4qqdOfnuOo4/b/PeAtSi3PhGLesooTfzamW23XQe
A9pdnl8VD5u3d28DAtk/jzClsDCFUIJ6XVVdK+iU/bwtZcCx4q4mwRZP1OJteENnFL9mzg/CrPAv
s6wCxsYL8EoB3k18mxh0o5PBtpn+rsRI5TOfYcIv/CpjtTKZhYa5L3ypWJa1hFyPT64MJ7d+2Ed/
ypI84xf+BQG8IPFT1vx/2ocivg+V/EW9b+OtHbN+7mba7Pzc/3rQ4r5LLbRih+G9fLPQ5A6xrfV+
pLkpyQ/z4PhzN9UyvrVt+EW/nuK+O137z71xASeTum9FeCZ2pnmW3NRKfhNN/E008hdt/Is+3JRu
fUX7Lkwrv6U6/oNlOMVmvaGpbazlmfbJbSzkc6+SV8zvDWuAZF5DXFDkgaBwTQkikPzMdxHn15i7
dlbsyttpk8gUat7crj2SGr+35m69FTit8pOt/4RvaLPzJ62RVG9vaR7/SQuvqovAP4upB/qkCxa2
Xs1y78aUsY1Vrg19udmfbo+koJ3J5N9s0182kT1NfmmLm5+2tkyvs/JfcqHfKFenkm9boZxjEc6v
UQU9fVLL29ikt7EMf6zar37pl3v5GIr0ZubyL7d7H1Udfm8FCQ9ig2GcFihtJp/qXoHS1PJ9Sm9+
W8hboMiFOrLfXfrHWvnH0te+KX/rGTdsa3P2m2mR0kSkdFqkNJsd2vHimjycZqnqPdrNTn5xafFT
d1+W7A07umaf3GnLmJDbeamL4FGs3YYUIdRU8k8qirWNCPG90qfp5INLq4+2ln95r/Rpq1DltV80
CdrNlTO/j+Lr5224v+MXvFDhNGIxGQJQo7uZt0ySsb4DwK0HcQoaZ5jfFm2IXhKGOKvDch1uy/uE
TW+AJML88+Nygtjzt8P5vuD4MV51cs4yPzrDntLorhuXLTLQclZ2sDx8FR0bbOWtWbQBGmmty+PF
QgwgcEVxNCpciMbTaOuYlcjgiTSf+2gOAcJ8WlyeZpUzmenzL8PHy/ntAU3PqANeLHFBU2ECg+0z
0rhGuija02ff+bQLLcGRAiD8dVEPxr8NJMW0kLtPpNvzFxz+IbIIACpYzwLiXA3DAZhrYn5d+S5b
v2OnAOn36Cc2do2feKr04eVlHr+fMUIU/zkbrMJvPbPH+liVeRbrhywO4DZZ+cFe2pfhp/JTFkpF
AY61cTNEHqHuUv2xzv+Y5cMIn0g8+2bfBBOz/eZC+QdP3B++1iMOV6L7xcQco7bXIt52NrkkH9mD
H66HPcM04aJYLglFoPZpJ8msdSfMVO7zyKqVzD/e6blrr7YIJIZjRl7WDbVVmz/jQ3AznsMpZ50J
3y6qkiSWpw77vjDtpU2ikORx9b//4iTGv03zPP0YT/gvy/xLYay6vMhlAwPknnXYqtCKnBf4Evqi
5vEvS/+lP+Pjr/BlmWm/aTXo5je/neg3q6KM/2YWfllv9jF+ufDr3H/NSqTxd41dEjFm8cti/dLJ
B/j0d9NMUXAQuL+8TNNlHK6/gNiIj1T7kfqVPwe/t8aB/n3PdqBjL8t8TwTk8S/ZGnjLJfPlch9v
8e/8DWEdZ+kX3Z39JdpPAkfY3JTKj3DBx3tJ7Fkb7hlbM+C5QBb9ElXbOEAnXVXa9MfHOJ+PiU33
FwfsBgvvXg/tl6i2xx/vw/1jJ3409+cXXaHhCM06AtIk5dYSNsp3nIG07qcuUb2jw5gpmPAbfx5H
hDGooqeVHAmkQcSM1foIlZnwgIbnlDBGF7FbawK8kwQoacnp/g7E5vR6/gnL2y8Qub2K7TatnE/a
LnVSCGEE/QCq6v7jrG4Q8/aYaWZrd0jVrLpYG6aSTtw1YD6ftE9zSc2FJ6ySWto7l4VmcilZNQlT
oMu8tmOS5zQdH8QGGsWP2KWwe9+uAo/mYG8J9EC4g+war3usqo6dDgpfa1quRdk/z6rP0UkRG/Q5
8R1tCUS1l8ROuPYG63V5zE/vUbmuzMdn3szjSrxT19Vg08boe+lprmy1urlOi8kka9E96LWuVB1C
saL589FOt5ROh4ZwJuY/IV38BEEe981WurwMpz1WaCM+zwHa3R+sAaJtUyl9DnGUXfKbBQ6x1r9y
rtxxROgj3n/tqhRP1w33eKH/vflPYPe4A2BkvB5jpYAuoo6lgN4GckERxK/YfnbRIWwcCIfwV26B
ARx7UOzLav2SqfNVKHklEfnehm3xey8Zry/LDdtd6nwWNIPSz93HOn2hxM/3+WDmEzmIzIdm1w20
r8Vvf3T2/WbfSv8l6195H94WWA38fXwov5HsLuJQlvAo5tLh134JADSo2BJsy1Bqck63IjaJ3kbI
1tNs/DBmC827Vu9hFW4G30aA9q/Y/IFIa6I7kasH+vfpD44F93//+U8+ehrzwDOfwcMhvTAztgMF
EpzZrAzArmkZbozZksPxc45vSxsebLe5n0ZSUeg59tNtOPeWP2+IOK6PTVFNmY8gu311RiPeETKm
oB3ex3iPMb/QFSnC5fTBTuTNfcqb+F6wbfSBGPwYWrNGr2UdfRvmmS0UiWHWmP7Q2GDe6n7cX7vD
8f0BDaWis/evnRHH4DQsf46XV/FR+iZ6DEQo6kK/8e1oJIHvjiA+/S5cuLWmaf5gdYHKjsrpLnyU
7AhWUuqzq6sHcRsXVYX0FmGkXywzQHzhbexTlwM4Gc/tPb71ZVTNJX7apX/w7PNQ0oNkVPfd/yqD
jOGnViL+/TNGJZb59P5GRX5Mv54vl+FAwe3otP23yNfCXmsggXYQi9MJMBnvU3Y4nmdsGuJH0GdZ
eI86Qc35FxC/RG34BNgjAsvR3obHfFa2NQ9OtMz4UrBDi2K29H14HZggixcFZ54ye1Uk9UZ8xm9R
LamR0x2JQy3M2WmC+CtuAxGQu8A+aOfLq1PM0S1reun9OAr4uA+cedAD/+mQlB6/IjpQ/5dR67vP
mWdOFfHFys9xZyMsyhCl5FAjSjj9cbZJDfRbjn1zhYDmKV67RsNUYVq5FRehsfTTUpgr4XlblxsU
mfleyFfA18fjFH0hJuTfz6fb2VWMsjkZ8+l2/mmMymQGpGcpStZFgI21CqPxpOxVFy4y83ul/HQT
hj2ezskB662Lrvx8I2WR3ALOSAk+zPfz63BU5lOISWg2H+S3+3Wcp+Shs+R4XjW+lCIE0L+c35Qh
Cun6be9NYouLUgqb0CDKV7UUG7Sb8PJ4faUanGjVH53uJtriYiWHl8tj9gug6lbt/bTSqbjHN96G
81XbADFiw2XB5YyV18vlrCEMehZ0odY1thQdLiiwv+FzS0nGopAwVF7dv4KtrwV/+qKRjoatZ3pZ
jHjDTs8OPKetip00UU/UTMrZIbG5vT0o5ZyqxMySb6aVLgzNBF8eKkPzgJAnAoc7s3YpysxqMSEK
wZPTPoXWhVHqzvE5XY139gCmxYXqTi7TC1TMY6pjnodP31f68Dqczb2Ps5Rlm4Ya/f/Z/ASwkriY
TYKVO3uuurahH6TAxk/svzgZK44FreIda0GHvYSwTIzsInSI8FzwHz9ueX6wg8qeLo7W+9F6BkXL
o7+fsS+YcWVnr5hF+HP1+nGDMPwVk4YRbABNjPN3dfll+PNtbPFFevFWFm2W8jzWjpFyeRur+DqK
9QuWU3XbCO6hAmbCARo/gI8mxqCY+IW43BjsEL9gy2KANbM96R3x62P+53pNglBr9OercAzLNXJn
vx/9tPOfdt6Efr2MP42AIUbz7+MM7AbICghFi9QtzdJ6Ki+6wB4VFtfUhhjaool/4qpj2l2VCviJ
ve34ScNEMMSgwPT2hA3D7XYBFmG8t9R0EP8LZQX5OjYzRWKVawVjj3DTsTeIOHuo/TKUV79FuoPj
EJZbbLNvKPTPv46OQUFnRcKBbJeRzVyyolAOoPaf5Kx2qlZW3IZn1qqvjM6sCj/pOZfAG6QLkUj0
Ov442OuoLDIPx/K7RWr3AiTrj5syAJtMvWFZGq7T9fMDYI/qHCw73/ba5so9KfPwkN1GK4/DFXm2
Qamr2UzlE3YDGOg+Ah+iT/wTxDY3rhgfjVbbFvZlmJVH4wfgKGBiBEMOF+PIJmVHJh0KazeNvXJI
Rrq6YWU0dsRe98DVQtJ6V4BMi4N85Idy1k1w1o1FZlE7eRpRuWv+rbC4HzGRR/Pb9GUpXbGnJ3Ma
IWGI/5h+OeKtpZdzhugdyStlAC8sWPQppi3p5dfhHbZFYnmnvJTNVeAS1a4R2AuoBx5dMOX0KvlB
KFMuavlxK/KtqKRPYLIHUKfK9Dbit9xee6d6Gcu2cu3ZaEQT2avlonRCbfhWOtY4fSVBWomxlaUw
MYB33cmrQvnxsguPx4aMGKWpOWy0RFICpPYjYTbd/bgiLMtWOjW6V/99ncK/mRmkhJeowLNcsWKK
UnwXmSKo8z74FSvUKLxGkC9ik7EPg6we+17ABfVd0JRd9FuC3p5x0wjWSY2XHHAjtR+NqGHXtrCr
kv0xA6XcvHgfVBE+vWxdKi+5bCRT4XgZB29Nrb0vSBcQ05syiy4c0sqTQjnqUhZBmXIz89CQK9Zf
WRlvlZ8rQ5WjF1XTZczErc0U2yTvJHMmMHuJbGl43Cek5VEuXZ7Q/anrVkrfm1Upm1RIN0Nwf7SO
BvTjnTQSrNq1ElgfonKr2HSawoe4YoXtdGqbNWw68KHk5C3I4yO1mWSlBIcJ6bloz1k6xWeDhegs
L3fXsw2/438RbWDEeJux8wBnrA4GGK7mP6OCgxFfwzBgjdX58yAQ7Y1/37NpdJ47mUJofJz4Sop1
CPAwbYjHRXVpiPjvt+vHJRbFlNXTCuK/nG8nbzlpztgBE/uvPG6Q7cSvH9fj8IA7e5o+SoZkjoQU
HEXMJqJhgUvY/yj6acFidv7d8AnkOyZQ9NIEjsvyn3/90/8fGHuVCfhgEXOW+QS6PTvAwkGcMzhG
Z9t68h4eQnKG+Gk8ToRGOrzM4/CNQrbCf2EkI7STQiGJf6FQAvAaIEZQKw6rhVpptF5KY4lj6YzH
FE/nxYeufxtJ/+VOQeDL2fVavdzeh8P7wzxYavsSVwuwy30jhfamy8EC/VecfCxe17IIJosG2e7M
EGBCyR6HecIsuk4KFwKpiqrJ8dNCuqCAkgWAK1ktvB1TbKA2q8KwqNOvi2tZjZ3J1N1ss03sct1N
C13C0Rx7HzW5iI7F49UBl1F0K1ovZ1ATWIAiP0w2j/gP91KgPBbewzMopeftlw2hgyX+e+IJThfb
em+ePoaoZGmLShJtSvy8aUvpCzJsR8JXY1L0HI8vt2UmvxqccXyuPodBlamc5RuOxP72q1kymv+s
FxuYJ+frY0jkjPBn/GNisidyCenX42dThWdDd+FHecAeMf5xLCR3XsZ7pCkc7pqXFEg0XVv7bT1q
rascrqyQb2aTFhNtE+ZZCi4myL5Bvr/4066lAaSdWD4/XqaLtg+VlMHhzzS1ESyVx0xRJfnWNJ1k
SAiiIfFWO0nYA4FF+gT86Tetx1Gsh59IX7ZFGTkAtvfxLfcbhkB0mw4xa3WtgHAUNBTQ3VZm0vRV
IJnXqESR3oSmlz8t49vm7zz8f2W7dp9Ju8cNt55dEQ/JYY0ej9NDhSLinrdBMsxOd7300w+gOJ0/
xutZEdGlfzlkmUdfji2MjI/kr0DRIx7MpkjQ5sGR4PDieqoOn82qHx2RbbyvNIoAf3gdamTrxa6B
GvXtNF0jSS+3Dw8I8ezYzCbczComO7T6RnzJjSRCcA/xWaTaDeId6yKae5eZUYcf9zwhYg23tZgB
Mxo4ORLZ8SkVkoA6zQNgz+5T8vNMEs2xGA++z42HVm/NRkxbu0NRWPHxhpXhe8sdVzI8Czv3ZW1M
qW5v1gXn29H2QmdMfQta7ixSax7ed/bfpp//i8KR/+NxufzufTx+i29mKV0P4wAZfXuB7mlYwAUo
vPibEVEmGGd1lgyaR9fpYK7dfVDUB7vvvrjEyNEX5TaIV9RZiPP4akwGMhmjPZzwKDa2h85OiZeq
li5VLO6NX/SSfmcvhvZpx6tus1wEYNgbbEdLeJW5DBhpd5gJnbTnG19it/mayz5UvkNTt/IRdPG7
mocS1fr857ddgqtrZdu23rFlItpF8OGjbyMLhWYe1dCvA6S5jVOixm7akhnq8ITzPn+6j9bvSTjU
WXAb1qfT7QgM+E9LhJ+pFynljGeS2uXL2Wgs7IQWfx99XLBgFSM1nlJCam3WSqqCLCHs7gvIyoSN
2FVP5h2BigcABB+uw/cz4+JezL97ViAs3vjOe9pECbRg70pW1VB0vksuDrqMw3x8T7eiwpFqXx0D
kWpbbYPjIKCbpLE7CKVWwo+DlE2dHwf9wY+BWqxdqJ+TWd8Qr9jrKlZyUmEyio13On/fwCkO7+fT
aVRWWfBSsJb1MsT9IqSy0p2MdsoXohTgfRVt6cf4/2h71yVJbiNd8IHWUhb3y0+Kks7QjkTpkJwz
82eMFpUZVRXqrIxUXrq7aLbvvnB3IOCIdDiimtq1PRyy1YEEHA6/++dL2XZqlYp14bRY4F8LlNLQ
NHAV3reKSrBgqxBTGSVOYRicIpi8wLJjG8OcPFvyfpoYhj4kdl0Zy8nPK1eYw7d0wb82lV/5+Q4z
vBGHH6Y6WzEUKTigjfKGXxwTUYe8wU79ZHPSkJvGhOA2WhTskhr8R+N/wqVQHDnQ+UstyDqJelSd
7J3RXBxbZ6o9Ct9DiTAjbcuYmI1PhQFNX14nGM4URwPAXfkFoSakZoeEjjB4o8pz8DTCWfJlHn8O
RPt4VB5Px55Xh95o5tej9205W2ENJoT6xbt/fORxW5+Oxlp+W/xH8/C60P4Dab2/jGZnnrlU8EM8
qG8nLOkfzcNBP7BcWcQFrxUEqKGVFRq2AizBhSN0E8wKqVh7KrW0lZzmWCDilLg+YTPzI15RGUFZ
oCQagSsxyrTQSCG1FxUQ4Ohbv56/uuTjrf2F4YisNs7nRufGC0FpS0zMdohp00uS+wPCquQPB7sw
GNluX+ZFsuxc8k4R1KzfnmaTsLVyNFxn5XBFFUI6MF5AqbQWnRto7zcEsp4/FeTMXYLcNXsdBf6j
kWTmNnHJCJ1huJFd3W06LQN7LwM4CoPWWcra8mv8RxNTib4uTVWKfsEaIoR12T6w1fNxuBlqIwRV
wr4omb6qsOQo+hSdeo3XBBDf+4sAQ6ruIsKdrE6oQVd254UOw14lmxUnnX1VKP8gsJiZs/n+avaK
s2bFCliDpFCCteWDNVhAdQgrvjf3Y6FjT+MRH628Vu4Hy2AnpQ+AwyxLOoqRJK4CTlmkWBZhsUv7
80aAKF/W/ue9l00/vR+PR+XL1v9mFrYfIgWUL7Nwtw8DIJV4DC3Q+E17V8/TbAPBcolgH6F4H24h
43RLf935r1n3x3IANE02kbIML8GCOcFKL5fpYIs6iRltUe78jA/sGWZb4kuB4EX0sYLlXHpcXo8E
gctbvYTNM1DsG++TyW0l0SOAMQ25pN0aSW77btifoqO5xCVeoHkz1qwJT9EDK4MRWPePu6WYM8yI
v+pdtnZKuF2ugqKMygZucEFGRyjvuB+xoN7W7ymYFjiV3eMqe/6h80IRIOpWpao0t1U5bg1szbKO
qLkNuAyjC0+oKhDe7E6JcvMvb3Ek5aLyGNOsHFqinl0pTcAq5B5hRTe0lQIVcZL5m81L/Efr6+Wd
hcrOeokiKeA4XL+taskG4rbs1GZ4E1ebaDlMV0K5x277mFSEt1GFSNQVYxZIItm8WnRbvad/DfZX
bUtW7JXC/xNOmrxV9oI9FozfFXKc2dee7oN63i5o3MHC8d168HOqMwxGIPveOhIyUN2liIeCQaKz
1IbfpY1j4WYX7oM3vNSuHm+X6OqZpwHFj9pstT4CLbK5LJQHN9d/HIdYLW9uuxbcyuBSuwneGwWb
v8e4TPPMynqt1pShpktd+VhjZyFE5reLz2g4LaEQfACHD7BZXnUSyLzfZjiiPg57YSNij1ID+Qiz
4jAq9cWQ72bMbKi2tNCHn4eJokbYAalK4KLNpJ9Iacmd5cA4F+eStnTLhqKOE9eTSZf6BZf63nbw
n5/GF0JEcg2g41c7WAP/zgZ2y3PpIToR5EPJliG2ytyiaiT9j7sK3nNCxecNW6dEGlePioC41+7w
Du0jC3PoVkrNBEWLIMnVo8q6vl6gsRAU9RTfaMeGJzSdJHOAHZBwKxGc0PxdE31pbodGL5vnkaRl
x+ZX9AuEo9+g9cagJGn/ieaJn+JYU3CxNTNsmHfml6TqJpseSplzhX+lGHeuQ1llmfLjOjGvmITx
6e8oC6GcVqzkvGbPEtbO61zXsotwATstLgjZ+aFWa72oq1+yZpleKYeP27MOpEBsBsTSkTT/cX5B
dWoNWYj7xN90Lg3t8HZs8LC9ZZuWQjkfd+IrT/zJUZsunYbWAbFbThGhKHXr+0PiiE8f8SHrxyfk
3A7dYC4Kxki8cQQLyCWFEWfxWtcUi/AJ7LOk7PH3ghHZh1UhpJQUO55mwEFVFfcK0udse+k2HWv4
nRkeCf4Qjx03utiq7UdXXf9p/FfaUNeuFcQSno5Kurih1wZk8bA7EDEFylI1NfyWIiabtTYsUz6m
bgOwx1Its8FXpnJSKzDhDf5+7SxYOy+d2hv0g/FpQwWiKEf8jS2UrqOGzaM4STn1WeiBlzGFTP1X
cTHSSI+CeqLBTzhf5tvlfiAMOrPHE3g/6bfGBknlbe75gVjfjQ8jzyYYmaAb4yUzOX2JlWDULvpu
ix1bRHUTGSKPzBtfq9fXCqIiyaBIX4XHbWVPCZ6C6icVWRalm5OjdAsbvPmWcQx1HavKfIsK7yVH
AtCjP/rg2WtFRNkHp2e13pZH20dDNY50FtJwgwbynIapkTV3ADosbRG1Y2gJxrmkkPT3MifRm1Qb
TluG2swqgy3erlM86vvlY+J8w5Nlmo9F5niwaiVMF/lyfTWi7xUcgBTjlMzSw4Ov9PhHDKqiaSQi
iq63EdHxUXdFnkkLuaJ7XBBqyF4UC6pq02QiMZwkUSEZ2htcLD3AmoWxwWLVGrBQTeEEphQaCnhH
3+gHrEXPEWxogb9ELMOE6ZEfMIqL3Js1CKO51tpOLxgpnDKNe8Zk8GrzqtTjJIuNGLcpmNKuOt9q
JMpPlFBb5GcX8nDHd+my8tPLCbx8r8/ie+ylgZgn9y6/6eAFi+VAIqdletblk+hirzpSQW6tnUjM
5UN+LROVYjA+GuZm8DZqoJu/msb3ba92Slie8V2WgUbrdIGeDLassi2NxCvWhHoIm19GGJoFE4bj
oE25jeo/RnQ8YUcjzCidk3yCnrUbDLz4lXyTg4uSYDQxLuoLllFrl0GoYryFusP1cIs4jtWf0QnD
SR/NBW+sXmctSsFoYXd8mO8YWVejVWU04hANqqXeC4vTI9BpEU8/a3UDOGlLTiBu9ekTOoDFgVhB
hJ1SxVMzHC4QXPA48zChSCAedatFwWz0y0kP+59bw/5FIb2fxdx0V7bZ4mwlXtiYFEv6A0zIgSLK
81J8CR+RzEVextyVD+coChYOhlxWnsXMjA8F/ou8lZTHssWPBf8L5syzaYtkfhqvfW9lyAb3XUzd
xhLzKW3BLpdpi4URlxDAhh5C3NzKNmNG5MuFpgBAVtFcw828mAtIknjcsgxs5bLYnhpLJunr8PnV
coThkoKGhyvgst1306g1BHrUrgpvpF3acwC6ezqR43h8R4LGC3rh60y62w+kR+OyspbEr7Pf0Ztd
rRc3V+Ip1u2eZ9Gv4/j1hwsaLrd4qUnG8wT4D6YbrACAnEF8g10oS+xVgCjC0r/d07tWiglfdNGK
jZgLgMn/uAnHosP1Eh3+mG2s0oybT2Sw8GquCbq8gFHAyMFaa91B7epoiuqLeRfn+WxLwginMC6h
Vu+VHRvV4zLk6Nkc0dDw9AIAKLpEbvSAqkVmPH2zXVbklfaSA+8Z1nsZLgeXPybG0IsOW8kdjCZT
4T8B0G2v26cdt6eWiTArzyhZfvDoCDoUQPie0Oowzo4i7OghJuQlsVLRTpiogm7lRdORn+CHaWAV
frQwFC1l5HSctg7Bprz4H75HZxr6dEAaqx33SfqPlvVNwLaTDDq3XqEP3wjJL8rW6mUNcLRsH5Wt
ByAHze+TCsvZ8/5ymTDH8waz425P8a3akDGSlOMAGtEIbHMgb3KXZ9mD+YxgAkRz1mCA7UJLA120
BgiPWC1HZGba8jGADiwy3hwtWvWIJGfkAkM3XAq7THYXjRdqKpyk3RSLZaESfNldQO7LUSF3y8id
+7KZgGLedhueUMCM8QXJW6Ndt0u8ZQEWBxF1MweIP6omzyRmDTcUb0umTXTLEmyEFEtCkWBWOME/
mG65vXBUUvIx1zaPUlfB7IIY8hl+UrFP/HRZT73lCJrDgQfoPRE91DTsGQIzt6t9J278tiLiimVH
HE5uhq6mZ6MMno6UiyS4kzkaPsdrYW8CNEVv41PzyYqi4/AOGmY8Pu8OI42ZUVZrgku2jTIWadT1
nZuX8fJ6jMcXcCHPcFVLFeMhyxHkxIw4q77QdLjBLPZ4KgiW7pk89ya9B7tVNuVlUY34zB/RBKUi
VdiOfOWCK8C5X5Ympel5Gl0ngsIeTcDj+YpytD9Xhaac1rMr2A3W2bNcYYEOGOYT8YnR03pnIz4E
zyUc089tEKuHX6cbjsbUxTF7UT4zz3CLqQhX8RbxoKWkYs4D1IB9RVVsYfLQD30ZFA7pm/Am+aiC
/z/UY21rHOpwrKksFXeKkLMRN1gHkYLarHlUtFai6BMp6GKqUF80DikdNGKgeKKWK56OaUKP9UI3
8w43o/BYJt3E/WTMaOP+s15S5DJF8zWCzUB1lxAF/93avsmZHVjgP7iC+Wn8PA7HP8bHQtBhvW5l
Bdhub79qgBDItV4HsBzqcjTbxbHYzMpCWWgqlwG8T2obNlFSh4OdXUjkJzfT9X/djf+jvOYiNNGq
gGcwPDMr9005HzpC80gLbm8q7N9IBPUzQ5bQlu4i2DhMHY5LXvbybl+Sch9VeJgHyaZ82obvZ2kb
oDmZpERAHMQGnhBz14HNlj0QU6FhK5mcbu/bJTLTYt0SZuRyILjbp7viCeat6gl+nsD0Qp8N8hQ2
WpO8I8ZwhF6TrUdwWJ1L/sVTtNISWcYbq2WGk0XKrOgqFRWMFEARGsZZQtB9gx/Z5MzOwTrKxNAN
2pj350NYUHFIMn7hdSIz02K4vfRJLr001Nt/AbfwJ3O+740aVQifh2EHHdOLfrQOP+mskiSVFOIC
RMcH0I93IY1KFVqQftwLW0TK6D9iyyqGROfZucSFS94HHRqhCqdUoY1uG+THGzIavYdf5rN9Ehsi
JXkumZxOmqS0Qt2vFGwZUuvr7l35tlSt3bQh3nWhFO9kvaioRH94VkAUg/Qlp7cLH0TLjf/FyAHG
8IJAUaorWV650ahv52FPPdUxnFovwxGDAwt59RmFXntZ1A4G3V3Ev+jCaah2JMDl/vROf938i8Nw
ucRn29XyGDU314STziGAxada1Xy0obeIcCvOFrfw8S7dacPcQURKwxXBn6kaaQzTsmcm6jftmk+m
6RicwXl+m59n17UI+CLa5LY64zOMOl9WgcenDlOLi4fu1dW4x8oZ2UA6pkZgrT/9/W8Wog9Xjc8R
qtvwOqxZR9dxPI4vhkCGpZ+mkzKupmYj3BiDEHt9fklM2qn5oKsm5AgLegizs4drfIBSzSeeFYuR
jktQG8MDT8XXKnOJcxxV7Y6gRQ0XLhXSdhKne4t5gUC8n7CLfB6vp9REsjoXhxAG96XcdtlJM5lI
Iy5vA/H0F45UthK/N7it3dt4wTE4QKZwYuNOkw9suKFPHBE33E/KWBJiBHFa7OryUk+il8bHBSRu
lbcgDubCr8evZxiWBtn+fypn4BPkeGHrFsoqdO2kMa40b0gT/nymnKcoyio2mwVgAsfr3ljVAwBR
wVbjS3aMcbrS576JSNSQoPAdH7PlDangfmrlflZj9eoH/RMP+tMCnTQq2AYP9YOzCWxU+ex/O4U0
TNxdBENRy4jy2KgimzIm6BY6NgoZym18rr11NlXOD+qR36uySpdJKkxQ9crF9MGssjKTLRzllbCb
8ekoCw+ySbBnhTQGdbEwLsqPZ23IVuxBLEdI/HpdStIh4IVK4YU85IUmqX6/xaTjI1x9GGtp69ui
sUpprJ7As8pZ+Wxr0BSuATdmICiM24rKyhKFvt7IO+Lt6cauogDzlQpuH5lBe9S9cipymTeeqha5
6uxyDJfbXnmQzNJuKw/L/zYfpud3nuTx4jNlesWt3H/er7fp2YgIddpozSd8d6i6Wpl3NKapoy8V
DwE1WarU54OI0VauJLdhC/+up1S2a8NdoYQ4zFW6FeWK65itB5biVfnxPj5m9MurMaWI1a/YRXKb
l6wz0ENh1z5mlgRkVW4222C7XlTLtZJ4w0KXJmyyPMpWoWhUHB4+k5a/ObpLG2ZX2KkJXJsyEBwb
RUYVuulZyBJY/qUxRifZNE4HKz/bSdNxYy9KucCm1XzP9ULKVTR9jBCSjtJYqonFB1YxBk1kFdJ7
exSckCCPZi7J0OiliIf1X5/+CWy+0Y3OJWuLBcQU0uZR9yN8KYoTwmdIc+gfMpmQ49EoUoTfStoI
cRuFPapMcoK0iJ7CImzQMzM/URkZZ+51uE7Kk+vihuf5ftrf7Ai/4fM8Hcj5V2VIzQUArtel44sK
nVYWWsc1xYMFO59S/l8W9T2pbFc5WFQ+r96hFpAqw9hRGZarpTiORRttnSD17NpZyfajf90h0bP8
6Y5Afwn7V5YRCNFhj1dYbIpimfYor3c/0QQNGExCfxJ/8Lh+v6zPyRdZHdr4pq/xxaplMQTcq9TF
gE+gktqOgomu6tybwuJaFS6eG1n3MEJdmGvqiZM290dHSCd11fju8o/t7m26XhF07/Jyj489QGqW
/mqYWR1Zdw+lhEfltK3fJyX58w9QMb5JfznwiiyUqr7J+B67j+3xNhv/fzhHWlJwe35Fm4XWb2fS
L9tFMwqL2JZ6jbfpzfzx8Ha+7obDZzh8fOnGv518QZCPLeyGHh0n9XLqZU0GS/tpfGeTHLA3woFW
AIziaVJ4Mvcrcjssefz4Fhlb0izFIsFBdnCUcul58yDTaMmX8Sv+/f18ouLWOS7Wy74ITSpixXG4
AET9fjqUu65Rvq5Cy5eu81/34XSjwk7qbTEHi9sAFQ9f1L69YQ/xAiBOrnzq1WKVIbyaAzcH7fA6
Xkftd706Zry47Fg5NbMefbP/dEI0HvNUoRMPRP7RrKWs0ki0O8xv+Leha/MMeP4XRO+7DHvzr9ph
vEHIAGsMm+/nw/j9cB1/MDbCCVS94pdXzC5GcMG8t/PJL/P1ynhTDZFXPCDJep3fT7fhK80NVg7C
jSTvhBlS3n6ItpvRr668sCLsvFEuopeCEYf5BqVCymcl470FKuSq/VTFYloIObFm9Ur51D/UBoei
uX4VaOUzwsNosS/D8TC+KXuuskq6GeC1/XC+UVk2yB1s0NIs7bLvJMfwbThCOaV5+OPVrDhq7L+K
WtvE0vzz7aL9cJWtkiitneQGL4X64GwLnDFBHO66/pqzkCb0Dsf9GwCdGFlq3LoBXELtLLXIerYT
Fz9B18OX+aPPeo0kEnsPs1sVQUYBMU32OKsw3uTbe5xI+JzliXET6oPoPQhoFRrLtlDGwn+PzxBU
cjXy0aVsiBCX8q6/a9Y+BoFYikXYg0HVwRk6xHHLSntA77Hf4VfAO28cOgxTq24I7Odp/ALIeLvr
/SluBPW+QxctfPDXKzsSER1bGHJ3OsBotBvl7q6xdcqCUbN+bF3APiPWYkB/QMSOuKa9x09Y3ZHv
AXQdVAoqSm/L2dwyvkZh2YuhmgVM07nNjTwpgtQMtU/YNaKX13fhFtikkNfhYDahwbVi/XojLoDc
RIzjPP8lV04Ro0TrJQIz1NLl+bafFzv10I8qjOVGcOJeLVGbyEQVP0lisWed+/HJuAKMFUrdlGv+
Xx3I1kSOX4AT43Hu3o+VwAV8ZPF1Opwn1oJqSGMe2NnIimVLl9jYxN7PgUBpx+ftsOJKmiwVFOaq
O3VgAovske7OLWv7VbS3UnSVSDr8cgmiIAnQ+ty/h10v0bNXfcgVtgTbPj0I7cQfXlmFZ2xWA3oW
VJmDg0JTardBIGSiQIAqLvuUoKjUhtCMdXrROgRxvVpSAF4u21Hl1JCnbo3JiQrKfKomC0ag43tP
EtvWniwPqGKXiL4mbUjfiptlsGKFcL6Po3iUNHkRqmg7TI2Enh88R1AriSoG+L4vpKujTb0CYeBV
Glp9iu+IvUKPWGAJvMAMbBCbHaPPasq7nf8bF5J5H9K2XbcOPLE68quiwR2iE65UsF1Ihlgf308p
GWIzlHoa3W9xV+bTljrw3uMprlSlLZMIZJPxPoCdhv1r/IjMSmTEAmgdbNsALerr35Ms5OCFV+LE
j4K1iGSqyddm0osXtxTfRy5ZN7ZpAJv/op8yi4ZZ8zipBeew3pw1ufBxXFcW4UkcnAFcyxnbf3HO
Q9z4LSUb3Bm4rglWlTQFuxHene/bg42XYycJxo0Y5krgM9+gWuNFcL3H9V9eVsUFRVoGt+EVFWmj
Kq6UG4nbrK5bINVsp8bzM6DWzIp9xR57UJpYtW3TNnVUN4Uywhb20a8ad+ECM8Zvt/kNEZDi4rcU
FcJCl4tChl6yyvbGDrktro9u1xWd9ORkYRkX3sx8YNW7FqBkftQhtOw2Z8XNfFi0SiV14bhhk6eH
P0r5VGXehkTMYz4VAAB6v3Xpco57Wa0k842BbIzi0VpUn/ARxu0o0dCzFuJytGUAq24Z57X0fEXB
RBf02zy/RVer+/DOuZ2NoQJCVIkrDNGVXdCSWVXTqo1cab7tPcb9OowBvUkwCWUa9iDw9te4QRU+
Cd6K//Ak8viTqEPpW7Ingbokzu9FeE3cuL9amZAStmUhWgieqZdb9+Xb0bW42GftAwTxscluziWN
GEr+bcKg6HLJBH+YX7GagBM3G8rw7RdccIUS5rc47FnvZyAItosdezenNeTaraM1nu4vv01Go+3K
OuvjgjyLuwFcxV93n+NMU8ddXRuoeN592GmqJCloiXvHPuCEw1SH8r95ZGXCbiIfSuHjQnoTLOT0
GjcQmO3iYVDloMJWTi6l3SzshhyjFUf3HoJxpbpslBbjEkhmPY7q5ijg4Xwd2x4m6Y3WR0/Fl8pW
vCOB+17j3CcGWhbub4uyjnO/GGLTzH/dnehzyQeA65hOdx7CSEXuSjEQ4hmHVlHqZlFV9tLpbO+J
LYRZvDXFInG40yuXgDno8S/lqJq1ZYi2RscmwTXQqMkkO8Q3iQOMVLhy3K3uwriOBaIaTp8BavF+
+wHwmv403IY453iSMHTJwEjTOKXMyoAwolezKcxYSEpWChAgPuMb8nHKK8+zLjTSVkLGMs3TfHjH
3MYQZ4BKjhDy7BCJCgtO6URQ3MVdJUjWbfvfbNAXVRgRczOuKGSTZM+8zCShasUH8ThtwTiW1/Gm
eEV+HzimLwvDKuidJYaq4+svwlhA5fNRzEmEIlhOrCLulmTSehQqNF7z/TBbjXyNh9hWgdB1Q6ke
5fEXD4WWNbdUUkDGKLT6UBe3j4WnmpYJ3Q5niy6xroU/0hEvOQjHrKUPGEmlqCYir4vvkUpeUvnY
VtrqeIGu0nSiQozseahKx3G0k7j1Jfp7ar4u5UPmmejrsTyIplbLrJOowqwn5yRFq9N7j5e+Ehcu
j0OMkEqkcjfkQbgu9uQH5WulJqCjICO9H6W3oozsAnfxeEMR5hX60KBriraLq+VCsklPxiTG4Ja7
GfNgsYrFulnG1LPRN6Wws/ej5VZSIJJt0MNTLXP0fUEL8fUJcvx+jUs8bJFnoQVtiUVPHwJPGHhW
4wZcQ3sve+Ge9VDYaFCzFvOStknAI2bZEtoUa9eZ+Ox9JNuDpyNXvQDUH6I3mz+x2D2047g6YjaY
LbMs141lh3l/p8l3Cc6oy3hZwYMdltbeedaHnFZ4qFQC/iTRdxiPipFaiokRW5ODJLKB5m2cwu+E
lTccJ4ie317vb0+JbFbfxMsJ4EmOX2wcZvsRmyIeZFpiD1zxfUC5is4hWHLTfsfwhxWTsg8Foi/h
8DahCvvb+xlM6+zxEsc4TFfmreOicRuui9QBMUy7K3kvDjo3HTMsxUDLkpL2b/ZqKwH04FrBnHLY
b8k6t+n2bMg5UebVlCJnIMY1qsS4YGhaKSsYCeVmcUXGEuTd4jY7MEgSAos9hGk5FDWp2GMvxZlt
3FvKu1v7KG7a9lL6fV1ZsKWkIJcydYvirpteiUOKVvGW0j8LSbWp8k9PbRpJM97GnUasglOfZVb4
i4ahW1uEQyaKU67iDF/EiltpDpD08ByGNosoLjo85QPn1arKpGD1Wj4ojS6oDSAdx+HzeKWGXcXz
8+uyyWVrHlORM5DDKkl+cU9fyUKXYpTcAgVbZno5Tre9Es8VKxeNfWbWAOwOCw8OpMYOQizxNzzx
82IBxBvPej/2a3EKqpXpW7Vl/AWJpXYJTP/eD0pZJY5WxZwJyhRMCbAWWeTFuD0hvqWHGNqujLti
hVTgaB2gRRSSpP1A5KSUXDOoBeZI6wh8hSGweMxEtpiYo5lUrlkvca2sipq4JsqkPMQSO4mrhiyR
+vgcfyp9qPzCOkWqhVG4siibhHRE1ohiPvQ0K+1RWBiueNSN22ovC15S4BnWqg07+RyD63rxBLPC
sEbMxpJggrhz1Gk4UVwOtlKoEgPyNJ7yX3dAzWXWFviUKZ8r7yRec0UCKUM1X9eqdQ8Jt5VpEo/5
ZJIos8gU85nkK+OE+Tgr8TY5sT8OF+OGPk+jcRGUDkxcgRmkxYK+aTlnMeCOlw21TDHrwaeEthTe
8etnI/KE9HNc9jaS0WebKTBWAiBtDvk/GEatecG5FPPzLLAlr1jy7KTfWlC4q8Dm936ynhhi3eB7
15VYU4pG0INNNfpJiV8uM2BnmfeCYXVyMrVQYs6qH9kMqTBewJ3XTRmhlY/X6nmIMm6feipCULB5
uEz4t6Pmbla1xO7GLLI44QTCEbcaezG8vRj+n1+cI7/FreSRAup6DissiacOaS3Q5FIGyqcCnMBM
xNZ7Sb+pXUhxXcnUO9WjZEJyQyng6MKoabulyjhu9uR5JpnJ6/QhTzvZP0rn6DqJo8wbwxo0skmo
FTZuqhalpDwpMWYLOpIiuCzF8nk33uRtOtkYpC6pCl60RQO2uy1puvi2crnA9fDOFSaOI4rfXiGV
sCtdInHjtZV4/DEFpNXll1WnJDm+La/F+oeA6E0vlMql0olFIVF6zdBkG8bZuZWixi6fBWZNKhrU
VdsLcau4qO+ClIuzSHlk93AZXsCEG2PQymiX1opofMhHGmHnNEGqYqkRY7F+lCHdflyjd3GDwIme
OJATriCqoqWHh72ueAI6fJvuDEH2m8LycVfdkwHSNlUvWqKXtF+Z95kYtB0+sTzqCaF61XBYIcqb
h1q/T+P70zxcDsmQeyul/h4Fht6mWjViTcxyQz8bifxTojKNVVCzvnGyAQ/j52lvLEDsVwSI5SVT
S4JabYdHs68UuyLlNKKeH89b0U8eDtwTUI8qOxN0UpeNganH1o+08b795f6sbMqzBQK21xaU2mu0
/VGrGuoyOc7GUuxGHimOehXWqnipeN2eWyp4hb+vEiOy3r7M5mauV7dSkswlNzvKVTMuzu9AMMnT
OB6uqTj2Oo/War2A6aCqbA95ff/w/uIiLpPCx7Fc8m5dfx1l0UqvSnfNpgmVXfaSzHOZ4ysA/Vxv
8/maLFttxMhS1bZVWUeVLOsPK+gf9Tqaht27yV/nYZq193+xY/U2pXPllItty9rWy5+zjiosVitX
EeuyU4o1xDjrqn7+2xAPyhUqhV37wVFIduMUckUJM6aXEQ1xXbKqnGsS8eQ8rtl6qR/5CYfj7a7n
+2Wa74tIetXujbe7+KB/WBScunteXwx2aN6LPVbf7u6VeRePl6HpOB2n23tcTvaJFoAZwyGQK9NL
qctKFN7MZ4wLHdlwNF8avT4gaLDN4Cu4G2IvRDjjMik1Kkk0PyZb4skMXojgmY85qQicq+iZTMqq
x4NdWxsi2giaiBzvivtAzCmEkU2aJ1XHV+kl5/lRA+IssaiqEIWXvBUlftdKbaZi+T821MRFYCel
za2ikK3WuL4QPUSKOIfO/KB2W7OiBSaW1w0SCfeb1SO7pCWswjtP8LOny/wJisoP42yshfPr7vo2
QBxkiGP45VnTrFEWSy80DNGMyTHYTMY1gleTYSzNY2kicJgFnDq9HKfrK/h60RwYbqPNQ9w/Ijgq
UUoyXXcD4bU9gRoazMaUQ1WVhIxqw15gcpyN5xFzfXCFnq3gRTpbwQbOoLpvfplPq/GK192/7tPl
k7LFniGjZuuYymG6WAZxL1HdbJdLaKNMaTOfWyEax9tcdSK7iCH5WHg2hRWykHYsuhe0458vs7H/
LHeBYT0e4rurK4lB1EWVxRgUpvdsecJ4C8EavwornHqsJT2OL4CrpYL5mkvsQ/Lbllre+3zdPQ6d
VEIV9LDqgG72qDwd6DsMR63qmq62k6/2kXDHi0I4f5dszuE/h/NgxP5IGjoQ2ArVPNBuiZiFKtVg
o+PhRRMdrV+QwcW4Z/iX+fKPeTopG+oZvQuGxTMeD0ataz9cSAweEmUTW3byDiIkQXmTogm7L+8Z
RLamXXzHFvK6nlyl6Td4MUyeAntrMp69Pt/8ZYxUw83vu7f7LSEDmk6Cw2VCcyMHVo0kS6zSUkjB
f77DRhRuLmPuY9t9152k7FKCQ7ntRtIm/rZJlVuoeDI5AIhYOSrj7IowAPhRMS163Shy81DkFqE0
C7Lv2uAFEmatpOODC9jIA3Uj6xPpKrX3UYc7st7P/75fh93fhk93gFxh9STYB6owppdkLeQFWpsa
327EKFIuD62XgjH9knhTOKINRVQdNVg0alWtJOicyWk0W8LkXFlg5Zo6i+Hp3CK1Y4voUoRCaamU
eHZU0aOItEgnWQJU7n5J2OFZz4jiZ587ojzdEkRp+lAq9pIwsc/szXjC5g/MLdlm/niIigjOtkZT
xgqWwSdnCpkP02zaLmtmYbar96b5OkwQtSWb5bMu+YJNeEbQ3kEj2kPU9jd+Ho/0+pUVavaSfM0j
2rXMC9hk1JbSo1pdHYruD19cJwpKYET2UmMJOHqrfbjEKsd+OX7MDO2lDR3nF1zMSjU7gS+awSFJ
xC8Qh2g34c4gcYbcvnQ+KNsqpde/LIVw/Z/fbl8JqB84bDe+Kctx17zFYtUEc2xwo9gT8PG1cIvP
iakeuUOQfXDGvj6Wpqh6sylDw7IOd4MktwlCdw/KporQcucJImf+KC+5D99hLSQ7P8CiWZdJhA6D
oViCNfHZRKpxEI57WTCFRSNKdb/81iBkW7Y+w39dsHK15B4JhT60eex2VjEoIyF047DxSgGUZ9+k
tLByhaVklHjeptaseMkycRGLM9Q0L4nCbW6GwXW8TIYxf4NaZbCRvkpLdYgaYyObWRD8c9APFNk8
zTvsffhDbJUFsDELGOnr2/H1dju7URtsKgaNLYbuVdYYGl2+cimDLOB7mr00Hn443eY/uebSeIAb
44YuUZcFCT+ozjiZ7y+gK4aj2e3yn+cBSBCdAIE0zNjpYatFZvs+nv653z1NxlAdje162J1itVm4
issqZOEUQsxlQjF71NrAr11ZTvi1I+39MhnBYKTe6fgev8VitQP75qg3aR4OKAWmwXfygiEeP9EC
agqh1hqgJogqJ1hrN58jrdhEjH75FCfLkHkJf93IfbBSXe3D4CrXEBsMyynRer2/xJkg80zAwprH
8ZmFrAyDHm+X+BpNEdLKwhMd5xO9ud1vuzhaWYcd06V0Y/DX2fkcmN/fsVL/iix0+AH6EuKROirI
ZXfJxgcaHni3mRxXOKCuU/JdtotNZOSMY+qDf3nR6jriLsahXh8vn09vUJf7I5BOH12Fi+UiqzLy
I48Z41adSEj3kEsnLCtjeMc+6puKCSTsLnOgQ7d/XKY3nPXyf0GQxAnb9RIDvex3eR4/dpvFeAYx
wacn8ABv77HxHySrG+keXsbbn6n2/vrH91+Glx/p0Zv3hf+GY05i8X1c1mWjQhn9H7/87a/Eu3Z1
Ox+JMThM2tm94P8RV89R41pqdVaRu4Tn0sNCzz8qI3ER1znZBdSzCyQ+zZdPGWKP/dQYt7cZqK58
n/mftoG8QO9ThPxpuFDpkjGcU++pKvqQ4G34nsyK01l9Qv7CWEbfus30chaeuhpWmD/dzza3f9hF
4ZsoO+eXRuOtduoQSvrOxzsEYKBO64p+AdBAYdiSbRSrYovevfbJmIBWDMEQU3gGGrgEPvfCCzTo
i7Pts/vr1fUsGwrGv24bRnQCZF4EojEVrlD0bE2vOOXLQpLN8FScGYOfWXqhdrvi8DjqRY6aEZBb
sBtEoeTty4UrhkgaBmH9q+VTFiBEHX8kTRv9tGOfenGMyoq66JZKOhQk8d0Xfh0fJr4bz9sIiFjF
AW4g8x/60k3KBHoYk/jnefC79ugv0LrFRtkBmOGLEVbqBVhJtToCUtFTAYh5je+m9Et4I3W5Q7Cc
zEM0Rt2JrNX4XmrPDH7Qmb+W+D2wHTDA5+lm9v6iXIMNwqx2PuxBH/5ZeZm42ULaLIh4arye8bTT
QX3iuInWL+SzY14wnse9eaEp0YNb8ivZudoPdgal0DEUHV9GvE+ipsbUbR++qtrb48aPvqJ6poiK
rRGEVGMb34a/HIaz6N73Vt6sJfZ+Ha5/wUvym4tbXXg09l59WJxeiS5pipAmffD78d/zD5wN6Vt4
gnSSwghNKF5axtdLzyKeXVnDbwFS+3XHleLTO0qV3f306TR/OVm8nSSn1+EzraUlwds+xJeoHl6d
02fMX1fMiMJrRBTCVsbASCSYnngYbkPKx8h8DIIVdXiDlowRaMmG+lBtjiHq6KwM3btiUa9/xOrO
wBK1kJQx4w1IVLN3k/l8Hkhe/OsJ1VT3Ie8YO+v/JUvLHAZ2tTs9Xc9xY6pqJZsfGQQlEOpXiiPD
v6pBhoz51czoQ+tnfsMQQaRqsWPJEWe4eIRr63wfh7f4QSoeJukevz6MzwP8fWUBdrEFqx++jsz7
ASsMHJWvcRpkIQ0WkJ6LBzGwc5aQqkhlNHwjlf8dG026BDvoeRvWvbzfMCQB9QPxCYv4lirvIrNO
mQOiihmn/bQf52flJbbS3RrutGLk+vR+G16AP05GYWGNO/zH9TzsNX+x6yRyAeN+Z/iFPyaswp2u
MOnI6mwUA+fbJaEN6vZBjrnf+ItxNPhvYCeUwy0Yb19G8JasGJcPgY8ms8TBaCkIOjeo2c2OxSJm
rIDRFmnYIiXGExcHHCttrSZAhh4PqldLC9Z+QY/iOlyv8x4QsxcNcHUPHF/KMih39zxMkZHcdv3C
r+9lx7LoaSZsAi0AaxeqloWCkblWfx5G1IXDEpPDEcrxS7eLlsuiTCl/7PS5tn7uN+2T58PBsM9O
HzZsv8/C22mJLcENW8QNdV+6Z5SMyvXSA7c+hm3c/C9zTOjL01cqmBDzBtQqegiBCUAFwMSUsquC
OdhLjSC8vh9O5/uNPz8c5L2cXqFd5e8WT+ommp3vdhr4lkVK9t68sWkXoY5aZQqeXaOTnoCwBsl8
7fmXTIaUq6UwZ22+GLVXZLum6tVMKcqOeZ5Kvht2JNZ/gFTFzMWTKnSqImRrTlWb+Im7lfYgVXwJ
KiUajkoVh12kDm/Gars74NTBfThpeoqa1XYddh42gul1xHEzFk+bAumzKoxXtxNcrzEQt/F9Fi5S
eocRjAtYy+0sji9pz5WHS1XM9wxW0tbI4tzv9pHk2jK+ho2LkA5VIAwscXL2njH+bPOWPsO1u9yO
ii2cS0FmJvHMe347G6FnTCUl4t+EdmQtyc7DCKJzUNqiKJfUSnLYv2VvYYE1EHX3yXGpQ8elXIxz
nKBxuRuT9Pl+wv0p/g+LxDPxYLZxxa4CmMFMoc4D+IjD3uztOmupLtEApPAFXpmNpLyDUp1esDDJ
3MLtPWXvViwWy4rIfPJ6f4jNjaDcdRM6FKS3/vT3v/35635EE5F0Fgyewk5yJUBfsgA968ZwkX2L
rxP/vmAJCh/j+TN4rstulK8bn17w5tVP4Jtu+br1X3uH97//Mdxet3zdhTu3I9RpbofPzgHvINvE
FsO8mFhNwF6Vz19CIjkag+yYtlwSVQ7Wh3zeywB1BJfxeYSRvyPz0kYl/9+LT1/i5UJh20J682Av
/YdxoLm5BEv+cII/lXvLcPCgZeM6C5AX/ae58mkVfmrT5ODGoxdGbuyroRJJe2Wl0q/EGoiXTdTK
p520Cf9poXxaR/ef2m+xfMkmz/sfrZRPW/+jtvoUddCV/Issy5X6kUaShT+67jZjyL/ge1FL+8Fk
cqOw6iqAcbWFjleb1lI+z/znPig1Xf8McIU/xqLR9Gm1fMpMlOk03SAsTvUvytfl8jUr6jhBYSzK
bLQI4oKb1miWNZjFZgNAzJsiLeLKAZT1cr+eN8yXPSkftsFGbDTZaBCg4E8kTFCGx5dwNn0VJPPc
/e+ejveL8vu1v8WKQOuilU2A7qNp0wWpw+n9bGWK7AdMT56gfPizMWqKaIys7zvJI/SlHuSp/gKK
kYaU/SlVw7Wg8Ge2Y76wvSQU3IXpA0fuBCkBKRYQrSCS7uaR7+c38hfm2xLS+HMqHVxVUuw5tLnI
WvoJ/lVxNzvWPPQYX/3FcPGYrEXpmUEEZnduU+fD5TK8L5krZ7JdYXLD/Wj8ihfD6xQJjtKt52s3
DN0GoiEn6krEu4irz75rJe25N79tnszir3mO+ydFAJVYLCsRY6bLZTwbpsKg6fQGEX+7sqvOwvp7
mkjw5WRhsG6vxla7qS+kZPFVrCqrbNfQ54GqJbBz5XpUAy+80M6ngugVJLmt6cOPu8Vy+AVKgH+a
v3DrgcTA9yOCn5FsVGUhFsrYUv12NYXbrRT/sFg+5Jw7xpKB+E3mf8yGs+z1HTEYhldk5ZZS4CEX
ZTqMdJ+kU8tsOlZ+vKqsWDA4Po/YTnDWG8zItyika7YlInZrig/W93I55hswtHFI3s67SQ3VUKFI
G7q7rhMEg+BUYU/zG8iARSZUzPO8ZCY1poBpwf/+219/dj7XZff17ehVcFwU5NIBfzH212L4OukE
8vh1+DymhDtqxNqbRRz5GJZj+Ujl+1wybixH/tfrfBx/iUalag8Ls1Ln1/Nxuukf1pn0oYKFQj/X
+a94iDlShZUICq+LNXspsGGYZP8aHTJPAWG/DjhMvYX7pj48ViGrxWrKupVe0M/gkfz8Oo7EJy/7
MONmNKVigOKsOp+NZf0rZh1cABbefbnAJMWLrHZgjdwXEcCLqJz9aQvSqU+BljLWLICfuCWju2IF
AqxMNlhxd57iW8oqfQHcjdF2Nh8Z3wgrdCiX0jtXtsdOxiybBepTzdLVOasm8trfUP4w7o/Dhexd
uxKsHt9jKxWimIVwTwtmoqV5nBVyf1ZwhNtGJvquUMheSoUdL/tt5/CZfVakvtiOC4Z8NO/ZM14u
l3BJ9NLRp4/vJguZOpeoUcQ/F0vvws/jH4uFZp6Mnu/il+m3jy6HL8FjTPv0rtXe1XkZ0rMOz8Du
dOvDrvpeqt1y7wnv+VueUvUgxOyMHojOsuhx7KlTDrCW4lDOFfuLjUXgp4sRtUQoktoU3CvnM1Qh
qs9ptvayHfML/dRoAB+oCDfZ0VNm4tbJ2reWPEz/sXXRYOLYJOnwZYhH46uc6ZzM/tM2F7tAKCbl
MUTNHU/F2+wlNWZnHiydhNeUa1e2pVT9AiM0QE4oJhurrwKidTEbEP/dGjo68csujNKWqw6AP77/
cED+wIqrvdIx1LHMscfK2A/nG+0prNxS7OW8leJqxqv8AaCE3xzAE9VsBREHCjjdr9RIplfhl74B
oIJ3V1nrYbUiC0BdlJ6E0vcE2ExoKayGQRJ9ndKH77tF8k3BwSGxdbrFMlG0jJgFoM3w2nJbPQOe
EHgNyoJV2PNQhtI0TW2W1PB1uMKGUvuow94JKyyXnvAfNSGZcX+dZYchi4rNRk8jGLM0f3uRu0YM
vWiRBJcAX7mseKrpc1ATBe3BW8oEmyxSJkhyjzKkmOPXZpmRXhDrObBVbgi6MI3oHpaMovI4xdae
dZCGKsocCrnDuDlBtnqp49kUpGE1Mh4z5zieXqCW31/RgG3JStqykuJdYSwg6PlTZLfo7PqONbh3
xSvLZF1382DtiF2JVwxOJpbYf42nnzKJo4VWooSHVrGOPCZ4jND9B3SyXGw6d/d5uEyav9g3TXhA
4o/vzFXZZuS1SUMArcTZ0QdR9KG7Yau3MPZpC8JcXJANi4svx1saMNdksVTIXvNx0PgKneQrUJAL
26x3lklxpkd8mZWraHUmFSJPB0yMArmIUnqDR+HtSASyr3hN42CpjX4IEQzXNfeRWLWVd+gPmjih
9wZwZxkJ7F8u4/hfw/HTSGxxuwyGZ68ArDFGc+twaTZTVvRB0RxEqwGiF97fX4fr7XvY3k+JlbJl
Jdb6+Dwdb9bs/BL91EbOcBN5wI1nalqlVeLfd9IhPA2un6ZzfN+V/9hXAoUf797mq3Ly0p/cywxH
w58pRLuQ8Wd1M7lfyheB+8vd7e8XeFJRtYzkaB/IGTGd0P1NppcczuHKpnWOyK/YWfIrNvNrvQxe
zkMkucnDXB5Zs9b0djm6hI/WtlLEH70kH5Ozfd1avTC17vrF0MVfYBauPnzrq2eWgvPdqFaBEMRC
JdXS/K9xdk1G5EZOV6OxTtiSvrMO2RGbyqM+pIvSVEs9GlTsLe4e+OAIf7P7Eu0MxGWcxRWmavfz
fDlMpwGCo9Ced3kGsz0VaM58xA7WY4EyIy2Hd/Dix8vbZNQfFoKdJup49T1SFtJCW7732yXIWjts
544KTDknc7l9CY15XSeA871R90v8c1cLVAVegJ9aG6/Ios+b8NcXvLEVNQjcH69MI3JRSbvxh0lS
o2Bk9HY2/u4/3Jnup+lfsWpVpChbgw1lIOZTPmsChnOw98PX6e3+totNfSKWZ5fAKjddXfxtRiHi
EklflU1klXQfApeatecvsVLQzMfNiSEZUNPj3doXve1ZFrl8VAq4uStSTD3aXOZX8cG/BKvnjcRc
jyJKWcG/NYSnyEvGXwpndNKlQJprPM33l9cEgAX9tMiUnEVcQDHNI4WXZNWS1PuArMq7gNPtAuz6
lwrfSUMIps3U4avJdLGqbCqT+dUe5//cx7uRZH+ZL/+BJev/UB9k6bkUq6XKkNq6fqRz5ZIgGk/x
aQN0ipUAtPxlWzyO83VMEbTidKhRm0T4/EPU9TyTl/iPZpGKmJ5WaNlKN2y4H6MA5GfcEeNHkRrs
UGAO50WXEEZpTVFK0sCZGMYympUj1dJjdK9YAVShILl/ymAbWyfMbnijcVNIG4iL+Q9bI+zOisx3
v32AYwpGIx9Oieu0QtlNKUl7a1eHq0AMA9XApq4yJKVnLWYjxxkrZU8Vkqz3FsxHKNiFIqTwSm4b
l+T1gwyyEAnfOYP3x59t0WSygsO457WU2cCWzSVdtEAMLDU9epYjF0t5lqQT6xLEBlFjtd+wMC7u
8/AyAtLRGZehiPOkb6piZREs33waPk8WkZIgVqbDOD4/R6foohHfZVIDX0gzuzOE6UiRq5DK3172
kVEkhKpWSp4uaQBnM7CmTh1oLa/F9BYGVaYrhbCXGJJeOYKhv6W5GlAOKphW56sMMUxi89iQL4vG
kDDq3/t0Bkuu121hTIyO6Lq77o0CvkxzJK1N69RSdiWyTqms47MZrFR9FWrDk10Jw8k1osdplWXS
1hZy+zTU8itaI4dZr5d6WBAf4OkdbDc3KlRv+KW1WHLLa6RgbzZckQJSseuxLhMfB8GY4o8YUoSI
POAnUWuH2rHS9+FaTbg3Ss0bheTEjratVoIEW5ZC2nl4QW2hSqXXw54UljWLNdKuIjybK4Tym+I9
BpzoEJxPvUR/dVzmBTSi5NJVTybZw5USlwokj5Z62HXq9DqUwUjxQBEu1NtY5PVqg3wWmzBeDNSx
KR9LFsSzElRWP09fHdYdSy8n43JlxhSOBww2GsJozxuAjiWLYnNWecDKpCBn9dfp9IknK7FnaD4p
JhHwQy0+Zfst6uOn8Rnq0XFwYtwRYBXEq6cM9BrB73TJZmUBxgU+ucY2o6iGug/erPNV7Qi5VLsv
rlBLXX+cjOtiQpwEPH7FigjHWMr6rSRVzJ2/GHUPY73g3b3vYEQt/ij+gvtlrbSFaNeEoIrZttXx
itOLt9LzpMCQ+bvz/bLXoCrp+JUkB1XyLqRFpLwP0VqkBmfr9W+lVmzycPv1ekXl0+Kh5sFD5+5n
qA2xqJVXbQOlxJ7GHkQoX3ac/Xw/aetUDy2i6ARd56Px2ACeDxE4VUQNXKcL2bmzYFPDbVAbo3ne
o1hi9eguLuUolJ6ElLcKm1kwaYgCtfUtGMbfXEPakIJ0IybjjRClb56o/cFCZbRASSvSXuxv9zAr
08W6d74VS3Uw8rU/ZouCsGzve+uoH5TOnXhNSCNVV0BxyXwEoQ/sBd56srjCzcmgLeI4D3u90x6G
il4/2TtWKj1YV4NP5SyaUek84UicvN9qlfJboMfw2ZtbMDcQlq3rdfm8Ub1ntX/IwbRCCre0rER4
cDBSHLTFLxpAeNb1Esxx0PoRb/YopMuGN/M3czUBPJP572T6DR5Lx5qeK1/UBVhXDLw+GcTIectD
HSR3oP4F8snGp3ibTpQd/IzVBrZuSSkjZYti9ZP5Z8ehkz7wUnKGWdHh7Oo4eL2SJqHes0ICQLNl
Osa5sJEHABa5K42AYtyHSGbUAKu+VcYrEJ06KbBireWHkmOlYK2JgRmR4bFQ3YePnsbX4fNkDAAc
AHuHODrAASu5817aq79HQ7jTfoAoRxQptuOOcbhXD7C7nTGyRoL78LfpwSdcw+eOg0279qon82/T
UaHv4gY+4g1j12GAhzgej3buaMr+NW+kzzz+AGNI4u2fDCdualvElayiqsOitnG4gAG6nw7lrqnR
X7qclVWyNtxPzUpOvx+UFA9+7EUSTxLNx5/Pg/aZxzDAeJyFb/jjfJgUAdjnZfgZb9TcxSqR6MvM
f+n98YBUzQZSdSGp7Czct/O7HWYDrGAH6LF5bvMx5hrior2/Rda9h+tthgrCM1YP6oGGYWgU9ZAQ
zlWOStrTnNLZtTieIUQfWV49hXcSK7JnyKIxbO4BhQkUMdmLwJXQI3S/JSeEdGIDwsteQTrJm0Ka
FbAkBUhWKYZZHUNi/TvC6XDJA/iJtnX0esvjHZNF+dAx6UdxI4qjZkrREsVDqybDzd3Kp9gdxJum
gEANi2tCDxuVdcbhd3vW9eRDwOhzgIg3WoCQdFX4zL4MMZHt6DMMwpDjan0Yu87XKLiyL7mtG4ze
ByDFw3Wnl+z2DOIYM15UmUzBrlf6PzpCHa5SPYCxM3iQ/zuNijPRi2NwrKU6XlamKishVrKKSF0v
WxjX0RJ8HKUiGpl0yio/JIjWgJ6Mt/ubYjD3XagvKva1yvH4cSvJ5ZAC0ZEOtEIZEoCv4AZvX6NY
K/hxL4l0WgHbMZRP81Cyd8srsRtIZCCQ/kzf+qYI+t4OJtu7kdiEGaislYXk7Nla0E5oHP3THsuk
DctHm3bQDWrDXRVsJSjhhzMqYIy4BNe5GCtqHo6mHIWRtluMnpAzCNIH4yupZ9JIRk24mvG/hgny
kicHvJk4YO8NLFAoTS8s+jZcPt3PyhqVZKRZOoNlM1zeVegjXMRfO6Yk68i1X6gtxgjf8fMQ65+j
u2OPuqXrJyhPqO0YTqNxbI7vP40vVzA5xsMv4KP9ZbqMf49qJcKiLiQYNoz4D0/jMQj5wx9gtcVl
VlD3u7A516b1EeMZV4h/2UotuTS6JfElm2RCsSv3q2lDAWm7sssL21ClxQYgaEwhv/NwuWkYcCxz
n2dojWUMGfsXY0cfPSAMjXPhhez/jS1DX6Pl8VVQY28FDP51l1fGvbpQCSVMv0YWq32tvW/SxKF+
F0yRIdxyzDXCFfKwb6Jj20HhgM1M9rDLBhVjAxdt/KLekfao+NDaF29oKFg/Bet2tBDKGnIAfi02
VOzf9zFZiR/V0qUsnYTx73z/SgCWC4g8GpAMfttKlF+IFP9u1a5iJ0NwFtwtRRnxe2edN6W8Svxb
1nHicw/M27Em+80+FYUGjdQ64zs4ty+USzwjPITIw8djZWEjTYhVZPyw4/QZqprsZhSFiTsqw2uy
8v+3GcKg1KmISdRomod6Nxo20gorgBdcn/+43c4/8fmbgwJb1LM+R/YsQnggbENW5nX1rQyQNb+d
h9vf4L5+vl2mvQbJ1kmQbEu46vv5uMrQYLOLjTEcsBmcBnQf6b+j1M876XEFC25eivUzWQvVDRYl
WPHFUpkOyXEo3lGHXlijAZfRgJniqotJEOyMnN+XOZI41XfePeEglFTyKBMHZTCsZhUqsxRHeHIB
oEVHCz4uco0QsSjvGw7LGwVVrmjuhmvuipJZC4/ebwtWCpoBFg5W4VYR6QsuS7mrXArIkjllRcl4
mG4qSFNer9CPiyBApUznC0AGl2sNX7lt7i/ir1yMKdtM7kfKw8htr6UE09NxOH3aeWWnjHTJpSNh
BSaYSVRo//S++9Pf/xZ/d6yvuoYN1W7OYDi3eBmBqOZqMhY/ZJ7dCovLdbUv03sUoHER2s6nG47j
y7B/pwCtNhzJ3xt2DNsRBMf7ZTPnZbmIjTftQdiB6Ew+miJf3XfLS3oP8xuUFKSKenlPPpYPZcwq
XcrsnDG6lFopw7CrclUMK47kPdlRk8rpxCy+T9wk6VOyw/FZeAS6o1t/+H3TSsNlPQbOad45WAnK
Yls4H10f1LkUznXf4lyCy3i5K9VsjYiczQeNYcHAZTqo6Bt1CDNe+jlJUKtE+CaphHrO0ZNaHg9v
FcHdSuXfbBzgAQCqpr0Cl9WxCR6rbltQGkownllnDPI5QB61oZr5eH9T8Dw4d/D5kg8jTB2Kh5J+
z6SDGP2M5h4igQCvD/rIgqIU6+Bx9iOy6fWy3315naDX5X7CAQPLW0jI4bLtw1m0TYRpwUR6Vjg3
E61a1fnr2JST1VP0U06mg9KQXorj2lawkLvh8zAdU5MqcuYltCjtXB8ZIE0gAI5iCYr6dX+ciOfA
6FYmrHZs1NVCh+6RDqxnQY1v5WUXrYV5NdblfxidrxkbuWRs/P0yCShTtgBo9v+jMpYZkxf1w/xd
BjvjnADsltob/gN9e1EGFpSNCF/kJbl5ADA/Tx0rF1RY+amsiAWClu5tnnfH4bf3eAWBWO2FPgCK
PQi3GDsLhz3asqaE+uazTnxIn6FRU5V73ADl88ZZ6cHiXvy3ZjAWZaKKw9wVuUzKm6ik3KiXnb58
4mtcONWy+HQxsKW60Wmz+ImqWnoTNEwMPzjP19vf7BAYkntYpqMUe0OutBdhbRfkBteUd93P5zjM
bZX5VVgI0jD+dFlSrujaKRth8xL8sLilC2zVpqaPycE98SxwMC7xb4hqcPj+558B8v1Ku7NjpBYk
K6rB/Rrfb9sFAxps2dfLcX4ajtiTZSx+vVsCVukY+eGd5FXQQQx36gb7IEa8ct7SJ84JI9Tp2F/s
ZVqwkPS4hd5PTWBWkN0S1aF4p2/39TV+q1VeKUuh/2bxmYyKon9TLrSRKgMcpdxcF4JshIPG+0tg
NT5TIqcpIX41d3HWPFk83XE/HqKzp+jADF8a1w0XtsEncFpRiiaQBHCjfoYEczRdAQN6HftIaodY
jB2UQWyMT58miE8Drtg/5ul0+09M1v01XhJIL72SRntwLhtvP7h0i4bcgYy2mhMSds+vGmC03CRS
nr13NnL68SGRcFSmOdNzqqUBLK4Cc9uMcVyIIZbTEy+6h0cQtU1pK5mEmR47mbIOm4aCC+WPO3HN
A8ZDV14iQzXP8B/NI5MrHN1Joh58EZDMiXksjX9gj4gL1pojF3PUq8CIaRqJtH8cLj+cnmcbtyEZ
oI2eIoD4UtoYEtU9Vo2oZce2kmHwsghV4Pzpft4kg3gJVYGzbKO6L1F9RJqukRSpe6UseHaG1Kq6
s6zXONnrlBePS6WwM+PCar0vK2jVSQ7EjG24Su0AlaD4xD4rnT5dL4nEv3JcrcV+WVjzNv9M6tiV
/NpUxGF8nk7j/1IGCyNoSIgn4frSHn4FKx7+/rz+EbB4lMU93gXq7GZx1n1h4LOt6rkqoCw1Q/TK
sMg+0NgWW3lZk7b2z+uO1+k5Mim/wrCYukVOKwTfRAKGDeVHl0bpq+yOIRA92CyWAva/xPMvP6mM
rsbf6cMNNykqfIwjym3kSN9W1YYrWbcQympAghg//GU6KUAnVR6iwJQfY/yNr6uToFDiP/KRtetc
QoJRn0QK061mcFW+hThNE2XF7Bu5SaFp9S001dmyLqQ1nTXjVgye18ZLaiQuTcqUjdwlImitd73i
gY37XmH42GkzSw1sEIc/Wcooip9ZNKwsE/C070GXMG4bymRvkK6NTj1Gk5+Zb6zkBKwk7OTF8sz5
vDOmzpOhwaco56PmrQOXt/Io3X8Bm+3nBfF+x+3Dv7puv03zithPlEt42Xg1l/efbV/ed66PYhVD
UIggumTjtS52FEBQvm1X0x1r0ZkgBOb59ursV8Va7BUXnXLWunuStx/zy+dTvJWLTLJV5CY4os2D
ho2byunycHMNKzNA49dmCsav4/6OD07F40MjNpfcFxsWXSJnus3Yl9IRwaC6X1w/mLWyGI7RpF9l
2ZSSz0rYUyoeJn5chJweUJ0CwMYYtoBniiNUZU049DLgh8jRlNVY+MN3UDh+J1Npf5mvtncBQ5Za
VLCSoinED/B337AxktEcwp/K7njQgQHd2VngWwIELkgMayCasA3fn+bTO3Q+7ozAXWq0ITehSSvv
ElU4t8cnTonuKBYcmyXlf8E8WkyhkmnxdJuH3fn0chw1dpLDTnIY7Hp/SokpNlOWzQXjSIuHlLOf
taH3aQs8Mc5ktnNgwup++Yx1fi975YSe2Fi33mjRK0V8Mi3rawFQkgOqIZVcDFfXa6low1YOILim
fWVCOh6nEaXuQ5xQoa8/CeSy24rP5ovjiqE8rCRfPhasX4KfWxVu20pK0xEmnUwom1piHUyxbRpb
2GSKjrSqY6tKY/Od3XzrWMbgRQtwFuGDaiNhHYVzc4lj3ubfpuNxsKaDPh+583uoQP9UTbVJEaYk
V8NIhDSycG72dF/ft0VuC0XkPEaULyPC6RzG8UzJGoX2TWi4ZkwSBWa6csRWiU+vkzTKHTLGBsMm
z0oxEXL6YB6kyCTxz/IEp3lD8qPsa0ku/ON4f9lN2nutPYH77iGWamy+cTxtok+1Cjev14Gs/4Yk
DpseKlgxPg+mELSV1ARf4TafFY7LlcgrD+ICiJkqq6s8k+7kNH7hyJhaqrdjr7Op0SqvO9VSSRm+
bSZ5quAI/nE+vP9+J9BvGBGAwyeCiSTyugDXDK5xGpTsSb6aCdtzuNLxsHsIhyuULCW22pjjVsjZ
hxomDNw+Sr5NIq9SrKVHL1F5kaUklYcj4CrcTxQo0dI0ord6tUMDWQ4CXEEyK1PapufpMGwVs8At
t/lpB8aysps+MNirIBw4n/4COlSRCfUWzxsdNpWkZa9Ip8dy5nRaLeukehDdDyEe1Qzu1sswSGrn
fSWe11mHxlsyFq9RWNfd9HKaVZ+18gIEJyITJefL2XhcfhSKAlGOr7F74Ez2sgFPwpX7pOEp+OTF
CmfH1pbPCSDcIRDE66c6aba4fft/MeRHYx6aWI1J9RmhCD5P45co4h3VGPpdUYU5XQC14ylFQlR9
3UkV8+R6U3WhdXCBPBsmyTlFtFTrNrwEJ2lFEWqQWPL8Ol+m32D84OO0td1hHq/QTT9dIFJA/7Oy
/gplpE2M4lRwodvV3Dw67T+vfxo/T/vxH9PX8fgTWMcKXAcrivOOw3Davy6pl3iFYCZVCH61/aqu
bwweHytcjTd+U19bLtUILmWer9jaMb+9zafESllfSPWrG4aoFkqNfitNz1umP+NQYDLaftJxY1up
seNpNp7nwIllbAcrZ5XODF+TCBZu3SXYqVZGu4pNDASKy5DvqOBy0EZzsZXW7SLQ57GhW6RTizV5
/TG0cu7HFHBZnvu3AkyfW6SS+fnZ9n5j64idXgNQsKeDPbaC5d5IPS0ufGxNzIj6olJfBlPvC/TA
SA0GikJMAYq2h7sRyViCi+2rtoWfBH9UBxVMB7ExWrgozjHAxnKbbX0ejte4UV0w34sVtOBSBFKp
JSZxgRUOj4f1wOe82w/XEdCbTnAPnxXznhXVMUHhejGooQmr43dK9TauxKLJ4N3X9SN53MBIRyX7
58oxV2FFjzzn79EqNjWxULB0VjDKdjCPEmFG/3WfLp8UA4QF4FA9lwvBqamTYKQQi8ZhCsRp3oTx
Bb4W2VcKrAcu0Ian8T0fRi1r33VSRfL1PB6PxnZSgvElizngaJAl5mCbBCENgjeiA9/hJgopfOGv
QrkD7+cgDmEX5TCVDEUvlko9xWBr8KdzyTFfM6JiNxIXimW2wSrKrrMwvetrh3RhU7IoODsu/qrj
t6S4qSTGYc9H8y2yVfm5HQF8XTVNwihaQJyfDyOUQVkZoRwrk560KBssqPrSdKHcUCEdFBcFnkoR
qsyyiAtsSP06XqbbJg4teejQb8M3N1CDxaT2odN+xCJMYT8pHgoZQCO2H3arkFlEokuxxPFoN62c
t48yxUpEpDR0l3yqjxaEcuBe0tf6gZXbyKWAZVQtbt1jJTMdYEB+d/jnAB1XyH3Y96Lpyjb9Mq0D
AU2nG+RmG32VsKA1eXT7pJArQ2AU1fWo1tWwOgccVMZYAZkoLT3jAvjBcExoLvE5b343kAxOhHt5
eMn6LtxjcPFeHZ6Xj1nHRo1m1XFvmRMAiAEuXHHxskwakP4jzPyFVrW/DWcIq+N//4DTVLTYT89b
Ar0ze0oEbilq1EvhBlKB0PP25XW6JRC3s0JsnXN4QKx30pHZ6edTtKGi9elGTHdhug+X/d7IudtP
QOclJEW/8PjnEFpA4BwExorHXeB3Oo/Xz4bEueYxrXW88MhiiPbvH+HTcJ328W+K5Rso8axJ2r1C
Sdz1A1E2XKpaloKih8pizfgu9DiNPdoomwbgZwkgTAblUuJzW1rfKbJAdOarhV4h5nOLf+6h3Vhf
j/+cBojb0qvoKlUeQstZjGCY6neNvsfWJ9uQ1YplYKP5ecqTUaO5Nr6r9f0/ZbdC9SJeP8xvw3Ra
9BeMlr8mxv20vvPF0TVvQ8IgzNruRaFsVT20H8cpuxuu76d9fC2GTZsz+uIj+Z4MJKiQm4+H76NB
h9bnyaPXjWxnUbw2cR+jEkPHe2Mz+LC4QALEw/0wZEEfKQ2F1iaR5XF3mU/g41Iwcx76vO+Xq3rp
fjsYd3B4/HDXPvEFYKdu4CdOaY2Tm/HAGh/cdzjHcxWt73ohPmKlXf7SEgUgrU8b4SK869dOktR5
JpdwI5efv4zRsYatrxAtu1VVZ0BSuvCrfVWa0McNiSDLAdP8+DOf7XVRCONvCHOdncQ4FoIpfsZa
wuRcFsFACp7sNCdoXfmjQfjMRrJJFmJe2Pb8qY+y6kNpUTKS4yoL96qmMpK6lpYiUvNJpxuJ7TkJ
Xlprp6Y+T5frDQPZz9PXJHh7XtcSEodP3e3n+dM0/pnmQW/J34kQYAKihhbUI3usEgFGHB+8jsNB
CYSX0jam65//dR+OiNJGtVXk6XynBsYINr+W8Cq42AAb/xfo1/3T3//2D8wNKRgLIfpF1zziBdlR
8648QgEN8jsDC7rNArsVdmQ/g5Mq054rsYeCtSG/DpMCgVSKQDJGp1sB9PR+ImCmxMhPStI00t2z
eQ0sUXa9qvMBskzEbVyBX8HSX4bL4Qpe2O0ypuZ1EnRZJaI+4XtWcUQJraiUUQjBo/8jxcQu4/P3
CXhqYs5MSij+6B6xRWP9z9t0vOL399NlfIFU2WXpo9cH34HzWYpBl29Z6DFvoAxofjVE2J3vtyS6
ZC9ltJ/NXdwvCkRfzvHsao7BHpXIWmK9ZJzLbANK9lMkfgFlNna0RiuCk/GnwtHD+Rp09Hv8VwXG
sZXgU47jC+LaEAxWKgVYNOKIDTvTxdAF4Slnc2dGmWJM6+n+siu6oornYYtKxDqiUSFgL78hPuzw
oqDMFK04N2SFJrf7qizRiBOaDFUmw3AA+yPZ2oRFXoVihfgGqsVhvOTvrJ+oigiUGb2O+2UyqtgY
uzjW21Dr6d1IsCvRKx74KSWkKsp8p5D3sk6sNPB2wmfDT/Pl5/uTYhqIpkbYSB/rpSRNJ2Jz/udP
f/1QNUHfemkJWeM+c/OQVuVedg4VEPppdB2KB2XoeMYrfTh49xtNOdw8OCxj9UbsqhA/irqt5h3U
nYbTEndvmoIu2KAwsGmdKGEtRHamb2rwbsZHTXofhqFm3aDcS8NJJ9nWSCx1G57wyaCNaEwFZcwx
rZKLcIdLacj1j+/fQxwQopC4QJbV2pz31dxd2lSWV8o3RSXN6s1ybRR2UUgjYGPAw3ZveThUuLW/
U2q/U0p7gwqEXaIAgT5fzRGnn/zu5+9/+AHLGHbJOgZappGG5hrTTDttF86tze03vfZNL95E1mjf
NOFIWnvjmXbjub9xh2+ON6FxVlFLU3MP97cz+CN/na7aLO+ilwYmZ5nGYnkREqO032jskpcyMVrt
m1b6Bsui7YMrY05snbOQV5r4+EUvxStiDwe/aMLgo047/KJ9+A2631wyB+wN5dKDNtrt+Tjtb6CZ
U4Pfi+5hXjv+aKb8aPbA74uiwHAEsJbR74fx7Tzfop0rpB8yycjDoWb3mzHAebEWLDLjn/rpNxCY
GeMYRoSZZFNkRaA5HldTSmwqBqUP67A+InGd6RAdVFQxAxm35JE1HpdaRp+pgEi0ZL0syeQ0jYCl
JhOjwD+ZpeIVNbRO5U/pe/Aftqat0PudtH7k2OYJpMvhEzNI2bxUX4AUloza4ZnwrzQeSbE1mygm
7QJstMt24MFQZaMSRGol+56QlLcguJdFLpn5rvLbPCws/1WKv/0GoHOtfTA2VXT0jH3Out0cHD3a
Vgp8PIM3ZRjB8KR/uP5wOoxf+ZveEumhAUTlw4TNxPwhpZS9ehw3VMVx++M2fS25BstIZALhXPzd
E3DSglmbrrgvOQhpVlK7YLm+SQxgHKdPKXRDsvBzCWV1HXanetP0uOisFUdaEOwsy+yjRX79/CI2
TlSS/IfOops5IFUuMBxZxXcVEVsFkPY0ZgRFaAopusUGboCSJbgYiBodf1RnTXOJ4E1R2+G5tNha
hAUFtbxbxZtykeM+T1cEC/8Is/FonpoAWaa5JwiYt+GI6FCGYZWEIgKrAOm781XltrwCe8EpH3yY
7098XxDsUGSzDJqPk9/9hJJEdpnknGi6gBV0hTKKn8xN4nfBn6AqmU73FAnBICyK0ITsHn/AvNWn
8XBYmqasooov6ZNBrKUoXBJU9BXrPqIhblyqCxOj0u7Mo49+zzJJ8MBs3cCKWEa4ja5ZwGK0mX97
MgLrU3xjZViXkUsbMy92jG8tC1PR0taoxtu9j2t8N204k1baDdVHbrxBTzammxWyKVurpMxguJQR
HErxR114vwjKUEqJCeKlPLgCKx+pl1K6cIV4izTeVhFUaeQiiS0LYYA3vhdWymBR0IUhKKysKx5m
qjIx7OhnW/DhyorGLsVOMLFl7guOb5ouWtkjGc51GOb1g6T/Mp8Cj+saQq9HjbPWzz3Flu3FI7Rh
cX2AR5mJ8XBK3/4XZG+/g7SpS279cP1JcYY6Hvl5HJX9M24oOCNt0dwHs1nup/HrmaLcC1ZV1Inu
u14KGtl61ut8v+xH5eNGcuEPM6ajhoPZyqfT/OW0i+Pa4CpiIABLksKxNPEl2ioI9LkOJFxiPvkB
2MoKtRQvcjwAIE2XffzrnkeOGHSzrWXacg/+BNi0F6Rm6CBwxcoCPqjEkGsOgDOwmYptGKQr2RIb
qdhJVKQyFjvbihqsqbRFIagYVqOtJD7tMimkOV3/86e/6mUL9LW/SQZ2g68BJmxsoEHnt85CNvYm
8Vlg0OeqHD4L32TGuDlx+FaMG9OnVN49na4AG8n/KHGnpbQbe57DuJ+xJAjTvPaOHUaC+mQ6zyqQ
Ua75DS8ZyQQaNm6vlwLuVoBtvTLt8V/GDc+3zx/o/ljaQN6pUuAgpgyXOBpaBYriyMIkUye1nYId
Ch6kNdj0CoGmDnVbyWNBmL3a6FCVzHNhBjfZjhTnIj/3Nj2/J9bKWBMwjpP02GXqTNM8Y1PLmAOx
uIlgfiRbkPN8NVGbFvnZdTBRTbqxaobzdfxl/m/XADtqOVbE8/D2G4s8vdja9u/i5Yh9K84Z8onm
uyHvdy9aSrDoKqkbwPb7a8VCfR9LJkrBAcWsyyQr6mW/a5QRbHzY7dIlHUzuuQ0vSiELmzwU1OfQ
1CL/6gxTTg7QVx+3zi1nNiOHQhgwmZjQI+3kMrOeZ76Rcvqa1+5gCUk+9H4GzHSdIDa5i2VoqORJ
DOy62cK2wx1NSUiUg7xUgrztStZIEUhvkfpiIKpW2bkkjzI7uBRr0OJwGwpvVWE0jC4FO5x/0erg
yqKKUOxhYJzRc0rFTC7FvcRCSBybdb9MivjxhIcao6Z+KL6yONDTaQJwKfN/oRRMR8Uo2ftnDRRx
tAhtNmEnxeL+jEH/nwj0au/qKwfjKRzf+UTOeLFlF44asCVwQdzhvywMUSI42kXCmb784Zfh5Ufq
PbDB0d0boGQZshbxe845EcWRkIlRkHz0oYcRIf3xCtUq2M40Dpe9crqqkoahkdy5n5wkAtGTKqhi
yBgsWOOtKe6A2o5kNG6VFAu8aQu4uBq1/dmYpDNfJjpfu/Ez4EFVVT0X2s9HoFNg9OkwmbBizVZE
7WftLkz3bdlSzQbcezPJliNTWd6WZWzKZDWU/pHCcdLUAWnyhpOGKPxB0ljRRVPpCTjBphK2HsqG
5pc9tex7i8m8aZkiJDGxNb3+TbRlA97r1TY48+p1fbhS71d6ABCiBT/Kf2xvuOSC8Q3Fr3RvgKSH
fvyHVq4YZxPcXAh3ZNawd/DRLdfrJ9NGmNXNwY2zWCkxiIs/LbNdP8S1WcgsoYiw044/dt42vHRb
ejsFvBcVeXUlMV/wLr/tfhv2KnpsBNef1wb2rnNJPNu9okT8KOl68eWioN70cj3p0duz4Vk4xH9c
ggqbC408N7oWsCFTsV+zdtsz8ca6w/9mndq/PxnP6fN4sZ3MUPZ50JoUCt+SjZXsXv8OmOYCv3t+
VnwIXMD39LLqmsN4nMxO3hMfW7N81Y8MViUWOy9DOt1y8V30y0KgAyzYsvf23UInXvIStbtYfBW3
5h/BTCR2PSTRr3mnsy/FdV+jrxatB2RRPfi+R+TG1fcW/xHr16Nr5L5x20Oq2TUgKknZ4cNlPs/P
z/FlGn/BvufURmg3IHuzkBx2rRfLBAZ3nIQ9zWKUC5eRrWEB+tw1K5+3/nPez4mpjW183vmHwtvD
EPzhhIlAAJE4upbDOCly6SQLp17GvdlHskmVxa5xR77AhBAdHCpg8uG0nlEZMkqMSXaI1zFpAoVB
DEBpky3cW77bvewTD6/3BHICFDQ1DZA6zG/xX+5Vyi5nIp8+TpFWIqsdqr2VrE0rcYtj+AQyM0sK
kGTEFWzJnZNkegUS7oFJMKG9csmxLvHMOEm8NOJwljR9ZblZF6pNE6cJiZOLTwCKrWKFdyyOvuiO
2HVvekqNdF234dP4E24mTuT+UYNRNPNtPIAT/TacMZxEQy7j0a42Ohj+p//1x/+rY4S2ldRKtPTX
MfzydHdvw6JuGZrLuTjfPI7O20jRI0hI2iEArmLXjUGcd89mg+mCupJHaiqO6hDUYzntDt08zzDQ
a1P1XysFgTD+Qe1BEwt9UoQkwBI9jPujQ7ZKZBZ6MUxhpOKwnw4aSG7BsggVwhg+lCcC00G1KbUQ
PY23LzAMQK+boVpFHs5usUzA9X5eANQ6L/O6zJTW4CpMBFU8mbzMoVK1PMX1G+kVINdRt64xl5Ft
bLXo7jLPSpqgb6WqMQvj4EId8EIpbYdBq5NWW1jKDWpB5R4A8Srx0EYKugVJAIyAKlkAMdJsGIiO
4/hfC3n6PAIY4O3CgpWSvKikvEmsxoYuKZr/73jDSxjXtCjqn8Z3bTRCx9LWUHwAZn/m3+zu+jqO
aJEdoBHdjTjeQVf0yRh540F3jOihtlLlDp11OoL3q0DiFn0hcTIr1OX9WUp9ec/kBXPQ8DiYXzVy
I/D0lNfF9AQr4g+TIFeINtisx2F6pqEPPiFyXVIh8UxIL53cARS7vA2UBYDQflNzxCUrbA36LR9g
FJQsaiMREOGyiX0xSrBdgmcMeaJslzyev1oUAhQpGBcgsV3UXSQIA7EbGFOp1j77Ma16m15Kx58v
MzwpyrEsSTs7947AB5hoVnqxO2mLDkzB3OP0PAHgtG7bUl5QruaF6vozyLDrq9HbZsXhaHhwOM4v
KaWaizIRp6SYdxZGXcbnoJn4Oh8/uzEi5r/OWAM56/KBUBEZ1ihcX545B8yixWAIIzmSxOGpcGDE
pYAOs/BBAR3+iU3Pjwds8cBefCNxqkLpE3IDFMOOJVvVvWwZ55xjfEPN/9OSNvSGfVW++mq1w79r
iTLaGWvP8rMOhoPWf+WGDhVB0TCEIZ7mr/a3qWFNW6SSSCJS+DR/h7UF9F8K6CudqA56slx1jl1x
R7lvR+oD1ZLyIhV1GCL9Qi+RHnu4aKoeztfTp5kQDQq/1Z6N6MNL4wNSsKKQRgJT87y2KOtJ8xpg
Ob8C/UqH68I9BRWeTqLimBV4tNPJzmNzE3uTt5Ntvnb3LrTVPBOxkvNlnMwthSpgKeZfJ9NRlicQ
pDV1j77tEs7XFNFDaWdhvZtsKjItsqgy8C+ct6YtVsSPFHCWGx2jnY5xRLO+MiCPWRZgg87afry0
4joHXCb7+LQHV9dhD2kRO01CbrVhv6cN4C849pjqiKvgLpdM5iAU69XvTq/bLspOwnhYoSadHLKr
MuNCrCEKrUrHPBu73ZbC3rCifymB2XnIWKUappSga5UeRqxXoC5nYwjedrlSa5BL/q57bubIShSj
Cqsm8ge3YpmlNG0peizWg36sGjZscP7RWFTQlQE0+1E3tHuxpQ9oQaMVsEgizphFaGPXjgf+43Y7
/zT+6w5QsdvnW3c+5rhqy42X+Ci+a5dJBVXUYWdLcSxyodZpXBW5ZF4fAJ4J0xD4f0AvWT35ZlgN
gxTX+1kfPlWKva0MA+q749t8vf1s1t1rmDKNxJUgU36Bpp6f6U1zcxLAXaOZzCJjxRQLY9kub4jF
09heXRnAQjlLqXbewrXhtd8ZThMb0/n0JqzzXqb6Kf2xeVXJ9czO2xxd+cHVY+ho5btspFgJHVdp
3E0NeCxr8w0C21oetncBdLVSYrkCKWSAEP+4zBj5W7WPUzRwscHmy5uC295Lg4UfFnkbLrHAOGHJ
5dJY82UZHkdQFuEDHaC5uy3DZaAuk3Dsw1GSyvHacLJgHi6IXK18LY6CWRNHOVClEheOs0wjUnbB
8eyxl8BH65e1tkzrLFcjdXL5rtHJpieeGJxRltJcpAlb1S9GaUNQb1k+iqmEZ6zEWRexlQplpXoT
Q4dLp84pDhOWCbdPAEXSgmzai02/riCrx0GDLRXBBMOhwNDPq04vLMXC0st4VIfVUCLBa0KGpQ9G
7a+HcTj8as4Rj5TygvGa9bT54GWuBEd7aeTiV3MJf/rzjz/8+U+7fw6fB5vK+DwYy1ZPZVQMUIIP
NfSLwAQ5QnVzo6iVWvg+bOKopFYZV4M2Hp+VFhkxU/OYElFSIKKxYnM934yJULCpngzw5/uff/4Z
5MWfjEUwEForfs3HtOlNMAUrNG3DcMn1SiaIX5tPyTXmMtI3njbuWO0Ts1EpI86Xe1fg2AtWIxyW
QUHyF2zAOybRaGZhzBMrWPFrazm492gLGz4upWz6PpD/uw2gcgUr8wsrhmxmByBEwRtgSysXl4XV
aeUizdCwDl2JVCF9VkR6dgC3CYPYx+l5BA5WUmcVk084kaYVIIGhN6JQ2uYqyY33DVCvw+XwxVi/
388nGnuwV0ZMdqKb6zOScPWYDrsusw21qv4876TWKsxE2Ag0OEuAA7v8RgzDnCpt81ZCBLusUxtX
1xgxTNER6xXLfy7xYhsMMoRC3OgFPup5xjFTe8XotxtkwVRvYSJqBaUjLLb5ZYw1ANl1ainsSQeV
kzDqaj5MCfySLzJ/2dYTnBdWZPvTFmTh7nJdbX/7Mu3HVJTRYa4vS3CPhgj/9XYfjjr8KUXC2k5a
ynEFjLYGav8YteorZq1gOA0NHu83X8Y/AnmGyzuO2LnutORIu4Jz69hmUs0+FYPhWoWsD0b/gey2
C50OZ9yKtpFejE1b3v7esXau0KTIQi5sOWGvSIwfTj/FZ3VVDL3eBUtdRToNmMPrPrhSuFX7oUYk
MSLMRADJp6UuLRXz7uowopuzTRLpvTBYysJIZaSW7tnSxYo7LXshJbUlMklMvYy3P9pn+z2+WgRM
MX/q/+u6faaSpUMupZvir9IV5EB2whxJY8dGfKR2dtzx6JtOk5KjCKRZ08SpoZ20kCS1/N5z7VyV
9t5vUFu9sI72SlgW0gPyPGo2wBqPz8etWGvvKr9AkWArP3zpKcC1JXeXdSIDptnifoKQjLlenEdl
zIXhclOzM20rpvvWQgtH3JLSMre0S8nCvMiDZW2ZRZk3XaVthiWl2yVwIF+tFQYI2I4MrOmIvpNE
88NlA9LaRU+cO0N00RYFg6THBDB0CCckdB6mxHwfOxMkGnP4FwA1dxYh3SYwMBnhi3/0UoiKVbWt
8tGhvphOshT+qtC8jFtU9tXrFkLWeYXKZj1jwURfF63GSOJvY5Hm7sHY1NYpJNNgJfHdUAHtJGWo
7cJyZ+3DRpIDsppcPwjtPVTx95B8aNq6fah6q+DO9VJuu0IeHjgmlsczeP1omH2/xe+oJBhhuzHM
YcTRUuxNdA9YvWaFvMyyTGOglUEnSLTvN+iqXBNf3N5OwDHa5ZowIx9u6jycNIXRe4WBbkDGPsY6
svctyrcPihU6bqL6+czr4si0oZKHJk+ZPVzzFt278nn1ATgbZt+wJPtq5DDVsZHpTBmMU2IWOhUc
irAwNsK7xO3muFNJ0cReqgmkO7STIk4HO5YSaiBfWU8fVP4nUtvtKh9HTPs9TduwyDVvm4b6IeYR
m+LgokmLOat8VQdwUmBe27wvdPD9+WQuMzFGKi+rMKrtB1QZYrDkndGU+9co/iKl7Eoptr5KAi5m
uaoeaL1aukEqPJwv3/3jB/xqgqqt6+08QGoRc9EYe40Z6yWQrV9gCnlAcbiOvwwv/x3R+vhh4T9k
lYrmwx/+tPXHnXWUBa4hraFsOQu/WmrcrxCwPIzPiFEyn5QVPHA27x2zK+DzB7hls1DMoi49n9Yh
HDIaLW0ZmwWCx26XD8sC/2GtBEADGa+bN1Ay/G82/mV42TgRBNdoPEylxxq9wGTsnWOvq+GvHYwR
VtjBpW6xzB9cR4s0BY7xcUy1OOMSlb/XAMb15iozxgNLw08nqz9iogR3VYUI6fUij3EG3nYy5bV0
1+mZIcgn/rofnEYAcdSSyKWXbHVYOeQwMCkRrpCAPXBvqIUk8ASIX3DuGYX3F3uJo2zBQ6EyrWjP
/VOsNYjO3oXiKQseypa3XhaBtHBvneRUUkD10sdczKZWKDPpAFa+KufOJenK+W2zgG/CDeQLmjxK
FxI2lKEz1oBykE5aZxE2W1iofHwIQrEYlfjPUJBFecPhosxS43mVAHbJVfQL4y6pF0VZs5U6R9at
W0r2qZFyyub7Xmnc6kIALlf/AAkzdaxmUZVSEabdpB9ejxkJN7deKTjN2XqsYoam2RL+HmJP78fj
MYmJJWbQFrx7Cm4pBQpNzIgK7bFFlPpxO5pRXfAMI5tJu9B6h4fd0WkVwntjH7sbyofRgGhQgHm+
YSZgIeXzIk1B0+l1vEy3FcCE0hPUSwd+gWzstA9aAm1gTOHtVmrhYbTD53sCjwRb+DT6ib13UNb2
v8d3szle1PYJ/0QZhVKFFp3FSV11I9DecOLF62D+c7jaSAOUDJ5gXjBI1xSUdilvfDU+esu4hEYs
VT0f7y/GumEl4uMG76WUAb5P5nKxujsoOd+aZiEocv+KoQKi0cvZqYNeHc5Ede2NNExkj5biG7hY
Sq+g3IWfbDF/xf6ObZ3mTWzOjK32TjamFoU4gNtNDFKqq7K+khD71s7jfDLnumI30isUCG9guCIT
S4/3rITNxyr+SY6Icgu9VJa6qty/IQL/KNXxL/elFPDXj1OJGtZAjFOtdmG8Jtlx0DeSwqSWLqOS
jH60BV+zczGUFkkR02HVqxsbYWykpAJy0jHM8dB45zhcCv+JllEktmXE/vSShFvOxLGqtioNe1SV
erQyNIpqVYrQH0Dk901v9S9KsdX/sdBHkcLi+NOl2YfU2sm4sdHJIdRckUka3CHtHzTSiL3jqxpE
P7Zpus7HRLioyaQqybdpD7NLrgC2piMOFwyIdzVSxSM8XBzs6m6Zh5sckM76V1jQn+j8BcZa7F5H
GDirWA2VBB4elOvbOtz5eH87xcZGZ8zgDttEqCNhh9GgeO08GW29ZAwhNT7URWMWEru276fpX3d0
gfzL+GwEHpcoSiOMiNJRF23bxHvT67BPo9yg65W3uYIFqNig61UfiavsTDT18x4h/1S2jVGEVzQl
lFrBe95z+pPHwtlvHV9XdJwgYFYUi1mxTEkfjad2Di5deQziFR+W3qaPjOPOc2aSYfVHy6vK6Y1i
13K6srwQx9S/nYlU7qbhycKR/5S2pSrpoZln8I/L9IZhB8Re2gJeU/IKZl8OMhnVjxwSHQVKXZTi
0DqrAa3fuE8oQrl7Kew3UqwuseGODArjaaoeddmXoudCOXpvFizwHx43z3rXGjhRLZEG7pea8kN8
hNvuAeIBnOR4fqfOpQkkwkLGpMI5KMkVqz4cydJEV4wWduEyfuAIx1cWlhlur+rk4b4SB+UIS73O
V21HPhXGXCvrC0N/x5CeV1OV0vAkaSvRRC0uwwYo9Rpx2ASxOAuUYWKw0siToHQjTWaxkykmmM5g
c6wKuhEuVLIxMVmJHkpZx1lzvs3GLlGOmEnM9PJhniwksrvjXQFLS8mwFz4ZsxpxL5xJQY6nExVS
NtduxelOXBPsrphaIVp3El+zcSKbGDsPD2YjRd42BvFxuSpKlzd4+rCk28b8M6reePtTGDxykJMn
aoCd3pSgRC6OGFhQYaaDBipVyyGTx/jYdPid0bFc0tWhRYMxnqcpDsFKEa1aaqfCfhsHgg/PYAdj
rRWFWYeujBsXTBUJsJFTrDiN9JrYuYFA0eaTtVazMZk4NnQp4VYf7ucjzIIZsYF/A/QxLlU84PIv
iERgVz80BQ9vbwPWrx3fEY6DrG+8dMd/Fp0l3iOeicMEcKH5BIjbRfzbSpojkN4ZAoInN5ZLi7uN
4eHi35ZSBz0/VPxTBoXvcXmDn6VjjF/RB7xhpQ3CW7s/ICaO/4K/ZZCfzlzFh+ma5zGSP8TKf2GV
rJfw1/kRHRYa9qzoZ64fyAWLGfnwnz/9FT8AOxrGQ0V1MJyJ4V7z+W8f0jCwDgeF1Q3DGJlxlUoC
u6Vi6AlHgO3H+RnEBRzOtYIqvYJtCNjcf5NViDtjoNz10j0Du5gv08t0in/IkHd9nBP7WdNYux2D
rWYvHb4+D9frl/lyiN9stvHsUTO28ANUV92gH7FAcZUsXKX6RgMU12olDP2P2nm4Ui3x/ssHebYR
sc41Mwq/6iWQ9Y9a0XiKQgRV3oQpVMQRZRrJwQUEQBgau4SswThZitZRa6axQusmlnH8AULqXGFS
jN31al/2McgZFK589hCKoZ7F6UGWgvHzso9r8j7Uqjn73Pz2bni6zkecwRWZWIm7qB+mTsC9mku4
shPhf0NuR5mITBlVVoGCrzjnh1qWwbBQFHWIVvIVOAy1ma+Tf1XmKPsSHAaZxr8ulK87X36DZRXW
RqLPydy1w0Cf4hFxpC5X9Ahu1gV3fHqBRvSNNyUaUWuOi3/OTEjg6LzmW7HdwyrHtj0bPANJ6Lwp
/yekCyDEuxQ+Rebj+2lDG6iXdhPfCiMsRJ/zhg+bOQ23+2U4pnMDuJGVQVyvXuFuw7AV3FInvSRa
Zzje4jE2/LiWpvIwjbvOvkMwGerZ4it68cLiVJSlUPmEHYOBs1hyfAHBYjSOKtjyh5tlXiOB8jGs
ZD15yP2oh5gElJpfjypgfS9+/jgMUgHHzbImAspdK5VZq7imnT09Pk0HY4KdbV3GdTfTJF2POaXE
x1fAunaYIVM/iHtMIaj/QKaHEqJpf9396z5dPsXNzr4KwSXaLd3ooEnjYS4WNMFl/YvYmwu7fsiE
6rMiHHbRsYUQdeZ+BiTw+PfhHBTvNHwXQnb7ol5tNkVdSBYy7UazfPqskbYxHRZKxl4V61RYzXL6
CJABi6yuQE0O0xucO4RI8Xjq8QOJQ1mcBaga6q5WdSFG/s0ICCx0uXIeGGnj+6gkc5i+xEqC6Jdl
FnLlR9ueC18qjKOk2mWApOfsOOlraZDNfCKY4H0shcECoqt9L+WQKESc/X2YobNgvjl4qLfBEdTi
feEf/zKf4xtdzSCr+c3MlzdfnBS/ojL1fLG1zYLxIorx/GW84JPGrqkYQAS+5l5yGGl/MaikwteY
rzjOi7U7VKtq99D1hRjKQIr+dXxWmF0c68aEv/Z117eSVH4JhCEGMDZNMSh8Z0p8Pyp/rGbsZOuP
/wuNuE2KrM9yEZyIo/eHPLOEwSFFryhIMR7g1x2u+2l6aAyJc13HBo6xmWn/XgCJwvdKrXiMaU5x
mIwdw7I0iRPV4zCMSPoyJH0rP9JHPavN6MUHWotjBO1WXfHOwmi7/6OzSC6+Ol/wqmAFFL4xBOfu
GU6oy0dTwtURKRKtLiOq45sMkly0K7Bmz03mQLjV+KGqcDuujBwHhVypfF+vE2VJzZVgoR3AxWAD
wA46AOJLtJEoU4qJ4pQWh3+FsmmrlczGUNZLoQsKget0oHbtCFglfl7GDQ3feRJfwPXkLLZbb1ss
vhqlvdRebLvwvJYea1KexQ/HZjASco98cc+QvYUURrpSCS8vnNYXkGw4G7GtmJeiywA/aetDwddC
PadFPeXxmFSqB9JzOow4Sz7O0LlkplljisITFk8xru0bydDYAAZS+K7XJQ3QsN/XtHKdSZZ9xNvY
4AmWkoNJvArGys5LCXya+BLjRPXcC3a/LTdc2T9bH7WnLgTGLUYusZhNl73GRwsWraSbgut9jY+H
YFU3qwwSO0ZCnVWtZL7+HmNeNT2zVhoW+SFTPC7g6i6uQFZcEo0dF747eTGuWt1iiEtJUUuvTIX4
LsSvibOYBIGxHZrQ7yX3KW7R/vjzZpuW2cq+XySpA8q4sGRbhQdfVH0obZK8LLpi8r1teRu56KCv
5cT/SQiIWiJTfFPx3eRSxvlt/m06HgcqbcHWl/F6o9QL/NuvT/eXsqmyvoh0yEIHvmtNqYJzLp+X
hrARVC38uvZfe/3ivoZKmDYGnI2ftw+f+0v/r2gKgBVnPuby5caXGBIpLlUFcZS64u2sMMYWKmyG
uMjIq5D1CslMTHFKJ12wgkDCKub4R49EUMqSxdFyVG9OI3yXxikjdtwUJagmcdUfu3iVC/UqscLn
cvFUl8JnJSFIpc+NVH32BLU5Qd5YAbPppW4mGvCB5Xsq0DD1NLBC8Nx3fxgfGIrAEnUZHUN3WoXz
fd/H1aWud1/fjtCZoNTL51I7lPWyCPn4ZOzkfaofLVPnAr/qg4D9rSC2asPKg747/NO8ttMN2wpc
kf1f0rid1FogTimkiqbb7HrzrzfACHIdlkpTOSvlQ3PD2huGr4/v1nKJpUxpgeyh6NLWo9jSuxcC
jsKBY9BkGV0OUtCuiL6wKOZudpmNx3yJVNXAp65vqAgcLgiQMwMJ2tuvxmyLGNKwjsNnL1Zjku0W
7qdIWyDuoV2+5YL+YhxoIx4cLeKnb/znjefb4Xm4TOD8UgYh/nnmP2ct4OfPTXzDuac351JKvZub
uu7ut+cuTqzeE8vHJQ/jIvqeJzvJMb5EERw651W78Y/8vrGKoQwuKX7cPjyujaDdBsDUPOic6dkC
/x+d9F/32KB2/Dl2n346oGWH+C+1EkESXNt6gvAazljgEnfHTuTn60QzSkh2fyA3HQPjI0fleivP
IR5QFCFaNHJbPP2qCDrUkJteb7dzgqXKcJsWVm2Yjrc5/otFuFEXX0m92SqkYhN8htWWk1E2u8/X
nUra1u8ZqFy79NppKLJMeYBe6oGV2XfuzVfxg3oxwYZ/RpGC8JMq/KTzFYuXEQM0g5EUrkEufkYm
olnBEZ2xjJ+RPYgeExi2oA2KE14QSZTM+ZfLcMCYif8fdsZC+zREzCfoMrPudlkHtk9sJA5IZVv4
BF8wf/E6g8SEmPQCoALD8G7zJf7bNsGFv72afwF5Oxdc8KeJrmQTpatTUOnUDqhyvxKO8pbFbJ4B
F+PJQIdwwKhL552fLQIP+tvxAQmNnwK0OjNb8mrk/g3MaDuEC8dBL//zz7HhgDiYrgs3Tvz1Oh3O
ky/F3klcAogC96fz9HU8LoHe6BGsJwM/U4OLX/d2FEac/Xa4iTjFG79xhnywZgSsptzCDXm4XP2w
HK20lbkKv5zPXbBDLqHx+KPp2RreP9j+TouOvTofFnuDxiCYWYz8F78xz3QswsB+3SiWIw39HS7j
oJjg+NN1eJZivdr+OJ3JcYLXYqgcX6oIZYmb8joYw2KBhDIO0HTa9HILdvEtXlW7FJtSuwnVIDug
omg3Vit3PIbvMGvj3xdN2KbYCd/ndfz7spLaHMPvwd+WBIdyKt/zhug5ZVZL++qUfbXhvnqJLpVC
l/Khy82XhgengQNSPFc5T5O+pbxXTuMb91gL1er7Uvm+SN9Snivfs2bGPPJ9puy/6MLvxfM3yu/X
Qe+yVRir7zPl9/uQfpX0faH8fh7uv3I1qYCmjTGkPbjwCgP4A4Dv2UoHKJQN8KbLTBBleACFncsy
TYBMuQAODhz7vlAYiHfDRhlYEVNlEzbBNvIF7H6b57dREyxeXIEn1kr7yBSxUrTph1QojBh0Oy8P
ARSasucuaLUWmT9TeKfIpZbo1ffK3RWZBByw+l5REQyOOv69IryKIs37S/nPP8YLROyoCj8WcSey
sifRYyCzX3srO98lsTvMd6jZuNiipLil0DATBmR9V0bNMKdOirg55k18CLlZfr3Mc2C8Qth3eMFo
ZxG3OUrJ9SCj+2m6QUs7N7SxNe6D9rY3kmrQeHXVpY4eP7i33TF5mUVtt/hNlAkPZtkMVfeq2+He
EDV9pG4ifhHVhy7iQzeQsxsw26zrPOnxxDkmq8ONlnEXEJPmqyep+pdF7/0EhiLDTf3hetsRRDAC
35APG7/tSnJ+CCIP//5pfKHIsK0Lov9px7ytuKzIG2aPLi3wp/knXOP7+QLFH98bjlSW6CQN+jZc
4JltMInzlRRtYwYpnUtZiKG2eGizhwU27akMyVJ4X0+mtrKUNzBYMeGHV2mDGQauofJ3RxIyFrBo
0PFvQugIFuFazTKNv1W/JgtUCw904dBrnPn9Wlgu0myIBG2JATXhm2riEjSlFnumFr0RAqSCJSDu
8vJ6xD6d6epaCuPXUYVxk4dAh3XMQUecWSQpTsCexeWoJdB2ETxd9/cLxHUYBXE+tR3vHc/54h33
zM9n89hZFfEOcdwgNMJ4KH4jLA6Rh/XlPnBGVotTRQC6Nu8uMZR4pGceRjda/46XG4qf0d8sZsWV
l6FgI+NKLMTLDEU1OJoIKGWeXizD8GjnoB7XgE+RSVjUhpW4fX4xB9sBteLX5vmAjfuOqXwrgD+m
+cu17eUQmQyBMJo6PcM208GpossYj0Fm1b4vw057KFKfT9uwYhs7nYNFehckg5hgii/UriWwdd1e
vncc+v18fo8zQiaFWhfqbLjEosuZwAZmcrjCdI1rr8E5p+SYUr3oaRwP8OwviLK2n67qlfot92AO
930bUdXbNE7Rt6FB3C7O5zqgFQ8xl7IdLGnY6+twiJQ04I0w2Vhjt/HD8RaYdtRZT3fF62pDCWbb
1Je/bnHgYQYawMhj9fV0Qrmpli4uVTt04QguvZSVTsfr0m5+f3uDaY81xSKg8yy6ZM6QQZhjQkO3
4vMQCzZkevnUocfDaC0smCGFlDoU7zSqOVj+ywWoBMlQO6FMIYzfSo39n2VAGEQhslTp4wdijbGr
DjyBupVC01aq0jYMeHYdAHpd9jK6lXLKS9KTQKI1cAMixqqqu3GjzlUJSZ+KrcGOAl8M/4OBrzUc
LQM38C4AeNSNnHgxtktyBznrvlvN13EXSSZPHl+CFddz72aExOA2bhIhb56NWvYQKMoJxI5giRXp
JIXCkLVU/jhcp8MGSvLaSY9Dspr3PBllPAPSaLze2pwoE7uT7YksmK5yIawKlKMzCxQptogs3nDD
hiDBNM/jFrqUEo8rMylISuVbz9BtOUPZSULPLednyY2XpADNWScKu2gvtgjONmA65fVWEnHtkNqD
MeMPMKcKEDAs4tkmq6lgMxSWM7O6b9cetbS5K9fHOjOwcDQ4rfn+VMc/blane7zF4Aq0t8m7nz2h
zM8fqJTSGD/X13G8JXW6Pw9kY/rwPKfZXZyib+pe4s3nGfQMVmgTbsvrfD8esNEkwVC8Jc5nyA5G
ZrwMSkuUYZ5e6ruh+QvkoyaH8RRs0PKKUwwVjCPtUtzKU21DcrTRp1oq19unOGV578or7yUeIeMq
IXDyXOwvcxMIjlCeekAz67o7GjPrbsz8q8JlfawfaX2cfJMIFiX6bXjCvhkylQbligpRyjwyvaZU
GllQkS+XtHSYkcAqdtdCMxrTJ3avt/JIu0knNJL5aQyn/XDedKi8Fzs33Ibe5juOQlA3UZcaXUC8
7vwsC0XQNhJpDIPsEsYrE6s4urVYUN3+/PY0Hmxjz68W1epXMqd/deBWv1JU59eEgMsz7eKsoZ/U
AAx7j0X57cyx8Qguo3OFlJfJAGQES2DldCT31JVBp3aZPVyfIvOaQpT78laaLSwtg0fa0U3Y9XuY
3xR+7kSMAbshGjuhsDI3W1FKxU3xTb4yAxlIvPekj1KpJnHAgcoqTSd1Ux+mK7b0k8ZNCg2GecHc
xcitK5tpcwl/ibOedpJMYr1Q4w9GgGkinUHaMGzV13E4bHLbGs31XZFBeURtLbWbPTqwmmmZa3xm
oYRouJViKFernmBVsJSbYkUiHoX4nJRHVIb2Ox+g67qecXY5bgZsaZhoRcBymNk9K8gARrT3kjh9
BQ/lvIEJWo0JAtNxk5nUhVxdxK2uTLlIhhmc+9GUdhU1Gk9vq9VkDVqjyo93kpl1JKwI5S2WEqsM
toeNSoldxXvaY9/se29SSuXK+AxHMMcGe5KybrbyR6P8fh17AVKYcdPDbCQ9cLobiwnyhRtFYMGi
jmxUbmRjivxqV/5jzLpXluAQI5ztTp9w5ol3rxUWLDRB7HqQyXJ0I6xSkZZeOpjTUkn6MqBBVmYi
Bqm33DrrURYCjWtzTTEA8q1mzSZmLMXwK7P5FPHba5Ess4VPkL2K5pWIc4oPBPEVPdX2GhMHzp1C
i1ZbBGwizb/IJUIi3oBvbFZkVasRIlQ+m9it0KTwp/H9aYZ+yOsrDWfVriiXGBdhT9JvyAtvVubz
KFsUC63upEvBZJfRptA1AUl4/E9IzXm8NZdp1uIsalwXLlyJ4zWlZkG721ry3alIrhgggUe0gcq1
5njBMRR50tRaFGKtRjbpNzUptHZRNq2YbTUplPviKFKZbt4pNmKthcJE/19ZrSsku2vxo0aoMbyP
1/MYh481t89EX4Nw0UH+0YJ5U9rneTgeIQWgPIkqRAsrfXT6i0VDns2h4Kk94dVdjWOjmfh9JcGP
iekkheytdHdIILBJD9NFRz818pVZS/1SzrPKimkmTq299sdchMZDxYPU8Vmb+UKNrifjOx0HN9LQ
RgcUhGbyWFz3E5TxQMNI5lvYf7bL787X8X6YValCi7m+5ybAGwsXewP49Fj/Eq7iABOaoKsvK9r4
N5l1IeAbniLxIx53gPa2ZG6SdMkZXZgegkj8AvSkfN0W4RF8R9jtMpDX63wlZRUrpVereKgoY9pe
0WXGljCiLDbyXSMoUgoB3bBJLLyBLjgbXrF3b2G2Z+323Ti8JrDugC3pBuZnqBgxZvhBWcRVP8P/
aRdEw6wqn5TNF6vbX+Mqjl8HI9cYlb6NRJ677VSSknGZOR0WxXyUz/wdM58MwAlBvMCYCnPLg8Ym
y6S5ZjXoe4DC4+P7Dv8NajtGG7EmiD7lEnp/kzWI99oK9azstWtgd8ceYRbrF8oBmqCTPnlAP+OT
R18gMQ0DraGwlZy8XCFw7s+SY2d23mSuIO+d5hBbyMJCOVrnjwZVRPbmA94WX7e2qPMXV+LScLNK
ZHYebwHgAGyosd7PZ43dCiZSfOERGyP0fn41bty/Q6CwX4JbLvoiKg9UKuX+2SFU5EbAvG3vL2Os
jpXx9aOkpt3u57en6YSz1FHmgurWZDd7CwwBer3LkNAaGzPV2i0XJz5yMHCwYz39zr3QhxBT2wdI
P5jkAouJkzJiL9Mma39ohldirNH99DxRPa8Fn1Jv3IYJ8E44CA3Utiq4olagMsLX2MAimTS2zWd5
pvzCNQOHidp8iQ9q1hLcNpRzObCz4bj7gEptS3YYD4W5PKHkDWdMkmPFnjVkEIIXFAzawZ4OwVUX
Gj82kiDJSk2I5t4qYmhuRIfgh/GBqZTJmcpnQXOcJA8TMLawStYxswESq3lXW3cKTdSkMO2q8DxW
fnetJr8rpvF8JizLFSXJ3gPXq61mEFeVpCaMX6wYX8v01SaIbmSxbn/8hnEYA4Z5eAQ4RvMC7uAb
oK+5AkWNd2t2PYSNkEl6W7tg70k0YLE1dgU047FqSrndhhHDT0gwDrPyg00fUr2x3zTaN+XarFyb
r8HbiI9vI72TS7Lz8Y1pT6uUbB2k2eH9NLxNe41qjO/wUSzDqF0bxpfpdDAKwOjSvW5CuD4uogz+
w3oDmfLC+n7F+f0iM5l3nHZESk8FDLrUcYVrrPTp5YQNVkmB3HkOYRmmvOkGjUU6ka3aeq89ZvGj
LNY9j6Rb+VHNBntAs71rT0MIdjeVM3A1eSI+oSvM+Ta6M7xGjXeYpvYxaK85NcWn6VPmJnuctCyr
FKJm0oF4aIJrPVfppFk4ZXhLlcTgxrh24SHqvrSFq6RagZrevF/iSFqcyJ8CnmVPr8pYfJquq1fm
UrWBn2qNn1rJ0w3sKaMctFOsXl+lWyDMVdHkJQsV1Uvaz6ha7UmzCBGH1x1ecISXaJc+TAZK6ALX
urqQv7R3VmsbqyvJ2AhN3PErTECHZqm4o05xFgK4/6zZ1LX4UtmkQuptu/5bnFJmNVJzfeXnLF5p
t/frCD2SrJyajgImh8abfmlWWEkBF6LCogG3xlNdrpPssdxXuN1P/7qbJ2Qe0MHauoDwu9eCRFys
+iSw9hALLeTEFAVailbLfqOiKFlQA9VWzq35tB3PBCJHODNPUFWQlXRjQXxCijYprMyckqooERW2
aSTpvEBYbPA5mbhnrzgMPUF7xnCZxqseSWHs1OE4yybAa3d+TzK2krBBy5yFDxd8BTK6gXF3xlqa
EZHar6+ZlGEoxbJaKJG8Z8Hsu7U0Svj2K3s/t9Ky0oSlKMWNq3OAbrS36QR1VHsWO9IiFywW2i+N
LzHQUYqetuGWC81xgLZjAKNP+A/+RHh/mRug+smI+82elwMjIMsPugQf2DZtgbOtYCV+J9w7zHJe
YiGbnlMjXnOW9YoF14RuscSAPlLPI4UE5LTAOLwbTfZVU4Wt5ByANoI+4sP4PJi/jzOIj4PmuvLA
hq+Ay2rNdS1LKYeSNbX2zcpW75yBoYndupHsYZQOLhy8IcPWFKGfu/y09stlSF72ywikfhgR9POG
8ExWaRNy/nB5uSfCFTlLWzLDSc4KzOfb9Db9prF/zq03bxcZw1GNLpVhdEnxWrE80/z/h4kmxIF8
eJ4voxHOf8dCAM2L9aKKQcRjT83rfISCOygTOm1OQjfMLFuGXRj3QeO9IiS3dfONufahIGDOHXJQ
ikVXCM9btGs/JHdqUe4soUbuq2m7ZXmoGvMV1tRpMi1+UEhvO53kgLnyqTxHG+awusCicGkp59c8
eDDblFLRh8n4tS7ZyGYFS08Adknn3z/PUXyNjcW0uf1SytoZW1N7l20oXe3tryojHIyNwyD7CHu1
uZRvisg2TYp1oVy1UaNGi+uXjRRrDg+3lNzFS3Ctfs7DoLqt/shKxQzqA/3sBnH6FxrHObKWBvPd
/DyCVXY3EdhjLgz+e+HC9FWtli60oW3RuY80FVp0Eo1A9lFZknK/3JYhX0mOjw4n7/ke7qgEdQRJ
GzUtpAiNEwMEG6W+9CrUBC4DoWmCbCVZ16G++RRHpLKCoQ5Vbft4/yjwXeTqu9P/80dtOX8ICP71
5cosx3jcvyOawdQmuIalPfqjHra731T8UbWxyOlG/sg1/sglZ1aw6X+/wmWZCMaKWa5lzTI5a1Zr
39S95ANmbafaaY30gvfz/TqdXPfDcAlsRmciaK+HP27EJczsoRUnkkXKcf+NJL03KY+CkYKpxrDi
Ywbd9nVTzJkVNrH0Aeo0eocf0mzcvy+wJNTWhKLx8A3kLrM8HSr9t0RImyDFKvqfH6s60KPkvHrR
B8bC30tZdMp0cetCrEOIVm1nWTsozFpKGSpP029L62S9eOLpW9NEOUvys+qIWMxOE5gs0gqlgjY3
HJHw2yt/+AZZjW2nC61eioMYn1urKWAxDZ6G7FVzuRZf1mOK64PxWRavqPE36qxLVhw+gV7WPMiM
1zAiYZwiPs1pfZtz3iMUKGc4VqrhWIo5YTXGw21rbyjr+bhSy094kQoN3g0rkt7Pp+ejmpLIm1Ws
ouBB/1RCI+PFNx2GhYvI0yB74oOVXqx+ZlXwyTkwaVlWeWhM1aJ7/O8IHubcKfAe4MrqRDHx5XW6
2eGuk6311GSjGOv5FqI6uIiFGq6qWAux56UYYg8vYrha5CHrOi/hlK2RAX9GsGEsI8PzJWylj8p/
XoPiNXbWaActO8kTXJUt6hVpRdsGjmyZx0sfPxZd6CVb+iHYlnq0Oa+F6Ds7B4HlvdlD+H2Z71p6
CyumSSpJFnaqQdzUfZYqrYfJ7laMasUpudTYkavxziZTErjz5W2z1HbQx0tBdRFRrt8cAxCzGLDU
1ignFznwFsq1pvrIeXNGOQz7LTEFTb1mYs5nI5szFxoTasZ0cipd0+iF5Hx+Y61MmVdSYPZjRrz+
yoouWxdolnLxJ/oius/BM6kNjntetwssoRKU9Fo0zz9+nLtTqfH8b0pxF6xKhmHRZLlW6JmJGTav
ZLbqllrSLXnbquVGfaSCUP2okZwtxVSmIA1nphEHyWt15GWyCCNSraYJbsaYYLPk9n7QMrVAz8Np
P2oF7k0vHT6rtFroYtUBV4rlFf8Wa68UPdaYeFRrb2qp0BVLNMZIWOHDtdw56w1kCjk2xJZc/VpK
LsdVgFqIyiJJBdSBh3MDFvOOykZc6mv540QOrBMzv2Jq73eWYTpIwlWEbfp4e2sftk9UIqf+zrRd
uSqWTdecVRqflqGzWUVDprwLekPQlN1ei3JZindRBJ3a2AnMyrzVdEc0vy9vC1EQ7htjS6y0hs2k
pqjoFZKXiBeaDMDlXLr7RpRNjUFaD1jeSRH+D7kJWceMASz5csH7UotuMEHGJLbj5a0uqv/ppobb
axobmEhFcv3rW/4HLWjEHqBHF0h762mGznrP0BAu7etYccaHREZR1VJeaKNBCWy5waBk997jZO/O
40IlA2nMxqkghF3Z1OaHrCte0uQV1SpRP31dFPVH40qN+DyyVsuvV4XUlhXYSK/D1Y4e0GLJvVRI
mbda6Ui7IceBUQmbgzGESYTEmNxBCvSur0o1RTO50HJz6Im73DVYI0XduNIZ1XJuVmKyUt2SDSHB
TCw7JiZN8njZiCX9jRo5aMVqgdDf3+xdlbXUM2xbKD5mhDBzGYJfVfbQGfOt6ZdcijNKWeaPvt5S
ioPpAXTNyWBuJDR55tlmXIENFYTFujZL7StM2gvMfWWZqI9CNag9xbyFAshruxfpbXjj1HogqQZO
FodiBo7s0aRRaWreil34XoyYO6K2TzCZkuGgH9c6rNk33IdaY9w49JFvfTCVmA6sNM2Qi15PlmeK
S9dKEa6s0voBc7GNcalEhwOqbzbjECM4PMjCEohR3I22EMvZse7zTO3zrcQ+wKzQaJx1kkl7u4yj
HXKzBMcD6Iu0I1ly7BHvmGRqGWlZyddXafnfdW1V8yCEhsvt3wVjlLNu9BJshrKtHiXqxjB0wVKs
GI3oe4dGpFWZF41UmGysDE1F1xvy3R+2NMoq1llH7kWmvbugqBL3lMyUb3VgC0nY2NhcfBinNfJz
CXNhpdrHZ4pMXVegY0iwH2PTrayKLyQHgEzcLzNM0hyuKcIHoSuGXCBi35Saxe4XAgO2X/dGfszg
yhiQBIQ3W+d86IAVtYTaIRhTPpz2+2v3Gr17O6yfUSlYrssEXCpGRSrpRUmXa+mbTGyeJ6+IZn6e
ACGA9YJCeZhrbnUaW4W2ySSZ/W0ZambGMy8krIXb0mhfZmIdysfCAuliMfYjGRlDTuOqrCviwgl1
3TpMF0sDAzfWzjzKNTWQFelnsx0KI6h2YWAkjeq6hvpajmUsTQcbCjLbTCyp7bScSNVK/nPWaLqn
rKXn99HodNKjYfoRK1taJe5r1mODlLWbaiTMAwkDS3tUWYD2xWO8bCVNTa5MNWeca/4FcxdXlTYf
b1ouWilI/VBUjEsuLGgv2PbhX+FuNVugaDIpE7p443Ltq5by422T+A9r76k9wKUIyMcBS5JYJWLB
xMrK32TUi81YxnJTay1rsfGz1EJKeSWFlNY5CI0/Recxb9WdtmKvDIdwTCc9WKEXCNLaBkV0IL2N
VT0riL7sm1rh0lKLuTh+ygCGQheTSAuEelUK0ae6CSd3sOQ0ZD0/WGGbsXwXCP5aLrxK9WPxI/rq
ilWhvjeCA1m9FVyj5Aqaj5fOas2LL/O0ufPvNIR7EfxhXUv1e9PKvSiuN+UCVexV0cjMdX+DVxX5
FuZNe9GqwHLxiFmlXTYrAGRI5F4j/s6y05z7Y1CJlydKHNRQch9m/Vy9SqU2ElbSAR/hZVJd1GXW
xQIYehxbM7s7KTuwLuHRdAxjpGyJ/27qhU/DuLUBTIaFH3CWqW1y0tLMvPbdIVramphGCaAWG+pa
IbbwAby/ghUeQ9q0FbpfP7Qery8F6I8mWfahVqsWYdmHC7VqPkcpWrLkKH9T4TojEQYC228omVXb
IhvJdIgHLX8vmhsvNc1wTkpmRwq8DueR5gns4cbxP3d24qBsw1bMYwPtyDxD/Hw332/UjHachxut
Lf0P9GMwBejFmEHn8RKVDxUDgC3zpUYkE37zMh4HiolPv43RNruKweqV+aoCVdyrHxoDAgTIDm7h
NU6grmaro+HQCKsHJBhOk7nU2IyKioGOYQ7C24Lijp9wMOvuMhym+9UJPPOnX3dZlsX3bXsPcd8t
/kOhyn66wIj2GBxixZAQcMEOrfhWWJBmkDxPt10MAKliDa+4GBV6donFSmWxbgtHbSBnoZCT/QY4
Xnndxn9jenvBSDu09b8QG3+ZDiAUohgKFcNwIqp4CE35J4A0luE06rhmc2JgNjQmXBamrA2X3QvQ
RX2+VkQzQiR3qXGC6+AktqpibGXXO8/H95f5pPNW3q15q9nKDufhgOKZ2EHZddNskQpOPt4GNIH1
F8GeF16+NcWkF8GljXJTbMUS7ShJAqSFlYvGwkLwDBw6fLDMwuivNDoowek2Io57Y1N+PnpDCts3
jAsaNJMVGQvcf5vPYF7ccTzQ03j7Mo4nzEhRxbT9qwrbMUYmzMdy8/NVBE/P9A9LawWLumfx23iZ
d8amuEVM2IoNyKEFEUywiMiD3fU8nK5I6v18OY0X5fQlexBQ75DXypWibFQomX1E1qKcvUBkwtzb
0VB0tLyiyFkuw1gEYcMPAJcAUyiLd2tKSIu79RKkqJotb1hmKkWX9+0WHrDLfp7GL+f5ctvdT5P2
AArGqWWdkLtOM2icz+RX3/qeQ2W926tZBGpl1ZVdsQEdH3OL2YctRieXzOtQjMd8C53Hw8sYx9Ks
GF4lmuklDrlVaIHtneYpvEfQqCsW4qHbKvHKhBUtM5lDmhOrNLX1tyV5kugbbdHjyoo5X7HEUq74
iuPxOJ2v48cMLjdEBn+iWhtcbuKJnZAKcnXaR0CQKtasQi+fVZqFG3a0VHQXf/VJ3eVpmSm0ZA8e
6OqCFhs0rufzhIVcrzfdRx2lNA1cowtdTeGHdq3sIS+czQs67lN2B3N32VwW3SdSzMCW8Q+BcjVb
FcnTfLvNbyldUq7XrxNuUqOcnQkjiB/mhbTZ+2lPPTJpV6Bmu/NopeLrURbpt6jLhCz2YkqRxZyW
ZYyWDya7IqBsEJbOj0g47Tc9KoXB6mq96ebbXFvtN5hsaNrYw43ewDKRc9MttP0HRJsT6svC8GSU
G24/8hpDY0nzUP0dsJy+vGGMVDqJnFI+eSiL2g2ySJG/LVuubTyYelxW1IqsyLboXifGFeJV1Zb7
fprIows5WF+YWUQeqUlTNorzXbVbQgZ2iM7OS7jXWLK8YnXf7EY+cnblqnnEEyL/eVttVTsxCZrQ
Q15tsrLpiIAY3ubTYQkH01tQ2LZJB6BXVqhykSWP/aBOkiizN2Jldx74bAeF2J432OQYVV6pgdmO
G3fgfLTZR5xPDEYoN8XNJlbBKnufG+z6qlZMZE3/+EvT6dFwb5+G/0Wf8trL2xJpz4L4Sd7/3peS
ugDGz6yMLB11elNtrbzccq9pW0PLGHCpkiUyBvZ2E+Z2zqS/LapO6CTN3GJCuuh8lZfsrmHkLhUi
DXwWTB2VG5RwrUizagsNcZI5bPg4nGl1ZYs8J0DO+oYtKs5lW2zJB4SqU5MP3drv/3j2jUd1FcHJ
TQl03tqkkk4wQMa9zLjJmCZDVtUfSAjYa1piFc5i1+3Flv1Eq0sy85/jBToplKfZrKN1rfKaKASe
fE7tFiIEN6SIo/wDelJRPVqO4CFznG94W5ou65kxg5Xb7UdClpoTwhgV/Jy865PMv/oBhXnZG27r
mKG6Nho0e7pKJy3SN6cEsBv2A3xY8If9YoU7gshEOuULtP78MpwV0yBfS95sSwRCCesVTJbDv+ei
uQF2zeWGdar6m3OF9bRejxrn2xJz2hv5iM5VuEMRxk3xAe4ISjcS9kyRKRGvDdG+lO3IrYfWY/xv
CY7oS7uuwI+/yPBeNaJz4Y945NW3hZG2GQMfibwqXKTl+PO1Y7L9NlR32nU2byi6Ugm1JQPV6rcS
N5q35DuqdRpV4qr5NO7O09dRWajioStYqMvjtQ9aurTkxjI8/PIbQ5lMSSi05SUGeUKSxUzfTb/U
FWtubzdHNhVvpe/U6LJiA27hjmZL9Mu5wsM7Arc9Q8fCdDIEGo7uD8+x5p+KYU8kwgfcxawU+c5T
jliE2lF5JaupHE+pksomFLXEy7aaFL9wlaXBHhXzLFsXAVR8SbvMcTy93F6VSkYWG4PgaSUtstlk
ZGVgrBc8XCzlfLGUsavsR2K/DpfTeKWC0+fhensbjsd5bwyiG05lNO5NfMxZwWpmYFFWR3ceMM2+
f7WzjKAR/zDcht39crxGF3M5OFyMp07heVyw+uYy4sveR6d4FqzoANfxgbTbeL1d7qeTYfvEqVzV
ynIqNyIO/5byWbV8xmK3k5E6l9Nw3EDMjp1/sXmW0//2228788mobbyQNv42vs2X9+n0PKe30PsF
vOd7N+rW36ny8518gcTrIJd3t/HtfIwVxxesYgYX8VPgnmeQ51Tx9hR7LwWrwsTveX2UOcTFctAF
65dOL3ezLeU0nha8//vVyGmjUIzUPBjROb8oC7CdZFhHbgXmgK0wb9OVquDNnoA5lYX8K8Op7S5z
ezZqA76kB2yY+wpF4UZx7yEvMBm+w5CtzLLwSGzUEB2apvRhhPVSsWPiGvWyBvZGlMvWdva5Qa+H
xTGxciW+WLks5nJNMQmgkCt/eAX0fhHg74DfTM8XaDGkfjgqpAcetTWV8MdG9VKnC80NwX/dG+Nz
Z3Ff6a+KuwAOduZgF+QyrWU1Q6PHfj66jrzheH4doku5cFxHj9J6FJaqB6tJqAqHn8cdxuI3sRMM
J2gzAYQ+6A+6QsuEszJ2x0v8SJnfB5OruO7qN88zNG3Osem1ZrW+YKv5VtW34atbQmlvQKr0/nuP
HhBznOALF+Dtgt5f10tGopEo+Gz0IPS9xH+8ZVdSezNxfHvChAaOnwUIrjFOzVKi5tt0ops8f71G
P3WF5l2Qzx7ORqoYRxjmPWFbzT+Hz4PemAKLNU2wD1tM5gUlbie6l95ZhZ19sSRs8SOjiB1bPN2N
V36K80Ln99Ate3iDJjbiBY0YlURHP0oemyGXxwz8Hz9LG7IUMcgqqAUZTedKQD1hnLB8td6XwcQc
BWTROnjqlqnX1LyOw2X/io1i0bOUnr2Y9rI84phiwzvtGkZf3ym2Wfp8o6xpGEd4K8AazcNL/GEy
AjLItUj0AUmeh7yXq7jb+EUXyuP8f7h68f1ow5MR9Avo+3C/zQml0ee1JBOXlbGTDuvFyWGLr8Pe
NC80Wihv/j50ezGe0rrB8Yk24TvPmfBfNphcpJIe2Jq9IWmXYG7xmVgJvkX69lkeUlqUGrfLcLpC
j3Gc0F24TK+OYkXmYe/SZ61JaBsxhbe7h3s23GL/FNsCouFS3EYh0fXBDjBPcD69v82QqjZ+3qdF
LMbJ1G25MBCNc/yymNrlI9u/bhHumfogni7jgM3Sb9PX2/0SP0e+UrZusMTued7fodLArKH4RrgV
b29gOCrjPGcsiJfT7pUwqD/j/4nT1J+JTy3P2jjPtOEX9bbrjVMjkwxKJpbxo0V8OSXB5BjJe5Dt
GMiEf4mHxVFrcOfW3+TjbzBjHH9EWZG5V42y4lr64m6xGuR00Cod6Ue8N4rP1UapuLG4AK1SD7gx
JW+GFi/j5Zq0I/tMVFcfdU78vaeNnK5twufYhmSzHsr0W6zdGxmyDxmSSA/BLIfwcKW3GdcEdfgg
3QzrKv6bXnewUL69iPNgKLbDdxc3VbNSIvZamBkFdo+iXqI8y6Vl6Mou45vxVQ+usd2q2SvE1UbF
sapCnVD+nreB1lMeWk8Fs57ehvMu7iO1osAP9WJcrvSSXwIRXWcww5P7Mj59miC8ff2Eqo22pSq4
ri0kZy+U3/Rq4vLbnwzjFLWwBLpv8RW8GMbSwo5R1d60fi1dEbJwu7qWp/uLMdc65XZ6ySpeczAu
GGffLHQM2v9ZCzRyYu+XIz2r+HvybAvVPTYoZRS7VQ9JD76TTMrz4RlQY/RDZK0oDO43tJ/W9qgi
ErwwZENe1JeXiPs0meROPFgs8TdUSdfjDffjv1831zxg5vf8u3RzH66Y/f+gm2se52dxPh9CSfBf
v9JBvePfjZ/nkqhcboonH3fwKI7zC/0PuLrjiLiGFIMR/7aLR14tt0QbEFcqljTFnfaScf07IgTx
DfeS18biRKkrK+NRhfl0nIe48O9CrR/V0d/K0Xi8IpQdRcqyiCuKOpSP/UaH0NzSyxhX8FkvuWNi
BBgrb0HtX+ZjXP4Wnqqs5H/RiPHbyLZuJP7Tntg1ji+NxiIA4DCuTivJ1PJCRHNuC8kGDg+hGhR9
UUqudaw3Ea3oRgoL/ltzCXGmFAWmjXmAJfjlMpwh6/RqFoWUT/z6m9D/WAc309H3ppZM1cCbMKbh
STEo+6wQfbct/lP3GPsnK+HZ2tk2o7f89265IUQFi+rEsm1DN7u1ue/hcoCBVnErG7/u2Nc+1su2
saXZlFbyuXwW5LjNLy8YL/TnSmzIRw2w+KFdb2gpJFJIwtbolhl7bI2TYdvYbdEuxLS6kf1e7ENd
4LKishdxpYTXTntowuIAW1NiUc7YadCvSpC1rcN7pm3Mxn0GmFW2mB4BpbUqKQyz2hAWymulC2WX
hRbjA+uhOPptVgzCsqtCpmsjW6FzKkfy1ivW77iZIoYWNEHMkQje4/0J8R+uyrZ6+VWBQv/IW6il
CNr6dMr3eVhYUfLvUfa/JPmmCZcouARPfVs+bJ+KUw7TgB+8/QsGIFs4TW3MRQtztVbpLWu7/2v3
z+sOl9yNX/fj+baL54Nbbv/z+R30PQLW7q7jZTIb+S3e+wYryWk7Wgfggi/TGTFPcWTtLp7/aysW
foHe09zOd6KDWSxIXDeqW7JVkKG0dg3i6GsKrau8x8EGLtprOc9YyLTbX69xC7ZlyWSMZBVuCWsN
Gd0YfcK4BZ4dgSdsH8uywmJwK5HCilEAbXXnJ4Qn0eYi4Vl6MUHPuRTrd/6mXUfbiCkvs4rdRvQU
eSXx1AIRFDDp+2n/eplP8z1ubFZ14Fvky4OxwLyn8cWupiSveNSWtx35ZewS8RAWdxaplLdgHG6H
1I6jO6D2fNlKhLtYqivFGSZIBlYeac+stKBjGlfmajTABOD7in3NQ6CU9F+Ot+hSjTwlD/9g5dly
Ua5QxUmRMk4Z7h0xpA/hFcXz4iUnL6sqZjshwj6PA+TelLVaXsGEbSJ1/yBp3aI44iouafP10YoY
fZTt8Kwtq2Q2i7jxu7po4PZ78JjmCwC5qMqiy3jtUOdr8LnyMmzyxZjs2pBzvOh2/ZjK8CAbBBQP
Sgci+1EwKK+aS7kseNUbxW2Xi8EoPADQ5P5mdzGcp7j6DO/Fhh2jzzh+Hl6IQbgPdYzNqvjtMF6l
cthlP8jkRj7F5XXZRaWbo2j6crtczJuADoMhKZC5v8Uz9y0v+FvJRSbM4nK1ZGUo1KNdsmeP0xjT
j5VX23Bhdpyex9sUN2daZgZA5V9dqdohvoGep8QY3FbUvItzBLOwsHMzrxrGVgAnactCr/Hd8NAB
a/R/UMFxLV7y9H8ZMDeEGRDiK7VI23J7ggHuRR9bfD+8WomaCHN9qXj9HK/H4YVP8GqgM0pn+I7H
N7kYk6yuuKXFjkPwzSnFGWcYXmdKLorlYmPsgcmnsH8Tf7ybbPkuF+tUzOcvF3MExTDjWcoq94By
y6fxt8bTz9QJvNAufeQuW5e9tVmC8nH+7pqoofGoGOMisOBbwgp7W3VQ7vGvQ/n+r7ipX2Gt6GAa
ajm2GPjB+dSXEq8p4uXXvF0xKtXipKripKIad+N7jqqM55FhsjWlZ7s7XyYlucNq1ZjjG/hrSZdP
9uOFqIJifDfJd5cIbnS8prpcwtuC7REPJPDcQtl40Am3gtbDhneaSfHxByUTdx94SffKNIVk6CZp
XEZNIH+liXhEIVXWwB4AMWvLHuoIZ8aeSZzJK24jd4F0ComqGFR5VHNvC5uxLCarm1gFRrZENbrI
Q9lyKSx5xzoaY4ZZ3G7IYiLs0Y6JP5S2XRsfGbtgQHJQK5PaWqxEibJHXGvyAA3HtBVOE7cX2iZy
GkGEKRYvb6nog/jBeiuKTC/XkZA8rkDjFl1QBsGwiOI6PU5i3hxA/khC5zXx2+rXgdrobSmGUrUW
cNVDWEQbQ438V4guL52I2jxSHJxJZVhCrCjuLnNtwWESecDangeqAaF5WYl8VpVUTyLyjaJ/yrUp
X0qyLplnaCNGsGxvxZtGinxj6DT+FMoi6twEdpbCcH4FIHKVCHP28dMUslmL1NWQApGmedQ0YGEF
JTJZRrUgfj+p4beSCZSu8WNQ4BJgZqzl1iFeQt3y0GjdrnUGf7dt/NXFQlWMBIoLz+p7sGsvr2OR
lTg31FyGgWitWvkY+0QZe7uuzS4f1qF5tWYhjHBgMXB8tSbKXGC2eRaNWwbVWpfWMaEWp3GVR7ex
tsMVldPLWj3UXZ7WcYXzID9cmR28/MM80jSC6bQ/3mHYjNZR3JZdJCkly4G4Qco7Jkmj2o5tyglT
q7Ur8Dm8K5oIvIzKUgvYCTt0Wz+V7gdc5fpf2PzwV0Opa3wZG5tC78uX+b1Oh/PkcWh3L8PZQUNe
XeeVjlJLe2yXxWtg9tpye6zHED+yrx135KEdXOLcvIfpdB8Y1FD8cLXN7y6HK9nh1qcwbt7w2XBG
DCyNDpT5A4Fkq60YKOqibZUjNX4fvqrB1kfYjbjJvg5oCusBcdzrValsw2MW7A5ZdRWtC4Vitj6N
fs/+QHw5m01dliPNh9XYywii0/x0iZ+3YVfIpeXC3nhvdgT4dJh2DrQgvqRNEOCSLWs9LRSqVxJZ
fBuva2N3Z9pWCk8U7yQeDZiT/Y5ZGEmvUb1q2JK1VPEHWuUFodsUKnWhUAgWsQ0L0H3lXhO0317G
k8ILhSQeni5Us3oY9/Nl0GVAw1Zo2Fj15VwENOzLw1DuKdfarxbsHmlvmxsUsde0ATvZXXGx52hk
lrvenyj+4faoCAjPczUI+dpB7ZLdyhqSd3nzNN1UBY83UDLG5/lgu7234WI04pjQFnXGzusLNLi6
sVbHZQb75ZLSPn0mva29kaEni5eFNVsgyADGhuA5leuopPeEw1Wp0PWApFP4tAv307L7pLsDFeZe
up/3vEh/IoWyxc6zXQWJpaqnMz+d3xyruKpe7aDsNrmh5JQAvk6qLw84mirglPtlBOTxHaY2jYFC
euUIWhzQKl4no1ywDfdmhDsk1AY3LYI10Sg/mjFpgzXVwWGcJrOu9ZVkBg5/VtbsFF22mFzz8zMA
WeLod/MTsY4LYo0sFGEWEgbBtk7jl5DO+Aqs+FBusZdek5UeUPKLMP4EqP0x8eFPX3U4Cdo2FX6a
8BGwK3Nn/6N29rIIDQ/BAFoJcisH3JbjFSa0X8/ONbB23ZRR+xGq3x+Mrldjc+H/erkdlZ+pmdkF
P2ObH6Aa2U4gwK7yN1WSFpliWPrORoU3vRnHXDc2jRFkiocmWLYEFc/H24W6jG5Het+KdZG3gYaz
HMtV5hmKmS16RkpSi9YctSEYhrSQTYsjbSUFhLbnz6P9n40LCH+VrBjFl+iVtxtV9crWvRkJtV42
LbNCZQQUYZAylhcUs7TOmRkOa+dWhHtixM7sJY/auUFUEFWtDe8Nxy/DO4Cqg7zdOcKY33y+Hxds
yYQuL2vpUS8Sm/AV8FkrPVS0UhPanIGVvtzS8ryUl8GcUR/6g7PMzztsggjMYYTq8H2ehjOQ8MrT
ZXKMY0h9o3pTDsL1M8eBfhTA++NEnLHXrLdSojApny+vo7M7kAav0MprYx3x+QvEY0yU+YgYeqE7
zSOqQ9a0eAYPjW0rP0FZsJdscXjk0/M7rGHONF3ZIZXHWSeEh/d/dmgYxrueSXj49Vi7MqO8b9W9
zGfzeMxpzcOE4UnYoHWApib4IZQygZWg3EsuCVtM1B3+vArN/PEnheHLSvIGxbDMxwyMhils/Eez
9op/TyCiDcVApPFzXAwBIKz5LcBOi8OwEKet7ELXGGLFMvfqbd+VQtxMEXveSN0Z017h11wyBjRV
spjFCS3aSG+Krh6sBzLYXBAT0IOt83HYvYwwEgKl7rPCA14m1WC21/WjuKbQyJVAKLzMI6W7STbU
BSOQr8xgZisRZ9vDarJQctlYjgNlH58BZtJ4n/ifAjN/hIkriTucqUnW8tVw7WFQQ0Q59xFYZZcD
XuDn1jRfqTjuZAAuWDc4W1afN0qiUbTT0laQwrOdqOakmAytS31gmq5qaung/mr/qtW0EumYUeL7
d+PBsG0XkpeK8FjpKWPiGMNj965cRRvuMVhtuZHJhrs3eLtZLUkPu+ABcJ3nd+gEvb3v6DpSgaNS
DKJ6dAvC09Y4uJF0YpI3FM5owlAwGT94pr/CKn+ZLz8k7Ja2CGVTFVVUC/jbVj3VSk7m4TJ8+fnB
ClD2V0qGmrwK2BL/9bOyVrXdsLIM+1VhWOYDNxYeHcQ6UIVg5B0aAIwFHLF0/oq5SAVjADMOtjQS
M38+JEtX8dmPW6TYGAo+8nSs0x0NIODa/bJ2CUQoLRWO48uwfyepTqstr02JU1W++Qh3y0t20HDH
L6zGgJjoBbzGaLGqw7KoVgBfRRv9xJXDVGHD3f44vIGXQtEIxYcofMsFLhFCqIMNjJHb4XjU+L3w
2M1uIwWjwtWF6Ryv4dWRaQV/oDFE4WsXqm6FuM0GyiNxzYGfL/MbzIY2LEyqKl4a7KotqxCkNZpJ
KnzZTxVW2Swet21OVoBGKY3CVmk9AkXRKddc+09Kpv1vlztaOkgKpITDPOFQOn/4Gt0LP1HDjBw7
+80NHgLyKnwrcpC2O7ynE7y26/R0RO8irn4K/3BX+3yyWOD6/lxBQdXFEoC0wcQWWraK97VPMyZW
cQco3hSrsvAgvQutLNeVlbL9XNo+/eJtBstfedyVxOT25eDOLTyJfZsWhlW+A863rLY4K2qFcwtJ
QK3kAuJ/KIK28B041bpiXjtLFT9LvpYp9hWWyvNvRT66vl6m0yd7E6nr79qQiWxtnPk7E+QFiREd
Z0aD0IXHk1xtJsuV/TdZyAyNgy3/PEHUxz1Fa+trkrDjPEl5pvpBbdBhLGYDvvi1IZtQKc0Woed2
jYJAGepCRGNylM9yCvkRuAcBhCmcmNpnyRZ9MAHIdUbDAkoNT4peKCpZISmvqy4DEtngVlbkChN0
ofbJHu6NnHvrTR5GiFFfFaulXamQBWfykRcSErapo8Lq92mPvAy32NktnqFYy54XvQ3yjO5KOVPh
UeorCYQqrf65NvL2bZZnyjV3ihR/FKKbrKqCa1RWURqtySp8CfdK0/voG9AToiNfJs3O7Rij+6Bm
lVd1Xdbfq1fp2shX+pN4xIiU38bLgiIXd/0KX4a3kp/D53liwoV8igjiIO1HXCaL1AHTbbaSXIuh
59MnjUT3rNCEfR/yTL2F5xWJ3zTSG/q4vFd+oq3FLaP/9J1LTvxRSZoWfvbC8jjtIsPlMn+xx/4S
rTArPBrp6kbpcMgeuhOXec2ICoyXGSypLoe3pmsW1xcXsd68wttdX+f78YBCEgwhRVe10cPJbpph
jWl/2+an8WfNGmli0P7E2blsDytKryuk9+Oe6m51U9hbchy/xtCriNDszj1I0wbNUykCJhefea48
80Z08zQLt1VcpnJ9HXnMbU6oz2JltObbTAbLT9pb7ePCnJM9sb+sFQ2nXImbNGLcJMsV3VeLmx0P
Eyl+qvKh2ujzIg4VluvEHSg32nLrleHZre13op9uvjPeIDyVLGpSfEQCcK+ANZ4tU4d3VBmYwD4j
puMqD9ZyeJMPGmc4QB6RRqXtt3sXshRxsxcfYsCaM+Zg0aoQJDdOTYWEbFtUeMAfxdaCn8K3esJK
EAXom9BSoqLWp/H9ymp91JrwwuNOVGu0BzdHdsZ36+6I5CUpEqgqGm43l0k2r0W5e09O1u0am3RA
b6MI3Zrcm3OoBQJwWNQJ2uPkFirL3y+ePq7rbMS0fnHgq5XD7JVdWW46ucdMxDP3FdpSytvmPqH3
8rNSUcKdGBg4vJ+GN/Oi7icblriMz4n4hkNXWoniB7ForZct0Kj0WDvJx6QQmEvt3maE84YSvguv
BErZWCs50CWCIrlyyzxAxsZ+awo8j4aoSu6oZx4Wzb7gy2RE4IDvyeb0juMtrSvzTjIAITQBkgXn
TQT5D1UaVHXoyPUrtt7oDzLvhiU//VAEumc698f4hjvOvBw6YtmZW0+pjbze5gZpSklzgcRYb1Yo
wQEejfBvIywOwgl8UNdxm6COKcEjHRO/fnYSo//zZcC1h+MuGWYo5BvwkjmasCs8pMxKnnxIcD5o
coVdCvlxhL/mrnb9Q6u7Vm6Zg9L4PJImJhplsWIdyKk2uOaPKPxJ1iyVSP4qyBltFyh8m/lK20Ss
fmVDWSPb8Irr2JRRwtu2XVv35yqJkoW4hQc8gVXBna3brd5jqciZTIqRJXNqviQpmVFbKYLq9/C6
8jOtFNPJikZJs8QZDXQ7lgqPWJx2ex2tXlCczKyQYmfX83FaQh3ueFT1lg5Ud552QXtdMv9QVZIn
nRWKYcs1gh9wQYrRFZOj951I0vI0P3eSlUBl08ifKLttxHRfVii/wtI8iDfk7FXFFV+bg24OMrXA
iWa6wiA8HluvhIK5U/qX1wkGW8RB74nVPOdirXGtOiEJV7DtxGhQ1N3XDNNCznZuEFGa/A1z8jaT
9DzdfoVH9Su+0V8TxHeIxCv5oOfjtIrTwmNoPhyX7Mh1ccNtPivbK+WIRpYr7lSTS5UCK4ZC21jn
piqkb87N/9ACfvB3UnnoXCR7Vip2ZttuMY4+Zoppbmz+uy2/0GVWfkoOBipGV1uLuVoxVaHlVERz
JKhq2Skpnm6lwlW743m6wCTk8RYDUCee6+Ky0BmU191lnjWTPwsVbu20nPJk2iwqBnT5VCs8XkTf
T8TKLuLOeCRbumGHygYrKWb1TXa7YrZXcSaRnbnksHG6ZfY+e3T+W1YCSksv7brBmO/n+WgkF7WE
f1UKQV3jQBEEVffz8XoeTrs7zXm+3256A2HlS/0ITGahgSWrb3uys5Su1Be0tAygS3DFAh8beknN
gMcfdfglRWCksM7/EOnFj3JSDgPehXNSm0AO0yqIzTE//ZNYxtxgaq1SWouC4KBoDa8Nbhg7q5fD
e1RWzcJVq1VE4tVw2RE5zQYGlaXaZalguMVhvj85HIWPnzoP99esKejWOWGJnR1nlly18quy+kBv
bXxVgyW4RC1tTCJcai+NX4gNy3LYctMBsdyuGCoFyCLSm9iAmnhKrq4dotgtDD0Rq7ONe3i5PVha
kLrgtdrKrxTs7TCzazVajXm7G9OFlU+M4uIM1yYhti7YpOn+N7C9rorA4W+fxWSM/7D/9M4an9dm
W4r6rDaeNcOwUvulT/kjFfdVnCB2PZokBcU1NiQblwCVjzKvZN/TcJ0IwjnmrWQeq6AoNqVm4YvK
fwEvqO7UGhz8IvO/wUvtqviuavGLSLAJf6NZvkC/Vq8vz3yTcFGEk84u99Peon9EQqXwccPI5ksY
5FmEW4beZ176rjYUixngofvw8py31MS/YL8BlmPuAgB5/DIqdhle1GJ/Ig00x0g+6NNrnF6M2PWy
RqxWJfO9uAsL1B5p7WEoqLUt4s8589r3gbxd/OCd/Dbim678pjG30qllwvhFKXE6gj8vCcCdLXtX
vPvM67M1jSPZjMybDqsff57G4wEiAdfbZbztX8EWO44vYwQCK/PaGM/tcxhUHrkeu6qPEkRmyUS6
R4o1kFm68G4b9vuKPMaty5ecxUVN2YiMVMRFpjWBli86tQYxszB3bFdVYadkspi/Jp1y+UxxuVC2
0mtb5hbHT8bEro/N2gZhNOg2S79ClmVx7q3EU4pMh01KcS2Kv98/3Cos9zLOb+Pt8g7DfnfDFXFP
HF4PdmqpUGKVL9NZWRGLtUbGm7XZgt46bVY0WRIZ691jA7AI6c82SMAkbxrzrGP1VL4SxAKSetQz
8iQfE7hkrdiAYdqaLbw1WzTYyuhyz9jMCgfGcaH7+3HYWlRQ+ZaAuggw9G0Nga3eWYpunIOJJ1hq
qY2IoySLYmXVspUZBJAw8GwzBISJAvtHLanQhfdgMrhgUm6/m+y5JztLyTx027IJ7fBjOqdUbE2e
aLabsuTGT+OXx8BRwBgLQTqRcBr4NWtXx6891KgrgYocAH82Wz4Ey9HOsHPWhDL4nmGl4q8+QFpB
bMGFdOL79j/PZMLL8f0cmXjBwDjgI4Z9ER0izRD+lt+x4SiVMm14OI5oF/+dMrzFJsSPS9DTzcAo
w3DkjJ5V6i4a/235CLH4dcMKvV+BeU/ICqkbETeePm8T/mL/8Isbdp1LP83d6sM4G7UH2/8aXcSz
B8ugJXCDGKDiQnUbjBSa85jkpfgn2LBYlqiioFa+fWwVR3R1cgsKCSo7RTkwJSkGilgIZR1YiZm8
tHAv64MVyiuG731STRfVpY/EsCduewOm3yB4fhuhpkiH26l8XqAOrdS02aHIfGbI8BK5t/HyMkZ9
slTxbOX7JFY3LWMaJAJ7lS+UWy2HeKtBt0XKXFkFaipmrCyIZ/hlHqv+NhRrsuohOqh1JuQWw/Yx
MhmtHsBPWJS1ZmgGjfJJI34SS23n3lnCT3zYI1pwgL/SL58gGEZmDfuqjn/TV9L5c2VnTcZi64V3
H2JFzLn3kjDa7QfjRCua8BMfIOd42LFELnzSZWGgOgGhnXtXZDnLEtF/5kYlk/W2jMZaug6KT8WI
AZrlbGscdi+rlM31jNG8uvwyPn2aFnni9uCFv7IJFoXv0Dmu1SgW3UMXbMKFpORNXAEIfEiWJOJm
WpElauWt9uFWfEHohstSNsKfM3pibWrddZECFAlu+y1ZQJXKobtWOnQUVwE/qWQB1SqioxXFYFUq
t1EED3TZmCLTulx6bTFeoiyzUXI3haCMJXhlerQrALdRhqLFRu8aTbNk0lOMNgDmPrS2JmmpyLxO
TJNltSa/a/EZlYpY6QrxLIWmJbtwYw4go1S0UddJlx3FcUCSNeHFFHo3MO5M1F8Uu6Y6Ew2MGK+2
k7RGgikVjmQahSYEW/rWipDtG/GR58qLbXrpkW8ThlFfAA/g2YPBGkYr9fESinAv1iKole33sljL
FenR1JJF4PDLWMELZeKUbEOXB+F79wKUZE7bi18ogeiukoOs8fxEywLDjCRKRrHpw3RRrrJN5k2k
IsxfajnIloXgmbBU8oPth8P8bSmeQwmit5X4RRGnblfLNxgPenel+IWSS20L+QvlzjMpm6Il69r8
o8H7tg7zta0KboQnb8IURZcl86NdEbBJbmHzslKRAV0jFelEJK9Wb4tii+sOFqHPs0yR/aINkytq
vcm8FAKB5KR7prkyhSjrCkXWtaKJsgqlaEpt5dfUOqBV7tlksU1bS4tK+ZWVvnY+jWKb9uxgDPAj
0zyQMvSE7VuvFduj76WzPFoFrsdVOWIbcdwajUdWdm4CCSe3WNXcjnOuu+bu9iEprYFVKWzVZ9KL
SxoNSTxgfICcZXObWuHpD7M0aeaqjUU7HfgsRDsbxOVRXRc2Q2EVnV2qSX1lE0BLF9EfLquHMCuW
qNgSMguzP16j0Xxnia82klVd/LBVmFIpVHXBZmitQvAx051Nx8AvmJlIXU6HyfwLpNHWdZDqEIja
O3/rw0a8UjZLZ5XskPDNw5kHY3wTXSGldparx0PBtzZwTRhS0RSDK75Z5cf8SB7n9C/lc3EgjNqb
Wstd6SKYjYBbf1GXcQ7qJQosauKSgsyvfaBt9auRBxS/37KRUmYxR5TNclsx82Md+GG6KHMYa18n
tyZcHv/tVv7t+222ZXxx46hfOQ99smSml8uhFMO+a4PCv36Fx3o5pnbpzJS1mRjfpdN0290Pp+aK
MPivGMguQP9QntjEv2g+aFI7m+7hHGX8i/LBxUlZ+n0m/QjrL0izUSdvU7mg7KP+YV+FB8uTHkwv
Fidpnljfix6l4vP0tewfxn2evhELhtRtRbhAcRA70dFVttWtakI72pa1KblKU6s8al8xGRPCBI+D
k8B2en2Am/0RU4penMPALsUeYrqIUyOuvdpctk3y6BddKxV3PM4vpY4YamwOirfjWcXaRy5QI5VL
peQrwSDagJHRkA+WR1xT5qEt1avPiY0xWhk9WdnEzaQi/KJRXSo2/m9l4QkXfn2dLze49vild1IN
yzLoUqFZ4iq6JtxjGw7ksHp+vA37Vyy9Gt7it1CLax2m5+fxgni5DCA8buyxYiioCSsLxeqJ06uV
3ho19/4VpubRv/4yn3eIhGx8rPtb3Izh3NLjJMdcdRzZMJ2V3/I63cBX2eFgzUcLWw0C1z5igTVb
ZlNVKd2X8R32n1KwV7VPZa/IFFNcbHrtg2fUx+lQS6wbCwiyUZTrt1lHf8ONoV6VXkUs5bjRXtaS
GLHls1QzGb+YTBLLsnSPb6AUJXVdx0/uJR/Y+a45ypfNJ7bdtjKt475x4f1WDFrWWzgwrs5q8aU+
IOWHoxcR1878+SF+rlVRZK5mEtlg7ZWTGbMy2CzW9W2V8dvKQt29hJ/iUYKuksgDbBxSPNb1W3v7
ab2Gc5at8qD1oM5Imd1YexdoLTTyeCSoKyVF+AGb3KW+HtwTxQXqZNcu7gLl+YPRmHCB8oj7qLhA
q2xV0sJ29SncJvfV6PPzLgyqYP2yUhpW+4aXB588LvS5kPD353DH3fzTx9lntipbMWY5Z/hnGg8U
KQAmtW+AWwe/sjhrtqJ5HwvVsnnmWjDKCL0rBChPoyKgOumHmYXiy/KVRQrJ4mJMYHs0ZpqBnHjY
lbglKpKcXk7zxQ+8i4cfc0nb+36nTTBOtfeQVwvBxGMPoqJgH9U+Lb3otpq1RCiOzDdY0VUrlU/T
hOAwgMpKRPUlm0pkzDKujvpeVi5NXC4XomnWxJm/CA/qas6m0wFqrjYZSj1z/ny3VKygiY34fbBR
4smKQlQ4ovlPgiXujjRiIDdWX8Pm4K3u4TFarfaEuLqG9e/WcQe1KCQy8QJinBcueR7xXTAubDH+
UqnZeTbo9Vu1RVxXVAFd3eSROs6teSs5S8tOZjZzLcG0XS11K2RVnAtykQtcwb7W1lb7LDN+3T3M
Ybe15cd0BkFs0lnU63E8vUDR5DPgJuwa/P/iMi4XX2EWt1058/hSELBdV0qAQhj+bPFr6KXzYI29
N3/iOFS1r2RbueWxdC6+50ZS+A/m9+66v8zH4xOksO9xY3zVaWNvdjHn/ChUcnXS8ck8zO4Uas07
6gkmJ7D73Ur9OAWKRrz6Ku7o5GLIUb76uKbIwjBh8+FcS97JeZC425BXctmP4ja0H+wzdoWI8AXE
9aoi6Tbk9UczJ3kjfbHNZ4Tvi0yMoMeqy1Du+zuHhv6qVZEmkRMz6WUZ8bSCyTKiLs6bsnFQxX2O
THb083gIq1uFsDoVLgK/8CeDSERh4zJZHd9W3kmyLdZWwubMrw9Sxh25Xoz2RCK0yf67mrXOFd0S
qo3n5eNyPdf11AeDP1UW7sumSOp4qL7IpACi5I1Negyc51o6VpQZN9u5ocdvMR6ByyrpFqURwlud
0Ur0gn21Atr1Zt24Vu0+kNtSArCFpBxjrUVsKPC6BZSiBWTULQPS9CqhiitmPp8xi6vStpCzSHHP
JCvlWqS43ZUXEmvGoA1R+PRSVCCr4wo+b9T3t85UqZmXXs2XcoPpNHubKX4toh+8ZHL9NPBU1KsI
w9YFL7eyp/MJL+qvjVsmj+/FV7wDgPWmjs+8kVo0A9V3JfQAgIij4Mvr8HmKV39VPABG6zqY0C8o
1I8fWC/z1jIZUDjbrPG4WjuHL3u73K8xNyTzsYxi3SVMg+HivcuZlyzFeto1lYzqcCpNG9m9x6s1
NzVqK/DadGyisIZQ6ufxMniwpMX9bzo2fhuRRvN52E/ml+dTIide8WgeJFkcjsm2w+MKPB3mDv+h
y8dVKmGVLfB3SlMyw+rj9ypjAm7E/2ON3dQdROSigYUx/JFUT7cH5UMorOZDg+WVzXLQm2INlhJ0
ndOQlt0CBZGSSX0I1FN/FASxUFrSCwmiz2NNWvAHGB6SwCSspLZ+SDVOpzvh1qXa2nux2X7jxeyM
+6mA5FQMirDCl5ctgGa+dX8Nz5Tg+dIvympmtsIOKLdSrrSQTTC9TlBm/I6fnEG/7qEEZPdlfDoM
t+EJhu0Z/W0My9OVwHx3h6eYGO0YRh/YB1X+P+wn3LO3swWuu/39go9ruo1v0SULvyQb2BXZKSIq
Afqv3250YYYHV4LCKa3CYUtf7ic0YIb7YZq1GovMowShCkG2d3xv3IjdYd7fEfKX3IormayIw3wZ
XqKBn8yD/eI+q2XAF9sljES8jX/HBMd//vTX+Ab9QvBCbZTUhmk/T+ZJQF44ZjpnHoOrcIgd4fVS
lDF+kV7B46CyMvj4abA6AsT5/QmptLtfjvHlPLmh4M4u9zLTSrd5mbdyirlxmQeCxhNBNUcfo4na
p5L5d4vUBYG6BKGpeNosNmg+ZeZVEx4pX47kdmHtxdMcvx8GPMmwwWA8HtD0baIZAUha2M582h+n
uFHUsdgSvELr9t+mN7Oby/hs/jZCOe9TNWOZH31L2HkFTjcp8+B8R0DTgct7ucz3E2I7xA3WLjA1
mc1lDvtluBh1eMdARzR8kHko2aXYoFy/LEPr6XmyCKnX+xXEC2Q44w+kCZkyV1c8bV21lgp8rTQF
zwbWVfFAOwY4WCHGokPhMt/fYTQZDSWaT0CwHeOYOPF6idfwEj2nelTY9/jDqUJUxVZaKP41a63k
JaZMqjiWWEuXV41gRRmqnTZY1+iXz+PlOhx303U3XN9P+9fLfDKKOb7PPOzO7Ph6v15GlVE5bnGB
aPvZ4zGnk7FpzI4+X3fPE0Duq9KzCqRVxQA3zInsk4xzUyvpZGOSWCxhq+dVApdrj7PtJXGncQ7D
JWYsKLP0srlXI7niZMlCpOOH97s/zoA2s80gWGFHt1HdAuG7S2xyeObht1YSwF3/wtHoY6n6rmQH
5HGDq+Hn645kCYVfacXT8DnOBY1k7DENPLFdnY/3WAlH5j09sixKDAmW3YMgUMWIqPtU80IXAI2E
8usGwXzINGCouwSWHCc5moI61evQHLT+ARQ3n6H25gi4reknzDBwwWhv+0dOH4eLkjnqKtF0Sli7
5/v1FY8cP18lcZVE9/gSvURvdjardDc/ZH9/ENVqHuyEl3F28iW+SCWRy1bUzOcx/iWPTWX4j9Aw
fBlPI0A+HRw8r04djpfcPxjx9HZhqCq9W/dYrhYPOP5eauneJNszblK0ob1plqD25eNwg4Xwm7eB
cP7h0aEbb3ua98Pp80Bh1GG/H4+OJPjHO/a3ZQ+5XlivhCSVSycR0uNn+gkA6aRfMH+CkKuW9rKe
BTWfuWItzBGhdKvsqn418zigEfh+WkzD+B4ps4d7LDHK1tleOTj01TyT6Tjd3i2lbq9vR+p7uO4v
01m+PAw6OlQS2C38jAvZDJf9K4CzH2BjrCPYGnf74/0QETJYc5H7ZVnRAoyMPY92qidV5NnSoPgG
naPWByMPjIQadp+H432MPmD8Os/DfZT+a0ozjoZBr65I0Nov6oYWxJQ+sIFu080I4eF2u0xPkAa5
o7Vw3RmpjJMz5kt8STdoHJf06cwv4xPOiEFIzPFf9+F4XR46/JmyXr+sxyIHeOrjZEyO8cWw2jXw
ScwzP34Z3o1eUg/fFeFtlLz6E1tssA71YkTb3jhzypmdHgKR0S7YxG9Yv4BR6xgyK7FtE1LMyjLz
12vDnWeoQru/PUUirBRt9yfJQRy6lAXGqDD2s9wl1KLiCfFYUXeLSN9E2dWTfufGSh7G58F8rjBb
I9GbIqruIV0wBwpjdyhn4YYLxTdZMBZmvtM4YAwNYwM4zEehHnvf3nebzx42/jhEJC5+37Md9AvH
AxD/BVWbkTzAiIMdIgZzdK/x1Rq/G+yRcbM7oWDseNMlhINMCneCF3Y9T6fkMDBcJGPMxOB3ZyPk
Pp3mLycrYOwUsLWssIdVuN2/ZzbMHPd4MKaj+Udk3iSlZDwP8ZlndiAXQo8TIxmu/IQS/jAq8riR
xN9i+IHVrtxUKUq61w16oM4DmZZnDRM9dpTQ02WANxr//bYqQ0o2Ltn8NEPuBCLHn8cw++FFpEIU
8Vjny/xi/uYVKgZhnoUx9d+Mg35TJHfGTllDaJodEt4nTJJbGEcRrp16ScsK2k3lEktb04LmVV2U
QDu9rT58W/ky38Oy2mW+3yAJrsjTTBL0zxOM/QJFYyMOZl/GXtkP5+lm+Pm3Qd+Xi6uZRQELIM8y
63EicMcLpZdGF6u76dYZnbQOzah2JaeHp5Ti4CzkORNYEQw48+M4SxytL+jUUIyvpuhDoyd3lRDH
cceIn9gQYwDwY5tMtHNgQ87WGb7i/6pcZi7pHStir6/z/XiA9V4HGKH4Fc07xbSrJdXoJiw+3a/v
LhOgMHkjqTHsR7ranKWrXVckk5cpOFcuz714Jhsc2SAa6UUhzRUiGzGDtv2n8V2R7qKlbQ1444Bd
Zu1GGBEhtmcrCIanp4uRhRdIOhrefYkfvuamZrd4f+4WjuPnSGUnvUO293YRmyTtnB2myHL/NSvA
J7KPp3us5ojs2NUTsUVMjq0P2IeGRevo6Vz9mERtS0sXY8hPFlaPSqHQpFfr+vFw3KQpl2jPEyRI
aMTiJdrOQDuplu9brFGlezlMVmFa38JGQJBgu4TNV9ahNLd9+7AM1eajkTs8KTe+zGwKJQALF+oS
pKm8YquwQ1f2bIaD8U5TJkXNTb8iZqtfXfVDcrmukpTuxRjV8zJT1jo2Cf+NmZOU37ClAIcJ7Jvj
uGNqQRFMXRkSy81FmW+aY1S10hX5y12C1hRrfLJKRSFzFTwKbmFTinS+aPKtkuwQW9ZH/g9Q5A6x
zw/EFdpSfKrj1/OA8cFtap+ZkxAVrVh44Tyf72d771eo5jpRqW1SnywgPb3Nl9cRHk8bcTUzwODl
2DIVMiSVU/XSu0ARARUbFHfR+K4KdUImx5SmN+To28hBDiFt867oq0JiTlurNT8zP3267nSV2zA6
s/dKzwOZir0yhViNRCzmllAs5Ai7sxa8otLE413v5/N8wdG6+ztEaG66YuRWjTclF2MUPKQEbVoW
dYOIhq0LJA0GGR738hMeQJu1kpHG38bOPLkZHm/S4Oub8F3YQTQHSn1scmp4dMaHA9+m6/U8Ho9g
xa4tAIXLmekEpl/OuTyY9o1VitcljKRwt+hbL7p6OMHdExcoRnYnCbbF9yMDHk12MCM28XhZhhEE
N6cRU2Cnz+NpGgHK8m28vc4Hjb2rkL0rP+/R+iSwJTJylFXq0GrMQ7sPRZROowVIMAwYPYhY6z/o
6q3LJQOcAkjHSRW0zNtnIHGObc7G11Z4ucpDC1EKjDO9k9oLi9izIdzgdIK98jopySXygMvwVqwf
gr+6WyQYyQvlcotOkl1eoyp32kiGAn6JNhhUF2mf96E30TmcnavbNfq6JK3o7Rjn5nTD+tuXhJ3Q
rwLyrNRli9XbiixmLxbjAsj05EGzbSas8aZrJd1lzowHM27n0wz1M/ac0/UMURZF2HsWwm7sImBn
/Uk2pbgXjMx9pXGDunbgMe3VM8SbB28OlLpmLeWBM9xkoWD5gOm9IBqGimZveMlomhE88/M4fFJO
IxrhZFVgTMGQ5DBpgbOylzSvPwxxjLMJNpm7dbfSwFvySspqpRQ68A/W2ge69O276LUfps/XTQGz
pQmkt1U2tk+H3FJci6YNKYZFGxra+ary3dZoKXKvlogRiJ8J6rsumgyWiXE/WfHL7ZvdYR6JOqmE
ViXp/r2xSG67JzAlMVd2ASs3Vr1C+sVTCPzutue8Q0rGceMyVFDBbKAHW4vmMi7jra/lEmiA1PmG
8kB5OrknI+AC2gGAGBXcGuho6lq6CsOSfOIv/OeyoiIaM9EFXvlTynmY2UW0ym26DRKllAeP1QxS
fk3MBVA0wJGZkJxoKBcc0QhLZUFRvB3mO0YTdGVYVuFj7QItYx5JMj5e9tLdwNDJCyUbQS2DAb8Y
za/DVa/Xp1PVUVnE4wqLDYG/AeGK52jvLomnVgoHPdYs2DLA2fwZxEAY2qR595jWI1dEESCZdC8U
ePpwpUTDigXWTx51WLS7jST7KghWC2Y+xtOgqFK1DWp+rCaMQL1cpoMteLpRIv11Gi/wspSYVJtJ
6b6l1VURLZkXLXC+3vYKLBl8TKylE/gZU535YmyHHDyc9q/zRcuaV5LFheIAxsBbIFNFxPXhJkpR
MySTlU0uaq0F+tZRw9ZKQgg7pbOyWvJleMxwqxxvyzLqj6AZZeuCN9pPdZSl5y+aqdRXUlWJVXSq
gdQW3K8Do62tVGd30MpRWLUYG6WMAoz6qtEZgTy3Ytp2UhDgIUeipEZyyZlylQzMUncWztWIw40B
XV4rAXyZW133PGFKCivKXb4ykVtrKvF9UQ+cl8yoBMjohU3TLWjhnVoK75CDDNbiuGxwS4C4F+Nz
LEkMQglqF77uEFDr2UZnUi9QDiFTYpVCAmZRuI1ZK9HyBERVUnG753kaj1jluTdGCJ1YEQjMua8p
b/kQelK62OhITTQvcruMCh8wmc+C8A/hcGfBJOrm8lWFSBNU8+y8t33hRT3KcxR9n5hx8e2WRS6V
MFGRrqIaGkmQLzQH5a3QXUxNH40dBjTZVkrR9FJE9n4yJhw5zq/j8ZyQwKw+4CFD4OLoiaqlFfHq
tfh3oR8qg/nyCpLky3zRoqg5Sw0VYeoKRShUpm9Va60k0d3RPAIf8ujCmGqZWcscalY1v9y8k0nP
GMdQOChrpRIDVtmHpuOWKHjLy2q85LVROAw1nOx/uDSvmiQTA52Bww+kWhVCpsaB0VsTQ2nTOstu
JM0FO1TTFm/DkgpQOFtXvBrsMs+aFyCm/A3DUzYM9Ar2+LjUnZYgyZpoyYdzPUl/Iu2gzdK+8A1p
11YswFqZs1DItQQUFLnFRE/mg+HjHvrTkPtJffnMHpSJk0pQnmwrFQeSF58K7zf+dPBce/sOqEHD
PgVbjZzwptqyjitCn/bcz8er8XkRE1h7n5UYwqFatSEtGsvQtbOP0lbvkF9lAy5XNE4T6rAtK8kg
4pWBYPqZgynR+iYaeV3CADD87QCxdV181Y0oc2wGmFl4m9pRSYo1kmC1RtlwPGJymHKEU7qKQo5T
LymJDcGYthAL38L6a4V/Skki8EJ0WCoRrGOhBrDyKrYHw4cXTWo0YhlJEBq7LgGf4ZG0mn8uFvEu
JURmSbM0vlWHgxY0mZO7jBXNg6cGTlNUrEEeAELmrZmQSUTmmlJyb3381e7yfgUswudZ4SruOWUQ
JmFv6DbPR622r2HeP4tWgtQFsqGXZexaFLsYbkl0irSsIIqltVwnzlJSR8LmfDGG0+WmpWYadjwg
WcMEKPXQLMpRY7xSKhB8G7wPoLy5Vkp/E0LTEora5D3wSFi0hA6xrCCspCjfVioZEu9sW3ap5ZWC
AFbKiHwZYRwl4qT6OhSFn8ReF69MjBZ/fp6UZqW2iioEtGXXXQfKVlY+aCNHmLdk35pOktyIWWYb
izaViTc8NOVjoeP1Zm6cOnmoCUKJkxRSrvTBPyasL4znGN/LHFHtPywlknvmThfgZpVYH/hR97rs
xBuLFxqzYiQS2BuszVVHoh0ADjblukPWdsUeLsOX3denN+VZIjhYXzLQNDZb/DBTT+6XC4zHwz6O
k2Ea40Kdo422tF4Too9ZI/t1gF6S0YWa6IZixch2JY+8xiTGf/zyt7/+AGf6M10UfnswDEyVDNfL
nkbRxvt23SydzndL2YDIfueOa2ylk9GF79r2PIIZBk2JAd0CrlkfVtUWqf0i1mh3YpH6nS/D07Tf
/fbln9gM89uX0z9jPdZ5GcCt4D+cJ3Yn7KzXAcZyoxzRwB7zsl41khfhwGYIPCgf81mnCEdGL+vt
fTiZx7S7vg5nBX3ALMCQLAifs314U/cn+6wQyo+evQK/bdZpQpSWfqk+oUyt59CrUR5Y7eZgypVF
GXgHjeWuWLDOgkfAZdp86RE44369mS3vh+veGADossR/gAGNsALv8EIVQhYhqFfpAvHY4E7mo3Ez
3ndvxqVwU7i/Ktth8AslTfZzI6+n/af33e39PDrP5XkcAKtF210pzQT1cBfzYbyfjO+6oMXfz5co
PixRi2OpoPBpVreMcUEE71RW4aNg2VT65+FtOr6j6EL6YSgOgvHvKjCLWbAMgYwaa168IIWAlw8T
xNK0F1mJgF2pFzFRcQ2GIhQubiUYuvRry5UlGXYTK1B+P91eR0jRPc3HA0H5AfrDqEkTPmaX4WQS
Giag4CIA0FGjfys9fZtLpbAbfve/xvG3YfePy+xZ7m2EaVXQbvJP82yjNjc1WdULfgP8os0CPE2H
afc8QNoYAasgzh6HOaaFmmUhHA5Yg9G94UqU6+gkhJLb6zDt1m8jPVjA3AmDLYEN5layfNUQnPHL
JpMmZweKBXBZr8pZODaRd4uWG7veL8YeBXPSPPOLskwnoYsZSw9pgYbZL+bp/BVhxxXeqte4yEQK
YBe0YG0Hy7jXFqkkdes5fNmR3Z6yUhe+O5uEmZegpGPEm+9cB55UVvSmAE5xqnNro3x3NlL6Zwyq
WxvsptqZHu+WtawOl8ugGVkM5JVZ+THRY7/pHhB70bA/GY3iIGW+ngw1rrfxvDuM9Mfa1ltxQUgV
jzT3kJLHFyMvJiMxQAtGEPIJOKbyBmiGgK1ZzhoB9q/YRWS3C9AilIlSFmyXBfH/9SyjzTelrFAz
m7jCf9oKRwixY1YXM+NYKKws0yzLIPacpRTIePJOKMoEJrKxtsDGYnmaaMcc3ULlHRUmw4Ku+8UV
dWjUijiyi2aht+Ia6KALx4YYremGo6YSrpRn1iZb+kU4WMkujspp9+PxlXlMY+1MXrVdMOhiGxxz
7g1+cJxPL/D/fomV/tid1BK8snELd7Z5GlOTNvio3lspPWHD6SQ7CNwW6u/+y/3R/x41kVA14Wvs
xI1hPP98He+H2f5RrFLKrlqFuyws5yJAFr3xo7mG8eQkCPTpwIze8QK+gvIkSv82rbr6f30t2bIa
9V3ZDN7RWpYQ64vjatHGa4bITQaSc0LCNdXiRrtU9rhUyZeyAIdTck+Md/IKK21cvbR4zvSCeeKQ
7tY/QjgWqCgynKKVBaeF2l23oPl3jXlatr0Cp3zkVWypLXvj8OMF1ECbfzbrBU8zrakrr4rBpOcl
gleXnXAXVJ6VL0tGJ6BZ6pVsWYg0mhvhRZLLcS3P6ARkaPBl1mILcdsq90v/qS0Y3Aie2gXNUIXR
k8aQD/W+DOdJecN5oF+rbNGMxvYeTtBHg+6qEnPyWHEcPuj+djZK1XwOXxvOiAfXaB/ZgyxxgatV
K48DN1HWKvyOWNxvf72uImo2wo9W+UXTO0UYrssDQQdFs/gd0MpCI0KkF/sd0MaZT7H0Nu3XR+2c
E+3wDpwQPQ+G1XDT+J913ZVlZFo4+lmUekU/iw03RLylJSZ7RbxxygS5RFB8RUqWEMwgGimFA9+8
AhToydXvXG/vxjZzekmxqmjV3K/KvDew540GIvzDiHlI3xf+e2a/LmekQC+4XuARKut4BzdHm8Aa
BUVdFJ3yWen9YqwuYa0AaA+t2tqATABNcqXs3VVZ2aM6uncpmkv4MdILrP2LkjghvmD09rW4x/GG
0UGY3qJBTTaMB3yxMzr+dO2fIZsDecXn56gQqxdsWb+NMnR0cZqFsg126T63jHNflJ/0kQeWNqS9
R63zeoGNpjv2FZBUoK5mK+nrOvqzqVhJ3YfAnjaYf5iQsweYXTDPn+5nEmrrP42OwSIS+kPxPuuH
RSyEsZ7HoRXrTSsqC3ieYBX50pbOd4VqjX84DBP0cRlXubXlaE24M2tA40asj2wkPcRBjDe4BNtt
/Q6WYMG0FkUBNF6FYjmjBZaJr3o+DpOiAFuvTJlUVdbD16t44a1oJdiSsPiFkH3ANuNB0DBKelIN
i6aSPvzx5z8u0xa+h2ELFGslFA1lsTK0UvIUSdQMCRHFmxmsTu7TfJvHy7SjUTykYc3PvKGKPI1f
on1DtOZjlGHJuYQgmQAOSUHezxoN/XrgAtUFH/1uhy9d38676/vb06yd1d8Fg69wAHaufSEeqqVF
GKqwVz5QV3M/WnpZYl2RWtD6cAXz7xzNwdO6/m5Zjcv9ZBdzgcrT8Hl6YdVEHgpbYV5PPzvfbQVi
6kwU+glMv6h2bpczGoDysiH7h0Ij7M25Qt5JX68MbcdqgcragcwbFqBVKifbxDPMHGUYwbCICxhN
b+lnX4UGvYME/DychhdjJuxckkjZiI/9seq6um6bJjIOlz7z75IBN1L2+kBVU/DW44Fr2n8bEtaV
KH1VWi2IG1nEkre30ZPjd6Ks4WOWHHtf5ZFdoRyGiSqfBiPddL5Mb6AXIZujELUOr7P1TEFRQJ8G
VrZRh1KkXhW2kHRzjasKebpQkJTW6ofSE2cTW+EGM9dtqTgUpYAnkMc1fefNIsTMt+lCvwaO1Jkg
960swiwQX628WoS2pyziTW0ss+v8LHmjdK8zqpbHwymZN280w7uyEY1l8BBRy0ivD67q/QkQG7bb
fLXNJ+Nm00iy+fljq3v3CnEAm/9hfjFdJoo1W+ylXGzvyVkh2Nky6Mo2aiLwGsoGV3q6H89Upxxe
3P1KEyFO+9s9hXrvGQGVbykxQnQH6FgrDMIoXyys+q332HlfA8JfduoLubAfWsebyiAxWpH3h1vI
EniRSjCj5dMDfCPVmo7m+d+uQMZZ2Z/nqLzCzEglLUZchVAlS1Ozsijz8fwQidWSOPvwX/cZ2ifj
0x/xuN4RAnLK8gPF7ZBwXFrmQaLVax3tuGxUbqHrpFjHlqtV3mW7hV8en4iySybmMpp6spzYqQbI
EjOppzh+JYt30JCfZbgHDAaisN8CguDqp98TN9zneRidy6w6Ph6hyv4ZZMuE4DHXONf1mT8pK/14
mrB86rrD9DOkI4+p7XR9J21nncYav6JERN01HKKjhemAjHDefvnnFeO5Cf3ZZ416MJo9Fa09xBVy
6eeXfiVj9zwBdh+Gk3HutLJUJwcorzdigd18gunV8yleeUXr9OGWrPqZ55tDpTBOzhtVTdnnmWCi
jNkqyOpNwakMWUNbsXlVFqnD43WuPQDcX62MFT/mwhRSQzZwsVwVboSA9bCOjAD3LldNaPUZCzIy
nL1XAOkh5jsa5lN4L5O4+TBdsdHBPlzl573SzkssEymEQ0GWmZ9MeVxMs3okcttI/2U6vAAoItQ5
UQTVyLzo9F48HXv1tuOZJNIy3A8/w67m6QbjhIwNlmV11JjuiyI0pm27H8xt+W28zDBOVvm4lxyV
t/k3yLHVdV8XTfzjvA4dNYsMt9p6q/w6W8DHo92vmxfS5sqvNw9OBJJxNNcyHMGeVMlW1pJ/uN58
pWw+lzYf/n6h/P4q+pQLnyu/Xlahl1qJ21curygfkmzCAsoB8j707m0h9H46lCTjtW9ZxMf3vIWH
V66+zKVkY/h5qXxeBgESh/zOPn+eINCy07bQSrGwNfmUTRSZ9PJep6/TuAuWwa/hKr8KIgUZz5YL
4ADgZrnKLM/in9hix+WTbilei/9K7j/xVTfwxuKf1P4Tz2NZ1imfdP4TL/2zrFc+6eWztMonrfxJ
oXxSyMevlE8q+Syl8kn58CuPfGXM1NsMVXMKd3WhaLZhxcUEtHEDLTTZ51WY1ahcd/S7m2kZ7b1v
WVllQkRpEr4L0iD2nYJ6eLvf7OAw5YXlrRTfX/9+rxCxlcJdoZhRJGzZSALyQUQPygYqsTRjtUKn
LNA8ZE0o0Ha/naZP+Mn38wlqIKHiEf87z3/981cM2AN97R/9ofn1uwOEbT6Pv/79TL/s/7c/FL/+
8jr++vP9ybm0v85nJrx+tn/pu/LXX4o/tLFesiJj8DKsQWv5vPhD/usvZbQVrWfdgDm2GYaf469X
8V9nUDnS5/jrufLrbAxXvcgU/uv5Hwrl1/P0rxfKr5fq59q+c3XfhmQ60fsAwsfyaEj0XrnyUgJU
XD7Xftt83KiHrpT7Mh9X4bnbh4+7+MeFzql42RqrlQlGL3VWa8KtNwLNG+XkWYpsCp+yoT3Sb5uP
lXMzEBGZyQv93HWCbJX+RrqUfMj/UCuXlmQYRbQxbIPIx9qF9WnBpjArm1shkc38tnJqBpAYpbl2
ZW2aVTWp2KSvTHnjrHue4YuFv67deJ/+dUU8ZUVKSBTq563KMvi5dvb6YfPwPX6eo8ImlS5r69z8
ACk8+XYo9W0dqTqwT5YFoi8CPi4sV8LHzH8Ofz1GH/r11v+69y6WBVCYKJ93rfr7it6jX8/9595/
Y59H9TX9OiOdn4vJTl/opy+sNIqTr4jzBy1QqDsoaIH4ARr/+z78Ep4/Vz73v86qxTjr9ArrVCm+
q5Rz9+HHuch3Gtc36q9byhfKDvS7j+oCOnue+rhWPs62cJ1GvDrkuurh1zWW7RK/nussm/e1SnlF
FxHP9SrLRi0+Il2pfmw3XymbX50+ExeolQXY9n3Ekm9fe+1Nmva5Km2Tb07j+DYta7SLW3GdxLa5
KuuytLDSVEW1hXga4+qyVjt6nhbzuSps8rSa04RdinKlfnPdw687KyTPf/3jBBW9v/51foFKzcfI
Avz/y//63Y9/Wv7GYqjg39CULRgGRSG2uPjvo2fAr1mmYOWiul+Pij36vtrwvfb7Rfh9+7j7Svm6
k6JQ/mt971UeUq6Q9q5QfhVqL9ZnV47Nom8Mg2N16RrZxQB7cHCN6L2U3Vn9urb7Tv9eJ1uVSdXO
q1/XLj3XWa5Sv64Kfe+lTnd2b5Xw26XOMM3DU13khZF1i6j4SZQFG+JVZTT04r7Xw3wMdDJHFKDV
96X+603q1/UQRlls+F7ZfZnr32sHT2w98cNdLMrIyK4Qrli54s0j2Svl11v913WWqTIJJXS1d+XS
ilXcqXrcu0a5KhYhZb+unT3Tv6/Ur6s8FoRY9q6xqzjlNPht7ev+4bcXYVD8+v18ovAFsxy8LNAu
tebOSPloE+hSoOY+YPnIUJoMqLnnXj4+pOgLrLn7Uz7E0nLtHmvu9ZaPRoTOQzV3PeTjRm+x5rZ/
lFTat6VGqkq7osXjkb8t9W+L8Nv6kVqFQq02/Lp7/LpUvu5Cegk31Sg7z/3XYVAs16RkzZ175UnU
ytfZA73tY+1//fO/7sNxur0/mvi9jUXi37g+PmT4379rtSAtG/i8OjF+26g5hSJro/Ft+9NK8orB
6K9Eax83bvHLJpqCwS8rVaMUWZurm9aVaZE1ZeJzPQXU1OrntRaVZnC08rfKtttG/bbUEglNF9Nj
fcIHo88r9fNa++m2lkDPQwbVPu/VU1cqxUqVzVotR9mVMavF/q625yKx51x/k5n606V25KZPMIl2
y21CFii/2xUqh7Ta73YrA/Phd5XkHpt/IsmgIkHqZiVJHrat3HKXq9xVJIQYQ6+XP9eT/40uDRpV
CqUuWknGsjlqkr5ptQKXronl5Ho4LRTRAKjjTVGH1a/fdbEbRcazlWpUgO37J5evFelO31didwP/
9VL79UrCmGC/nuu/XrJmhl789Vr79UbCxwh/Xdt92UvAFiHttO+rQj19jCntx3149NXFKVLTfr8i
fb7+cY3udabuvErdW1VLiDXL963207l67k7/4boMfjh4jxWoZmXPnUow9aJLqcmFkUulVSP1tywf
a3dcNunnpX7fhv0H3Xrf6qHblGSotIuqE1uvEuydPVz0IjxrLjz/NI/XX0/z7dcxKkVrTY5B10iV
+ariB0lQK4Sij1mx8Fq/1MpLpI/r8OM2/Dgu/elrX9q8yhLafcffMX2fhb+++r7WPi1TG9e+zlf1
5V34tXLmsvefrsJM+Kn2KOh7sbZ7+b7UPu3Um9YUDn1fpb8vtO/LsJK9XXOayiv+xxkUNr8wlVO6
1HVX2nWHHQiBNKh1K4UO3qh8WiXvvJeaJsLfV7+vQ55Z0a7VCNeo7KYZGfTTrcozlS5dcrHDAD+m
Ou4N4rOIB0YyPsm2eKjuwW8VIYSfc7D8NYGKeDgo47PmiqAjkv10Gf+Wz5YQflfx1OnzVv08di/0
LR8ssWLnIh7bIHI14e+ujlyrR2b43s3jt0r0jD5v1COX2k9z7PtG2rb2u4X6rfIlw5uXf1W7pDLB
l43Cl2X4u/2a0Npp6xCavgm/VZQMETpXP495rBmf014Idq6eJyFqp16ydupOZetYVIS2XSe2XekU
019Fq7E1nyNQS9TWGEwnV5GSm1ni80q9LDbRRdp5qV1WMGxAolilUCwPJwPUwra1U5cJsauzKJtL
sOQtXJax/PW763V6OQGckVCeBIVfPyMaAvt7PgdZagFHQiktop4gfZ3y5/KijPnOtECV+LyL+WRu
94X2ddQfZLtXF6iSu1c/7/XfV09e6CdPhYryon7Y+8I2f4D09NsZMA4jnEGMmcc7dVrEY1hVIZV8
k7hEHS8ahRVKjt74cEwvUuI9hAWDSXwkslcB8T7KokmsUJFcildTlYwO66ymI2UWb7lCUvKSqlVa
1S7R6JdR8tkY8iaU/saWzYdRCKHUnuMKDDEhskIRb7hr2VQYqbTMrtDFq7CRkhz2IReZMsFSJS9P
kyhZJuo5+z5FhU6nQlWU+gpYV6tQkfUWi9/r+6+qaGkif5RKkR2DVlyXc3gK5MoKFYNgYIN9+B4K
tcCxa6MlhnYHfUK4lWWKC2AHilRgCBSP2oMuIc/iJ6iL1EuoE3zMwDtFGlgdogjXrkxxcqtzgovh
RAW8vQdFMvLX2MclQqu8plznZzyFKp2zhEQoErxQ9G1KKFWJy2Sgy6vEU/AoG0VTJnVtEQuB0hlW
ZKxldtLIEODdiq+y1qV7yRCMI/wEqlZlh6rVrRZrMSiUTOv7Qn8WpVK/zYwvzeio6kxCCHp4WcoK
vAg8+i40pnRZCGUPVcJqYWjAEQlTJjiizjZpW0XSFwlKUgNNXFSXWZsy3mpdwJRtnRJyeWKFokyt
0MRbcUhdNKlT9AmW5IAg8h4qXdiXDFA8fgr1ZfV5Sm2SLV4oGif5LuqEJd2FulvQF3m8m59ETJci
RKFbUCXvC5KFVJ/Q3eVKYeTS21SZsupTp2gT2j9LP4wsYUyzTTCgnYdjKC+jalPmeB7rJSf5kDSC
2oQ5nGUpAwR1b6uo3qSfXMQaTEn7V5uMSYWluyz1rOgqFUldNSkzqk9orPSrSOjdssiijV/8ZSor
lGXKCioSOo83MUmvwhqDCju0eWoPVeJRNJm+h1JvgCuzFTuU8hk0c7Ld5uormyiSBmmXEJJ50rIn
rlb0DW9oK0T7o9D89TLPUluoE3EbNlRglWnnFpAiHLrw+1bWd0rEoG42XaX2LqsNAk4x6vsiKZ4S
W6jqSvfR7MNWvLyqSvFjmQigrQ2HLMKPyjGqpL/cJ/zlot3gaiotnv0qGtrJBrXG0WVK6ed5wgys
c50lVZ1fpE2fPBGHrJo8ZTZ0eni94iCoqwY3ru20iG4uzXpaSQaFobOkiG4SdmzXbnIqFMnQJCJ5
uRr2qNoNKYpSoWHRtpt8XIWK9arZPJe1tULFJt9gc6icUFYbbI5cszmahMYv9QBUyWLCauxHS7NU
Ke+wT0gFDgpdC6rOvWvFIeEJJ9nRzhPeflWvWLoTA5JKdJnNG49YsU1C0fTJd1kmrI463yYiFeur
blIuaiIqWnLwDVnVNAnx0vUbnrf6OKsuFdtVDcCi61IPo07YwW2nByzwaSoebl5vSJYov59vSbkp
oiEr9PdgAw2KqswanQJWxGqxq6QBWSR4sdqWy1YMcW6BrrqKmSGvMHOWjDv1CW+m6HWNX+q2X5kn
815FQq6w+J2o68p4kzLRoEwm7jR4kmZTtkm5A+ZNxewVpZyhzjf4Qcr3fb0pr6DotzKRo0H6K5ol
SzrlCW+y5EMnPDT3wx0oPJTO4deJPbRb/FHFI+6SSaY6wUe8NCbiCiYIWdVFSiq2iZBdtjE+ovhB
VZcqM6IllHNUZdKX02Cm6k1ZCcWA75sN5QjqTRTJxGeT0E/dSizGqpSUyEDZbklbqhZ4vSU0oDgR
fbIkIU9UKVV1nbJ9y4S5VBep62wSGaK+ThksxNOKxVLVqcsoE9V33FqIZvzUPZTFhpoATdAW/DIk
i0VV1QUTDatOjsD+V5RNWaSUle5JlXm3yfRU+DErU0K2TBiOdUJnF6n0cVG3+ptwpqfiUjblhkBJ
rpUbrYMUkSyXYrx0VUrGlQmlyc032fwpEk+72lY0pVSoZMkYbp1giC5PxQcS76Joyw0MoUn6otmS
wlarAapsQ8ipVJmSzQQWMxM2hqq8zrxJ5bnUvELJ5tREGKpOiKiu2uAWFioZ2mpTwlCR002zocxG
jZzlxYYaF1VfFV1KUDaJFfoyZVR3CWOUuxaVeJ1dwojK821crdxmk9R6ifxvxWOxtZgZqBKkbNK2
YEJQlom8pSWEYpjzSd3y2yKTVity6ZPOZoItq7rb4Cuqgq7tdUOs1IszyrzRYyZ60Keot7wKNR6d
V+kNKFZcKc2IfDCAFALW5YbGA9U74siukh1qbWHlSZVVyk2tEm5FU29KdSmqos03FVwpwZs80y16
Nd1X8GLMFTKhD/0ot5AlqvdKvey/TBWkWpGieBTdKvndyGJNq8RsN3nqWkYhWaRUJUKgzZZqrVwt
rmmqTaUxmlDoUqmyIqFjqjxlCLeJWoas2GY7KXSoN5XeKYZw228q/lc0ZdNvCkApTNlvo4OSB2/6
TcaXFlN9LGJ0PYnlr/+Yr7fn6asw3A9Wt//rr38a95cxaHdduhbLPyRRZqsqhiBa/iENnLqgxT9C
tpbqoCr67TqGfEpiNS7Y6LfzGLhu+YckcmrZhxtvHzau4AFXZQzw1W5cJ1rB8GJD5IjyD0mg27IJ
P67WF5YgGqN58fh5rqMoLxD/kftOgDAvgxE0wil0L/ylrVLb/nPtzjP113Vw4ipXmVVHVK4K9eME
wPAyj6J8kHXlH5Lg1WWnXlmpP9Es9bEmHNoHPneyzRzYya8fTor8ylWWxIEldR4bNVPa4QXKhJ6m
Sn2sDJlpitg4M79x5fM6OlSqTM6Fyps+9bFCsqaODTYqt0xCq6Nz2Oy59dlAda1+XmqzwPImOsCu
3DIXqO5SZNPue3XuUrhvZet1pZ47NX+tbhJUT1xaERsLVKoDdejkWWLriRvvY5P3SnW+CP12nroy
jV069cr0SUrN4wQuJ8DaX/843b5M1/+Ps3ddrmS30QWfSAreLz99bHePY9x2j3f7zMyPCcUqaVXV
aqu0dHTZl4447z4rycwkmEl8SHd077J2bX1JEABBEASB88NP3y9fB5VG4lwl/c/n2399735nNW9x
nfz48DnVqVjrjvudsxClciMTfCnnw8DBLUqBLwWy/M7+N7gDcA/hDpK+FJnZyy4KjawKfCkyg0i3
gHTXw+MA7gE8SDMHY4dG+iZHuY2dwNgZjo3qpBTGNb5vTrltdMD3pdCX33lZEVR4KbqaIBIV+Ct0
O1ngBtBN9KUvrxClyjhldAVH97yJrCIPcO7giq6OHqHMUIHCAg+Ssmu0VlyGxLMmus68iW2zMUVc
UKiAm7Jtglsz17F1DF6eNzJvG5n7ARypTBI0DquMM5LKcAGUSvyB1YaI99Jq09A+6h182Vonu37b
Of/+MlVhOj89/O3y7fvHZp8le6iVe1Jbton5Aoe930k/p505tnLVfOOk0Q2qQO/YzgyNeFA437Lt
oNroaO6tOcPmGVyDg9L7ThxdQ8EdmDtoNEOaWbFzB81iHJH71jJZ2CzGGK57WUF6ocWDy1BjjNAg
xwQIx00aXFsrmxPxAkaE+x5sBvICY/Od/pq8QGMNt4GPFhoaPUFt8QLXvYJw3KDHBahqUrMbkyDj
pMYcFpMudSQxWGyoXZ1ZN0Fm5sDbrKQHrhtKgwML4RRcqOCMUWceocZJbZlMFkbHTaGM53qTxLkw
9E+3HVQ4ghpojopfpS0Xr45rEJAPA1ra4Gzrmxq4gZV4Ae2ht5XwgRuKxHYNbMQHQLyHxAMJV+LZ
+5E2dxC7zZGLWDfiLSDeQDi85FjfH9mBLTdw86xjJ3nmIFbP99SLR645spJG53yuSjzbLDKKwf61
9oAdWDQDnZZKepZJ94B0BxerdNWQssB3fEuSjQDH90MpynMHhmrb0NDvxOaA2BrpO08XdvlcS7ih
VQoGVthGQIZb0iWUVTZknwJ3MdVIT2D0CEcH22cdXUN5Abelwh1knMc2Ys1Ctftmtf7h326/enl9
vjyePi4/n/fxXT/dz5/fHmmRYC84S4VoH7hbay8cqAo8snP2s68FwMlx/PbCWbCObeDYkk32mdtK
/XqyAPCYuEvQBQ6MarKQdMGorpnfCB4B3HMGwgvnmgoPnAfkBS+zwIPhdgQveNgVnuW5g9GjkvQd
Sj04SWmAwib22t0LB8JKuoZjCx7QWuOCX6rIbVUS16H7FCJUGWlbCJ7z/RbSgbYnD/VN2hQCcZ/6
y0IvxHwqPEGhSf6PT5DvyLx5aFwlzyloyUbAk0IIgm3GpyQf4UqRduJgocidoG4xSysFeaz7xJxl
F58C0e8f57fL+z/IJi1caJRWATFzXR78enGJ+hxkw3Wl9NINXsGnzLVI9NJ1UKWf7fPg8Y1Mpd5z
rRL9oRYXIcPR0a1xnb3nmkx46SKwzp7taOqlu4k6vua6THrpBrTiDdQedHNd6bdw/pD1CbJe7JER
NRyatfyz4iSo9uhGq45uoOCE5iIZsw3d5lWxKVlt0exTkniHlnze9JI1g9GR5JKDvGdPBvPokWvi
63G+QkU7ecGg0dPGXI0WLJJ8PKD1EK9kgwNXTZA0z2CDEySDxeYIVf4ryH+pgbSOXt6uED5ZabvB
21XWcLtzsIW0zmG3clYPwDz89Hx6/062/xpSAa0QFenJtZ0MDnxOcJ8V11fLCzHbAk+O643lhRBY
hRtpdA16MfqkO3inSAaYsDrzzLV/W8DMe9zKdi3zLQDKI+QbbEjmc2tItnmW44Ubjjo2gaeuto7H
vQ19SFyjP3+gWZ8PWZq0RsqSNRwd+Gl12l6SdwRjJwgGPlKBRytrCxg9tdFLSkceLBM0cyXxHYCz
l4WGdBWvcKG1pI94mbGmto4dJNLBCs0RStwKyhrxAhdaJfroZLYBrkclwLGBiZtmi3EwdyS0zDXH
9EKUv8IT18nUH+it6aModQDODo4NXKO60gJknMHdbn00spkAO1rKu/6aa8tA9fA/Li+nt9/WTPB9
t0k1OS9/+cP+2r3+FyGIp0m4fvtIUgnHqYKPbExoHR+FrTW9zNs8d1VCFKLSr7m3ZmR8NP/MBaUq
Hk3d9JcFZkS6AUMbLphHSA+AdZoLiJHxPRjfHxBdBuM7Luq+qA4MP2s+IkfGR/xj489k/hbg7YHx
E5i/5V5JEjwaP+HxhWiujgnLXwioaj78T+hHSy/gpSNceGmaPzGmX2P92VzbxB3eYv7FA+MjvJXk
B68BdNyvv9Xu30j/69+GNh1fCpXzlM3cS6qKl16B6dQ/49rigWGq45NXZJtqEEq4A65417+/2+IR
6VGaOn6EZgzGgzVdSbcH8ODJpfXcWzKCTwCfMF56u2jUAfoB/6zmnk4u4+NXo8b2qudG44PndNZw
D/nI/AFeZ+6t7jq+RvM34cD8Ef+9yH+N9M8kPH/gDlZ8xvQDn6biozR//IrTkIfWm9olSsiCqPKP
kv7j55jGHeA/Wr/79dNsunn4fxijfiCaoAN3yljxMJyg2CgQwYNTjmqny21nF3Uk6qfYMBLBgzOe
ihgvHK5dTiL/YPxNazy+BkOHA6QjvDh1HMdSG9LzaOrghKrF8XFgQlnMeiGc5GjMlxUdiJbrI6IH
qqfJAX/nKB4ICynDRVYIHqm+O0A/GF+3uNLeqB0Ie2vPXVaQpYvkH6T54wALuSzZBFIJ/cD0adub
Pj/CA9Ol3S4+tFp19/D7648fp4FVd1PZNPabhl8TTo7JG4XQSBWyOCwQpNEiGk15vwwWLj78+9vl
xxTnGtSh0lOBq+/nh399u36+Xl6+DVh9+w2hTAx5XrJdAjMYpLRq/qA4gdGwGiJxkhpJFt+GtiYw
QrJFiJZhQXKbZjNBFzBIlNJOmjBIKNR+F1BZFOTeP/z1y3+eHz8e/vRy+bicni//daYK4LnFVrwy
x58KJyT06J0RsMCbds2b3/pMFYtodlz9nIJ1yAt3mT2AT1iEDOz5oY6KOJW46i/zbNG4VhgX1dtR
+xIqi9qYhz89nV8+Ll8v57eHv52/nt/OL49nojioSGqlbPN1OqsKRtMix5kwVQ0mpN0s5tvb6bdV
od87hS5mHBwHLHs7OGPBfmYS689ULNp5eF+kYoEfYTK7D1cs2jw2PsRuXLD/m7i7YemxaMvzrO9y
77ilVCW03yxX2de6PR/fL+8P/+f5t1+ub09E9JpfZzUXxTouE0bXuCOAsql3BWphBo61XP7WDIZE
k7S70J/s64zhyCRZc6t1QrKiVX3akWnOW7pZhOfTx83ZOD3vb9bSWl3p/f0mqtPL3vFI87SF1LPZ
gRjluqYjqV9GsUl/qfIOZBwaE+DgjitgX9GWzZac0QmB2WTHdCRR1CgL5y3l6BpFUt7653ZNcjBH
e3bg2Bk4CDZsxtvCeQNT5oz1kujQ6JbL9Zwnb4SMR2OMMHxGtGsoO4vK1M+8T1zCIWEf4oDdZIza
IQcgDw9NwqNJBEGBENhEuPgsKqI8D2+EFWSFFeQFvCAC5eQZYBGoLDBQQxWwEG1RVfGZg57b9NKR
dwpG6SMUQBtEeNh78zMH0NZjkrz1IBug4pEVgL6gNyJwAwZCCkyPH1OAtiGdBTuGrJDJghGHFtRx
OcdJ8FuMUnBcizp8zdNWR0SHbLhRO7drcZ3moMzl5f3jdDtRXb8+XPfeURAvwdc2XnZA5A0e4HN6
Wp17u7aCVELBOAiOkGzLPhlts0blG9hnm8vY4E25Zd/aFjCg2hgutFOQHg5r2HoVCYejrPZwtkKe
kDUKUo1rFxjbJalspSzk2Fid4aQDJjzL80bS0hAesIIqLni4gBHTEpeZ1rQbMS1IaoaYxpajWaSN
WOaldQVGHvQZWK1dnK3dyMpFuTyft1zxqwYHRZi840pAFTiofOUzVzZrHhjX/PKk+lPY7F9RLtrl
DVckrsARUvcDbxiGeJXkGSNJsbW+GhyNvi/WteqQm68xTh/ntxpQuL49nP/XJwk+EK1ykmszVbhM
bEXX8gF4RJqCI0pDPHaPCwGGq9CZangM10+Ohispm+4drOMbIqRcqj8cFaQbn0vKB4IwPq5sGh0c
3yGeZytgQa3t7AV54fLHURoaVGPNjitkO2NBHdkcZHHBQrTJ9+JK28GBrmQjDG4EXUnpiLIhbU0C
24GJyBGyXartHpJkYcDQ6ojUgLamTdlmMzJvBpg3A+eOz96FAM1VtqcfAOs8KfgBPnpRyFdc5Wg6
OlhyyR4RAGgMkDYlv/fSV0D8WZg7GDinI4xHlioLhg7XvY5aUHsg86yh2KQ66dHLezIs+R1jzzs3
tFdIaRvvNs17m8lA9dIzV3Y7zWW325UK8oAsb9kCbe3lB6EDOdXU0FRfv5mlFYxDoJ2i2PFhqrnh
U63nqWsAdgmODT3HQNs9MaMLTwTWJBE/CJ7Iad7GaGF0mKVr+Cx9Ons0fhREB7PkDXkgMZo93BYC
7c6GPqDhBJwsfw2VN3B9pdKBPHmzfWehd8oLVC9B6SGt80dmjfiOP8DuZ3XNRQHsAdZIA2NjRTN6
9CaIbnnnOdD2i35wEWgF5znQBozscjMC22lW/jaWbfnTTqA98fwg/G/5006gPRRH/qMVHKhA2z9i
QwMosJLcEdeyYCSMYCRsEAbPgHVBsJDwHYsh73g2rdLnoQGWZFyNtAV6rYH2n9y3AiOLDTDeK7jY
YFQk0CaQ+1cgaS6a/q9v5xYGGvg+RtjFSjUTzeZipaULOw+2jkvqTgdy+oNiqwVQ4vlHBcGwdUHa
BzScveayuigFFnwgCOwLgHublPQdFoxL09EGMxdyv4OyMhyMrjyXSDdT7gHlmauzMGNBxSNrIbeh
z1TF5QWFMYLCbFPu45ACIHQ+eX5Zb/AdQ7ABrhmHZm/YN0TpwBOgQF9PcctVQ+4bOL5DS90aiW+I
aU3s5TDqh1IDimcw5YhpRpBXBGRrWd01tE5WELjDAk+CvBzgWIK0C69EgnJHVjoYn743G44Pn0sF
reDUob9b56/krQk9GAo6SQoPBvdcmTBq5pClcNDMIe+nam4UFA8bucFjr8X5cQ9/L8Vsdqm2bvaK
fr5envbekJMLALnMbWoFjJ+XObZWlhMqqzlW051cqsqb3rCFHRiktHsFacbvMV2CZBsMDtLI4OWB
1xIYcTvuVsaiWPf+4d/fzlOn7z+c2U7frrwSgnoUFM8ZL8kkhN5sxB0YsDU4zua4+niG56nldqll
wgicpAkjbnlIs/Qe0AeJcKBJwXCF3hbCUUlD1hNshCOm9eUzydl4hmN74yPnRS+ko3lHKDALlcxn
7sy3gJF6a5lpaOz+3EFead18kWX1/ukFrF6HOwPqHCOXZeP4bIKCDGzzTidcklZ4kuEW0K24nJMC
t3jSps+USduxDYZrrj3cMjYivOUlTT6+dTuwA2Dfz3o/sgfgAEWN87FuAts0xQs93EHCk4Ict3Dk
aCHYYX6TRqm+izosYMCypLnEqAWMyN73rVxXb5zduh+Xl8/30cKNgCmBVsLaBxudkF0XaCE+PzBr
UXi0GjMc2sJqPTFw4eEFjEZ28qQRXMOxEVJJUwYFbiK5vOmP4zOvgZwSG9hdBgZvqWPk3jTP7MKF
haLdjb0qcL2U/vjtdUpjH+hvifmi0uzecZn2Mxg9UPRGAKOy5D5AMBrXsb0AChQ/TdNe928q0pZq
CLbcs4gZjDog+NQ3vvBbMGoC4KPAbNS7wbOvUBeOQTnvn2OsGpgf/nz9dnk8PT/85a//MVLBLO2m
KfMuSJY3xOS4RN9lbLAtpcRvxll2QZLn3Z8sOQJZ8btaljbjFCEY0Wwgu7HLlgIcVvI2k+X34vpk
+en8fP44j/RIw1nx2eJufe2HvCrAFM3b0Ir1vF+kZR0Kmtch8DS9Yi0kGyy6ECDSwFFVjw1bihGj
HdeU2d2H2Rt7fR47Y6iEy9zex3Pvbh3/0Ge2cbmH+h4qtCQKlnvy5oRHVTOefWo54wULHcBOjIrX
zOgAqbcC7Y7fjVHJnhkd+Z0pHGmmpXbNpFaFSmvxcWZvSlJFIe/6QsGUuiRVQfJsleAFDCoKecs9
0ytgqY+qY98iNTio/uTYtuAFjgZm39otk0Z99rRANW6h6thXa8vYqLXh/m3iokmmNon/P04vTw8/
XZ7Oo1pfplTF+fZZQkB/vrx/vK96ZubSNLhkFtuYcYbjhpiGbXzb4EDbTBDgmPFGcUJvoyO45V7d
zXC8zvi3oW10IHj+5V2bO+I8q7NN7qjOWt49WFy0br5aejn/srddZq7+h3ZDx24qpl6HgdIziTsj
mbXsIBhYcaUTTL2WgkOzG4KBt2nz0OypciEcbYTOcPUKDLwhmtEJ8ltoMuY8pFzo6egcVyjArHUu
Ac8zRAv9MF0UxA2HZgvdLIRDlu+LZKyrxz78y+fL41Qj6eH3p+dnao+tdEdj2RwEA7tp19s+C8H4
osN67pbE1OxFHsnWCl2GBVckNnJXJGZtUcuDM6QZ3z0601dntjuywUWcDZKc0H2w4tLwDB+BqsMa
idUIzN6XGtjOt9K8v4ZeFX6qRTo98v747eF3j483/2TJU/hp/s/C4d6Rg2zaWCAtBfjpg+mtJLR0
/eXJiXJrf7QUR3Hs0d/Anqx15ADBOHrkIgRrdBB2VqI6A6oTF3IwsBFsBWtpyohsNm5gYOfkOrKF
OoKG3YQN3G5YoCDbGgR7VicAjpJeBwD2kFs4LuoSBGsUonH71TifZqYL6+u3t9OP2TKwlSALq5a4
mt8aK7ZEdIXNIaIRjC3VMiN1Q9JZO1B9Y0Yadkw04LyW/Naiqtsp7/z4Wf2H68vH+df5SFcqb//x
ZWqc/vLt4Xcv+99bf236xZ9Pz7e/f1oqt6rVB4brTIfx5fYKn06TQAE0o/MUD8yiVmOt74bn4crJ
cLBgVRqHRCkcLBwVx1fklPWId4ZZtXR4sOhVFlhvIPU6jfdCCge801lgvYHEGyXrDdgRVZDnjrTW
y3Bgq42R5w52VWPl0cHcdRQEp+Ho2oy3ODo6WLFGy4JjHtXU4a2MB6zXB4YH5k4dEDyi3uzN3fqB
A+aqsZ4c+8vg+uFfn69f9iZcg/rZniY5bAtRNTDqz7avgr+dDmKmHTKjtHb7w/nrZaravUYuVSlT
Pk+yFqpfp6mFXMh6BucKdaq1VDwOfCimxDAdH0UQ9OYGwG7xRqA/CPTj8eeCD/uAFR0fzV8ztXbp
+AaNn2X+o/mTEs3j8QX6uVLHFI/CR8oL8heCV1yxXTp/hFdBph/imTrTVH/R/EmV0e7NJ5U/5J+W
+YfwBuO1tH4UU6uYjo/wRsn8g+un0d89O6Hyh/zL41g3pR+Oz5T5pesf6q8bV4mleKg/UZCfYL8V
k92jSp+Anx6vr+eH338/XV4epvuvrinF+/W5HHzIjuHK3gb6PHKVEBoY9AfVYVwQoIFBHp7W0sig
M6i2Ehik8Kk07qbSwCD3UGVpZNBVUDPFUhoYZExqM05cbGCQYarVTlQNjdyn2Io3l3uo3aaqQcJa
bIW3K3i7IgKQVWy1hyu4P0Tokp2KwbaBmy0o2LReD7/v/axUohuO//ByvzuaUuJCOLFVAS/InQYk
LkcothrKdcyt4qGr/NgaR7AEe8jG5U6VAVvIKp3hhC0WYBgJkJIN5rxcRKfNJcoMRsM6XulQ5kJs
3QZYbgVAsO+RaTdbMKyxcNgIkGGH3JoGtLoDNA0aEq3SSKcL1j78z9Pb5fTl+fzwp1Ib/ONy2mxu
FtWonhOh9vk+MxIcFoPlDosF6YV23iH2LeL0AI5GZ7q5r3CDR98Umt7AcSf44MdFrhsYEc7kGs1g
NKzZ5Tdttwhk2zRvJIKkgdrsNLCMrdLDf/z2eq7H8qXk7k8fJcg8/YeqhrW4LE6CUGHcOqJgI3oO
oFzmkRBnhmfwlVp0fmVyF1EZ3Tqm4mlFnTUU8/JgJRZhaaImMfEVi2ZJ0/e31Ho0S8fjEhpvfKqr
hOITjfIZYBUC+uFRqgDDPRQmQfoNXyN62qC2jxNMh4RjApFoKywxBXQIBxyUTzw2C5KxvGQQk1yP
66YaUDqWcgESC+dp+EHhkJrHZSwW+pwpbBQw4nmm4Sl4qfv5P67X5/PppbPEVji5LUXkt6/7FqQG
SD0sUrgUOARAyw9pAcwPj4lLNVIA3Pf6rGxLtVzq5f2j41kCZ7fyQfKgkkYjFySYQ4zDtqMLEkwi
hmEbzqVTzNy+dZ3G7e+n7pzTDfDUfm9Ourmc30uA5N/OH9+vT+/LhENNAwVuI23eQPynFYq9L6aR
TEUb6HXSXhnEX63TQxQ7xwNLyAp6bXaca0zRaL4eoJ04tuk9ZUvRAU9a9YzWGygaNQ8TlFcZgenS
niKdwS8ygv1INPMGoA6r4WQNkpHGFDsAxV457Toz0iu0iNBcPRyVNkTydM9YWAyw9LVD3K4+jVef
5ymG9DqDgEgfLC8ZcNj3tEPykL8B8zeBheMwVO3aahOKIw+kD0nyZkwQavO0BfXIonJelqc9s8f8
DYBaxWtg6RwExtQ75i5YIUq6XjKnra8UhCDZWrUg7ZQB2N+KJCfnFuiYJkqTVz9up94vnx9nsokK
5mocP5mBaBHya0mwcnrYcekn3Ner8sANo4QJPrWrSLuTWGVffTv795en6Xb//NR5XJo7X1b/bVxR
IfEMLzDaMJ3cWaY5Ng98LaYUdYJxv4p0EInG9DzSAVhmnGItObGOcyjri56/fD4/dzIyOLpCn2d0
KxW/4lE28TghqYC8wukFjLrOz9AwfJOxdCJbW9l3HIhCbF2nTWB+lWFEdxg6tcU2rVW72uTIL/C6
1jxjHSOEJc3BIOfqkHEYVpyxyC5kdlCNgaE3x4FMEt7Q6OSHd0MFGQCsTbFXK7YzWoVZHoZ0pu1T
kx9t8lYYiDVpeDVShoxgyIRkiKaoGNvuZ5Px48v5rVsyHgXy6rnWMFb6BuUv2VXwTAzBlxgnsHuB
s5gTElv3EJlzv4f7V+ACJR4Fnit3xs0FEn9cCKTN3pA7ARBqhs0ACiwCGCn+06lwlQWanuLpRJGg
zMNwJCgBrcH7c0h9yX2zESIKF1l+1ARGdGiWSPqc++KhKxGAMLTFM0QarsCQmzYpablnysWKTG8V
fj6/vS8XnHlyIq///nb5cfm4/DwbmQy9sjkSPq4glaFbNkPHmX8ZXuPO0DBMGlugKBYe4i7fasLm
yT+5/v3y8qHDMvu4lrtm2Zw37WTsQsiCBQlJSg1Fm+eqYGDQsQ2aB8XlxNQ4Cyrj0mtLD8StfW7z
ROQmfki42vI4LN0GBYYs7w1ZFXO6ibneqy5iTtIttR+3+i5IfLfu7fBovyDRmIZH4hCpH3f4XuaJ
qM3D43AWK3doP24LnmGuT72KVyNkLp3eF0E9/O719flyO9h+XB8+Rt5QnrvSo8vJHId5zjNUuHjL
gbFyiT9HVGTapFebDolsXFbDM9iMRCYua8awFmRASDO8E52RESEt4hDibcqIWnTJnZ0gUpi374fn
1FVnUeKJHl7ZZHjVVNeJhysMreowfBOSpwPC9U8vH9YsSwEnHZfTRu4zsJqYPbTmNYWqHXFpxYYZ
K2RmuuFJNQuJ1pXm3B2tmprgJPGKHSdBNprRfMdH3Sw8Tqjjpn5cu+Uz4pUa5tc1LMiBVHZ4em1Y
lCJnhkfYLDzGqfN1PM0C0iLNwFHlvEkWzsvSCLNH19ZGEIy16g3KanID76nMSM0YzgBX1Ax2jKUP
UNQzOAzfX8xg/PhgbpM7sL0BKsoM9sNiqDO34ISNwC1Isx2mauRprtc5UWORN6qcU9zENI4CZFjm
qCIt44RPlz34zDDOq8/wvrGOmRgvHF0GV2TmqYUN8VQKwyhShjdpdZ6boytF4luCpHkO4ahO8jwS
B+1pjeftPPERPRnmfGOkm4k4bo6Z4YVs5a0adkHNsF5TpTby88Rn3ZiGMaxF49EJcFzDOk/b57V6
88uKrW0Osb2Mnjn9W6k22RwwasZDEaiTLE90w8y0LNdQnsNx43G9AE2jnNMbspyQ5rPQ17frj4f+
WGvL0YR/sZ7SuAHDjPTotXuKdligYhk1glHDsLrDgvQAOS5qMSMt/z485QyR6DG1HtYUmJEBvStP
EdKrA5iph0gHkBYhjQE80giZwTQTYhF4tp8iFIsBSKZo+IIEipvJY3/S/3JGwjpVKWB6gepmh5aa
BmJJGi0XWOopRQVHBTNNCso0AWSEPAKqm7HqAg3MUAMNoDbHXhvydnkj7vphHezFqGBNGteoWSgG
yKyg5oMhw7A+yQwEBpt2rCllmfp5osIakFYNJJoSnCUwndlDzQX88WixGMCgHJDierxH6GH7ghkL
NDdGxCFYxS2FTYElvyUYab3ZqRH1oIzgfo2ru2ZYNnGGGt7pky6a8vCJfYaJ+DO0OV9Trp2zvd8G
57oZ1fTeIoRqfq5OOtPHsPNSq8PoaqTw/K15207KOctmmCKSYXuvitRMLMjhDBryfLc7wDmY65HV
LsJXJ51vk6bvrXPpcgHux8hF15Q1tDrqGSUiaMVdyWWO7AqzzNExo2wCrSITB8iwf5IyPAzdU+6v
4epVcnz48/nX0vyl3Ca/tLpC8T4+/PtUfveztUv9KfJ3jNPGYsycJOFST1/B8VUwKjSsUGr2F2hA
0NRDQw9NADo7WC71ztkChXO1PXQzqkVQ3xOceqhBUAdH9Qgam3BInZUFGhE0w1G5a7vKYgMFmxFU
74adsPE+kDImq24GsS2C8ml47xNrWBneyiqSkt6zL8AaWZ4+zxqN6wSaw+bJi+mwmOYwbkLRaEbz
Hb8DaVgLsO2ui7ZqazJC2PEjkih0E/E0u8dudS3A4JCnmWibHIEZi3kVPOKVwfO1PM1C7wLlDZov
xgbHY0HNK0/ToWzfBSiWu8x/nNc9xJci7h+fb1Pa8Pv57efz08P/fX17Wtesry+KLLr3N3H4QHgF
owtmNW4otGJ5Hy7n8VP6FarRzYoePy9uE0b+n0l4ZIO4pSOeMaKaVpIiHl+bMuBWGjq8KxQ9kVdG
mC8CG4O1gwk7zOAwjAe3CaOECe2wjBFWCVh0X6i0oJgoP4QWqxuph0Yjk0ptQ6ph+o6KgpSRZhph
PWkkZVogsrN0Cxid5FQWRkYrWaVhWY02ZzTypi7dbjUapGBm/JC+gZHVNB4vZo0WpJZWM2KYHvet
WcFItZXFAyMVUUGwfIhd2mOiDaLaCFQbtCCN3q3meR++beDcjivUno+0l2LnzHgcoIzBD2Oi65gI
aodB/RVqAdTtYmELD8zD/3n+7Zd+9gaYi/K9NK59vmIdIGXTJHsLBdcacRswdVsskBjT1bNhAcnj
KOQKBYyKAqPAXVVkLhkaVgGsHwY/GxZIKGWMRXqWhhemTafAdKPAZXDzFOl9gRkoBlrJ48B/gwbA
KY1JBtCosXDB9WeMWeByBCQbLFxwNR2TEmgGbKb3K2FEcwLjWmFcoJExCViwiOK48/GKBSRHizUD
cDkKXAbCjaOOKMXOu4ffX3+UupyLlXeo3drUhsnOqjI9Se4XlUNd4io0NGg3B1RFtkJnMzCEsm2O
5lFTD40EahFO80PCWeYVZ02sf27IhcO6Nmy3JFCFlxmqGrRTL4da8FWo5aFGEE2bb++GOdQ+r47q
G9RvRKMxwXEj1c1cAxoV6BLCZUUEO4VWbn/mxWWyD3++vJwf/uP89uPy0gX+LS5kb0grTJe2Qi9F
qFBA3KQemQkSFM+sYLcJiXsCtqD4dwHbFhTvVQYdww1perq/dbghI76w8JkJiVcoGtVHJhKPOs/N
fDL8VAOGesMTHDCDveaVAmU3V+lYQbQQHCCX4X2H4qFGWgaG3O50Eak6LuQzINlK68Aq5n5n4TQa
2XJXUhY+sJjBjlfKiC+lfOKhRhrXRKRbWpjxZjnsRka8NoFf/FZSEEuWRLfXoF6b8xq2PNTyLabn
cTPPay3yWvNLMWJmeaAeXhrXRX5cgw00sLJaWkya6GUc7UiQZo82FUm1FM+tIDBawc0BbqIKkQz3
brKOOle6cApuSIkXraDKTvfkuu06gIYyQQ7D7dfCVYBSDYLmNcpI6miwhYUbsEerDxqbzOuEl9TY
BebuPj/87vPj+uP0cXl8+On84/J4fb6+TBXbpxqcS7X28mua7egxebIuq2Ef3lhTbwxqWuxoD9/O
NpQkIY/aQztteGyEFHvSG7pTgVweu4IxQ+tnTZOa5rnCfsWOthze80mjFstOZx4b4ah+3Jx55jDG
asAnrbickQJNetjKugnWgmEVj42QTR6w2N9nPNnIY7WGBKc4bGPdJJt4rPFIKxzWqMQzapKPBthk
4eoBa9ZbXisC3w+1zhasd40ZlclytxsmZyieQJqbd85a0QrMYhV5ggPfRrMat8RTXMQDNDk5NK7G
sjUJLYOAl4HlmTURDRQjBt7UhHvYgN45i7Aa2hrTxu0vrRZbA/isMj9uhBR7oo+5Pd8vyAT5FAxY
tngfSAHuA0AZPVRkC/dLF4SdC+yYxiDBGjiuDcBaKAiNCTkWBq95j80qUIro+WGRFmrBygAGW4+Z
xNw+VHUygvuFuAQ5nLCRCTyHM1wAwUMkWABRCxZGA7najUuyN8eAywa6BwbO1xph2QLNcJ4f1wvO
qgJLL+HdVvcbiN6yClhGo/kdM9zjY4ixvGYUTgG3xEXsliA/Slp+QCNtv4PoXpfBjhc3WrFZBWjv
iYJfASRrVC8dt3Ur0AHGgaOE4M5ksOYBucr0Q/ZuAZaqcvgwAHQpa6xLYMGmjDceYN2SkvxFIBt0
jAA8UtBEoFO05R02vHH4DE/uwDyEDW/zdqsDi0YLIgXQlJBVwn6IbcPSmqWLswcY7B1vWQJ/BVFH
HR4Mb9Ab7o+/nn68Pp/X28h8pAK2YhLrFjBKYrSWyQdcwCj30o4bgjcwrBWuhZFRPqAlTywtfXeR
D9T9NpnJ+lzAKI3RunExttWGABsdneCFIifHKSGOAQZ2GVtbNG52/FaYsCupeCRY0coKHhnAOif5
oIBek3kfVOMTcrb8VCPczXzAWxKAxswzKmOkglYemMzgkBZarIUGnq0Be33i95aJScBSRym+BIa1
GXnLBrLY7s8k1cynhz9fPs5vp+fl7dBUIPlv52+fz6e3m/1/vX1oqnXc/9ZP9dfQe7R6G5G4K9e0
VtQDt9RWtzuU/j1bWosIIrjiciBm4oXLrtSuUly5Ab79OaAAzT+3q5xpOVu9n39E84/MVeo8AS9M
IKH5u3uAtQbyzvKHs5nywOQ1zHzzArxdi5bG724/ukNwh/gmJQpYbRDcSAkwOXY3jhulN7zzOWst
d03ahA6XXEZLzkiJWZm7gG+sy4h1mUnQaEsOsS55rPDCY/YIidd82HMevalNf05pgtNIcI34ydza
vIEL2Qu5je7C5Ebe/vR77lvEfYtXnRMmYPs1PzA3iPtZIZNhBGtlVRDhaO4qYrhw058tWjZi3kq0
zJ19U1wk+xjQmrf8neIs98SkZcyGHgndcOlrTegokSxrJoW0LTkETxabWiHbIXts7JygcmTJlePQ
7c+wlxwytzGK1hqZnGyQg2AE7luV0ehiIl8O2EHygrVuc59ux7zfyx66J0rcapDiao33CmGXjhnr
vaB50eOtRjD2kWhe6dB2+zPsd2roJ6g+31Xv54+sdTJ4r8B7pVVmN//5QHGbemnUtj8xoKYo9c0V
9/gJN6ur2H1RzoUgOzU+OL9dHgc04bzCUrnLO5YqC6OttWYY9yorCUWpCtp5hAY1PQpaReZVVxLK
xRa0TcwLuLTm6oKqhLrNu4+JNZ6DKm1BoXlb/txV0MZitIHz1pl5YNnGBpSbhLTFCGMrOLbmM1Aq
2iGJOYHnzonyBvUDtUXz9vxRv66xiND6Xlj7QRwblCH0mXmTN69vLDH6Dnpz2lu4Bniu4frWeOyY
E6LcCTx3GnHNCZR77tVnGxusUJtFqwhsi0vMi/ckpHpXrkVsUw2kXCtxhQJdU3ZY+5TaFrDGTEA8
By9zKlrYifA+ZiPzqDkJmdR13l5coYDnvqFp6xQ6b7BCjUESc3y+TdW1jMfG+7eWNRXouVKidQCU
0xLceiAxTLlK4thAU5VBe4nnw4dV3knUVIB2Bu/+DvLcCmis5xruRFawLUZhtIPztg7bc7wLOivu
JcgiQ6sYBE8zGGzXHKTcenEvQbu/FnkO1piF9twI81YB2xaH91CNuGYE66ANU/ik2VSANh77yA76
DlZYJZhrOjJ1HxrlQN4minYN1H7IGXs92Cp6JZ4NAOXaIcqDYM9pqZ8uuyQJj7cq17K4fwO0t6JF
RudQJfpMwDIZh+UtRCQ80jUvWEUfkM/khN3ARdE/B1xz+7GXeIh5mLs9DeIhRoyz8LuMEeM7++Yn
C01ubsIyIMnBI7unHXbsPg7soIvnae8ju1cRJxe3jaSA6cbVcfDo6mn/bruPI7qpu4BBBUG19n1B
0H7sgMunrvWp7d6IO6ienvbxsntFcHDb9bSbkt27Gw6+hPK0avhYYhGXUdVaI7TjD2GedvTlxsaU
64y5hgv8Zo20xQnlkLNiyiE3NCi2mzJT1HiWGG6uq6woMQu4ppCmBgGtNFPKOdVyPLhAcQ5YW3Ap
6AR1DWTKeVqv3m7LhjbbgsojQ8qtgI4eyTtitFYJyxtbJr1B+/3YiGtZlBhYJcmIKxSUaM4b9MCm
JjC2wDWDV4lDlEuF1kPC1gHvY0mJlHtAeUB7qJF2f7gTeaHweU4IbQWuxYh3YLwTKYM1VVihGfst
AuVwbC/IO0e0Qh32W9buoePdXyq/Hsi89UBb8D4WnUg52P1TEHciZJkUU+y+2Rbgp2Yrjo32sYw1
FTfgVtC2RGEfM7J1QLuBEdFgbG2xl2uhn5qhj2yls0EQKQ+A8ogsstSUIQ6aBdTTlnn4v7/fTlkP
P72eHs/LOcvAjNjyRcrJzvs08pqle3LHRwODDwVrOfkb2UZabmcxMBmyYI1mdL52mQUr1SueYivY
J6uYs6yRbbpOAqfAbC2nbUY+GzjFc0qyx9Q2dH6mgaGhSrNF8/UQ6zyzDxj5JOU0j5XiBTryvJLi
HGZjw3u9wivBkOYw3fMoAzPlKtbyMjICn41HawHzykTeakiNdNgzo5EbB9EIgR+tX6STAGsES2cM
WkceYx0/X2mvoP633VhJLYxLTx1b3ZCiX9vzremwmFfaoB0F20mTeKx0oreJt89aWAva87rhocfs
MrJ02GpYgJViCKr3d7vZCvY19juv3+5jiE8Z2Ug8rt3ELXrZYp1yhvdw8CpwxLp2bwdQR/qKTPxc
nbD2nEO2FWMtXLd4DdDozhbrhL3E7ffs4pdq8/DTx+njPJUUL0A9Wa3/8Xx9/Ef1Ucu/w07Ta4B0
ey9ZoR7g7DBPYx3SAOg4YaBCAanbngiJ4tB4aoer7LvXt43p+/nh4/vb9ZeH946XP9X/zDctDaRW
4trD0zSSLOhzGEiF5KWR57J0GjYCbB5285yxGgDNsHtoG9QCrEeDslG+QJpQ0s6ePRaMG0gzUdcS
zxvNYFzfuqWWMgFui0W8smi+7Ek0kHLBBRtHwgVK5Z3AK6BUQcICmgPpvkqeVjQs4NXSaI80fF3W
mCpr7JfLx/eNufqp/le8Tzg33tlm7NTwAsFthHCLg9NOjY+l6+ABGW7rx0f4dWzo6tkMx3Zoi3TO
I6y95+usFDg92YZee6u8+BiM8w7LK0Bx+fE+uRKe4bTN+I50RSfEcGc0Qut7vrpf1bSIdQUG9C11
pEYTd1hPN25y2owNtcWS4EvJdNmODUPTlgb8NluKAnXCq56GofvYWA5XiA3C+oJ3CQ7Dhdax1nkR
jcQdMekQ7Zj72RUd4Sqh8ZS0Q8M4naNNYDd7ooLpmlVVHOYZVBbrtcgzZE7HN6R0eQK7ZBOmHNol
Gy02DRlvYRotMH2foKZFhbcCPO9sMOXw5GJdxkYtwfVpLJY39htUxGPzdUeqcTDDQzG1x2CJKajo
Djs8FtnyG+FwI3HO4K0Aw21KCA5DLs4b0VsCi4T2ah7tBXh504P9fpEIoV6bZE8NmTUtjK2w35Gx
3xHhxIPB6xuinQ5YZJhtNHIURxM32EsVvGu+lmy1bML2H/AuuFEYvbdsYOZO2A+wy+Q05hv2PHLG
EofRPqc2lOf92Gg/EJxcjx3Npi/lNO73Sxzx3MruHrCrVt5OgFllLjjoIgVWNXjRAQBLPBpxC0eO
jxVVFbm5ShQ4Os4JY2MP3aZNdHm0FQJVtxnJrMLR4UR3LsD+YANOwdQ+5IGHjs+Szmr5/A5smxWO
g3zd3apvThgdwh29Kxpt5FhdsdCqygD4Nq0u7vUVRWwcPt7A4IXTwhk+YrTH9gm6+c4IMktYZMIq
T9gFiVhkFm+GASsrpNwGwYGJGH0g5IMMs8cns4gdXissM4P3syQ6fmg/E5xO7PHaiA7TDh9QIgoQ
YufFSx4jPs0mJ7oAwCgz+RH0SIhiNqH3fdxeXGhsQdgZL28hVoXPwjYm0eFEZ+EsnIWBvJ1Dgehi
1VA42OCNyONwkxAehAKzQbDHAR/LLA6iJzy24Pfg+IMSTvHY97BJizE+oGoeisxiR9mZIDrKYOx8
IJyMvE0nB16Q4+Kxsia8l8DoJl6gXstGFTnpQigbn+KdVbK6oXiVdMLAx5sUcLANmydlxcMR0vV9
hHK+M83lyvTt/PH59jK4NM2gLHxJViSPzWmpthUaATRyyRlsM4mCs4bLI8mglHwd0oIhDRhSAxzg
jnUAx5ZrraTm4evmFeoA1GEGMTXcK8Ukg6VPFcn4BfFtWI0nC/hrBJEGAA1cdhBbO75O1GJqExgy
7aidV1Mqq+nL2/n0j8FiSoCDUyXwkMd9kSoUNmOKKg0r0leox9BxS40KDQBnAQ72Dombtl7kNJPA
Eq48ssNOSivUAagD7DUAN+4LWXEOSzQOa/avEkU8ikCiEeDcsFXJqgloSAUkChuFRmXARJE4N/3s
tkqE9DaAIWHvvsA0sFwlighulf43qUsJHDEqNO1aPyyZS+bhz6cv5+fn81OzG+8tdQlVb6iJXHqX
jDV/2j788cfrx28Dc8Sm7xXi5qTBrvfJ/MlYrNzj9eXj8vJ5Hnw5opYutNmwc7twRkRNWWgftoLt
l2NETbJpn4YxNgLg0r/c7ZZGBAtZ096w40G1QLBt2F7JI7euNO0qMSbYCwTrhrUDgh0a1/dYT7FJ
GDf0k40bLGKUQ/MNCOiwOkFVTBiLBLS0lx8yCqpE6Af1G1WEXEL67wWCiSr2x8YIXAxNG7rQcWdj
4mgnk70pcSB1drZTpEcTKdRVsRCYWn+m/uLEgbzZig1q2NtpstWuJnq/jUyunkjiF8H0ZnqpBeX3
x0SH2v4W8HI08v1boQUcIHipgMWAMyQ7qp7s2IEND1yqrPr9wdaBHuMFu5w4/E70hWILwc4iiicp
BSCl1FMdd7wCI0ctjQyktHTQZvQjAmRTjm1YeOaWBdxykObA1sIvmqV7zfK7kYFmOYMUhA/D1wWx
kZPfka2BoHyS1iIYejnAj5cT1hDjIbc1nrODDAtYzhkyzECybYZyNnjkjQUJuzkjwxcR2RkObNqK
Kv+ELRYJGS8LYPbE9QSsjzeIzxmuRZMk7QAmxFsI1lg7PBJwAiSTUeN+GSY439A0gz7+m8EAqBuj
6JvsxmSgjiZKTEYGj4DNfh9WmMlK0isNhvYy3WAh+QzHNpBlTsOhgaBcgMgEF3+A7gdYgzpLjEa+
R4KGMrAthQqbRfvOBHgrOkC6FeSWxUJScCVaaDzAqFoUMGB1gIYWKKSO0B1GquwlK4lYHOAGnKB9
DkQpw85SRryVKeTsRLyFmt5C551KZqCRXvTRkH3X4mpA3rTaoedznC/HuMvXwSnOC6HbkNiIukc+
VMUmLtjskQ2tAUYFxg2QZKb5aYUCcqNFU8XdzkOIw+ayba4gDpuywCckHzRZjYABDBqgXGPi7i08
CueHmLkot+fcl4pDpAIdih7xBusQaZLevxXDffYqWAF6M1YFi0lGoxpJfQE4jHsNk/ki3c9gZDDZ
yF5ieXQkrYxyYMwEcEg2uJN5SB7ob8bQvXBm4xwe/jRVov7oYobvS2WKUlv5Zry/Xt8G1juUiw/U
Ba443nWp7zrWLx+IEj6aLkJIlGMmAPa8nxt2dgFGCnc4Jhra3c3GsBZ0wmMn1QdGdY8OaNaYbHMP
g6p2d+PUsUyIydZrWhae7xHH6pbNEg5CLhWeIMvSvSDuiAWGoMH30DQYGirqRtF3XJc+kA2cu4F8
DwbyHZQynqnXUOhRmLvjrgBWqUMbkUWFhWs8QKE74QoiQbQ2ks5lC+UWBcZjNJQ5XmtJGDj1TN8M
7LC6BUy1lpiWIrYTkOEb7GZwj+jGmpYENc+yiYAsxyYmI35h46CNNHbGC5wLddTBheWt8Jaw2Y7s
SFfgBzzWFeFiMzthLwXq4rBtcGjYhKeN1DTnnbQXj21yh6fiPN8vz+dBAaxQypPBgkPRcgWlChjU
sEqaK1VUkAHWSIqBq8200AyKQkUDwdrBobOS6Aa1rGLswXoHRrzOmG5QngmzC1U4ixCZgXytxCdQ
iyopPFXApawhNGDVSLs6VhScAMVG0kikzsJ0gWiT7xfgQJkROktUI63KPbPcjtMAHD2eMi68l7Ba
ompyqUduDBZafk7iFVr4Gi58Zsesc3Uip8DAKYlopB97w7HuHW49z19ehkd6/q6mZGzPGjBluEy3
4zYQynCmSIVnCOc95YoODa27yo3hns+NKdDZJBaomQbf0O0w3bOhKPAbB2zs4eEeku0aWO3J9hhs
RMIRfN6wV8JTD7dw7HnZrYTrvbAtGlvBeYNslTrzBHnuEdT2imJ7qENQ3UPdlmGAXU25NwnNAWTQ
VWjAywpNNpHJ2olX28lCJiuoXlFYzrGXsCWWRhdL83SdHdWRrdHAAFvSzWPbYHcBa1gmV+txk3oy
NKqxy76pqkODlz/aQGiARNPe2YMpo5K5ftjrlAwLHvGoMGw/uU4XDOuk2YLnSspBEYEHYQozGbyW
UxkiHXylpzQkGLx10gorlIWM0kHiMiJa0GW0hiycr0YkY9miZR+khYs0WQ2b1xJOgWeNTAd3anDQ
jDNcgRq9/lT968+01w4kJS/NGbz7U9hM8ru8Je17ODR4l6m1tA6RsdsTvWw95uF/nt4upy/DTceU
EB96dmEs95rA4IctOgMgnwRdB/UYi55OGMW9RGDP+jMw4UHRMwSjARYBteVelxjWnMyvNTSYJxe9
rMTmfsywmWhC2AgmGrBkdMQM9mhcB2bL5y5VbADjokF16BmVNoOiRy3GgEEhlwzQCDSidoBatMS1
556CoRjmjE1IC+ETJ7Wb5/LSpfrK779cPh6HBdc16GlQsq9UZlPONHpCWLB8kp1GTwgLln/6gTzs
mhZoEc34NYKK7KsRjV4CFqxD88VPKFRi0wI1aKdQ56uFcVHiJp/Sr9FDwkJzQDKyMNNUmx22Kq1/
+Mvp4/Lz+eGvX/7z/LhkjPj79PBvp4/v67/da/LjfXj49z/NSr38BbNXTFctYalEnDbB6BWrATb1
WL3FOh67PAFOm3ubFWsBVjXsHF6t/CrY9PDT//W3/zAdDxK6BPDGj2PbK9YBLImLW1K5c8UagA3j
i4AVawE29uPGjgex8EA/9FyIKFUr03IOaSfNiNLwMn2hTm/wViyf5pVpauQQa8C4apfTRrigH/7Y
zV9jOvw4P27FAt5tUzTTFgvmQLM06UXhigV8p+m3kTzsrFj78Oe/9BpgsU5ZpMsWrwOHdNni9afH
vWhWLFpDZtxfpWLNjQNadSxg3Zby5GZbDD92pLC+UsVGAWsANghYDbD7InaEBe7hz3/9V9MvBAeP
D5GWLNivSAcdxkhLAOxn4qCbGunxw4/ADoHd2PerYD/xQaueER4JJSqmruGKdQDLFItbsUigWRjX
gnH1rm5X44JpjsL0bPz0cXoh7DD8vZQijXenFVfC2NQ8GF4tFGn+t8vlXbEOYJmqNCvWAKwXxvUA
uzeuPVYDrNttak0KNxFOrDcd7z3H+2LmnO7NnOlo8exT6gImvc129rWCwabgEm/YKxiQTQu90OeM
K9iAbWHboizuRuaxlsnrWLFgxlaacQLcAltozSEHWCfQDJI7vFfjlIPGabB5k655Xfn5NjIgm3Zl
G05Zg+3bETfWj2QM1NqZnQu8GVgBsJemDKRMGuCNF5QBUybtDRkwUM3In1QqFug1ab1XejKq3ZSB
irgsjAywdqNeYUc1EJT3wsAgB8i7IIDBinJqp9fEhN8O52/Xz5enzoZr/EUL1UZjbbceLXCNzaEh
EqBV1hoYGHHrEBO1oLEKWQctKI5Bi1QLZlzvwFR+4eH90ns/OiCvLHJ9kxoYuYPApatgvmdCJC02
usIxDRwBmCkc3MDIm0y8F1vBHoy8L2BLBJAezr++dvxPMGlkaRWyy6JYwRaBXZ/nkrdgjcAkPSiQ
/J4V7BF4k3USt2CDwC3tZNrt3G7OAYHjbmS6ANzD2+nl6fqjXwM4h2ZpVFO+GSsf6TcfTl/e++/h
k6Yz/HkPdD2ewVoAo2MqKQ/W1Qucwfbh9fpLPxPLbjUlKLm0m0pj82BhJNU38EDDNP9Uow7t2tB7
x7H01QXo2NAjC21ZVyiSh6Fl7LQ7JGnL2aY6bRJAHmyIFkeBnTQy41ZE8vp3GH+e0UBe0fSE73lm
QMx9eRqQhqcizb8TqRzXvbT38wbi8k1cXb4fGTqAoaPENA+GDvxNwzw04Fmwko6jywYvDQ0m7WMv
6/2kmdNRJA/FgZZqQHhohA9CEJp/4FLRQbQqYHGGJFoVwDQrrWzAs7C53xmsTcCz6Hf2jFj2/PD1
+Xp960x7hn6fZhplr1jg9hnDh3VB4fiK1chxy9D1oh1C007hM3QYuZ4oKxZETGm7pL22Z+jlGjeu
+l+x9uG09dctZB/tGrXfjy12uJOARerSWD9QXos95ojcbQtZrx0Sm4VqOmh2SZ0h9fB8/dY7Q0q4
QQjj5I+GDsg3U+PCug0N7xA8f3sxd/1A6AydSiVcfkRp3vACI/EXGDd0etjG63XCt6MJBb91wtF+
w19LVjC4S80wZK8TjrtriWx0i51R0F4nfNOgJLIjANsdw4j0wsPj+fLcSS9gTfQWaWLAC9ArtAgC
1kO/OZXtwGjx+v4WbiOAIBzpsjBntPi8FsARgZvVWCJkRHrx4fHaH2zZAuy3GYTlJvLGx+m7vtcj
NqVhgi5plDfo9BIr7qCeH9W0UW8K6PMWanmoWqHTfY/XW6jmCU5t1Onfd9DAj2pXaEnc0tptwY4H
69241FjGh/f/9fbRW8uIY0SeeQvV0DAysonz+B0aBbd8lsZGYSIfUYBKRyFCRZ4n3Vjg1A4No0wa
RoT0w4/Tr70YNL50Z7qFNTCK0Vrkb2uNY7SkEeH+LkprHCn1u564lA3m4cc22mzwPkYurgenL4M3
fgc3QYNzuQLcBA3e+O0OTNhgHk5bO4qTpSNpRjE4uRshuujRhoDzl+O2Q0PaguE+5pAfaITQZNh1
G1lzOGoS878+X7+cnue00JWdKCn3pkLL3XSxmLeBfOMlSkEuyLazTGHOUG3bBLy3S0rJ7cfbd57O
j9en89//1lJQ69//TvMtggt7LSkQtAlDrl/IsNiN3ZZH0vsvWFh5xpLiVBsLMH8BFzlySosUaLb1
XSWBFJDp3vPSTzjMB1LIZQqRO7v9hMX4QVmULQlG4GOrRROm7SzYMOYE+ggpUrZsLP0nplMtVCla
Yq2Ps85f8PcOSZO0FOpjWJ0oEAWJMuL2TxiyEi6LVpGo1PMMaTALjWbheibk8SygJNonineoBp8Q
pkHKYIWJjLAXBvvicJ6HHdcXokQI+kCq5k1h2WiGJgZOw4zLO204gZhJqluVi5swUgqhFpslNQ9L
XD34tP+IFzQrjktGbhgKFaOxYzq5eb1XzQhEqpUgUqnclqVF4co5V4/UyiK1MoKxk2xMHPfzIVwU
bAQp8jb+gr8PaAK53zdH2qQFlYxkcZY93g23TjgLJ2iTv4diCL2t9QMxQivXVKmrz7DZb6B1iN1+
49T4E3BZNlmUc1geGhgoCtt7IANj7xEbkrCihAWdk7giBUNPysCNJ1C56NAnlLBtY0/SaT0uXEhJ
EJRZ9uOSIEcterOgIU/9RPNe/HQm8zntpSHYFlqzM5WDSBpOBdKhBKe4dHyH7MzCrunvoVft5Z3f
s0+/Kx/Ivh15JwhpJamwPB2knB/bWcjJ9okwfSO4djc5fcQ+nF9GxycL/cRpiVhSuW8TfVo/YPEH
WpLfZAS0UtsvwNKBltRL27wFnOGG90fqB1qi4ERLDPsZaDyD9oGuHtH6Ac5PLmhavJDWFVrRVhie
Vm3cGz4LTWelPwj023uDCppZUg5tYDeXD6ApGIECWKvPpsileq4cECTYUly7Uli9CgAKSC25TYpg
mwCavyQBYG/r+C3DevLK/U4CsPKfzZF7eNDIR/LfvFsYk4/Y19bwFDpzAwXCRoSUXOQoEKwQ4cCk
ziaF/SoGVihb7pnMig4A7QX+c/tURWsuQZsuP7R+2PRwugkg+VlB/bnjWKU/iLP3AO24DPMVDVQ3
m3E1xYp2bV/8/fXH6/Wl1W1YfgHZthJV9eSCb+AVOhR/KPhgxj2gV7yWKHD7K8b+C2B5zXNI3K3u
SgNu0OxJYHoQXnRSG2Af9BEuQApadLurL7l+ATm1lQuNhkFg0EE7N3+hydKV1OoBFyAF7Zp64BI7
6CzMX2hyGOzVqGBlFYPl7hdWFggE0C7febQctPgFK6gze1StU4jc5cxKgLAayA1NMZ1+T0BEBGSB
AFx4yEclLAU2blOHZ2rcEDg0R0GgHvjbswo2+YUSWN4TgNZQ2GjwwJoZbEt8FJVYsoeK0DAREQbf
kKyytJYFWxJkNYAGlWwKe6fZQa9hZsLgurDtnaZdyY33TiPcY5Sb1yU9YQoOlruMjkojRHXKJ5Z3
MGaXo9A+wW9elQrbqJguZ4LK24+wi6Z8ILUPDEKtRriVqtNwwjSQwpUvLNVgzXDhG+GGrxKhRV5G
TMTsi3izS7Fcv2AwIyxRiWklB58HE1GCXrWJ+FwCXQPNypgQ1wgZLEBUYX6WRxTlIUh0ztuseln+
cANWCB/xjrBiup7PZv8RK0iVqNbePzTCzVIloy3TktoVrNp/JAkSib1ypbGGw2XWZrJ5+LZ+wgu8
sCIvgvCFJpHi4KSxtUCfCI2IwYnaABel2qsmjM3Tg0aBoJpNFIPtBVZXrBREYXGxTk6FEzPjx2ZG
C3bGe6KQqtxQ7WnwiAYn0pAFRUj9F9JwRcAvhH5F5CENcF22BTFwU1Bnl9nK5d7KxbEyw12nSWIQ
HjMor6SS4EU2Cm7InIfkzfDQYoQYfOWj2dg3k8fWCfoy7SObbM3GCegCWGFVGokTkXBics500PtV
gYSRjLDrsd5/hWsRDs2K6lUhDBgI92x5TYMroSrDtqgH5xcj5GrVT0TZnRQ0wbdPTARFNdzz4War
BVZImrTZY5hJQBPdWDlIODM4GlE52azT5PvsXR/BIY5JkISRXKeoe3UgdbN0q5ulS/bm6+nt/fyn
7hxVc1G5KseT/+FS6t5ydnvAnI3Kcmn6fa/Ik+XtFdVcOBt/QLeXkTsDXsvy3rNVTusHyLPn7SY0
p7Wy7mWdAvsatrEwAxZm7v3xygELOWDIy9JtzGqegObMRqEgB+5p6vwBKAEXnTD/fO8B9UkYPPIn
lSq/2D08tyP2e8B+L0vPAjh5wr21VE390AIg4t+u8mV8wPykuUIHK/OB7pvYv5wPQ9UB3MsS9zx/
5K7TT53y7qXn+Oh//YDhHmU3/kXAvyjAnTQBtk4F5QBSgF5/R/ZHwynk2LNQD1UQLEFthSkYZEBd
clwhAjoBsIaylZcgKB7hshJkGHl/oy4DLRDgpC3Ai9ugoARWWMYJUE/YV7wd7QcG3AAD7oUdMN8j
5nnRgFvIPLMpMhMH1IPdK2ZB+hY7AC474QMYHmO/esxAewHzkxF0D6+dGIS1a/H+47IWPhAFA6iT
oLoBL3+vGwW7NNc2BcDCbET9Re6TJP6A3SevnSgCrAI5CyvIwAWQgmB88j2g3mTBekfB9mnygcR6
8EiBguAA53t+91tr8bGzx5tnUsLgQaK+faBrwEeoR7YvcN0GqO6g5Zt2bQN20wf+W0z96cnvvRfB
fQ396g/kom46IZ9/Pj13R0rUoWP6gOEah61wd893lTKW9Ibahunn+mkGtTwzhnxg79BreBys9GeR
AtgYy5goMKBQEMAHmA53/Qci+IAddwXrP+DAB9QRChL4gBMoAElBVQpEjHujrOGmUj+w6ZsX92oI
0Fb1WpSGw6NV4AU15LpzVvZlgf/uHojf+iPSQ8RHcQ1ZrD9JpAD2tTNGYp/Bwnci/wD11ohoYICs
FSUP1r6VKNeS4qkjsgO8M0Gwf1rSnkPmC0kv7Sgge5J7uLz/5fSXblOqqUV8KmeIXBXzFQ0SQYPn
k2hnNEgfDpbPP57RIAE2ZIFynHwejDhxkHsckogGec8hiBNHlDuB6ThtP+wTn4kO2Rou/5fn66kP
mFtwyzM9Jg2tXEHxPHuOWHDaKyULYit2MP3jtmh2U53QPvcFD3Zoj8aOrq+mo7boeM/WtfGpleKZ
Lod8HhDOo5csZzO/ovFbtEOEB8K07fuFmfDIE97ktXsMvMjL8/LKvbxGhAee441poeQIDOTFMy36
XtPMgHJ+3l73Y9s90/hpJ1LFyE1cH0ibRy+pfyzLDSQ89VWq4mDaPNNcQ09rzeUBmheYV2wtkpVy
gI79vEfi5quZRCOM7dC8gzRvPgJb4Lor0hXUYHCe9NA0ddqt4k7gFi5vJysbb4+9lQ0TP7Z3gsjY
m79CuRIMEy5805bJFIGMQ5HxlBN1sYxl4hdZJNbBbSqAGPimrsxbWuDxHuh5WyUldrFTNWBP27ja
lfu6wR4GNsAsbIAOWbVANt+peMzILoFaRb5f3XawRMACM1zlvnXavLRiEnaheM+zPLWRyz1rHNg0
MLTdLRDig/mbH/8vl5fLx7nzwDzvF06+3Hphaofhas97tBXN1hFe0RGgA1cKd0U7gGbrwM1oVoUK
PCaRdIBOSkRbgDZc7eEV7QGarZ7XJg4kHvO+BvOqR7plwUxZSZ8vT+evl5fzE9EpDXeR+greJ764
wtyhEj2i97kvNOK2cAgOfCkBDXeCGR8FvL2HdbHUrkhK4+7tpP6nl6/TKv2t46iRosCqRRF2SS1z
z0qEBvEjDe/kKjzy0TvQuLJiSeQp7TTB8Nys6NyjVcdM/dAHLuYOrig3x/C3O6B3bMEGcLGqYQyt
Dq13NwM7OKJc8Zd687zR4HY37/9NCgNC38jtT7qzDPzDTx9vl5dvi83ws/n4qf58L3U9Xypa7LqA
U3gA8Dhu5t2NHnl8SuNG4h0ekJ/MuHl6h7cA7+TxATy6cT9yCs9gdHVg9gCfD+A9oD70cD8a3gHy
vTA8bHy/vOSHzNOA/ETItxz5BuBtr/p5gAezj15mPhg9HhidOeDqVmUPDw8WXjyw8BKA5wOaC+xG
irLZ0WD8tB9/sYhzrdT6LSHLfXrZGZzlngj7peQQD+ZbMMxgh8AZjIyWT6U7dGUKiJfkgYNWoR5R
jUv2Blp11+74ZYSRFfeg2i8p5ACsBUkhMN80wmN3ug4d0dDwLUrFG4F0i0jfVxFYtd0QbTd4xyul
o7Xi2j544R6ywoMAR0OTdhVbHhhssAuedMbm8Sw8kT4dm8asBA6KbtNG1VsFMtDiVvi+V/V+eIDX
Rh4eMJ9vuuGFHJg6updH1wHg9QG8AuRHGZ8A/AD5HsA3vI8DuAGal+XRAe9Iy5PNkanBQaV5dYT1
GYjOCUue36sr3srjg+FV4Grd3/6PGD8vma6Q+AXo+a26Yi3PAy8Ynhx65es2ai/oTg6BVz0vrdoQ
AZjfMCtWgynXcpI81glYYKiCEbBovmrXzmHVFdfOyG5qt1EPzvevb9eP68dvr+f7j+ufr4+n5/Of
r7+c335/ej8T5XK1MQnrI5TYrSYNbPuHX+QDqEWI9v0H3O4DGaBNPjA86syiLdf6l3xAIw6YIxyI
iITINWihJKBJGNt/Ie2+kBCaNKfpM7/X8VF3GqtFDioEZ1vELHDEOxOlwVGDGRMOCB99QB/5ANJf
nUXeswfy+gHH9YCmyoMEYFRPQth9gT+T1Q/4AwsAqpDZqND4C4gNhrAhT2+FR19Ai0CTRaBYEtAH
2hyWJ7T0C1Z4/uNT//yq26md+HrIx+ETwIV8vbf8b+fX59Pjxt5rcFluSSXcQVb0gtcop9l6zV0J
LHiHsrLX2Cs/PkzKXlIIwfgwpXpJIgR43lbTflqDhOb1A/y1xhp95NEwK35Jx8PT9wC/ySrNIzwQ
f0jclQ5lnwLscz0BQwYkQEDm8mopAQYQECQOAu1LShodXscteaCYekC8CwfGB/jAvkig9APxRX2E
/Wj9bji4Z7+HHIxH5A/0xzcJ7I6lq/0CHIzhiP0ABsinAx8ABtxbaQUCcLIHBgfmxzXjt3llv+KB
8iR3YO9AsvdHjA+g3h9RXmT9RO13cPOJR2QPFo8XzQ/Q/GSktW/xzu2OcA/sPb5/0WXU8ANAfl6U
n8X6Yw6wH4jPieIDupOOWE7APZcl5bfYcO3fwxAHM+z9y8fryyNJy6+/xXuHoaQYZa5MeYNrAGff
aDS4B3D2eckC58deC2D43fvzGcw/knDZcuXRZyysre9IdXWGbm5Lq3AlwzOA6x6uBvAAmJ6EuWvU
mMDRtgB9HuEMB0PnTVOJMNI2BfBGJt0B0oOs7EDqpCXHWGxgneXUP6uxA4UD64w0MxgPDQRGi/mP
mabAImP7IMxgpOZZIDqDcdWwh8BqPYXaTD6y1XF8fUHFRwVy/67dd8f6zAd0//76OgroZqCVpbnL
7KINkmMXfObBwUjgCMAktzXu9/fMSbeCNZeVS6atwby9OO8AwFkCs1asMj0cwGsDCPBHPgAIcBL7
DMR7NquZjo8+QAhIu9W5fACw0Acut3n9ABg+uB49pB8ogGsKMDCoM94DfBKpR8nVS24LVn+w9rwS
5acA9zYp8XkoPPABv/nAcPrA7nhzQP2A9fB6t3z2wVdQwI0WH9oHX/3eSr9/fnlvOaw/td8UblU1
uM6teAvv9F3kWr/T8UFKgon8ReX6AZDQYZyEtxDvsoQ3kAE2SgzEl8sW3Ouv80epRPkA/8CdvNEH
xgdpFcYe4B/Ia3DtsnnzIICMDxIbzCaVash/cFFuW1pBuWVR+/GB9PyG+2mkfUB6zoncB2vHJwlt
IO/cRvbDxQ/wXh8YH+ieDRL3cDaWUf3a2+OB4vnQgY0aLlzAfWd602dGHwArxyZp5QCz5f0B0QHF
dUfMDuCe8RLxYObe9Zyzw00DGV0j7To4icmKy87C2Xt1YNOBdkNkP1p2R7ZMjdbdEZsP2G9Mn0I6
tPlAeW2WbLaQRGrSAf4Dw+GI0ddDBbR47XtzgACwAtyRCQAJuiBZPiEL2GTJbREyoG2/BJYXbWsI
AhTHI3VdB+pnhRdkntRFHIS5pMqaPoZRXcsZPYh/PJfox9SP6vTWxz7EQ1SI3APXGQ5OIFGjE0h+
ACfXAM/uOOwR+5jJnmRwZg3wzCmGDEJA4Roh1JOFKaOzerQSGJw0o5FOeg5rsx695FzWoRuc9F6f
L/0tiJ6bQPIvfVzavBLb2AtXN0z+kZyz7aXTpgfk8gH8zit7/qlSmwH/UsttX3oNZ8A/MnTa8O/k
Gh5wwJG3XgOL6YRnik6pAxMAL/Wccfwr0cZCwAL6UjHtHdb6ATAD9Mq1EcDjg+Ofma4ccPxrP+f1
ERkCFjp35ANgHbkofQC/9nTq0DoIQAj5iBpFoEZBmoJDTy5dEGeAX/tm1+PHLAQEKMu/mlw5ANRY
pyMyBFqkwgEtAjqgrWSM8XPxHI+oAOCASRIHLeRg0JIpnHYTYAmskggACrx9rz1kvwF20JoDKwAt
IfrinDcjYBE7f+QDQIWcPfABAwyZjUd4AERIHu0P7slnJQZvj3M+sArBy+9sJS0ACpzNgRUETJDW
R2wokB99uT1eALhkg1NG/ABA50P7IPDGrCg9C10Bb4/MH0jfHPBn0T5sRAImCQIVSOI2aKE/6r3k
zVm0flxQvTNnhxwEH1D5iA6DbTClIzYIyMDa3oSMlQDYYZUOeALIlTBH1jFSoxgP8AAda/QRM4ic
euWOnOwABUamAKDzkWMZ0EIdJTNuoSX27oghAhMIoiEF+3jKR8QP7KBRnSe1vYSYPwDEb8wRQwrm
r9oS2L3nb1sBoMCZA84k4KFPR+wQ4GE6spkBArQ/QACwAeGIDbBgAk4d0GFgiL3oTIAFmA/58oB9
1h/YSQE+HFlDDu2kRtpJpw8gZ0TxRYSaDUGBDSsdaScNABuZO3QmBzxI4YAQgBZEfSQsATzqZCQe
4lpGTsUDPAQy0OoAB5AvQCtRDe4UHaidq0lhO+FMAT5gj8gQ7eS0FFfk9BgYMn9EC1FghJTDGuVy
zCwAH7DugBqCZRDCAW8K1PPK6YAlBiL0+UBoAq0C4w94cxZosdMH/AFQDi4H6Vjv4F4U0gEOAA7q
cMClB+PrI86AA4vIZb6cXxMhMKUmHnHIgQjt/lBCr4TM4ErofHp7/N7fCaH2vnMxrcyX8mofQOW8
AihDVr/A38nUD3i+ntdMggLwGEQ47z1XArQ0A95glA94f4QENAmfDpCAKsl501eS8yMpeMSE2BdG
s6MPICaEI5qExOA3JemGPAjoA06iwOAPBCKFtD+IoWa58wdCL8aBItxLCzId0CUkSG8PrEe4oN0B
QWZEQRSVGXEgxiOrCX3B516X1egLiAVeSXIUCkoGK/EQMTD6fvg9WiiRGBv9ow3csPGMijZHBADX
wZEvJCSA0K9EO+IAkmAUbToaPjpJAMgSxr3w6d6t9nv3j9PHdutWwFqV/Avj+ySdjZ+tpNcNevM2
Ru3w/B1y+YAN8HmEkhKjVJTwgHqn4dMkhZN9nIUPWxS6Oahztyipa547IEAFiXwDeWe0xDugOTbB
J3FKfBWl0wH2Ae4Ze0BzwPgqSaqL3yVpc4D7QHpGSfQbuPRMOjB/pL86SAIQnkZpL1EA0gOdOsI+
pID+wPwBAdr2OYZ5RADAm4jyGxf2geWnxQ8Y+DDPuAMKDPCaSGDg7SvgrNfxg4THDxO17vFjDQAS
sFGSIH5PrPIRFQQLwOQDSxipgNXwcaGCmao2H9h7gQE05ogBAfzTh/gHNNA2DS7513ZPAeC+M0f2
X2AA7RELjLYwa3YS2Oefoxf05G1mOy7P6EFF1MvL0/nXv37tfLwoPABdrXQaPl+OQEsKnPSfHxxC
ImjQFUmV93WKu9EdhrfqBKX0odnCM491HmX3R3D+qRNvje8H2hGFbOx1abMTZ41zlVoYPdvtRwdS
s5brjbOMrgDjgqAx/MZWOWf7qZuByiDaG+OXapW74QF8OZKkYRWPOnoAk29yK/U+/UBr0NyzPHek
NeRJSdrde6Cir3XubbUNcuvZirORdETgKXdQYa0X7AQsQ7J602lYH4mttBtJwxB+obOOfB06SWsF
0O2isE55J7zqC+H6/gAehdKqqxOb6j2ZVQNtRUtNCXAPtxabBeITYJzrH0+5wbaE1pmX+YZsnNGC
dTdw5ibK1h1MXmfBRjnMdydM3uCdTbKQbMynwpXsEQBD4dTOwO6LEYOCFmnozyxOmx3caT1ftrWE
pW6q2XG9kgmcbwSbA9cseYWzrZIXh6uMrbtOrgs48tjWD3W6ign7gVFfu+VAtLZT3cMt6BG9rKlB
+3gC50fXrY9seWS2n7jmwSZyvXeJxBI/c0K67rqZEzjPd6V6mfkdPPOUb3rXx9HQYObKcc2SCZ5v
O5xJY+8w1lX2EFeGT6Kuo87gQVlJ5zRokR2UkWaPunsvMZB19mk0Ot+9OGeu1zTReDB65npsU95Z
fvJBMlOovfjiLQ4aoxM4L3ltJepRa/Ql/DPod73AA79mNr3shzqveUulIteymsiNJ92oA9uD47WG
8D1NnBgxjjc22h+QOs877bq28AOdNcjI602r8DiC84ZWhwOs0/ySUZ5rak/wfMPw7KUtiifd7J0C
4nkM3lc/fj+9/a5/YA1ftpZ7vwzvHJ2Yv5CcgEfZE1mhK1eYNFfx7dJyUA3DCUk4OQujCxfuScl4
RH06wHp0456ijIcX7tL80X1xDui22XHtoWawpDRI47JHaQpOvKZPQcAjnuck8AwqTJYFhjIUkpFn
DjU+bXKF9GC9oQlkI8we8T1HabkAZY1KybxDKpesNPo9XCtJXutouSS/y9Kix8g0ql7L1K1NwoF5
8RJLC6mbiXGbTSfBsJwKqPfOBAZHdUVK9A5aOCXkYNYPWBTnWD4AQhUKxhqWDwDewTjNjA8AH1Co
pOBRVPLI6CBWkd0R9oEwlzIi+SjQtJzuEAEgSKZVP3raoUGMS6VRdSQKBjFZtQmrjtUGSE7pA4wD
V3MZRsNnPKpMBWPSywQA71UfmjXDCXhAgD+gehHgmwRGvQ+TFGRUfhdVJwbWj73l31+fzhuP2cPG
K+uj1XHXKQ9bVq0lVMaNK7zUtyK3vheD2xbP+R4VG1HPCy/1e0mx7zW1gycwa9grxHN9VyvZWeLY
PaK6dRga3OZ6qUdMNsLgoMVLTqg7mJe6U6UkawpoTpS9IC7cmS5bQWJCZ7JMOjvtL6k8au6yvupl
xw4Aq1BfHo/6Oa21ecbdtLzUDCvDZmxe6oeTlcxxoG0p74jflHKzuJSbEgoT4rqGMaHNz0hpKTH3
pnuz7YvtHi26ErXSzpkcbEiBuEY8Dr1Np9Fh3JBi2FsYt+uIsF3HBDawR0kMqM+Ixo1GlgJ8TIMU
HZBPWYe3qCuOFpvDBC+Sz/pmlQDSnGZ/4a7FrkAhHyEAsDDqAx8A3ZhCOCAC0GgmONReZ5kAEEE8
IgLQGCkqEY96WRlp+qCzUYzS0IDupI5IHjDeHFk7QHLRSUsfdxEL6YDkAfdClCYABo/pAPHAcAQL
Ww0ZsdWQQ6dpK8HT8Eg2owcBm+fT+8efBhmTCbcc96Thc5haNndUJrHrvLWoYXRCMT3aynHtmh0G
46O+3zYK4wtd561Dbb+T2DbcwZ7dCXc9d63n+PQdZ7Zg1HDdK9TxPAm94j1s043OyzPfkjS60Gl8
TsDjP4C47k2vtWkwukfUhwPUQ7Ulah9Hy8bhHuXOyWoPe8U7feADiAOmx/vBBBAHXZLHR23irbju
0ey9FeTn8Kp3RP5TnFoNqEdW02bBajg8exd3s//fS8BIq4e/nb/98dfXAi1/cR/oz7dzQf2Fzrf/
qe9iNP8iZ0GmDWlegqWh6WZ7XtCcECrcr/BNrH6BZ4R2bfDeLV7QCaFtQ/cJtAs6ILRulPeR3nXi
GsFDN3Fym1LgZi+e86/nx140BjwlmL5rAluQY8HDkiyGFsjr3ysRPCjRZ0zgKpIsH0iAerbC4AKG
5ekMLfQa97plQGZ5Hd9K48Oq54avKUS4B+ZP69Px3M+AAC0RAKsqGc/WOqYEgBlsSw37EQeBBPny
ZgQPxnd9ZS1ybqcTAAQYd4CDQP/9kQUIKgQaWmKQ1QFQl8pYc2AGQIdoVaXxIoIVy403B3QIVBg0
1kofgLVeDS3vxisx+IDxkgwB+0KWDCCuNWyMPWBEAAFGH1hCAbA/S7PHvSNMUAcmABRIuyPyA/gj
+gMYQGpSbW4VCQMRA/hy4eQDwIbYeICBQH+1FxkI2BfZ5iULGmwgfHVOKjvAfFosnxc+oMCI6gvL
8hnac2Js/mDrFaPDAR/Gg/FFBsC2H8aL4oNF/Yy30g5qsQuhJPphSTrjRDxaelFJs/dw9sEfMH5A
ffmijlR6yIE3B9Y+IECnA9Yf7B6OrSxKJgAcML6+MF2/QP9NPMBBgPf+gPEFeJskBgDubytiDq0X
GHxbn3voPiPXyR0xHugEpA9YL4B3+z4V9ANSeq9XbE21Mr6WP6C5glzr+AbBh0m+y/B2EEI5v3/0
Z3Qr5UB7zdZ9Wz6Aq995u0niHn4AJdV6G7gkdPKFhD6wmUPefQCiM5fTS1joEQs3HPAj+kEeuzcZ
KpqFJ936BaKqccgBcM6pXwgSDbj4nTfxgCIhTbS+m8NADgGhY49WQx5GNAFzRApIkTVbwY+wAGmS
1dIHwHm7TsJLSwGnyHvFvmmgXECKoMOBLyBRan2EBKRKphmEEhb2oy8gXdBGWtKS6T/CBFSf1uvU
l7M0uy8gDjglrUaoye6IIiLqVToyf6SI+ohRhNtnPCBDZFS17SUw3BhQlWSvo8QFXJvWW9kmIS10
5ogUEAFGSxsLrivrTZIMElqHNh2xycikms2zl+EEIAnjup4bNxAqIhQifPHk1b7IdHMCI3X2UH2k
yQNeKtRvyr/N4Hv38OP225fny8u5+6p4CZbaTdLOTEX5Bi6DC7wo3qHFfnDdySYK9TiXRlxrQbKe
I/5hTUjpOeJRjVLHt2BewAmA3a5CHiXJPHx7vn45Pff0GPxJDekxsGbbmkJkZ9/c7dCIFWancb14
YLnTpT3QoNzbikbCjVy1w1U10NgBj20hOii01OzD5dvL9e3cpbHO/wVkWGuay787aUX+mFPBiUuQ
XsAgId3QxHDfFTcuaP3wfv18e9zMRsPHSutC2de+WtAZgNlnags4AfDmrY/9/0jqwr2jsyjp04k9
uEwOppqPb9Nd015Xygf4e/LygfkAiT+Q0AdC+8DO1cEZ4OX38/xgYaUg7D6Q8RSWZBh+Col1GCsT
CQU7R6N8wOEPqA0PwoiJSIyzswaYyAe7KwVOoiBhMc6+EuABWwpvnsKGgrT7QMBT0OkAEx36gJE+
wN84VCZaSZEcpkBFiQKNeHBbC+YABXAKSVIkK1AgGhSNKLh9IEgfiHg5G9VPYWiRItKDjT1II4OC
NNG6A4oE9cAcYKJFTDyynDWcgz7yBSQGLYnBCJoUD+wsSJe1PWAQoFHMR3gAt5YmyP0V+PoFtDVY
cRJG2B7TkUkoRAJZUGG4HqJgmbOkCgmvSNNUYX8ZsZg1JAflDzAB6ZIhH9gdFRebAOUYDmgz+oDW
B4wKdDL0AaPikCY1HuzPuwsToWU2B6SA7KJxkpNhBT0QVTlhL8VsxNgdcj31vr2UoqcNuGD1Ral5
sELZGV663tQa5FaVocHVPmlfvU8dLmAwaRWlSQOyFcqJ9RCq99kQTW6G5Hebe60f/nB+vPw4Pf/x
/fH02h0My3/lN99SrGZh7lDH1g948AHbPuDZDxjwAdV/IA4/EMEHfD+FPPxABh+IRyhI4AOho6CP
X68f0PwHlgViRtco6wccoMAcEWMAH3DtA7s8dXMfH/6vz9PLx+Xr5fzWq1hEB40S0jDk8VFfL2P5
AH7/YZTtP2B3HwjwCceS3wMosPgJzZIcOniCQuaAXgEtVmzwDIXSgL5gIvcQZfmCh+94DH2/179E
WT6An6IYaw/wMaIpmAMUaPCay9C3RGNdsFgXtPgB/BxrSXYvD/FMV7Nq+YCBzxiXTFWgCfgd4bKn
DV60EQogD5xEQYAvKZcnG2A5ODwF/kkgXU9IDFpJcsSvUY0iq8FPT/NGXIQUGO45KWECosCKJsHx
l4Z1NXhJE7xg2MIR44xIUCIJDr6PM/RVbl/6higj2l9C5F7GUjlAw6gOmCVEAn0ZzG8wSJfCAW1G
XFSbV4JxpAlIjj5wj3yJGJA2ByfZBMtHD+rukCRN8MIWGcT9xQpmxQTusS5dk2hF0feekdum0STo
g+U81Gf8Tt0oc8DVgDtUPGKYkDo68QsebxA+SyvKCbrAv3omJKBF7f2BDyA50JfH7D6N/C3tDzg7
SAzGHtBmNAVrDngKaAohSE4rfn5vlDsgBeRz+tjv80NfRSMS3CHLhrhg8gG7hJaDcUfMEjJsTh1Z
00gXnDlyBkKiPEIC2qNoIYDxBmGFBZUP+BpoCkFcUB5TQGtpJE6QBu0vpBAI0Ge0ItymosVQn5Ec
jD7g/iMKaE0NdlEjw+ZTz4Q00kVEgdo4XMNNFu7zKkselxOsAi0M4jmfDS7qsD9B0E+IN7Ch3deQ
HWohIDz87v39/PZxub70MZ8gFIXUni0fuuB5i1k+kAxXFnL5QEBVCjUtIrrLSSp4g8pS6hC5GouE
ARYwIIAkoGV8D8ZvNR73YeuFgWD8qCUBBFRFVWe2eCwVIKA/c0VcKR5oUFLSBwyqiKqD4wpsUgLA
DOKRGQANilHSAAc1OIl4i8p86hgkCcISvtq3NDaTugZ4C95jDTIHVgCgP4QDJgTQH600fwfpT06y
IBZVptXR9/ih/AE+K2n+BprgoCT+B2hB8hH9Afzz7oD+gkxIHdMBBoAJBH0AjyaQDyxglAeqDzAA
GIBoDowPFgAtzDxWYFjoV/sjBgzwP4UDeLQDeAnvIZ4vDU0VEDHQHrAAGnFAHzCBwAQEf2AGYA+M
7oAJQBwk4+9e+i30Aw0K5oAJB+PHIyYQmZCQJC/SQQamvHMiqH9807/z24/eNZbq02uX4aS86Fli
pfLivm4PjI9cewV56kWzsjdrlKfaPPz+++nt9Phxfvv98+n9fZjWYMTMztiSbzZtK9cvBCErsWXf
jFzw+QuIhtSS2UaxL22EFNvbF0yfAZT3XxDyEkPLZisdduyQBpTimlCecP2CkN8ZUML4+gU4iybN
0eWEhvUdqj7YIzSg1MRAkurS3hpqI6St32jI/SwGX7CYkzGIsvB4FsmLX3CYhqRFThqs1dGANxDr
LCANjQ/7Qgbr2oTpgXqXGjeQBdSoJM5CSFEM6B3E+gVEQ0iiNIOgD/mINKFOapCAvn4B0RCV+AUr
fOGQVkM+EBrsWBZW0OooctIL+wWxcoPg8vwFuF/saeg2V7vZXDfbqhWKtK2Haj8+FMI+2DUpUokf
gIWiVp/UM1y2Qjbp6tOBD8BCg+vjQPABXC11Pdl4JlnPCqXi1tgKZoIHH7BHmAC4mFFmrBF6c1cm
GFA0yeBmvZUEd0QOgItRFgOs27SG2PAHwBRiPKRKYDmkdEQTkDbrQySAOZhDHwAkJCdqAi4fuMZK
MQ0ZfEAdISEBLuQj6wEwIR5jAtDGFA4JAlj3JFt3WEd6DdmBScBSzuvbaT8OmsIe2vUD4ch6QBSo
Q1xUgIv7FUX34Pzwu4/rj9GpNkt14pSHSpalEqsKL9UsFblUmzpzw/HRiwh9gH70lqPp5/Kkp/Nu
/MNfri/nH68fvxXn5m+nl2/nrYszx1c8qHVh3a7WRacCc4jEgE8YDUrOr59AZeeV39WNH3zBooIh
NvWfYOaByn6YeIgViJuG1O6fHiWF4SfQF5QDlUsaEah7gQmHuGkRN80RbnJuX/mE3jQiMGMq0ETs
oYkYNBFjQCuGRgVSb6sP8QIpp05HhGqRctrYs3NMBfqCikcEYtA6Nb5fIYxmoRYR9UGBxAqNJqJj
36RiLFOkWCocIgJphSZGT7OfcKhIkc1HRArrHKl8ZIUgeSh1xGJpxE0djthNjZapPrRMYe8RrY5Q
YZHJsrZXCz/8BFroKh1aY0ikOh+aB1qm1h9ZIBptQ9odMXpIpOrQFmKQPIw9tJEhbppDC8QgxTKH
FEsjgehD/g1ihbJHuOlgcx51iBVIvU3qjd7Y00NmU+ndAqFebSrnhd6LTSB5pLzmzAo+B031HAY+
EOOBD4Bnxd4eIQA8K46+f4+qdx8w8FmyI+9ZI0cAeJHr27vo0SaA2nYVfIr9+HnIQEBA0t0HtrqJ
uq5VfGoT2BX9WgkAIkxNhKNc6SQ9SbYJvqqeVQAQEK3EQgdFmHoVGKiQZY1U+UAIB2agAQuCg2/j
EwiHVCU00irCb/NtPjIBIIJgj8gQvIyPGyXYy9BDDmR3ZAaABWFTHGD8ATCDkCQZOGgJU9g9rN8T
AHTIEw4MgjYJ5dHVCagjLATrKGhYX2FWAvCBqA/YQgOmEA9NAahRMNIHHFTD5CUhOlggImtJiQxU
AieuQ1zlw8Yj6xgwIJoD+zkwpT4c8QfAB2KQ/AHL+r1VhOrAOgQi9OmACoEiI9lIi8DD3Sw3FdgX
51oZgHTYHNABYEm9P6CDYALWH2Ag0ICUD6gQcGn9oTUAJBizJEEDjYhrRmD0mjOhdMb6gSy5hAZy
0PkDHNSAhUFkoYFryIlOMS4VZMOBjUQDEYZ8wA6jvdCrI1sZsOSRbOeZO9eAGbh0YAZAhC5IxwID
V7FTB8YHO5E7spGA+fu9BOlp2T784fL+n58vj/tHa1aq4mQ89Nbh/Wn9AF6fVqpDZbB6W6kQlsHO
MrxCruvLHPgAMDDGHiEAzMC6vpDWkIOolhhe3zAXoRKgDnwALG+jjxAA1pdJR1gINgkT4YHHSmdG
c0QHAAfNEQ6iQ7PVRzgAdKC3kNuAM8wmqQTY3Xmnu2ZWLYlumJyuptp++HGcxW+Lpk/Ye+EdgYV5
+JUK/AmLn6hNn3ASFf0TkV1cXU31FYVPKJEXXvoEfipWeYGf+9kjn8BvXm08JlTwuMI5+Oh0ZSd4
H+L6l9O7mPbyCUSFFqlwEhUyL5xERegVPI8kgp/w2f0bUrKULV23FhcnngyDy5tWS52OWFyTtn7A
gx4/FlfKrh/o++/13qPF9crrBwLotGRxTdraJmfTgm84BY0oMKCLocWVtusHUKsni4u+1w9k0HLL
ym2GXLZ9H8PuxkZTrdJS3a4l/3JcCUPDezTaqmRcU0WLVSyWTOC1Ms1ofIPwqESRlkp7LpmbCO4R
PIncQ8Qn309+xDyLJh9AgScNE4JolQo0+4zgpq+tpPdwpDqpqc7+aZgWKzAuCdhI9RDzUhAnj0ZP
ToRHRLwCtVc0zAagXX5oJaHFCISH/3G9Pp9PL0uh5kA63dx+lpsaRu05GzfhjYjnmwLO4+NWs3Hb
yy1ux8ftNSPtdTukH++0kTam7LephrcIb+T5I/ppM77euW54OH6W8VD+ZI/rXyM1+SP+qU2nXdXh
+brlFRy5/bExHxKvBOYLxOsAlA+TTjrLllv7DRSNaqwsMkg16xw2rqElN+iBudiTueR7/ZbhxTcZ
JqfYuikz1gEseyydsQZgI3domLEWYBP3JjzMXnr98faZ2bS2XtyENZYncUoZD5E0DOzd7xnrADb2
zf3iFqsB1nGNAWesBdh9ezwChhLRmqvgUpBAHtpw/e9qJ1CA3JdsWCWpiag06LxQjVDgl6OWffTI
twJteGTBaUt6x+DRDqI81w214aER3uyAaoBH5kS5Hf2LJG6G8O3t9NsqDTdHivigXnJsTG4BRwD2
XFjbwRhVAVs2oruAAxjZSWR7ALZc4sUCzgAcudvmdc4KoBOXcbGgDQArid0OgI3E7gTAYUT2hJ0d
4Ppjecg8aeDDasQf3l+fL6Sr5fJbJY46nusU/nDzfcHkwW+Si9sX2AmXL2jyhT5pffnC9BMLXzqn
8gSYe9bXLF9wGwJGU3BwCvOdBaBhMhosPGzgdj8FKINZ6tbvXg60CbDucpVBlpmIpWiTJMUSvAU0
mI0Y7ICJGuiBb/A+XbTBI5CBlkcHOuQJA/uOY90yAEqgiRD7a+FOBIAGm2U1sFCIxst6DCS4tCHm
4VgDvD5kS8BKmN0miQWAiSbINDgsBjILzwsSqLL1h5QJfEFr6QsG4p2XlFELyqh9Lwk7NstAGefd
3/pdC71OlmAWxsg2ycFFaY1kFRzUR28lowT8vsrHDRf02LajRa0O7Q5Im6JMg8O2PUs7XPkC4KRJ
kiSMwEkbez6EkSyRdRI9HQe56EVdKnJA1k12deAM3DE5ohUVe9sWRxYerYcDjhKCh0O+HnKV9CFH
Bzm8QVZl7G8aLS1IwTAmyV/FZtFlWRE93qCsvBgFVTSyKmJVMvaQLiA+7JWxnZZKw77tEen69tEf
kNBV53Ty84tLk8Yb8dQL9x7BU4MPVEXDPbB8wW0ICAMCLA9fjiZpf4qe4Wx1szqB2Ibvc6YXPNCU
+gXVs8CPvwBoWPQ9jbVVwzVfvxBkMTgsBiPTYPAXmipsHoM1GgQ+EFluwhKrKiBREjb25cgbPABN
so3+vgFLRz/ggM2yFDT+QuPhyOpo6ERUHhJ9Hlgd1Fm6MtFJMjDCHBbXPO3jQ/MXPLZIQVqRkQm3
VDFqiYVg86gTcL0Y7YiFaAJWYkBkDvp1Au6ABJE98pIWRiZQUIc3vUHd889iBTKSQQaedOW/7SVo
2n2GqzFGmH+e/DAevBBgd7vm58v798vXzcZp+VBCGSSyDyUaHARR6Vul/u6gwUHgmb693gSeZzhm
UeDj7evwIH4cnTx5MDr/aneBw5fjKSouiX7B4/B3cBLeYnyWpw8uO/hHQkR4YPr8E5sFD18qJvpQ
b7DCrfBIKZE3zyMDZflgch0+SaoP32wn/qkokR7S/SRJD183BbvTHmJf8t4p3xmXDG1YbdtEk+76
1lHzFzj7UOBWsS2MZ7jQgDh7rhvdOrxBw7MdX2c4bntrFdv2auWf0EiOJr4NKeB0dCaA7QLX+If6
duXIZR3OeCswQIn8twjOti5b4RrB2V61bfaoG2JOwuw5+1iH12wTwDY86kJIcy6HzJPWnhN0B/cP
t3zb6Kb9kP1GwAudgnMW8JxrMg+/193O/zLCfTwpBrCPzcvX+eQdODnGzcTvr4U/rj99vF1evnUW
1gh1Jq0zXZ3KjQtghDKX1rElpp2UfFfglqsKPMPdPRjcszUyV7QHaLao8opGlGdh4u4+gLGtQDks
7mmdE+AGyzyIfAODeyWi0dhJ4JvFpEeR7RGQTviWdh5L3C2p18/3791yilwqWPl8aJzZZFTO2ICI
i1CboyRUHwW4h/Dg5NGRUmS0mMrUwWIKARmhKNkw7/tat34/OFiLUQkzd9CEBSPDkc5Yme9gdJ8E
OLa/PiD7WziHdMZzNbDb1BFci4MD8x2gAS5osHWEJI6NhBa5stWupoxv7Mjj9eX94+3z8eP61gdX
2LzOYus0WlNa3Nn3ek2I9Dsi//N6eemo82DVTg5KsIrLO53hOPM/0Mz/vQg9jJPPX/A9BXn7BVaM
dQKaS1xd4QHBnQB3eP4m9nmrZoDXCO8F/oN30fMXNJf5u35BkIBxAg1OwAcBz+6ZVQRenIAWCCDP
IPb3PR5YoUqAldcA1OAkqiAUYD4iQPgFaQLg3nKeQhPhIAzmgSWuHDTc+6WVAEGL9QEZIAq2L7h2
eC+wMAlC0JIQ6Buw4RckfNxxYH/UBJFUWrCrBYLn4dNuq3g7/3x+e+9TkBMfiimHacc2qFzRHqBN
3+M77dERoJ04dgBoy7XHXtH8Kw9r2b6aMxqWa7AmCaTDOgvWWu6l0Qx3GB7k0YHMrRdGNxhuBNbB
rs7Waq66wyo3hGbfd61oB3RGcwUZGuPQ4E5WGgA3WRCbwVJXXKGSpjSI+LibO/WO1f5iYP+eQcG8
1ZLUttzP2vH1h4KPAcoX6HuxwQWMgpnw9Qta+gJn1Uq+7hzdt3Z8Q43rqFQm5N2Tt80XjMDGZDs2
DmjgjGOdgpMIwBPInnvv1+kBkMGS+GTHxyQFE9SqFJVMg4ez4F88rmKAFGSRAqyHmYwfGB44PAOi
BoNsBQWfrlU5OHk1acgFf0yZAR+S7vnAfAHQkJQ8C4dtgqjRIA2u0nBsTQBpLtmIdrj9CJWm6iw2
sggjjQa2NTfrPEqjU/zuW82KOrCgAhjeHWIh+EKwB5YkWtJBFgFmYWqLepSRqoDzVilIsip7bBjJ
FwYpZAo4EnUG4oIGJ6MqBX/oC2h7iOJyhPtjPmYYgRyDlufgsBzETZY7gtQp5EMWCdlVUZk5b7iu
ZiNt0Xj4rEVjJMggGdkeYKMcwiEmotXgpNWkBYsQxPXIHcGrGLQohnu8GFKSFTECAg5sbBa77GZY
4mH+ghtF3h9PfdKRk44/OnG1IGY4PnIbhQ6Ojr+irGhyeNqbG8ffiFf0JtCxG5tdJXXmEZ0bHX+1
WwfX6Njo+GvlirYC1x2KDxkvUA5LMM49yIDMcJBGO4F2HKjQWdQYdNg3KMji+EyEit5UjhwxDpHu
uRomEzzsb9Svr91iDEKG7KYZxGY5BCm9l6/jvw4OoqKkjcAgfSoIqckZphYHIS86OwEtJX+TnkiD
qHyQ04+SQumhQcpNTklgPU4tTlEYHWYWZ76kyKo2iHYnwGFSeDZsRZKKxmm9KQuSx0nJyaKc7iDk
JOfA1XVvgwOtpb1f9g5KkDKSU5A5hxivhsWoyS2IkBCtgMrC0EGFI7nLtWh8HGWjz3O3g3S/P18f
T8/nQdKfFRMjaUHIfWKkBWlUNa9So7xUCxLI6uiRKyW6wlFKNi2GyRCPcnJJKc8pUu3UHg5Z51FC
uRVzapNFObUWpDxWOMwotiDvsEpOCXAhmzxtMnIDKZV171vhopuBfHg+v3z7oPlzHqYm1kdX4NWe
vzfSm6uQ+aeXCxy8GIvkBWue5DuAI+IT/2TQw2TYCifv/bYlKDzM5K1wL8DZk1Wdu969lmuCvZmu
f//86ESJXzTfuLdEf6ar2ynX1ruOIPyQdsIv1a9v/zOlGbu4xQOLWsb3bfzbrILa4w3Exzb+9O9m
T7+G9Os2fpz+fUg/4J9b8VN0Pvo93iL657Ve6L/N36s9/VB+S+nuaXw90TDkH6A/iPNn3bCCTyt+
WtdRU1ujiTJquTCKAkWjtFityObM16fRMM+qjg6qNWm5ypCyAlyYu+MrOGi5No8yfGUcLRY4sjnJ
nAflJ5TaEb/qgGn7zcTCl/Mv22qNSwVYIfuFr9i4fEB4aAs8PyOIqH4APKI1gorUDzhxCvgDLgsU
SM4z38WYUoD8X7VrxtMkfePfKt7JsehEjAt1VcclWv4pVPmC+JAugMdE7QvI743AbZ5nYYUvZN59
a1+AfIgiDcKjshj6L9jhF5ADHz3v/8+cFJzoaARZGD6OPDuyStAHc2+FWaQjsoAnES3SIPHBHdFq
OAvF1uZ3pOtLPRsIJTes5StOWEhLhZuR71/R+6R6ShpfFzqQktnD/RPUsg6kzPeK1Vss2jkDX9sP
1N8OpEQ4TzOq6Kd2W24nCIOKx1jPn8AKFpwhbIRYseiL3tW76IdGutcOTzu7VrBoXLc/+ixNavTD
H9/e5mcb5d9pKySNT8y+vTmz01rf9tLVOFzg29umAt/U8png96gGy/wBi8bHz0h8e++HPmCFD5g2
hd55Xj4g8UC3D/Tlv24fMFQcBs5nErYjp+xtV6cZbzA+cnXCFrzF+LSr6tMmo+lktHDtZJRju37p
+yP4dmG3bQsz4y3GW7Z92ow3GG+4RNEb3lFWOL58fzmWRM3lvxUw4kTBhwDxBg5OczB3GuVg/f2K
j9yl+oRH3RIcnxhShnaYaRZO2uKR2QStSrQDUGG+FkADYjWeLZt7sIgY6Ufico0XPiNWmV3yzKLn
5uGvX/7z/PixbC+GmDOzWjPQADSzt2wz3MGTr+7vR4lpnuEeHtm0E0YPGJ64+jttdHDi1OyJ06yG
GIyukgDH7XNzEOD4rkpr7oqxjQ46x/IXnGbdxMD9qGK7Jzc4uCVUm+7PYcB5oHUqy2qD5C7NHQcq
VBQE5/GSYTtfNzi4IdVB1jrQcThnWesQ65RAPL5bVloQHO42nL1AfMCcl+aO76aVFYg3sMWJcvKK
QzpvZOKR0u4blSxbCDmQGNzlyFi275TBvYrM9iHYBmkBcvj+rQJv867736BFlUHH6/plNm3KoJBA
wW7fZ6UtFnBx0IS5CUOTCawuMEhoVGxaqVldcJAZqzKXndyGzwCuhdFhPqrLrNvc4BHA2fRwwjuQ
kkvfHnGT92D4KE+e6TxUhzcC+RoPbwTq8fsC1bukw8lrpDn+APMB9VZmXgKjK86RN0LLrjo60du+
52MbHRwjyKOzzbs7MneQya2kyeMDX8oy7wA8sw+tGjwAeBIEjx/sqcglkRsh5lDnnmTWIckptsUf
PsGlzWL3bRtyxGQ7VOBpuTzZVNupwPu428umn17Pbx+//en9jy+fP85vpy/PdIPDpY3Kvm8U7zYU
OOirZoKARW3VTORPCHOBHB5re1fJbLHY1zHNyyxhKb+Fg7ZqprmYmwyeZc5o4MSlzM5gcKIyjj/L
4jpOFb53D4lq+b1qfT+9//WXl3+fFaxTKs8Jp5g7b3jPp2ATwLJ1FGYso1EVHCQwyjQ3vnldm2KK
Cxy4ij7yruIyNvAWvRbgEWCtMO0MsL57DLJZhF6K77rMJeebErTaKdXPp+fP81+/dtrkQG/0siFo
4EjgtxMVrvj9pMCBF6EzvxPi5y4VbnkvAr99qHDgPBc4eCytk0A5cNqN4h7jzVgkrNj7XWY3ZSAq
Y3h3Hz+yqWMfgIO3Z9oJ7MbP03UQuIZcfaN5t+NALbYlX2FQps/wwfKKTFwROAO6dBdkGBXImyk2
+8W/qx9r5rA4sjDkcL9fQQZvCC5yj9VmMLCMLqBdzMAdcFvPZzcu2AFds8gleVzvJgywBu0EBu4i
gwpGnR4I6ueg+sEakUu2zliPwl6PLu//vvy82UoCN8UyTiKavvc4A6uIBZz7MsYDsAJgLYycAVYB
1k7YBGacpRkDbFvdk6tu1RYbADbuxt1bM6QRdlT3c0bbkWUZPlWpvw0JVVyVzhkLBJMsEozFGpFc
x6HNNmmxVA1XFXUZGInVC1SjBaT7MrhuNzAQ6V4V16CmffiXz5fHj8u1ZV3WF0b8e1wTWPtshdew
JuiRmZyQ8wOTn+rPMMxTKqBqdted4BY4tgVuNmWyA4VL5Zht6BmaurG1VFVYR840zKTzjQfK6Eqe
OYAbtrDvTDyuKqwSGF2qaGwjt+bbzAHcZDg2LplrncA2i0nfVLPfsQ2rjFZA3+BVQIV7WeYJMI4t
zN5kDkZXhO92NHdcC1oHzs1towO4ioh1FpwN6twjGF0qSW8R40SVyQLXsbZrjeBWJN3IGodGd9Ja
QzP3AukGGmerZW0HMzcQLnbN0FkeHSwW0wzFpppp4zsa3QpKg0vO68T5CVZ4pliJV4LgcMcQ42TW
odHNbntY3QNH3AMnZvAk22Lrm4dNdjoVgVwAy6YOWSEaUIO9bP6LhcVC6tiWS+GwsDZNBQ+TV2a6
m59HfPfT6+vzbx1fJ+8XFlNRoQ8KdHwtHj8MtmbDxRTa6KAWi3JcpkKDgxI4io0U2/VlPYgtRLaC
zgyP0G3ObLHgxjoQYchKGN2iua8nfXbuEc49Z2F0HK0OSeY8UJvo5LkDzscgqI3lPAj6GIiHB3jm
yVogPiHiV4d7fzdihXIQ9DXVoHxRgwPioxUEF6DWZSvLHYURkxbWjIfUJyvrDQhEJiUrPTrsimsG
lZ0yAthzHj8thAGXO5JblLUGjB4PjI52CWm9eghPTh4dGVoJnpClXA9LrMpGpHNWGdlagJpdynMl
5hadQwW/bF+If6+wCoA1F/Fv80ZW0gtwD4WWJDMXoaGx5LnLJreg4ROAa0FngMS1ZGXwQ5uohKE9
3NhT5BogNDjYG1OSRwd2JnnZpQIFFdUB1qHN7cDuAtyKFNh7G8vf/FVfPTLdu225LRr46rsbPAsv
4WrkBESNwGVYxVo+VIeuDis4CAODw7/SAlaIFimu3ZxFF48V6/jTL7jEq9j9JdX24AcyyO2wIuA8
sBvpw+Pp+bnTBQdOAKWRzFLxedCIZsYH2NJqKec/aMUz4yNuh6ScgA/czjjjSUOrbdx8mX8C9Ccj
zJ89v83jR5l+xP8chPHh5LMA9lh4KQp43EprKc4LlSegyffKt1mXDvizM950zN/jrUB/4PrRWZgc
M/dgaqpXwkl+MLpHo2eZe4j67LhuclaoejyPb4XZW6w9MXKdzBo+I+2zsvYi+pOX6Ufal5TM/4j4
n+XVA/mvZdODugkq35m+ofYj+pPm2rhZoYjxTL8T8Br2wTOC9DwePW36CI6kh7ifLdcDzsL0sJl6
Jese+sBa6w0pP1Q+ojyJMZ3I+CSivPugqwOhv1n5ksA+Kyi/lxcfoj9HefEg462sjEctBBXpgbi9
U1nVD2mQMoLj4rHjkJKggQHunUvDFd5x8cLeve+huPVt0b2EARcq0kNuGyAYDat3SfurT22J52yF
q/s1HjQ6kEgpC2tYYzlSpB6MhrV8loiFL1nysPFzBd7rwWGCcoN/l1m/HQEzcM/j9QJkdKQEbzor
dpTDtMzKkAkY+XWdY194WeF5fs0X9tzbvjY6yjf2bMuYhgd58S4LcNxmxEpwnNFv2LoiVnjiXuGx
z8oPI94B6r3nUusJHozvg4wH2fleyaID1DsP4OiFm/eRe1LZBgYvAxz7rq9JDaTXm81DZD3SGaDx
1ggLDjemcUpWWcB1E7j6Lo13aHQJjl/QGLZbmxWqcdTRm7HYOd6rwqO2e5Kts1DyTqJe4+Gtk3kP
TK1zsq1Do0dZ78DodlMYaLRqgLGwWjaV6EWOtbLag8kbJwyPG1pZyVJq/ATdeq6tV8ODXc4qgXr8
kNkZ2VAj6r2Tlw2SnTfsmyLxyj1YrtWSlcu+ebaltJghEjyGgkukEDEUXNYGB5LJcWpD4O/8pEuz
oADBiL25k83k+81eaH74w+njvNT6yiSdPU/5kgrlbhlFyt+Uf5q+VXSEaGO599wFrRNEW7bQV0Vn
jPYYbTDladRTpoLvU2EpeMJaf0mI/C6FzAbH/xmvYewtafbaoeHh+Jv4Udricew2acNFztv4CE9v
DsKIfiuMbwX+WYF/LfyzlAglQtY7KX87f/wf18+3907MOgmJs55kmW/ybgneAjyb6k3wBuDZk/GC
N5h+L+E1Ht8ewKP5uwN4RD+bvDvhjR2I+e//8fufzo/Xl6de1kbKsfZGI1kZ6TGH3+Yppx1emGvm
XiQueCxrYxCvjZTb7409QD+av5LweK3QN0R9xbIJH7aiXt4ITn+9yWKov483ek9aV5YUyJ7dQfCJ
vGaTEBvcArjnPJQZbvDoQYDDJEKv2dTXxjpEfOZ8pAZHoxN3knToaNu7w86Bgs6BxY4J7XsR9m6N
wa6FTXBsFbBjYpiEjGIM3cCYre7fT+23pC1n86jT9iZXer3tVeACqmR8YEZUlvDYDCrPhajJ+GjL
UtxTRDI+4J+KEv3YDA/eMlIpb4V826neP94+Hz/mkvHrQELrsZBa57LR1ir0DgvJcaXzs/CiqMLZ
wv1ZeH5X4ZZrfJaFt4MV3loObKLlWXiGVuGpg+9HN5j4sOM8kbDdifiddUqsdC8Qg+UiHgseRlxi
YAM2Cx5ea8TARmwI/Wh83Rcd1KPx0fzZaBsZH9FvJLzF9O8jTv1e5fF+oZnnU2V0O9aUf7u8fH6c
N5qC3NdQGp2T3iH9hfKCt6hj2ZJNBPAa4z3X9WvBw6ZjSzbQoOkYGR/hSdOyvU2wyP2t+E3bMT/C
A/4nteu/Qu2+Gezu/3Z9Ie0u518TLGdsxmfTo4/ggemMade6ZI8HtjM2w7/pRrrgsfGMucfHHV6w
3Zuuk36ER1vHpmeQHuGR8Vd92xjbidntTyn/cfkxOp84XPPcqOBB/A3mVlb4pv5z2sKxo0taExdP
cjc6Dj0Gy9W+bnBEvOPqQba5I9ZpLr+jwdERIbNdoesZQWGbH+AZweCwq2Nf61Y05rvNYL/RcRwu
+QNpgDj/Hj69OvqGbeAjR+H46pJGh+cJD0+QLll0ANVROLw7+vhy4H5G4QDs+MdgZHxAf8zo/D2P
j/hn9gXFOy3B4XXnwfq4nWLxCdo45plJCfOEgY5NJvC/ri/nv379evNw+rBckDwwn5AHaoLkgXr2
upfggQfq2av6BY89cA89WBNED1hJ42MP2Htp/vgE4Pe1p/t4C95IXOr2oX4nuPEOR0ycAbqmwzBi
sjFmooC317obYyYyyHkkYC0qKJ+JsuCxgjkr4fECc5ui+GZEP5q/luaPFdyFoYItjnccH5J2kTEb
pYFI76vi+vWRMRvFs2SGZ8koMToaJCgbJUFHLY2PFT0qaXys6NHCWEAUYwFpl29GBZ2Z0/DukHT7
TezkR624lnsLHh5yovIoPDWPrwE+oejYPD6gX7VD3qYF9oI3ePyIDnkz/Wj+ucfbEf1ofNfH57YR
fov9E9rcOu3i5J7zYrehclSl+zbBMGdylXb3U2nWjReISnFN8Nlul27zNyULfgfXCG5Js3s/Nbzf
wVkZF3g6MDqA+zb6TcO8Hc0dwHOD39jgzQjOc37eMujovQeKo2pGg9PlDY09Ep2AT5EZ97XTLLT+
dHnNNGelTxlbA1ON7FfB6/lVqh+eAu+R/ZrHD/L4kP7cjx8H40O8b/jA0G8RPsr0G8Q/tRu/N0D4
CO8CPCA5jPY4AGDx9aZX6HiVBpvkv12eny/vo5wHmJ9Rih0k0g98H44zMEGlfoBtD08ogB+wXEfy
5QO4pblNnmurTiiAH9j0hk8jHsAPsA3uyQegFNKuO31/y4AVbtu3ZXunjRXODe/TF+LVKG49uKC4
/aJwQbFcxYwvGCY8vqAInmtwTsZHeN0H+Pfj4wuK5SrOD48P8/gIr9AFxzx/hHfS/PEFRQjDJu8z
3nP5NYPYtZdOCgmeNLx0UEsaHTS8eE5KwujCMakFbAaHBy+dEmNApzQvHhI3T6nyYHQE97v7Xrqa
9dh3Hi5o8W6Wfway4IXAAY7siXezfqMmaTQ+CnzEjlebSwoj3o17g+7WjXi3Tx/dxeH4QmRx3win
94Ox3TdqFJlbznh7c8Ak2ol5lQ7mJYpplc6jfBwxq9KxNbLzgYLHy2MhJqlRzMl0FuWUiimRLgjE
41Qut89opSIe+pL7aEuSkhFVRrchNomZmArd5tgkZTPyFVjJ+Cidsd2mDFxYm6RcTpUOjI/yIbWE
x6moap8M2vt/+LqTlg3b+X+OyWb6l8/n5//3fOpz1pwWD4YJHoydlk/Wuv9A3H3ACkdjK1FghbOp
ax8YXMxr+XCrJAqE033K/el2yAPIRNM+MMzAxbcyfPGFejzG8Ref4MMii2+4XQY5tM7st60p9W6Q
fmEkdzvB44Yz0nEhuZ27vcHj41Iix42+biahHxx3UkD5WM5Ix5WkpfkL+VARHfeckY5ryfTHpT6f
yoaBXdrfCQUxfpFbAGTa693G+Abx8J9tH37wuw8I8YtsUADEBjl+kdsHps5OefQByAN1gAIUv1iM
8vSB3DU5I0yEH9jHcOiyVgNhj3cgJb58U56rOrZ8QHh6ptjCOcsHhLd7Cr59c0p8fEhrBu7zl50S
X9+pgF7vOSU//zMHeACZuK/91e8C2GdxEQVJ95vAYAcwwu3Q7PmXC5ablMLmdCpczzhyv2KnG54t
Gl8ttZupKeqzHxve7cwHrul/pnBAHKHB2BbdDBnpZqddS01WJZsBGlBO7sSmf/pXncZz0Qsu/u3F
pGcDY3pejGlukqb9Di8kPSsY0/PSJhstcjKMF2OiqaffjsZH9GuUdG28GBPdJ30TgUcuJsnk1EYx
FJHRaT5KwQCvUSgiisfxxJXtmuE4luAViqNEKY7iDdfEpxGPIhlRHh1w3lu2g2SNVeGMAONHzdIX
/8IN3IP9a28rPj2zFj0ds+LTMb5DFcEDEVkn4bGG2CDhsYrYBMNN4tNDm7l2dgSP6I8oXqXz2PwP
3vVn0WONEfnMOsv3nqq/OE27Dwhee/To4lRn+dJQI69dZ9Htj0H6gHD0iVn6gHD0ieN7z+UDo7vH
oduvlSivCK+ZtZI1Ru1o3XxAmuxGXmFEAfpASFDllCjwkNExTStZ4EaiQNDZ6HYfoIbcDLMbBq/h
jBTTVR5l2FsjxpSVhMcxbQXLA1gjvVDYtsYKo/ER/e7A/BH/tES/cCcgvVDAbwwceWPgBi8U8OlQ
R1AAyIwSincpXkZ8Q5IN10+I4MEbkm1HoCEevCGhXbAG5ULENzjZIwkb8Q1OjkjDjPiGJm+KiuUR
HtHPN0qpEQT8zspbmDNjcQai1yj+wGUys+fULNZ2ybA2TRY9M4NOLiaLtV3igfGRZwdvYU2WPHMT
DoyPPFsNa9NksTZQQp6pGT3uHRYhMuLLughXhRFf1iWuleaCF1b15mVf3OGxVUzYqhjRKmgJj60i
bZ/khvQLL+v6u+ylFl+72xKejradZ1IZ2+dUjMLYw7IQSnrFnTN8oKDEBH8j4fEr9AzLf1glPlBQ
B+hHeN1XL9Ej+sEr8kweaITd5ZpV0gMT1eqXLKcJenBh0qzGZxcxz2pbXXvjdYt5VtahPCct5llZ
+IJRi3lKtOpr4OhH8/cSHudpWZgPqMU8MVIzlyZONl8B35Z709sEvSlmie+7Dbrv1kwBvEFhCanw
qYvQcmsrvqnW8E24lXa+aCU83vkiPPFoqWaso42YWfrRm254HtBShV436CdM9w4/9ikHYU4vXf9F
2nhof/SwXrr+ixneoVovXf/FHNH9ofXSLW7MSfqAdIurD0zBIArCAQrgLS7fAKUaBuxqGHgF6oZp
+9z5w0lVU3JABbeME/dbWLXFOKnqSnbIXzBOqjqTLXpQaZzob22qxtgR/Wj+XqJf8Lc2D1q3h12D
j6tO43rK+Khs95WgV1VzRJEc16ilBmUsnzSG+prekO3yhwivAtfL/tPbO43gOHi/X7Z10kRhpxMO
XpNX+KZ7xg6OnSLa/mIbf3Dworz6JIr3yRzML6hwzbtUuB9qJT7wHpWDOQJ1dLNLfCcSnX2a2+bW
yVNM1VYgxuHERHFHGwnFTb6ck7PcNy1i96MLVSM1f73qxExvl7MAx+Eh2qN2a96dnKK/bevbXe46
rgVTXdst0FsOYhurgIK8fDFVtyuz2WmSFmTptv2oellqURggWOVgbcwK97tYWccTD3gSeEttCQ8s
tE+zf2P4LLXSMwI32ItZCfiympGHFTLXYW6egeSlaoEC3J9yqb056I/ZOIDGT4F3MRe8Q/gs0O+w
k51Akl6TAJpBSIgD5oAMsxPmIMjQB6QDS+gEfSEavtOChY2eZgqyoAXCOcFHrtFmkyLUAitokRO0
UMnrGNGfItcjua0iqENG4F9pIAMl6Po+ySMdQpYoqF4CejADiA9cn9o2AwNXAe3UO9RiJ8hAy7Y0
YAqaFu8etbZ1BL9g5ZXo8Be8IAcNO4YutYT5lRwEe5gQF80Be5gt1zO4yRFpUnJ83rWFvcNmDjhZ
Bh6vpcC13W0UIGsUvGwN0Qx8OjIDqEXxyFqAPEiyXwD1EKTfL1qA8LTv+FALij2BM9jb9NXPM8TP
M3zj1eovbmqNUE4YvvFqxeq9rzkTER/+8vnjy/ltaVwVZ+ez/ng7T9T/fP9vf/rLw//83Z///seV
5Di3v+XDpHpzwdkMWUTdbys2cmU/ZyzfyMwZNiEoot65ddzNA9l2WxRLx+GZHX85/aVjhEPdO9dC
xrZ9lBDEnroqlq2JOWMNwLKv/mesA1g/PPjPYG66gSR0DZ6zFaQHyLx7SEaRkUdqzWXXF2QASMW9
KyjIBJBmVCVk5q5ZV87v/p/ByjFY6IqLd81YJDiNlA22mQ2kHMfGfZqxQNliHrY8nLF6Ycf+nB8F
33wyozkqLiQZhQNihVsBjgL4Oocswy0YXXPPaCNqfF2xri/9oAcTB5RHcqOZ640mkYpf7dkf//V3
//Gn//nHhz/95V/+9Jc//cf/20nHQ1NtNDK3HptqJ2DB9mKMgAVm3lg2Iy3yu1ogT/gH74Aiv7cE
UvyAs4sOINNozHmmYRHiv//1pz/xQgxYzWIf3OtVNICg/w2bkHoH4NbcsJ5za2YsWtT70m9NuQ2Z
PPCt6qZvufzOGYschj57mXjZEfllFQu0v2DBytFhmLVbsJrMXfM0BJJ9PCh1NWPRRm+5MlWR9D+N
cykkhY4KxnPHtRUeAdyykZMVjg57hj3qrHB0UjJBHB0d1EzsgyZhD0cnDOO42OEKR0cck7kDSpyv
DOuPzfnlG7LWX5u2JAW8PKO4cgMznp9xIC3xhr7eOj6wwzodwKPxg4DnlT2QhoLr/MNofISP/W6g
R3iwm+jcl6tIdPMTTjJsflis5xjPY7PhTzIFGwCWrWc9Y4EznRV3fTtjgTOdNX+CKlh0+uod4m5n
EM5tkcsinEeNgGI3qrQ268beCx82tYvz3RdQIcs9Bp6wfj/Mx/VfLr+en7ohilvJr5WyxyfF+xbz
F6zwBeIBb/01N1coVMBDScABJ3NAPk7m+ip0c0A0sFWU1y844QtsYkgsaQADgW1ebcc1VYKx7cUt
scApX1MtAN6RAl99hdiGN3wneufZx1xkfOBWOX2A/gjwjnsM1vAWuJNBcU+FCP8B3iqBfsfuDXV8
Ev/aa9o8Ppi/dVxSP5k/cMV94lI7ifwzwIcD8ktAfl4e3yowfpTHt+BI4DMf91zpB/J3StZ/i+Sv
ZbwB43sl8M+x1rqOf4B/GuiPZZ+qEfqB/L0XxrfC+vH8UXJdPyiYkuT1o4H+u8ClNhP6wfhBst8a
y88EwX45bL9CEujXGG/6e4PNbj/zD6xfG+X1r8H8bZbXD+RfFvRHC/rjhfGtsP5sf2cz0j8D+OfY
Vu1k/mD9WYl+h/2P2NufzdlsxiP9Dwf2HzC+b+tnkz1N8ID/Lsv2T4H1b4/QD+bvDuy/yP7ZA/6T
Af6Dd8L6N2w4o45vBfqtYH/cgf0HjO+sTL8B/PMaBKbL2Q+dztO+ynR18+3Dv3y+PH5cri8Pfzh/
vbxcph9n197W9wsgOufiMD1NT1dCv387nz5u54Q2wF+//Of58WN5tjAdkSezxcdjrNXjeMYC9agu
lbV2HI+3NYQaENjkPA7lzOB8D2tiWRrR38JnytG8/TgONqMjKgdmDT9tcBlWoD6MQ74L1ZnLKylo
l+CcA6Za46EB1Krx3fAsqgTHVQGyWgcsqDwunTajM5hv5Imex0VTTjy3UDZiVe0gqzbiWOKX1awk
HigJzzGhzp71HquIh9ppAyQbWgNrlLgwIiBcw4WBrZjmRS0U5rPeQkE7bACZTikz0Q4THaDpzVDB
aN6FHihYhEM7gqaPEWZ0wnJ2opwB4Q7P2iGwyQ5aMYfskMkeWhOH+R2hpLE1GKe6dBxDwvJgrwJ2
10fI6QgtgXJwWWi8LAze2DPcL1zEDg3eq1wj3JaKc/uxE+DZpkxq2JtPtOM4bPXRosoQarElcf1+
oXeSRluVgSPjGessanYA3FbsopKWlHeSciPHU48rzjenF/FLQX5h7TQe+iTYECimBi+x+WhhaDi0
x4Y3QTlbrCQeyspjWxLxmkLeDNZsrCPGAJcC7xU+Ayhw+4LCbnbEZtNAs4nkY6W1BIZVVtoYkeES
DjTY4bQR7lHYiyFpttMJ2trdMgaTNmHcYY9sUWhDt3h7VGBg/vgouZt+fySZseyQc/hCjTNkLPL1
KpQ+TKQ57FZ60uf8Jq+GDmqEcAuTT2RZa1Fx3PsxNl17ppRnT8KEkkeHvTClihrLPcuIVFwRZYkQ
DoUZ8aDcqyKLKnjMImGehVl0UplHjeyoQWCv5enFNVNczCxUYFLgJcPHs+aZWl40XmBS4+9kIdZ7
A8uFV2ZiMysWIyxPnrfC6vSmf2Ooey1CCzS68QNRC/aoeaIbk5A7O4TGDPzqdsJKi/1DxNCtUcjc
wNu+gLQgQN3zCOrRKkPTDGb8zs4CB2tGOp5cI9gTz0oFzTJofsSEuJPhyoRG0/BQwVTHOH5FOq8U
aL/I8swbqLC1bN8Mpm47g/LkLTUf4Zj9BAUZDHdthxYotESJRQrq5/d6VHypP/14fT7/OL98nOpd
0eX07eX6/nF5bFWo3JQcaB7+oO89rFvp1bjuo7tBYcFIp7gCUKVfEAb7Vr1qCrXlxhIBaFuZzi4J
u7q0fzCKMz8VbYdFo9L9bbaGSTAtQB36yToyWVeqU+p7jflM6lXtbzxLbuCNfoW+QCpskmDCTDwA
ajcsFZbu00Q2ABrfA0MvYkSrHVY3K7TCIbXph3QLMBQWA1qbOk7/ONUBQeFRQwu3lr/JbQkEvATc
sGbrLJEAZsmJMkgSaetmurvxeq/+YKpW9+qfxloM1oGPPeFpPz6YtmVqztliMNC8beJWj64jQ7Qj
6G7DaFSDOVszRutaWQtrpcyvCEb23SrSRDEdNDaOrKK8i02XYRHRmbGSRTsBp0xb9XGKAt4WyMbK
TXJiM3siKQ4zqEO8bCvI7BjevkM5aT3cVuaVDHYUHce7IOF0AgIOQ9WahwWaofO4WjQZFq0mNdbo
26hgTEf2wNjljHXWA8nWjWU7r3+07UdmP0nSAnRj+ayLFxnb1JeI9N3yQ/uC5mpbdl4Z+kIeVwet
QwMT7+xw/6SGEg0bxwZn6kRz289E7yzo4b62VRFAvw+95dKdoNE23oC0mdC8lNDSHxcynYFgRO3H
rK5uA7LOvtcr2qfqxp9iq3gWq24V2rngw99fLo/Xp/paf/75wStVjwOxvu51sIBlbq+ZaJw63ovV
vGndDLI5z6Pimp/ktZnRJUxjCNrfw6KbSbd3bnkiOjeqy5tkA9GqvRrbNCou2prQ469kSO2HuPYl
uA1cSjcEzLDYFe3oGFaI1oBo8kyuHBK12ZEN4Lq9dqMJGTO3DSoyurTpLRpCXOwmKTRuq1NSNq+4
GP82Mpo0ec9oyh+esNsJ7KYvC8l2F2tagyCqPCzx0ajOYM7tNeS05Bf9aqsRFHTNpMQH2XvamkLz
Ja8hfQkdhC3VCVDdVuS0HbjcKacDQrK9VmdiQISlGOmDVRKCirUcAlrDRK+m+5gYdxodwVwbpyZD
lB3RDCNpRkLTFSymHfaPaNJFmmGHxV/IOlJgwq7ns+r4jFZgA+aJ5Ly38gHQ7Ifvc2edQianKePS
vrg5JGZypX4HR05G8yN7aX+gZrq8yHRblUYy9ozVWUYGVGvFY8ERvfK6SYqGCJpeomXo+grcut9a
AtwRdeIena+ywrM2hpdVsZfI5gXGe1mwiGNZkBQyeg07BUSd2XEMbYpNwRZ3mfhyD04f9N+mRt+h
NVefdLVTVdzbPPd91cMx722C+gY15brfxmPO2wROrSt6nuxDzvGY71Zm25qiV2fqINvLwK5vx+6O
mYQJGhvU1FfmBze5wq024X5jxR5jgRLh3qAxH3MYC6da43vtysryB/3FwqvWPn662gwH3cXCK99o
nnZnf8xbLKOaBp3EG1M+5iyWcRubdSi3mumYr1gY3bg1KXcwx1zFAm2smu5UvDnmKZb5qqbNk6Tj
MUexiLdxebph8PGYn1gIbmtIx3LNHQ64eoXFjd5p1j7/E5a+zJeYHLcxOZy3V8ZtepFKSkHUx5y9
AibTLfUVzEFvr/DKM2sXO3sFqvglBHy9IlzVa6M+6OoVHuuGvc08HPH0CpsaTtd8OW2PuGuF3ibX
yUvN/tixowybiXSm0JO1/4SrVybc5DvNIR49zRdsW/Yubc48wLctc246OZnavUby0NhGnb4S3DEv
r4xKpDS55lrFY25e0Ujdq5U66OUVTvmOU14d89EKzc0wT+YmhmMuWoGGXrb2mIdWmByYUbW4dXqz
W0LUPTM6HXPPdK0Ep4fdzrGDVnt858BAsYtWx1UNrCfbpV0+5qRpWulgghtfA7td4Ac4PZpW3it7
ItkXxXWpaaGaCelKnO6YzZ6nTpqrm6lSzTGPawZrnulAcTQtGVhs/zT/cNDn0vR19p5u7HVpWlaZ
VxYEno+8BTx34Tzid2laSLpo2qTtWh88L89anned7I+4bTPhjgFjx0DTMqNFWhPr3THXTdNSDkW3
026Ttphs0/itfbHm3rlj3t/M86biNEAi+X8z0xrpW5cI79iaVoUta5M4RYfcQE3LEBWpkTdUkrs9
U9+kNl0P2oNHsRlMVkkXy8YO3aypsQPbfNAv07T2yqqqB3fueei2xmjhLeiaaVqJtGjKdOz9Z/wr
TYs28MYBbgNtdetp2toeDCDO8sqMpmA3S9MSxCtYH3O05pETb1m4Q5KmxfELkr78kPwsTUuEbdGS
pzUP3cA0LCX5WprW2eXljMBGD1elGJnRtK4ONWfU5fJHI2IlokaK1NALWuxxWVL6dFueRHK46qgN
a1R5A3MwKFbQpLBKiSDHdDAqVsduZWmKt3RwhRYsLamWSjtVc8xdqhzzfUE6fcxbsotXuRYzKi94
jrpLlWWklpEaXdFZMOlWh2ewyGB7ZU9q6DAXMWBcWn+veObmmLdTmZ2G1ZekbbNi47ByoOTrVE63
GZdQ8cGQXsW2ijthUpZgDka5Kq+bnGjDKsnNqTOmtbpKDvbB69BKd1vOfbQYH0DqyOMqhzDOVdWD
MCvUqMwxf7aiyYRLz0MTj7lGlWjHKAj2jCpW8xNGjlHltBnWVIQbbZ2v5q0ecCyqYlmeYs6fqoM2
vZgkFPU/4U7V6WauBBY+F1dwGtotcZetYG5fxL5UnXbi+QVcqcprUjR2kpU+EJKsgzZgyYmNR33m
qpRkWFqoQXLDKq/YQm3yGad8gFaK3Wo1cOMqwxzanRxmdhxWqJScuMrvhu29Ry1v5rRlB2lItHhw
1hz04EpHLFJQud9ihVYwRoVN04l8zIMrWNqwYjLhepMlZRFaK1IKW09SuP2Zj/lwdc6t1Qb1vsWl
XQcnDEs0Kw07gGXgTKpX1xNaPrbXVaaZYe8dyXms2HHjHcl5rOxqdb9pCo/oOlZ2WX5g4DpWdrUJ
TxuQs8ecoYptpcbzFJ/NKh1zHiuaaNhmf8fOY2U2KZSeqaeOnceKtfyqAs5jpbq1rinW3x5z/6qQ
zbCnteT+VZpJ65oalbTH3L9KdbMFk1X06p+w/1XFyAfMxjnhfMA6Z1KOXueS7rm/UIuAcjLvSc9v
lBzzAivXVF/KXh/zAqvtjYLtBZKmDY6GvgnjQdYpJ2a7AB5k5XXs14Q94AVWIJFumK7E/gkvsKoH
sfap+USiF1jBZCkPnbEAGJ2HvQokJ7Dy2XUCtuaYE1jHJTIiL22gE1hZTdpXmWmvuv1pj7mBVSsT
15wBu4GV02bYXULy4irhbSmVAGI+5sVVrLRBAWy2zFLS8q466KRX3Li/nb/dfvW9VaWd3pVMIv8b
Z8smcx0UU0L1hpze/vzN3FtUp9JnM66o1+EzwIdxGcIOD1oRZTUuw9PhQR+WlMZFFHu8AgQwFYi6
D4DumdkeYCDoZZQy10tpEn/5gAbiT+OOet3ooBNS1lzzs3V0pHwS7RbRrhXXR3BWfDy2FSiHy0br
8djT22L38DegcDmPi2V1HAd9WrPjeletyx3J23Gdw2Y0wmquz+vKb4Q2BzRNI8alcUXcmeVI1IyN
WEWNyI49w4biAi1uScXRwdg3pjkwdhCWB8DqfeG7sk38cv5yenv8fvm5Pkh7uj6WZkXsvY+nGS7t
0Ptxfv+4u/z4dvf+9siDA03zsOudaAE/fb4+Xx5PH+e7G+r6+fZ4fkcfIrdmaU1VKR96vrz84+77
2/krgrvR1dfMiLvzj9eP3+6+vp1+nO8qKYgf7QqOnBoKJY/v7zeevF7fPhCeXJe2w1bB//rj+e79
47fn8/v38/nj/lduNtsrxKpTp6fr600mLzd+nOtnnu5erk/nuyZyRJYmuUjl9bEmgn55/fyQRG1H
l7HP19PT0gOrSqv+xR2iqLhTpIIDibCNvnH3/vll0aG7l8/n57sflx9nVq3r1+2oJsWPy82Bun34
6fRxAlg9epb643R5GVNx9/h2ev8Ovqf6F+71rPDz5el8vXFeEl/9hCfTmRR8Tsv+z9PPp/fHt8tN
MT7fnu8uVccFekghFyLJa2lKAEhoD/xL0KUq5ePp8fttgf36enm7qSMRFBi+ve0uNmN+enH59nJ9
u3H2Os/n8vWu/jQJ7Pxy+nLTd6TfcZR7VdfM6ePj7fLl82NdNl+uT78dWzaJ5E7EctBLG8v0dr7x
/fH6cvfl/PU2gUl30Sryo1SQ8rUqAF435w/w5vrjNrHT4z++vV0/XyANeZTIUj5R9Of9/IHQuk8L
DIjR/4R9UoTRqr34Gtnwp+sP9CXTW0/bfeeXy8f3u8+X88sUE3+aVg36lBsxe9oGXk/fbhvb5zNa
bPM3/CijsApsUuqDMkvsRluU+chHfO7zaWajWD4yLzphC4j9FjC3SLwp/8f55ePr5fnjvDZE/PJ8
ffzH3enr7a9uPL9Zy/fzy9Ntsfyvz9twwzHm6OR09i23F+V1Zl1t8GN3H9/PL3en5+frLzfBll9l
vx/X75eUKjdL9Mf16fL1t/WDnFKYqlHzF+aXG3sKp+4xtx3+6e709AR3m/meYZlxLA/R4qHv/TOT
1o3kVEIw88oq4H9SQiaS+etSH2T3sRuZcM7LNfeWIDrnG+L1+vJ+rvN8Or/8Jk7Tk6+WR7ae/Sr7
jUBmF8bSlWZnm4bYae3bHNlv/BNSXBJP4mYjOqYohxho2gjTIwcdrCCWY+rXpG3qm3p/dE0fopry
JbUaYlQhJbEbIvbqG6vdN/6ZRW38VsG9oAJHZmoykc/yum7ej2z5/ffP1+lw8j5tkHen18vYlPv6
knEy5MWAlTfWlcDPelV89+XydLm5pu/X5+n89np6Y3hXHhjo9q2WEdV/af7Q6fvp7frCf8m0L9E0
uNv+8lTacZ0q7Bf7WP73dNuvlhkrw+f9JupakMfkHV7xCbyB5GrThdHhNZ9bGZtDolOZXNjjDZ+Q
mii+6FTe4y1PPznR6lCSA/RgfJ7+RI6Odc+LAzw/frIH5m/58enRdUoK0T4N+M9nIUfyDCeVkPoI
73k8kf/Ei9v2MtAf/qFCpPwr9Z3UgH/8K4lEXip0e25HP68/8RD/eTxxqDtr0eP59Udd+yk55KaE
A/oB//IB/in+uUSk49e3yQP+8/iUtmfAgf5rXv+jOyJ/Xv+SPzC+4fnXnWGrERzg+fWTyPqhXlE/
f8B/wr9Uorsj+vnM9tT4Z1SpvTKQn+Lxga5/sq/0eH7+IR2Qn+bXbyTrN5dyzYP1p/j1F9wB+Sne
fgZq/8sWPRqfpz9Q/SFlWns8r7+BzD/Eef0vnsvdz6e3SzkHP61tN1kPYdmJpyhacSjnSoglJPrl
7Xz6R0G1f717vl5v3ur30/PXu3+cXk78g9NWXcJPNN7+3H56/tbr243OX5lgdl6tTflUmg60Js2p
BeRTL9e3H6fnu9fr+wf+WHunbJzTtX/q9mPvH2+Xx48psn1zoH+c3v7Bfo48tjbK1WcSHG0iz0i1
h/qoa3oXxtAmTpQ8bjaqfOy2IpiPff/t9eYz859qb4d1noJstz+5T0nCJEU4nAql0sy8eez04nLz
6ktNcCwCUj6lvrmZ3pxuv3j6/LjKPAt0oqVukGemeZA2Up5F59LMJWs/pE1UDlKfprTisnvVmPXs
gNqSCgU1OWvKmBzS9Xh+uU2VCRTn+kx0XZzThzK7NKVl3r7k9MQrt7y53X/rIPvJe/nas3Jq9Tmc
5u1odr6dyiazyWuHIjVGiNewV9wjHyOGozxXmjKVx5+TRECqJdXLsimkPP6UsNBJaQITiqUNe0u7
rIADkyRlkWye/uX2p2M2AXFtEpUtmaJmSRXdq4fEMVJ7pWatmaXmxH6e0rdIvZub7S8h1vk0tTM/
wgIgNSU461N5dWSBt7IYxtjSE84mzvpLpoeUXzGqJsLr8RSPmmxS8SOX7yluoR/QMlKcyZaI/O3P
zO3BeAHQmlil1ezUoLfGhH6+nH+ZPLO71/PbpBPTdcXz+eXbx/fap2L0338+v31cHm/Dnp4v317Y
1AOSMTG7g+n/E4a8u331kf+gHeWsoM/dPnD5rzP/wZZXUeyzW65t7B366s8/Tr/enb68X58/P9iP
a9qfNtQj5cHP/3Lg4yQHhrr6B2i/vBz4POlrTk8C6Munl+vLbz+un+93fHSyML0lpJDyNKMvX35M
f2IJkrSzGnL5J2TIT99vp19N1s/fRY2ifa+LHThKz3eeGruVtT6qSPw3SVtKGqoTv/nt/PHTdGXL
f7lJhFRsPqSX/DfjWB0PcPWArpPEVRq1Qt+d/6ro5t3j98vzE68RzQyQ9HNstJ5vm83P57uv13kI
/uOkcaVvKRKFLz+uT+/n5zsb+FOyHUXk6/Vstf7nr1+nVIMvb5dv3z9ezu/vLBeJ4pcXfJZ86zaj
19Pl5YMF02anbm1bMA/+7e302/ttX7i5ebw+qzRKw5yHf/x+eplu4QUqSNNUku6yTuEbF3AokWay
7hsr5xncHKSbq/XyOIUuns8fKBUglDckjY6WTDB/6/p6erx8/IZ4od0oPbMXRVXau+fTbzdR87My
o0zL3azOv96+/HJ6Zr9j9Gjjnr/zeP3x5ebQPPGyJXIxW37c/KjLCXHD6lG66ffL0+vlbubJ5f3u
5tq9f355vfmxJdjCR5fCfKk2fzJMMeuQO3U7vdw2ruItIrKaSSMlgOsXzk9z9h5PgevVrarq98+i
5VBRA1korUPI2/nHdTI4x5ZrpKmwJcTWieTL8+cbh83DZrlUljzHhnnDW2XkdbBNnLwS24ns69v1
x82rBry3bQrlkNTJ/vXterPot/V50+rX267zVBOceJvTPlYKBoa5wuCWLv4DzfCQaqi7JTqRM6k1
T4lu/CGvnBbJnD4+bycgwBRiwVst/GLn7jorzCqGBqZmShy6fYrXSLVper/cB8+Tfrp7+nwriaIS
P8krkJIT5qk0/lk74egJoNwnzffJvbaVYPbtNPXz6fnz/F4Tzx6vz9e322nzdpRl3dRE7KIq8TM3
svTv309P11+qqce+ivbEz6IXMNu9o/H16+n5eUopE7Y031xYX8LxdmuwyEd52xVHSrZbwj9umAuv
qbkjZQ5q7BbM25TdWBfvsV3bEN61h36D706W9unul5sgzjfv76UkieDM9zA/Iu4O06kzYD9O7zcZ
PF9e765vT+c3XiXJZ1JpH8Ts6WDrMqbfzelav7zctPjCp0uGNcugkND6gE+bxmIpSs7k++PbtST7
PH9lF4Ab7QhDp++IejniKbSH+TNnnm6GfV5KvBWKIzdnurtavLaytg98isYO6PF+JubG5dsmA31A
IqPW1G5mTU2RPdf2pIJak/70pP/w1l94eSoJnbzHEPqvJN5Q8TYkjzwXRm9YlWn6T+rQjE0IdN/a
PjEdXuZEnwJ7fV4Y874sB7yFhwwcm2XnhQsyj55OykabZ7UjXsnk345tRDE1k/lCtNnRwaxzDBrb
j1gPNXoK9X750dh+RB/zyAbtlzo8cvqRGWzcmYn5fH2axHebXUt6x66QjtSbIXk4lWvff7l7n/7/
8vHILlsS09i72Y3EkmHI25Aw9gauX7/eFtn5/LKq+Y+bOXj77e7z/YRm1TShrMIInJW368cJmWo/
PO531pGflu15E4SDADQDxK8Ja2HZzZzQeUj7zfE0cpr4cv5Wo0Jvp6fLJwjEEKnFUiBMbw9nYEY0
8tkeIRc/rSCLj8pbskAiF1Nes4VGekoYve1A7FwS9RRKzq0STjdwS4xdeMd157ayMS+79OnlqTrK
t6/zc9W9M+qwjeQNpAPWvwXekMzySGbE3t+oeb59jV9P9Ol4c1ymzOOjFjXRCE/5o/Orv3+e5zXN
i0ePnPtNjAjaYz1iw/ZcPuUoT1vWvNXwfk8kMZ7panV0HoXk2N6brHK9ibLswNVw8raSzMWs+1MH
5rHDR85bOwtDLd6Dg9aWlTwL6R1Vaul0O52Aq1aN41XTmfF9ek94Kiconhu+j0u73aq/SfLl/ev1
7Qe/1EkYtBXLKU87F4X4fgbuVDTbi9A8YijPyNyp0syD6bT3OqnyzRN/+zo9QJitaplVDVHcvPTy
KnKOHb/MFpddxfTar7yRUH1YcjEq5WHD+f3xZhZOKK5vD7khtz9PP0Dkju5oJEFlez/AL8XeP+4P
dsTEPj6ffrxif5YW+YhrmWr+U+x3Um8dtOSEyCeSto+Uhj3x0Bf5z5EYd2t8MvbWiiYiby2MLkf+
O/rLKm4cn5ffv18/n6fXpVM6yM/nTn9LQIxfs2m0m/SXMLzR8r176tBtEK/35E4plI598/Xel+ca
NqpveX7+Nr+bmcT7dP56un1j+M3UjhZum6JbPjldGZ7rM9F6PdQei9aAJPvZebNz25cX5ANkhHqv
X0OcT7/d1v7lkfvykle5fZJDvlZN2t31Kz3ilv8++QundyDo1C5inOoOlJTalblfn0/f3u9Or1PU
7u794za3SY/Kq9ZfP+4WqbAjzXGzMlJb82SkOfLbgtarhb2bFbkoMZ6PI/NpwYDhfD4+315ufPta
gmx3ZUnjhZHakadWxF4XM/n+fBYXAm6pXbg61d0Zj3WG/O31ZmYvLzc9nVzr2//8yg2w5NapjVOK
tPK2nFhdbJ8jdwPjj9X0ro9ZWDdJ3jaENz4MlNawqOuS33vOlvju6fHxZjambz+tKlc15/3y5fn2
L+8svzUZggZ/JxNSh5lM8Y1i9guEo6TW2ZbEt8nMjejkKfPtu7l8OG8oO//6+Pz5Dvi3XF6Ub7SY
TvvC+/XrVInhtkPz1rExiNyctwWzvE9crAt/m5La0d5tn4MB21JX5MvOuPA2hah489TJCKfbRvP+
cTO063aLl/ecx1E+SKOsA5KphNc9/Pvl6enMC8koIui1aJXIkZuNks1rIKudxOOKXZtLDazDrJ9d
xxtnyZg1ljadZsopRu8s6v5jN49jdlr4z+r1s+S+aMeJ8zFdKF9U7YtzPdDR1j7H/XkNIGucvsJr
K2m+SpyW+uvp4ztvLdRoq2jfeb2t6LoigUJGjT9SM2B5GlKvcAEZbd72Z+KH0KehW6aAs3lqQaPF
fs633EP1P7qirBrvG8uZZDjTj8sz2pfJRmfXplEEvtDGE9XYVZIJzMqsNsHqJ/ByD+J+eMyT0TyV
RBpkCUr+x+njYypmVC7Ppsx3lpGBTKG8L/KWd7b59RgOuuzNcRQ+mPrNdklT3+py+Znf3fKQeUe8
FUyeptsmqfrRyHs6vf0DrAhPnIkWrhmLdT4vgbh2as+K1Hy0Thu3AAXCUkujW1e9BgStV4jkP4Ms
vdTMfr/vEW5dvqLcqNQO6CvHkJtcdK3EzOaDV/GbWdYxq3izCRSJgj2g30gWsykt1CVBhyTZsnSS
EerT+YPG4OZfnE8f035ff2IHIFpdi3KgAR7fru/vX0/LqYT9KDnr0ZIpZCWX3ZVfK8ELq1iw0s72
Z1pz2J877uJGwcUlAYvVQT8cuKDxEC/JnQQu2ENio5ZUdZRs9T9BMA1XkPb2Q+3kv9K0kdRU3G4A
U1IRrzlmdNyiZMyHpCXPpJ4t6xmEzH8+tXYRjmNhutRyg13fNpCef8gGVE7Jq4HdKiBvYMkZywku
ZJEuXrNE42qRFXP0VCgfgdKQUhIrQ1cNqaWTrl+Ioi/JbyrtUyXhljnq3eQyffP1zvIeARFAbkaG
92ylHZNalGmWFi36b5evc6zSsIu+LafS+M1bfTCK+DI47B+QsxZMIu97PV0/vwB7rsmqpiUwGO9p
di1mJ+BuukU78Qspqf9WvG8+aNZyWijcR/1aUj6DOezdvva8xOdu27fE9OyEo1uxLpTns2Xj1xrZ
exM+DDKxkIluHMBILXV01ZZwjO31bdNNJU8X9tuRmN9Q/hgHtSezyPMhbC2iPrDFT1/7J7ZNwuv6
3s0Ptzx0s5PajebiKe9lRhVguZk4dpLPO/X1OFaBp5zbjEmdW+TXwG0rNeqWYrzs56RdJpOLEL9u
MuQD2Hwvd5MrPonmb73jPxSMpiudlPFhtocpH6vk0UK30A6l0T4z5+igdew2Tps7smmxBDUZkJbo
bTnUHe/LzeLwG7ztzw7pn7IrP/NeHQnDzylsoos0JyT/N7dT2zs949AeSE9O7UkWfy9WDNbiDNcE
Sl4FmZhPo2l2Y3+7Oz2/fj/xVIWeqrj5zPfT25NwKeJT7+izTuWh3KrUkqe3GxLrGRqeT+1LsTbh
Qt7KVEXz8+1SbCf20QmBtcaQGy6Pp+vTN+AAu2FU5VCE7HRjIbjII651e0IPIqMv/9wVrxse7Y6F
gypnphRKzGLqlJQ/zPa+Di8R4nqIwdvVRuMtrpFUCteH/168mddWa/BVxrKm+dUcR5HNPqzerx2e
fdT5JLVC+VXIx9F17O4Ml2duwETwLNrcsZsjUl1+YAXb9LmUJEj/xLljrlkOzx1xHEOCNzDLLsXv
9qkPJB3dAv8b25/rA8g76a3eE3jMmtp7x0OBkqMakYnT40gTiGkh1xoFJVZ6V4Kl00qgmdxcbwnb
WopUic0eHvnUxmHhvmRaj4riRu2+w9+0xbUUeelw4deKA5QKJLu4lnouE2lbDPmA+AAproXIaxuT
kqoZt58BUeC4FgQvH6BvfAj8v8AkbGvBQvxIAl8PUPDFbVwr2BdC5quQYiCX4pOgBYNv5Xsn0zw9
xZ4zKKciHF/P0zOsKa3nYzL071BrtW+lRF1nxxYHqdTnePn4zl+EFXo25TnqNvyP7cG3+NPqV3X3
5ccr/y3VCmK2I9dUbemz2vhfrjdH8H1aNmhW5CutTscUJl6yEdekgFLiavIG3l64o9wUFCSiry+d
4pobWj8zZ3nVRy8k5+tOKcWqQSLLm7QIaV99vLw9Pp+nal41k+xX7lPL+/zURdrKa9v55me+E/78
uBruI5F8pDTI0PvPTKw/z/PjvpNof6Bp9bsmgGL7Xq5T45Nv0wnjT6zRScRm0JTKxh0p1hbr0+nV
8JB7vfYRmCMQ63upVfSk9j0h4/r827fb9nb++fxyfWLn44m06c3aypW5ZUn5948rX9whtndzaa0F
lDZEtezdz/fz20+T1P768vd39ouBbDU03D9WIc2qkCeWTbcX9NxCISJEK4V0sCpFr3ROQ9693j4l
sS5u5emgGF75DSFbsp+UHOqtVSjGhVUIJ+kmLgMR1/4eZVufvpiHUylp9MJUiNxK2HiOGO6X/uxo
squWbG21/0saLxdWEc122ft+UgcsB2FsLmHKrRJK3nIpvELoIEXCOeayl5CxPZNPc92xhaD1W3MT
vANT89uFv7VGb9frRyvN9WVasuy2Fqh1JI0guLVwI+3yxuefxVYeJW1Sd8sXnj9/XF6mRE98Eoqr
G1C1aDIj0Y4+AxQ66r5f3nbvOD/ffuTNoafzIDmxOzsGNMjGjfceI7NzrFXWPl8uH7y0CE0198Mx
Jnq2qixvMrFbJbvVDMXexC0qOF0sJBRdvrjeZNfCMSxVxJpOe6UJ5BtfTu/n4FjOJOL9FK9Dw12H
LH+20Hxce2PVZUsu6nb+2QFHxMVRD8Zj2yJPoBFs1FKo4IBhiZtPzc+x9xuAoFzJkG6IU/kK7VnX
5Pr1dnD6Rw0w/juXoRvXAoB2iQIspYfHDiU+yybqdJOQ9X4VYSc3UoGGluCy9yzRfdpkaohJ77oE
bbVsNeqSy+rIFKf0Rx30+IuyDXNudHDf80rwCiJZoKrcShOmz7d6tLoU7vgZMktU2xvAJhVJHGA6
QRu9cQHnh4JHlo3dCs/uODQ5CI/XVzbKEx1hTqFJ7VbM9DSC993JEYVW8GW8Y2jI6Wkntv17qzqs
vuRRjGTr5/wTZilIeyiy7PzJO8vn+V+nm7TXUhFlJhsqJWnQS16M7Pf6m7/4X+e3K2sNqG6Tp83t
QyB1f8KTLWE6QevMESIkm8Y1jFK/ZUdHX1zOMK59SKr8SJWPnSk64JGTnsHLtUQp/3A7jz4+T4XZ
v7zd9qf3cqdTL3m+n9+5Jt1+PZBPxzDSgnSKNc2/vdx0HymSWMofGPKyhVxIUQ3lX8X4hqWCfz7/
Wsu63n5/eld256NPmrlrLFRo07/YqWuwv/+/zeT6+g6+0WYym0jboowlkndbu4+1hx3/leVJQN8o
elpaM3N5bkQyh2rXZul8PH6/e7pMzabvvvx2p/gv5PUL5V5i1rvPL5fHuy/n/7osZRVW73QSPA29
gmm50ZOoA9XmC9rGsaDX24v3epHxzFUhqV9pz7JMiSEb30pNT6K+EbKIHMhZNV0pNcrN3KSmyPnH
9eVafD6AJ1pL3snxnlMRTSAcaAp6/vj9vM5K5e4l6inYqUpGHpFR2xEXuYI1m0Z6UiRQk/KLRoDl
ZgkLW8h697qY33YrGU2njC39D9xcS2Uup4Tc7rpkE+EqiS/W9f79HSl0W+20gXZhXy3C93g7LyMm
ZqJGrnU0uzljUw+C89vb9Q1ZmzhSCMbyWfAd2+YRaz9n9jvgK2R5t/uMrUYAhfDEdq7XTP91vf6o
Fuf8A2BTbzHDcGwHPuBGrKw68PbtC9AB3b3KnE8zxCjxtUvqwGTvq5Ep1y2EYl3nHixPQJPaauqK
xRLxBWNiAF8gE5miJLTpb3FE58fj87nj+vnB9oc3LZ12F/6/zUfS60yESUocjB7+oGs60x7dT5Es
W547mo1igNVlyS7casHI9iT3mpSpOOvCBkIga6C9UC9e9Pczm8ZVxx1uKdOGBJQ39U+KVaP18vW2
KcOH0+uLbPIgue6kV7BSlR0ttGozZ48PXlMa8mQodUVLt6sdGDxrOV7x2QCV+jgC1h0XiKYxilS4
pysczLWRakqXoPk15+XHN4FWTRZ0feg994kufZyru8XX3y23yq0Rcylib/mWzl9O70yVl6KX7aq7
3pDOjLuNfvNmb7ag9q3+dUZ3/S3M/a/7j7oWMtddljCF3rbXLwzYLCdZ3aX7d2h3ZsDLVYue1c+6
HThkBrsWdNddxmY3sH/kBvZtyrpVZqZYa9kpL6FU3S32jteJ43WD9pWPCbccN+4SZdbd6a6n2nNg
r3pe5x3YsexaO2XoPvOEjpzcVwZtbY8e8CsGjtlr3U/dF9HuxBy4SackKWfiVsXaa0V320/HMMth
l9qiuneCCDYrdsZR9WIOI2Z/YZktyvlm9dnF7Hp+mdHQJ25ok/sVuSc8RXbWZElydkRxctZ0Wdmx
kiTLkr1ZViOOKY5jS9lm3UfdugXNW5JA6G5eSj9pz07aiwrqntgVrSVZac2qqNnq94BlimOZTl5a
HJrdq4zb2JIBvyNLt5XXpebWBhEVN2WjWS3p19UA/GTYBR0lmg2HjRvzN1JOXshBS3YosAvSBsmQ
2MzZkZyl7fXmj7AWLEli4n0ZsluQZ5e9Vkd2NWZJxFrxXpRyvRkZ7XKcYhILNGG129Pt2Z2K2q80
VhHFbpEpS+aL3ZrXYqU8NrJY6ssweh0NawS2pm8vqcjO2BlJrz3rsNLtkbHXmnUoTM+tvX7kxG6t
yYjeWzTsrq6ViFaeHTsHeWzFjq28qJ3sujBa3B81KyyTbc/wvaA57fQyv6xlt7cgbsvK8sw20lZh
uQnn3m4OlxTrvFmjZdU+sbptxcOYZ4WcrHQm8qzJNrGX1OgEyW7pMUsDR3Zgb0TNdJrfl63oxPjE
6rXpFWy0miO/Tcln7qge2dVMvN0WB9wc5dixyWbDrSvNTnujoCOfIiSWbiX6+DHypyIlLWnDMjw5
2V9VLNnyYY6128FJgn5yrMOaJSzrviWiIWl9ud0bMDZIobR8mDK87ZRP3ZHVEGPkyAyrm17eIjVL
t9FKVBHNGjG1iWQNVCRa3pHanH0HaM2vZy3uONmxIRJRPVNiAw0iuwM7rnXijE3iQ6Xiad9yVsQd
OH2ye6TtVWQwbmDPB9ZKAcvMx+7o+XMsJtYTyuIWmVknPRrxABnCid0ho7hVOH450jAW4xbwNsjJ
C8qxIW1xm4mOH3hjdwemk7MhPogugWbdXXoUY7ao6Hn7I0qKD71pavoYR8iwdJPDKyNlyx0PaNRu
bH4yG/GLounirfXa0VLPb2gHK4p1WGOWPOXMHnu3Hvoo0uj4XWJjcQeayeu1pUfAsZDZC5MsX3lo
PrCrjbSSLee3JZHXmg1SGp2lDZ11YtZmhvyRV7MBrNiE7KYYiXODm63Akp3lm60QeYtNJm3GaG5b
JVMuVdztwNprNkhgjOiGsBvr9u5zsDdy7CIxFePWNj2b4yO7QYnBII5kF8QbGsu7e148qN9O+ayI
k5MWMscscn/IzTfzm4TqQxMjpU589EqLDONPYEaHfinvLV/S/K2pHEO3/DHfexEdM3/gdaIBi+xV
s9UbUzBAB35sEktipM375yn04f/Bps6tqqxEx82zV4hbL3nkifBqYrV4c8CN7L0YbIyejwsHcV+3
bCqDS5KOsMeZJMYadeIjykZ0v7QPj+xOI8Z2DbtNJStOWXMDxyiHhdn4gtLSwIl13oJ4naZZR8Y4
JXr3rG4aJQrKGT6kLIb+Wd8+ZjGekthDmLVaDvZx+mGk9eT4axZ94BqPD0woI25UbJ6MNaJuZn6D
Jfs6fZXaZ6vwts9LgdnAZiFsgyKDwyN7DtMivxJ7lAruwIXYE7u/JTHG6fm94kDmhWZNtpbtF4dN
Iq+1ZzM+khIdR81flhCGMa6MY+NISoy+Bz72RYJ9JVV14Dqy/DJGPg859lQSxeCE48kmuzqXbpc0
awqCeImo+CCUfOLOPDjK+zoXkQlB9L8cu7lGcUk9seyy8gU1m9pjjBfjbpYPUzoRnfgwZdicawZG
iPWUjTuw17Bpa9YeuGjhs2y8mKscWGNgxfO6VuxhP4uH0MxnRib5+tHw524rht8inznivRj3Y1NW
ouh2slOm9+NTQMeN7AjLa/F6nN1rtDFikjQXHBGvOpzj06vla3XF8jlF2RDwSX5Oi2lrlncc/YFz
CR+kSHJ6IrfJHbjiYeMyQX6xwC1kH8V1zCGdnKzLh6GypJZsnoo2B65Y+JRuGn5nDvks2V7OkGG9
c6KWTOAtsdmBND+GUSv2VYlVRs6L5g8kRom3FWwGlvFJPACy53QtJ8ewN1LGi2FszTrJZpspMtIQ
bjsPWk4nCqxqyouC3SOMfAhjo+/GizPOrG7SQM44UOh5R8AkOfGLPVIkI4efOGMrPs3g3GNv5RRM
9pI1bSKbIy+Af0WTgnjmNKxXb4OcGciGsE0K0huFyIYWiB/BvkzjT7s0gcAx+Sn8paUR81MCS7f1
4rOjaPltxojhK8OaL2skex/Y3dGKTqpj1/Imv3j4uoLfKqITr5Ycf+UZxT2OvW/QRo7GOP4mLsjx
UTboZrKTUu+1ZncaleW7HS4ARd575mF+S2T3CnLtyWC14uMpOUlvH9mkVRJ7L0k5eyj7LC2K7400
+3bHbFP2R9nJfIwxKmmzyGwGQhKzdPkcdO2tZL3YKI7WSXSS2ceeJvTxtgH4SfPPNUVmcybXyake
rLvog5whx0ZwsheVy/ExmCgeoW7eGb9FZSlWxz6f1kp+DMxHQkIUgzAsOIoviXVkg4TU6nE5gZz3
leSwO5+SI95ksXFg7UVH9Yl9jWtlJ1exRygl+pvslXS2chiF10t34NaQvdyVL7Qdn64a5fM9G/k2
OkrWJ7MxzSjyOrJYmncV1v4ImyDwmVURMU02s85PkBNj+NsRE8W0Psde/Mm81o51nIL4OoF9vqJt
lhKJbt47H+LT0g0tm9anrRjR4LN79XZ/21vcxErZi+ny7Isybbz8JoINHxkr1RLg3FtyI8NcvBnW
i4jyq0Hvn9jjatxF2yf4r2sNGrmKTMGl0BefDIfryExwa4dFDQ8Ukqk5n7GvmRYPVpLRpuURgKET
O+0lWW5TpupILZkybWdGhZCOFDSY4I5WTWPcqbFHVAYPpHzTOHN2fGavekLqDo6LbjAVZQrbaMVE
x1U5+crOmxT8K0734ZoyZXBHVJW5Ahi/XC9cS3ZUZVWuDFPnvakO5w7nwZaxYxYXGVMcprKt1/TB
xMdn6LrA1aj61pHqMHVsJ7GNKQ9T+BaUNPGQ+AU+Lkp44MhSmW5GFf0OlJep896oSzxaX6aMTapq
chlSDpiXYKQVzlSYKXzLSrJtTImZqupcWTuxxkwhna4U7iTA8s2knvThNs5qOuHa5J+OMuzH0fIq
sizZZM/vRaYv/pnswXIvhe5oRbvmAMd9kDZR5iKookXTlHlxBSdtBzzDl4pZgG7geGhizg1pLiie
dOvub6VJe37StNIkY8wVT7jJWTKozC1WdTzkncTz7lbqSnqODnCedztiX253oKae30BpmWGG7swv
7CiKK/BLU/e21B1NOqhDO2ltRn5o50U3j3lXWr1EcWFH3sG1Is/A0IYWFB5XrnH8wqZV2MccZ8re
lKGjSDhX96Yy7cDq9GB1anHnZSrf1NGVpC6et0o6SNY0Rl7XNkepdKz0TRWQF08z1vImSfdz1oer
39QtP5KS9OMiSeBMEDdnoXCweE5VVCtZNK58ThG27s8jw3sxz/sbm+0vHy2gU41xEtGWR1OBc6EH
3lOKTjJrjl+ghi4RZoX5xJ/iorh7KnAeyRuLnI9mWdcFqkVPy/Nwm0RvSfOHwOWhL9Q2fpGqPswz
fJEdebsm+zyG57qWj7+Rd7esuAs63i/XMss9YHmWVPWJdZecdSLLeMuUTN9aIR/OUqjnxywaNgV2
/+RF48JvJkGLG7A24PzoRfOgedOkjLQdcKVx6vadxK1MgwVOGklwW5njz1LiIkl8qCSIbkvgRzZZ
MopcfZwaAt7EWfzRm/S6TOR4geE3MuNFr4c/k5jNmSQdrK1RHQ8nRXh4l0mnKE068559EIPm3DVc
DWwlaQfN/IkmioGpxFtyb6SQWnQg+mv6fhT2aDG4oih04+cKvfLLi7YeMkzsmKecGiVGYIbfuY2W
onmWN8ZZjLFkPo4YtSgvMGtHeoFNGVjmYPWZOnQSD+1AVxz1rccB86xA0NpLTONd66W6LrpYUrxJ
Spvgqzn8zrTuX7ZfI+pgAZtKee/WD3MS+MCU3qD1wRo2VVfkqBYIBYYk7l9aA49DvBiy/O1Kltd2
4P1qS/sEMf4KO7QVA4n89YbxfQ+Z0fbFB9qzlg8yvI+2GXpk0PhIhexcKn73ykaMx2lwK6OidHtp
gZZm+cY5JKApQTz4gqOM1Vq8LOeXiPHiWYYrTFMl3u9Cw9vyDA6fWcwxiPydtdNW9DBDBoxP4jVF
AtcUje+lW2g+WJ6mgr0cn/JgFzzgdwCVMWI4UvObiRfvILkqNZV0OUHC8jcVzkoWhj9SLOX60G1c
AhHgcTPXI6Vqaoxoc/y1R2vVVNqTdBxiqtVUtBGTHBzYR32SZJZ4hy9Y2cLw1+1W9Ng0r6tWiUkK
vHuut8HQfLjyTFWXINk2w+/DUTwJOnDVQYMdnKcK7mm2tzzhaPmZOm8jnccyuEMlAUXSIfhIAZqq
LkoaPPCnWBJyCKY1rJRr0FSmR8moJj7mIMcjuZzjGhUUdY0rQ1NNkxLNg+Zt8rjXolyIpiq6F4+D
nk9xiF40yYE/2GTRMvHZFTpnyfcI4L7BGnEr4plmjRVv+/nIuY3ytTnTNKCeREm0ZvwMSvP5Gc5o
2eNLvPMQJcOWQZwpirsBU1imsm2zSOLRzjz1+O+k8/sTzzQr507xSUj2gN9iQdjeKWkbTODCwQc5
G5c/UNJUh8htwXzQxMhwBfQlySmx4FhovZOzt4BRDpsjgj76WqiadNnFN+C+g4aSxztCBA7E5lQ4
yjzjcyWCeBzmYzZOPNExhWqqvMU7In4rMjqKgWSebNtnboejxWqq4+F79OFqNXXSRlQzC1IU6R0u
4zpYcMPkjZxTCqIXNPN7fCp64h1VKx6KwBF8aXyITvD80cIbcYHwypL7C+R49G1+XdhiiM4Bi6ic
mDptgUlz4oU/006melzyexb+8tpqUdMSH170ojnU/HMWm+VrPQ3ONFo+AvOZUNZbOVzDH6Cpl8uk
jPN3VJZkrnHVMfncUKujdNWj+b1f+yCn+wXe0XRyrIe/2ItB8rD5ZFyj5RsTC3Zu19+vjfIUQRaV
EY9Elg+oanLnUeQdjpY5qLom3wBE8JxFydnXfFrO8oYVhLhAFhTV83HHdj7S42QHmY8TWZNlhwfc
h5IYNlvKkD8R2c1BMh+uylNdVDGzJfLRFmcPnCuA25LEewsD7ouMuH8HnnQrn8eiBXoeD2Rh8cEa
8VASeF+RhDQZ18Pxe6hWoqvHP8OxKckBMnAbG8QINtNKuAZED6R3gjeCQXYV+aiklU+hTC/PuiYP
PFcDh3/5lV/kdzJypVvKLrvDlXoq10XnXvMnwdA/IhqEyPg3flpO2OO3MWPFCFfgT5EmSvmZmc+1
iKKDDHLejXx25oNjRouZFpp/g2uDnHUQM++ryRlFfJqH9eLY/IWic6JR4q2plR9zapA1bpV8d24A
3Ii08+/UjbJizgEIDwU5WQPcuwcvR5D5UOqBEywfp/FW0jReTY0Xnxg88W+WrXjvzVThqZZU3P34
K3edkhw+Bnrm5DISiT/zhwNnfl5cWswV5NOo5NSzyINJAld5r2wOd7yslkFMp83AkG+v1OLhkjrV
GEe5ggXvrXjxYaTj/SxtxH2XB9sDeQa8X7xNuUsH+5bXXVt+1M/Hb7UXn2zxr8WMOeBVg+Wl5GdP
vKyjFbdt3kOz2zeR6Vhpnmp4xZdmRoNHS0dKfjzxDvleSyf8sDxPCvfr39PvaGLbAiLjkccvCUWB
tRIBjL4ofOCrtN6MBAtfJBD4SjUZ0L74i4G/0Zxyazj8uuICiBXdTmQsfslZCHz/wgRm7wl8nBJ9
21BZtNoIzo+2Fp7zcUWXDJk8LljDq43taOc6rvH4LKltSkDpc683blRXgkMnMvVxjd6prgTP96az
paHgIL2HBS9HlIC2Jl5mWuK54YfORgJPxzpeV4O01Awvr0w4Xo7x4wRddp1p1S8UNbxuYmk3WrYy
QNW17qZux9sbC4/9Kh9n8LGcc5J1ni7/+Zl7aZ0EQLm1krY6D8Z2HdtGGR9g7NCLfJwf/AWY5twt
cjc4W/KrNPRmPY5qkbDWxUlmuRSl4tUl9obRDh/P88oaRcvI7wpZ95tCGBUz4U1EU5dybzNsq8vD
c+65Pn6KzcFltj054AiI+0lCxjEkWeaAdCNNnLcPoWnblENh0zCNjjesogMz1VrgRaZ7708Nk7p4
tvUWYlivD1k3utSY1As0vAsS358A60wQ3S8Dxha9bsMbxxR6bQ3DxE3ewvRb+eiQCtxOulQ4XX/i
dd2JCjdljfJmvdHO9V9ExCfR/9L8jkb5xgUcHTgtGCUPDsRGHThmLwdL1RnJC9HgpBStpHGGp5wY
9uL9mfH7Kl7mRnLfpqsrfkf0EtsTWixaPOIBtN8sljR6RcmfNJI0cc3v5VFJ2moB4cTjZnIwkPe1
Zqbd4FMgUNuRFwNGD5KqO2ShxJlP9yn8OnOieeS3YyMGUwDTnZU2pOltF7vMRD1Hs7ZO9Hmnh+X8
Io29wtjhC212R2u0++l87ZUdFergqQ9yIAeZGKpwXGcVsFDJ+Za17CgMlpIkeAtWi7Ii69EpL1tx
Q58q2vGSJ5ozTu6LaO5ePCZqsGbWwssB1EYF22JsisdU5InA0jiys0XmEQuv86o/bMVhoW3eyon+
p+aFTg8siWnJA0TmJZ474AJqY0VTA6KmyUiDW15ZgxhvTmChBSvuxx5ZCXHwCDTVRzEgEsDusKbw
gHXmQTQnGVHdEj868btLzNQPqwvwjDeS+8lbiBBl85bAzuDEPVnzq5RGuZl7NRa7vR0YpYXw3p94
sE9gOw1eDMUksMKNES8HHBhdJ8n7m4pP8iZdjOVoFOk2Wox6TrWB+OGttM4MGD2Lt3kB7EeW6Pq4
Ua0FjoDSUjgmAONoxeuojILk4u2EBqFHo/ubkfFFIJC5EeMCFiisEn1nnm/khFicNzN6780v1Hgg
nIKi5F4+KiXk+6kDviOA2wN25isQm5eO11NzGdZGijE455ADJl4eW2CllBiPMcAJIpt5qRoThmVq
edKTHAzi2SbepmmUMSAfUy1Aq43Cj7IdeVdgszOMzrj8tLMYdE3AERBdRwMcoCTfLySg6MaIt4il
uC9vXkWfeyqvwPuOSrKPYEcM4r6CgqbWSENPhRl5VyRL9tGj5BgtRmyBx23FRQpudvQ208CPqxTx
Io/ybZwHh7ztHcWwQQDPd/Fmx/D6lpXEOAvYrsTYYwRo3/tQtx+GNeD4iW9WWh6W1OQDEk1nSk1N
N2xpxAtdvoIF0W5DI+3jPorAGVjT4IEXxTM+y54EChnHjYHM40xbflMTrxJ5MxGsdEZ0wMaYKK0z
dKq3omV+MmBbEQ9qEaXleJJINX7Yk1D2HLngKKG7POz2xhso0ZN40ujEECXOWRDMUXkXsv3fR42U
X68ZptCpL9crlXVfni535+fzj/PLBwudzxvezfuyTnWVfn0+//rl+muBTD/fnZ4v317u3j/ezh+P
34efM2twpQQ/mwjfzq+ny8vH3dvH893j9fnzxwuHX648pg/QerZv1/f3u9Ovl/e799vPz89fTm/c
J+bEtPKFyfLrXE+9Xz4/Pq7swLPuTSg3hTOdr8vux+13Ls+Xl/M8/8frywfHTtM2qvKdKc3Irsy8
u749nVmqU+znrRruPz/fPy5ff5OGTq5nvaVivLv+fH77+nz95e70+XHlPpEbESWdwcxPji8vhQPT
t9iJz3eTE3bipW9aNHPux4kFzy5dHXeNbBXs69v19fz28dvd6+nt/fLyjSW9yW9KQXZ1+Dry6cv7
Tek+zneP3y/PT9wX5mTKMoHpn9zx78vptgRvTGDHb3pb8m4a+m5iOyu0RjYp0TKvF36RNFGT15dl
sMvH+Ued5ypyduw2YeIWNYV/O98+8H6+++Xt9CrOf/GMqwKXh9/13uf0cn357cf18/3uy/P18R93
P85v326SeDu9s0aE2oBW0nLl5U2T3r5dXt6LKt+9X/6LJSr6kU7e9Onxto5ONzIm8Ds7pfmssKpl
WOkoXJ6/c/f9fPn2/ePG9NPLN14/CHvaheJWu5apsV8xIytRDMtdURmwQpYLokpCjUzORFxPH3e3
US9PdY1Ps+PXORFOrtUZlp3ul2/rbnGb1EMR2F/u1N1f2M1nST0qu4+vt3+UMe0bCnzDkW8UHz91
3+Dtbi1knRp8ysLSc2roAq8b1vvKmXcueOdbfm3dTcsBMe7nc5sNb4bLZ+ZnEOUz0xWVDmQNPF3e
zo8fF2Yvm/CzMSrwWP7oqfh2/v9pe9Mmx3EkQfQHPVMbSfD82Nfs9LzqrrGunt15H8bSGBIVwUpJ
VIlSZEaZzX9/cHeAcFCAg1G9s2udUxddgMPv8zLc+vtwiIt06j8ohGPIaO0YVsEwc8RGRwBTAJnZ
SJn4IYxcZoconp8XZPx10tbBtd9rVX2bHpeD8OSM6kD35HXglcbLeB/7UxxKxh6ppHKNEO3q/28l
xfx2Gy9f48/esauCwMq5FkVsZVkeRzmjvQ7BBW6VJ2mPG4RrfNtDNPFDNOzrDiWNf4jxNt93UU2C
J1CMoTuqdAsjVr5Ix8BQ42AWwkcKTMOYCdJ3VrEtYF6Oe0EiKMZDLcptT/R/QVWiWeA+7vsTmUoC
Q3Zrwq0jJJektbZbS94E9QqIZldE98O3nb6QUpPRbOcb0NXQ9fWBGCvYGMHE6C/D/dswXHaX4bW/
j++CECkYx7eYGaieXwEVoYB8RtqgzossD8n2fDu/l1xOY4TH11xoeaUFZCVLs+nlZ60vBMyz7yts
+MxClPCJe7VlGOL9/u2o73O8D1oGMNfAPuogCe2yk/WADwr+qQTO2jFMR1byrYXrVrIBsoAigzWF
PEaqZeOLLSt/4/Kmc19jNq3Iqk2oJ8VpGCr+CFUm05ph9ZP+oZ1kWSiG/RoHY2ZhXZUWZBUnNvwH
zZN8FsQzJwP1TAZMdskOFV0rC9PoM/YXI04KiBDKy/CL+nRPlin8s/ne3wRizRmxNugKbJazgnht
ZbIwsaPhdNxyxKJgN6b5kM/Ecenvj5vWmOfxu7ZjtQM1zoKpxpSLwphuFzuf6OgSBnnErH3W6IuN
L/g93AJt2FD4oJ+QZAHFRWPu2+m+J5YE1TDyAImrbQOJPBCyKLYLh3rck1Uw0kDpo91Wbb8Tn8XF
WpYwwkhebBSxdbUJX3nCMmwbWXFyzjRxU8l3zLlX0jxbQIxIpSgssRAXa0ij/tFu0zfN2QJHc5Ly
gwUWReC76f+BjSLYTAnnbbHB05RZMxlTYQYzoLBlOZBz7wR1a9lGWHerqaOa1aOtFNniags4UrIC
ewpACM9er1+tjLOJgOpaNujBeU9HIQovioGlHZVgsSVpOmME0OIfNTeMTFQOY58paVKGdeCzmgZt
IKhm7vh0KEyemYSeb7fNlud3DMXDuEhJa6qMM3H1HAcy5P63bVKz4ryMFS9lyFTS9z31V+mS3CUO
CTonFAQS7eLO/cqd3g3Ho+QAdQ5UDRGvOi+ffcP9aeiFIKInuxluVrkbMX5TlM2ae4vwc6WFJQfV
YhK5FVgPJJ0Qy7O1aQSNNj/6GLqIdGhrplMeZioy1WaybbKELIRgcdtuUEh/28oSPNAa1UlcnwiK
5ClgmkdsuK2qqWnWbqnPZptdENvi+xR2SjqVop1fVNw0bHCjdczgSVFowVVNGQmM5bJNXlVrnzSP
xwvT2Gc802GyROLATW6WLUViMbJ20zsksGdndBJ/58/87SjltiFin3MvGKokNcywFbLB6Ms3hFYA
lMDyNTuOAZR2oEVDvZSdN1QYL9P9PqVjitVab1RxDS2QbrFBwOayZKwb2QyVDf1yi0ObbwonN0ws
FNi1kMddj7RJlWdrwcprA7Yo5vYpXdQGsnG7b+P9zZbbQDp1EGRfl8gKhNzshDRlUZNg0s9m3IQ3
LMLi5TklIGhEzmyFbMCmhDpzHnG1eBHyQZl5LZjVnSxG1iJAjBxzfy1E6kG3RpInWbN+OUZfYFnN
+BlWZuDfE+UjvaUEckfVLFBbVqxs0zU8W++xBWTtQC4SPmyqCjZqK8eAQ6FXAY0Ft1K4AEsHX9NC
pFJMJuGAzDKc+0nk9euV47kKy+A7nKZIEQcx6RZbOtukXL3MeiBqGwoFU2p9N11OH8JLlLI1Fgcs
wKzCtQj7mVgWymgSdiyL1xWmsy9QSaD/SnBdG9mjPozz9dR/CLZRvg49tBEfL6kneS4m6t2bMLkg
GnmWvI6ExGyw/b2/jf3LaSCmTAXdizXkJu71pe3phAgXiHVDelhtCAgjUwncVGx/DofIX4dbGpFP
AcI6Wq4i6Zmuk6OfKxSmvIaUz8XcN1kq5i3L92TPiXWwXBJFXDyTTlLRgQCOlu0DXguxjiwGM/sC
FZQbqCD/TDK9VnLYzcUY0sHqah3HqRIp9ESmjgsPyp7S2f4ForFA3vKz8cQ5mealHPMQxEObchSd
rcgLWwWuS/hD6OXdp2vSxdsScbpMUvwsW1dorIqTEQTaDpdJvFTOa9ZCNlcgKpFQzHlWyTaNSV8I
sZtmQyUGish0PI7XTpSu3SpFBRsC8/U6iNDI/m1aoWWy4v20kZrzLHyonGhJa0rx0Xwd0azjRYTp
lEG7waPMNzF41axzUhFQwuUqtSHakigqrOSiwmf/VowkJUJTrghJeDElh3mfNI6gan6D3W5r8BIe
QbMp7L7Fa2mLsKTnjoApye8v47lHFkolF9s2HCSKFLCI8QFW8RC0JtBTEdNJeVHKVUmBeIVIZsX6
XRvZ6Ui7jt1a1KxC97blpr9P51Gov+KVORRJKGQJkZY59Trr3KSqMgTMNfJDeH5/GmuVbBwm0taF
SpW6YSZ8ummih04Q7RNo+TMJ5gCv0o9m1HJZ/tSRJDiafvgF+dWbwlUNDU7T8FTLs8OBcOt5OmhZ
FI+w5oEoHYaDbo/BiGapW6Z0DTuAaqZtqAhzuo3QRARHibbrNK6fDlSPSQ5ad5TMNrSu4LH6ORox
LlxFD/bduK7gBVaq2cuKFGxmqpdloki2iaajkrcmsp6W6204DrfbcNBPe7i/zRol97fpdbpEwg2F
K5fBNjm19IfaGGl/BH05a88BEALNWYmuKstRK6xYNaAZfbppPEPPwQ/D/R5vv+yCcNadYrtfHuPt
q9AwloeavEAxmTbGMd5tVjnMgEA18vQ2nPqP6XHfaUWmT6E9jUMcF1moOcz23h4eQO6a+RCtl0nu
5iyLUG+gvsJVq5px/zj1mqFvI0oZzYgaNax/bCc2kCnlI8lob1PkZDT3PNx372OP/hVl0qJ4UzEK
oF5IenwIcr9ryR/FXst6/bplI0W6G859hpZzabhyhuaqRK+0bRZb+gvLcJ9jVLqwfr6Mxk4hAORG
wzjaBDrsFiLC2qjbEO++Zl3QDJmOr1fh8zgnFE3oalaFJy5m6w2WYxD1mdjqYuQBjbwOUYlZtaEm
WdbKTE2oRfxtHX5x1+eqPzZ+esY7GeV3eC/0q9Yc97cz6cMEJmrWHlx6HahGCSWkfuNwUONkibVY
I3YTJBo7gJtGFukRTusgBs0NM/lVy46DIIsqhs+1V+LwGUWhk8kQESgrQwagbHf34ftd7kW2Lhr+
upubw8joSdFItJF1IblKne7rV9Fo2d0hSByVWbzlGsN5JiWyqf27yhmL4h/dumXf73COYrj2BLrR
O2vrIE5ijkbBwm4sgu83UCn73Xm8EIhdf72etAYlzjli3T/+i/jbBfXxkwiIvxazfBRuhspX2gUJ
6KXff301qYbpTla39u/eh7i24VMuWHnedZpHNG79kQV0Y+N2D4dRpArbPkm3ZgG59SgL8GbjqGMG
0TrNaMsqL9H71aXPdEwpW3s3aonlvp26GqSw22KxNlwCd0gIzto1zHX4uPQxzxSM3tpXYGqFQqDK
FYnHcekoHIfdFq7t3rRgx3KOhYuxr8y6JW1/lZyY3CECYv9mG4w1t+fxrBnqOOpDkIEQNwebkF2w
2BXMpY5TZRea8WFDSeZRkM6XCS9xW5lTePUU6NwsjjsmudyUJkfiUfJ2dwFDuSzXrCEPualVSKs7
2to48MUGJ0g8Zbg3MmcCCuoI3sD+S4xOaaugZ+jP7YjyCX+KVcwZJeTFcqstDJd4v40OwUHel1ry
i2WXzIpnl5NYskdXKs5uq4ks1eoML+IYn0atbXLFis1SQ1Q8r4uFUlBLaVvrPL2DwwUsNx3pOOJI
m6ryrTc2vSHhALa1T6KN56QlB68wkw1lz3qCwLU/SDqgYYYNWOF5th7GRJE27R5qJhdiJlz/sy6o
iJqVPCPlEFKC3VWamQSeExw3YfMQiy0Eebk+0NpLzcZi4orKdM1kK3CGxl/xGCMOWpIH25RtVOwJ
NVbFskImMmLKSF3X07cl7sKGVpXL3Fobs9iQ+CpcHdPK2ZzvH6d0/Kj1CTULi4ybCCTjZLYqCDQK
YelI4fQS1Q/uUPDkxnpaSuC+DsPVKElNyHHib8PRBWd1yJGNKjYtKGSJgTzp3/vxhEUtmBiKElEe
m4S02yYlaydcINYvD2rbvWn38FcgyeTouZzJbt715iAbepRGqNkuzpVy55anrVgFW+fFTK9BLS3K
RB7p5MwfkWVxQebgdBBe6PhMn7gPCtXHl0N/O8wi6bZMtFDwvl2JqOj9Oi/awmQLi5kY8RZVO92T
oY1A9PPvvtF98DGvcJ/hNOzv0y1emMAK4jFWTZbA/Lhep9t93u3nORKVhI/ZYCscQmgyzc5VxI+Y
56hl3tAvcxiEuhm1hIWqzFRhFSYu8wyO/kYyJAGeTdNnpsKxMO3xseOl4NmuDXgDcF9UVonwJNJH
eMUCz+vMid03Bc+OOMpWFScxeMC9eRxatYZWi9ASj2sLHbJlkF6WPFwRh1a7p4VnKWqTBiP1+Os0
nbU2iJvESMs87bgErcbLEexx7YXq++BDjkLdMu/XDI+GjS1UqBw92QOsWRGiLpaf47fowtUxpEl3
86W/4mfs73fj8daf43PU2VY7Fs/kAJbxlfvprI08TAp8nASIfNg04kqAKfl1CKxhS9QgU/IEStus
44UqJHA44+MaB7ba2PMMTByYli9eO5o0atnA7EN4G24Rex4hKB9C9Ywbqw3f+9MjYgEjJDeZGuKP
ZWaYIkRRKUnPqlddmmB+66+mbwP/Epw2SJCxf4JMt/77XRZZOeCGYCi1uDO5+y37eRb93JR20edd
5PPIAknXBYWf01Q2Ffi8jn7ehX/99dYfIJMewBX2pvS3nf1P9OVUVNAtpRrZqqk/BTIXQDLJjmFa
I4p9kABKW5cMZFwcL42qmZdQSZ2xFM7IdDcVT6tNIIUz5vUWTD5fWzhlUfjXVpsASk/jVDgXvQmA
AvkUzmaxbPzMW2WMuo0QSLBmEf2c8RYfT+fzVhXlLfbrVHHWBD7vonKlWHN2Efg8engTP6RfbyKf
Z9HDN0wwcMfG//U2engm1Tr8o37+vIgevuOHZ4OF/F+PvrtpKWKHD/x6lkXvXq6FYgB1RVQkd4xs
eNuK/3ke/bxcPVzbBe4e/bzln9eRz7O4QnDaDHt0izx09yjZdAzzlBUOsEwRxbyZ3ECHzyKYz6J3
bxjZPItI+3mUaNtijboAw2ZRhm3Z4WnEfejwUbJpGOq6xkyUc9/bqf++MAUPPjr4VbG22GxVQhsC
I6nxLOxNhcAIOizrtp9G0q458zzZONsQmFoAU6xPo6JgWgFMycDYeDbAIWv3yZa8v2kIb9PpEJVB
rZsTAuVj4PzbJKF3tP1425/i7NyyNdnZsx28gLlOp49XbZ3HOKtlO9wyLwnkwxlOp/E6x9VKyxZQ
Z0bFPLMIR4+K3ssuq8q8eKV/HignuUfZo2ULBUO3ej5NEX+szjuNB8fk2QSkLFuYMi+RGyLDOL20
DrFRW849dBlHSbvAgQBUnYlwooRnh27ieVzpng/HINr0SAq3s9NwEUMu2BEjPxUnPweHLYSIwYnf
LnNYYhmSGJw4trOawcF6gFLi8y7O502az92BonCWFZ0WTivCiXNW5jgC8xyNdK04Y3WOipDjVYix
yjhTVP4pROQKvNWmwdDfQcegTMh1nJCfJU4elzibjwSC49qPN/lYyoHLI9LDPXscjt2XmXn1JDE4
RRyOU1toVlWiFIqfpyjTktUSQB7HdtfF0bOQoUA/K6aqJTKMU3PnkKswil81gtZr40hhj1SmeDOO
lJYhRUXe2r1R3CQomPKEwUK5cKm4JM3buABcniguaFrlH0K2b+K4zTNfDRfCZeJkm5dpZW6hxG22
nClNmoKqpJeO2yed8glG5KI4G3StD0Zkg7jp1zluwjJGUffmApIdG/C4dfg4Tfw4VdwSXQhP4KLi
E0hp46eofWZsovpAH+kBw7BmWSHkaaa0Ko/6rWRwTVoOW4KOS4p8JSmC5LykdPAfi8oq83EmG3Fx
PstU2tR9OpYALt+Oq7gGzWufS1pROsct5mKDYWlPEzcrCxWn8oVJBG+vTJsnz9QdR7Eq0ih2IkSQ
sO5aAFKVAnLizkSxgQ7dU8WfvKh9rSEp0viD54xV6Y9ScN0wNSizfvnkY7OknuUICpPg6QJhLnPq
XEg9FDwKw8q9woAyAdCmiJkFJGVXeOqLp7aDgKQkSP2ZE1UCoHZLwMsCkvJlPAVn47RYOoCaKvCC
VoWp+GphO62SFhOzJXZhSEUpQGILcylAWEgmS3yd/EK99arVPHKmVjgTg/Qc2346k7D/ma8DJlKX
jIZcWAWtGMb5COnI7Wrhdnwjdpe8nQBJsUXLfJFH5EwCPSm2/DcetF4g5QIktkKZD+iJQBKWMSu2
uzsuFBZIAmWWDE+UbsglSJUAKV9ziwRJCXgqm09xi0CZZfWZt8sFWaDY7Z4zmU+QBDyp4jNUkAuy
QFUBjFPdKKr5gAB1BkCYJmoXFFeVeEAHqYtDKhwkXqMfgRTh59pFCVS1mrsSg1TEIVWfO1MWh6QY
JDbxI4anNg4p/xTG8/jbdeztnuuAniFV8TO1DONNTIA6SCoOqf4UniJcWLvsxGY85XFIJTuTFTEA
ytjrAdZZLPmIsshcEKooRBvLQcqjkGxzdrEa5xeDVMYhKXamKPqdn1LHb1d9CpKK40kxSM9J7ucz
xW9X8NvlMWPUQerikNpP3S5SuZE5CU+Qipj+cmdq42dqGBVErT0HKX6mgp8pajG421Xx25XsTHnM
2nNUINB4/TkqiJ+pKNe3E1NyEQGaOe93MwcX8dvlDtIirP77v0OeEk4vEWviOueX8uDQddjvhu/9
+XoK1aPGrQfFBlZlpn84RO1i/YRihQ9xDRH1HBSbmW2vlQXPILiQileURPWd6Kkr52ArLD4OAhAK
QErm6seCnGLQQbWspWLpqFwDEF6izNMVmGLxieKxgajsE0uEVLWOnASpQar7LFhdD1VK1kEQwluo
cn2RNghCiJMoVhYU92bFwIZyF8FeyjAA4QylI+toYUA04KDYqGJLk0GSyoQgj2JE/Vx26s4ggCiL
J76IC79E/hxlIKewaLEOgZMDlFRFxgJr8QA5gUsVcxDAcvv5UgkBvK+jIqwMyjfBE8REVvg3bjYg
UGDXjIfvIsnONTipqo/JoGrj6aTLtj64bc8rnS/bfr5E/hFf150Pp+duJBeJoHP/gPWWA8Yv3DUe
ObfdFnACNdfbqSVVAkjXVT41d36bT3wcrJvLyxK2XrdaE+9Wc+1ybDoIdNrt9tN0O8y/+x79Xfcp
RDOMrcv6V+M/6rqQmH0AHWJDcjwLdjG5FjvbVG2unON/DoOOvrgphu6f3W/9ZYaZo/EWRNb7US8G
HH58GPbTrY9vEVXUufasJ20//Zf4nBb82L0/hPaMooeGxS9iw6JautUqW19Uu1PLv1l2TzRnP4Q5
Z1Ibbu7/JFHdCQcoJM9bOlbEiq1iGRP0RRjfhV+yDiL466Ja+qbtJNkv0PNNHxOwL9PxC24miiXj
KlYP1y7tgvtec2/8G+VXrLVuYgGcwazWin/u0n8YtDNDQ2jcV/prln0usc6t8inNYSMKgpUpudFV
t+F66vfDIX2CNlTR5uYXbDlB7aFgyZWd+nkej/oawGr43Wmc71+EXlRFHt+z8eM+/GKbLeMQGl/b
dGsIQt+xIlfrmZPY5/ePq/D1ymNSfIhk/CvG9q5i7dublp5f4mMt8EvWkZZTnaSZmTPdvvSXw5do
7/8X6ueOyma26AcwWq6b3xMPUTmZVBrnr1xDkBvA+aYu5ymwzzVV9vu3szRcnq2+YvXQDAYiKv45
293kqlDlb/jC4nKxxtxPxn/MzenGqhYT94WJ2CsViMJp4Wwt4L/Mwy025ReXCxu52BJWzbxtGgnw
5YaiFYfJiTt13dhbXEHg+gAMHJqY+yU+lQ4g2FxcuxpFGV1m4ub6oZZwxTXer0a/tfnI1psJZb69
T9eN93ZQVIbWRMfhnIbjRgSW7Diu/NyAEQSjGz+HmGPs4E4Q/9Hax1/7/Pqp+7tXQylDSoIKmxCL
ie9tNXfrsyGdQGCngixhe23GTsI0i2KRwvh7QPMerlJP5HiFKSBzVxHPjfJoreuMNYxjQYhIEr/d
rt5Yrag1/kD+E5suC3PoBIuY+Vr4rSvPssc2XJ06OCOQbrGXLYwNFNK2AnWTNku9WxmSTSQqpRUH
bpYskku+zNyhTydN4GBFi3YUAmmcjHWDJjiXxV8v84Vi+/x6SQ5jD+DcHfsAKeQXvlTqVuwd/9XG
I53Oo1dZEdRBqhM2lLgZXPiNiyYzKovfsAmRl7lhCrXuV3FAV50/Ce2k/GQypV0C8QG9mSTyIkTk
2kc7fIFFo3GB6O4P2rRugmowfv5W0PtO+8WP3YbkmkG/zBtN5dGm8t98k/ZqmXB0vVrP1k/8+oX/
fNlaJSRJqPSIvSocsX9J2D7K4+uie75+/N5ViK3FMVVuDKZo46WoNPNVaBfQKPFTZ6Hflx+o7QT2
3kQjTR2CwHV3/MfZE7WL7uPMkUJX490479bMmZIuTVx9xAnLN4yNSyAFbdyMyNI4/VX3JO9TZ63z
p9dFRM/D4zDhB/1l/ya5VwVbz+0UHX6/colSo/bYcjfGHzg/lMJfu/lxu02v/T3upLLlblWGI6/a
NZT4tyXbDOz2LOCXo7CZsapCTq2dMfhlhYs4mNp3bo2/ue/nfW9GRo1niFj3QvRQqVC0xMD4Is+c
Y2l6HHVoor+wdHGP/70Z6hr18FunWSwMY0ZMZzHoVbIeAL4BDzz0qxTpykJ9Ghjo+tLPX8RpcK1z
xNZzHUybgab8IfrLrDeyXaIxOBLx+/3RnxLk3jrX0/ZymI0Hhy0Hr/yWHcu1j8toJmi5EZ5f8B/G
ANWFP0igcAGVxIcO88xExz3GhwcF83G2KUyplgGt2tnMUHlpP0Dr1LA/AOFxO8V/p/S772oTVr+8
aiEpn5B10xoJZ94aQ7GaSCgINN2+9TeIYJ2v+v4vwPnSaD616GUcy4d6w00qfQoxwT/DfdEC87NC
HYRXL4mjL98S0f/arwsp3ZfH/jye4qFSlruH2E7pklXxT1yGAz0d9mNyLJrXKjjhRh/G5pDjd04o
WlZDRL/d71eTw5oN4+yn6avFOWSO6e93E8yfpo1HwV+Bm1thZKJcRiTgeoXBwJlxLHcsyIpAigUI
VHLZMVYfl/3u+9ttx45kUqBaGc67fb9/E2CWC8wqdxMg/YMN36/6eoc4kHwBguUBds/UMkrXAIoC
sPKuWGp2TLGL5hD9+S+PCZqzcIZN/BBqgYGbjIjYfp5hAxSOTwb8wKviIlJzpPiJWgctW/YiHabH
y+o8ZiPFcB5hbHMkwo4Qa0cCGeYbMhPhxEO9uteDg46X3c8CvhoHq14G8tzfxhvucrjb6+Fir+8x
MYNYqxwknO2jTAb82/AyT/uvpgXOMcHbx8tI+aEJ90dSrv1t6KU13jX59ApCT3wWA2wlfTlNL/pJ
zsM8w8iJSbsAwobLhspPCBKrYQRI97dbZJkRfcnO4AYCLtUCl/0EYxBR6AsXcT9fVkvkaNCm5203
vMMMwZtGxQcMwxYs0ZqC1HQWN4XhPk24k0O/4Ud0kR/l4ksfnybZcZrmYfcyHGHKvlYRF6ECIV8A
sNi+Jhf9s8LOIxrUWy/fYl1ZZXPmX4fbbL7YD7BzEt42Vj3fFK4OH+i57NxL9rdb//HyOB6H2/s4
fIuDcA0dbFmk/XUGJQ7BtRXYMa8LIscLo8s4ThCM671gKFnoO/qdcp0W+L/al5vz40Xr+vukJcsc
/23l/3btX4HeJf51EUIAfUT7f4b46ZV/eiKiy8TPHf9h10LDqnbp2MiKtJiwnyMyFWGwRpWMqsn4
8Ymc48d3Vy8q/KMJkmD85113C/CTKfo1Pw6Ldea3/itumDiBXIF5o5fDdL5okoofylESqw3SOHWk
qB8VlX4khoonc50pRVZiUtfmKAnD2mh5XJDZcUWVln4IVysPKUVbl4710VKm0w37t4n0oD6n9nGG
yyzlmmsKUZL0cq6ZQxiK0/jnde1/XlgDX553XS18Sp+69OTlcTrBK936vRQDqDume9RK6j4uGpG7
RWsKKHSiH0fK5k/XP/bjaffy4TA5J/Vr7XQb85S067KPrWIgNVKF1NB2HqQLOaxgFLOJXOc8zuce
dqVY0ZC+lUMVky/w0LTuTtukmlqjE8WrRbzRDVsXN7r1r2fclIebCm76LMIcdzxKESIcwhTqfQE/
KkQ1jwsMwoKRAzZuBRtyd4bHhSdrvQvZZoctIousoMy3glr3/fTys/ZhdvdpvuMmYO037L8KkFbE
0zDXQTh/ETr//jbNc8r2qysVkhv7E85uxrcQXiEL/e7Cr8Z4u/e3V4F5jblAUJwv/EzrWg7uBcJu
qpD5FgTzuMJ06iHJK407GRsadRiOJ01aRN0gHvX/EUVcxQS8G2gUvuB0uZhN68nDlb54sqbefSea
CUQw7OFqn2CjphXRpwrZ+9ttK7L3g4b6i9abTL/L5rIq/At0hv/P/fwV9izBm0hlt3VURgvP6JCG
kzPJS3IKRRB0mU/h+adMalKTpS8rKx5TgIVZs3Rdp6FLCggxW3o4X+8fwouXvm9YxDRR/z3l59Vt
iJ2uk7jAJCjowbvnEYdrhEUYoQGgwgwcIWQPh9+fp4cWUP0Rch2Lcf/ymD8EynOXgDaQPCu2Guh0
nxXnRRU7uJublXpThDD7mAetk0EEg9elXdeRVlPiLwnyuAqp95fb9HXQBu792ArIaUIa/fl2V6i9
vBw0p4KZKNyrCb0+Kdbt0Q3mWruNUv0JVlFrxJCSgjOeJBSrPCT5yEZg9LP4AAIJOKpk3gjGKDYa
Tm0dQjPpI2JCSRg5hq6AGqvOJiHOVxAj2+23qgjJJGYHJsRwXQe1yTO5fLsBcvr9frje07zQ+naA
kjjsE+5Ak4cMJTCcNe/fbz0sq3vdzSdJbxnnev1yS7OOxvt4efRiVXHd+pRoonWbya9sQg7A5hAR
sVQeChiy0LS1YiQrwL1ThenjqlrsAC1KnfCz1AjOpABPqZC79hsiBkSaVUhOv4yX/vaxi1fA40GY
1dguWaHLFE8akFjIfVlXLfTV37Xv8PK4Sx4Ac4Bd0SbRBPmaOxsIFSijDUlbS5xMvTm/XnpfJ2da
9M9N1Y9WSu9WXAoU1oUYRf9X8LW2UkchsV93jsQxL1cG7HYwlF+O+j0F9VM1m12KrcJJhd5pudZ0
3Uc32tLN3BMR/wRuBoIcEKSFwXQ8CrcrQ0Zw4LmlR648WjeGB6alSRHtID8vyMM25Igs0Qi0TXe/
PIabYKEWKhpGOOy+vWmjBbQRet9XjDrLfFgFZVsy+k7PE5QaIFsFSm9DWnSEI5+G/p3U6KtcylK3
QU+ci1FBdjj8YbZWhcWw7CfUirmjbr3xopUu/fsIAZndZfgGW+8SOq500LBes16bFkYSJy0M95hg
uC/9L6u7XWCT67wfR+F+lU8W61gH2LMjWin38X2UPKqi8VM9dUh/Y5TwON32w+51L+DJnYqqEHz+
SXFOGeI+X5pYebAlzrE6TC4F5bhuEmizCZ3Qnsnz9vX/mc470i4Co6hPWIdbhXoW8r7iTqZAZCvX
QNm5NOdxppIweNoR3bC8Pg3C1OnMK6IxprWWxaC3KWVvdzWf+svrAwSjtd9+d327BncSqDY0NHqy
OY/zpAXkaJQQxG92wkYVNpCdtWT93L9rPryNGutw0/k+XXcAfYjXdeVNzZZsOIuWzgFPOM9QIwXM
GbWMEU5Z+Us/XGjcYvxFwHi+6kNtbfe6JaP+IliOeIAiuKUBk0m34SZsp8n9nzYHx3ehNdKIUuHs
bWiqvXlKbSv3sJA6Vl+PR2BdxHxSzvur2XqBJDI97ietRGct0pZiNSQUofJMH670S99sU7PW4gdz
M4E4+EYYl4t1j6oKkY0Kv6Ha6FVYxH61iX2oSDsJi4zYfGR0TGxHrVGCUvyCyLsLkjeMJzj2lGJk
+7UX31v/KwEt5WosvZm1oO16qtoYsRBl9zYeDtqAQtdLK7njOJwOO60geg1MwHkTkhPACrcB0yGW
FTDtqp0b/Y+i+82JM8oQRJzoEJNWLd874cox3sfDMMHGWhDH/zRtMo7FSp/O+HoUKDOaQxs/57hQ
ZYvAWBx/P10/NLbm6QRnkgot84ZxLzj3FRHpOMPgg+9LDjk6LYKIrArNuBf1RVxNOMSjFqt8egdB
svs+n2gp825+G4b7777HtqTlwcHyi1w5DKf+A+TA+CvYlq/TfYybliROmJDFWfz6T+PpIsQX2MkM
EG97zMho2+BVoMwqKDq3MRI+zR/G10pgpTZYcb0d/F9++nFXZEWx+7d/FygouG3t5fECyuOgrW6K
kkpilpX7urINU2u4hAt215Fe3Tx6XGgGF7cBCSProld5PfWS2CxVaLHB4TKD5D4OkDQ3kSVB7LAl
feRDmM6tcZ4x2scoOL7orwytcjKJ4eH8MmCPzQ5oOkbNZEiFoXP6g4Cq/pOYBN9tgljL6Jvy8/QA
vyKeYqO7d4JN8DlQVXC54OOCOpwZKDsayTAcBO5l0hI0cm5U8usZDPd+niGqj4vVRUuvCxlMtuJ4
d592/QsogBct674KNmwTsg6M1URKErh0dxjRFdCyk2wp4WB1aOEEPxhErG+X/gQ6QTjZqi0kot6B
jUJCI14VTOKiCi6PAasI8A7AwTUTbCLWTgAQclv2g17DYs1QKfwOTJ1jv5cO1PkERgcqs3zXnxBd
d4jdGAUW01s127/F6lC1sICFbTvt/PZGmQ7fov1JZI+rEOt80/pYY+gAS+5jvbpkVKym+OQ2mHMe
71jTvMVy5RsM3SAWbvdKzkyRh5wZw/wQHrhjNnGnTloxnDRGZhiQQ+hBBQp/B+YLiAdBMDCzLlOY
Ti2XEUpfodZwN+pXM+W3Mk/X7VPbiIbzpx//+kd69h/AjTwIhUVEA1VY4hsBdQBfzPjySO9Mm8XJ
ofF1Y2Xy3qdx/wEif8DA2B7SE4fd/dsoYawNujP8dMI5Wt+RIC2vLTEt6LQFTM1uwga13KeoktFE
Kay1a1jXGKusJ2trvFy1nEVf4DdZ4A3rFmLekRzo6F+1ENZWxPDLY3yPm7F1iItP/YzOyqjF5UEs
jqTjsX249TIL7RP225//44+i6ZYFt+vRyC99PGjAvFBobLzsb9gSqZVHfPIQAeVXB0Wk/yydUXHR
IuxE7JQAVHDrpMT6F2MaUmhfdmyUZDkR/cTLWoldwmvOSJSiJblFlrJNcky0PAlkOSLHceqA9Fh1
nIjPNGztppaTJf5JRt6324ihWv2+Bwh/JgI9fNtXprCTz4gBTRtaCv2Zmmb/BgFVmLtVxG30pgju
MfNJe+FjTtiCHq8Fm5OUgAmPH8b+NBElYgEsht4ve62HJuja2j80Xj5SkRXeVOoiS8LP/RM/FRZT
YP3/01GIhu1iZrreKIVKWkLeheMq59Mdqn20F3LTZIVYJhP/GlEN/AA1msJmAcQnJN1Pb+Px/uXf
/vKTQB95yBvWXronlQVXrA6ZNbx8UXO08DlTvqzjkPAMFWCaIiSzsAvpQbQrrZE5a7X1seMtesJp
gg5u/7i/QQG3CbYsroOi4QL+v52xPndy/9UMlE+0TI+yRG1cYfgcG6yf56XbigCGFHRTSmcqPnsm
4ZfddgBQuXUr/3K+6ZeTFdT002xlxtIwwwSJdmqxAwQZAIp8TqdxlkJUTcXFIGrfchlnaklF0FYr
Ki04lZK+QVkzfNey604tWdE5BUS41bOZnovUVn6a2mLuLCaTWzuMsXCpRfj5P/z4V4xw3MbDEJFN
NRNxvIaQoUO4eM0vXuOfjQtFUWW7C6/IXmFZhnx7soOEzlmS8MGFlvSYkCkmvyRpRrAwX1biO1a5
F2GIGsNsUTtTFFZsUZx7jn8dXIKL9pexol4e97vEEi1bd5otRP2pIJpgyjQ81qU6avCKed2S38wy
H6wu/dliJeE6XWSXts1CUZxFJFOXNI5HjSYXipDCfA50J6PcPOzGGqyIeo8jBGs0Rxz6ey8Q8Uph
tU8WsEkiCyjJuBNa0J/Fc/jJOpfWAxJejHFWgfPei9oMjx7PmqfeZwtUkLhMXuPNCu7iYsvPDPgx
mWABzV3I4SEb/9sbYPlbP97ljBT3uJRx4JbWEBODgmJwfTcti6P114ScLPzsr/B5b1u9qMIc58Tf
IZoriEDvcBisNn4Ml+QpOVaz+Bozphe1YkpftPEUl0hsuT0rEQw5hmLOPw+x+yds3ukyJH2iMrS5
HkXeH8EmlxQ3C9kwE/ET5wO5pw3Ut0k6oApGIAyw+YLB7x3UF+Nfi54MD+9n4KzqPzeVrvQnkD9a
ckSjOU0oB7EpiMBm73CudKy0AzNnh2wqMCYTEhBQKGwTznMYQdQwVciF+TaeTjus4b4NvzwgwXob
7o/bZUYGT45ToQOu6ixs1expWIrBTBkNjmPAaQwpvcEuDbK1/nT4y9TOmH8jEE4RihzAYMhidx2/
CwUaNQvPom1JIu7Yv2PouZ9TMa4y88uGAjr/n/DtW78CpZCiNUp4iCKU4X2Wdwni64JVPgEoYjgt
25Y2m131kYD9JlS4EMZPHi0zKILm7U//+3/9C5TZWItStNZq5iwotYTmLR3BtzPRNNLEvDuMM2hL
KU2Zh9C9hSON9N6bVAUVvaBx1UvpbiZb0E43hjrKRwjxXyNqJiiTzEw0bYfDHpQLGoiGtS+xviIi
+TKYLzD1LGk7s16l3/JoPczupZ+H3Zt2YwRowfKzf5qv66BLhAJLILFVpU++fKSEj1iGoMQoRbms
IjgsMrc/jb1U38GUfEEr4n1nxCzcoJhJimmb7EnVUHaSxiBh7ZS23MNBDhxoZbJ9aCIwo+NxO33s
Xm5Q+7Yb5n0fHWZIQKoFCAsNwNaOV/Qc3pb3PA3kV8TbuwigcqdyeWg8CKQeL/dYYTh9XYfuZIrA
nL6E+VOQzxYANQ4Qq8WfZyL1gIlEn5UOHUUUHZtxUThopr1kYRwzNBE6Mm7TK3QdQn4+3reGBMfW
fCmcv6L/NJIGWztuEJxMAMnZ6rZK4R8qCAJ7ek7Xt16C5XadYP1cY8ZK/3wdtp+nWZ/H8ALL1tFw
PHBvqagQix4jgTK7vcVMjrZLFq+nEerYvxMNwti4KIB2AZDX2KakmHo+TvvHbKdhxa9GkJSDVGT0
hJVz1fEu2B0UPUrjAJQZ7hPJ7HD+B/Vqm7CBmfUah1QukFj0yB1jH2sFpK8rdw4kvHwZ/EOpA/3U
NC7WLsGj0sSYkjIhzXyBWpAWMCMygfownwFlpPC96cMNsK2BVDhI66EM+miLaF7gCYUwBqK7cZ3j
2NKM1yxoeQDvb1JCUSD8+dxY5uVYseJd87WjnhqEc21HHkBLgDAdgj52RKwyHJueGd/X/bywfIdg
OJpRLY7nrVcQIBZjeeEFBqj2sWYbAuhYs8gV6G/4P2Y04PX0eB0vZiYmGq+799aSN/kSYRIlXWxk
bWc2lFqmBe18AtcS6n4wSQw2YMRLJUitg+S6aCkRQiLAODbUWCEAUgsgYBkTU7tctUqGwqDrdJmH
JW4ch9ItUPhMv+ehjMZPJAKNwzPVIgCvwtmcpmOKUHSZ7uPxgxB1uV613T/fb9MHjNfoz8Iha4cz
1Ll20jw4RIj58SSg3IQX4PMOl6m6BsDb4wpBNogNxPIjdIJmAYHJmsbMMTUfrnLZ5lY7ojkBarlA
Rfcj5zCFzyr3ZqWbq32YvuHv4zfMzZsO0sherSGVPyXbdonP417q2aNv3bDcEvJAZVfzgdPDYdMB
Kn+abRkBQR4FOsPzTCbxHGuTMJDL0JZFraqHGxR43o+7VvrazRDGcsV2GTIKBZM0xbg/nWDz1o6W
WWIEWYpmo+FmSu4p+qZooacxSo6P00nLpGGgdXbub40CZpWu0lQOfeLOBmxKLwD7DDGV/SVgagFm
h027KiiSqVQQBePU4c3ILT7c+m+SHgDQto4S7E3kCP2nMUI0Osf1PGNbD/I7m3ggYS6ohdypSWZ1
B+BMopGSM5XHxzoYMNBifhc+L5w1wpfArk9ByAL58XX4KT47umQtiGTguNaNp4vRdkotI08piLlT
yd7YKgMRnvMveEBh46WB5EwmVVMXrqpj0FKWQu5MFW98XBB3m+7Z+SShRMzdx3NUgJUsPVUVXhN0
DNy2x82dhbh4d0b6vNInJq8PS14uOza8Pa44VMb0TYlWG9Rg/7e1ivUtCTLpsXeIzJ6HwwjGkq2K
uAYnMjcFG6aNBrxbLLskE7AIlSqYqblcnroJcNuKTfrGLlY7iOw4XsYZGhSxd9JWQu9QGN+nnele
NPMISEjHR1O3bjQ11LkYrxe72DWYMxYuxWf14EhqNgwcN8AHMmZQRuWqfWIGNp7HTV735plhA/Be
i8XD7q5f/1WbdlghG0lRISg25txtPj+ON5sop/FMlGfWTqCUGwR4NZvi7UKmT/BczRZ//ThUN7mc
BZltB+h4fo13xyL5eWPKkbCtfIaQrTWpLUdqwgNjViQ8N2KeN2wBRdB4lSRF1O4NWVqROlupqDkN
o1V8Rj39aWbranQMsHz18MU6LwFPD3GTh8auW9TypH4UQsNOgdIpyz0j8aGJG/Tf5WAmSaVq2RA/
7lw47S/zztVfr5jQ1DIzeiz2RLiiPrez4oiY0y9Uh96Y16Tt/vNf/76D1B/0NvydEn9xcOw8TsPj
bVjXPRlGZ2jQ/f52E9DThaEZ+fEGfTy2Qfpjf4rfsmF06PZbQu2OCRIuTAayEv/5rvgeBNdYMoQp
zbjxpXImfwCOAEQtQNCRLSrjxNhw5W6R71Z6xy/YMvIEKvAmNyZZrPDlY8sIm5Ex1dZpSp/OPS7O
jmwQwadzIBvczbZWWYin36ipHM2ytnLKWB12byZDuKhD44+yDhgRlbVTt2jqN97LQnxbFsMV40gs
Z7H1LIjP+M+qkI5SWWO4RUtz81fg8cd1MFMirhbrejjCxCZIoJpxAikcN+44UMNn2r1XtZZ0Hldp
CZXJ87P4C5VpbvxU4J584R6sAjZrdhaIVFAiXNDJFhCijeG97+cTFH+YAgfytrT6fMzmxP1LrH0J
LZ7GRWm8+X0jtdk/aBbDVbveVNORZV0cWOdCI2wqKiscdpxpg13/8fcf4vCUi3OxynJP1kPX8gmW
Cu1i05QBkqpdKIhFKwwMM4/Ag4urXKJlsHi6nAWC3JSD+XGFhjHN199dTBntqFl4BXe8ErViabWi
f0ReGkx1ouIJi9wPVZnGEe10/Hj5dyOz/xzt/EPEdc77YBrN1sLDKvrTSF2O/ekknMSFYlmDnk+7
RGBkBgjVVQCvyqtQQDZYoh4XP3iy0p2swD+UTR/jiBw7ZlHfDmwufdcZNq7cXGMniKk+jsCM0TBL
lF/QthVmKBH28xD2V0eb+8vhZfoOLTO2WuQCXXg2S6tNocO+v8Wxqcqakd8ypkASAmUcoW0XYjUU
Q7tZH+hkh8PEM2WEuIZF75d0Ld/9IklMQJyFgOtK8I+ltwS+E/gbv67d1zUWXRQh7JPRAeICh2RB
NkkaTA+AywUwJQTywgz5FOZgwXfV8t0y06Bys5Bis7jgy9Z9meMfTYj/sGAZupqOkLaJQ+scNOP2
RfFCbOOENNpNbmkY0NVLkttV7uiTLd95XKnQBOMeOLMbnVjThgzl0+ZiguBtnQxnU4cXTzP+pWod
a7LBpHadGZc/hh1pVkhCYjdBhrcEq3EJeqqfB0FksLQL2mXmrYFCD1AEdZseczLFpNo6qDAvxMeD
qDTKjN2C9WXECUTWtIppWrZJYgXPEZmlZ6M0EWsy0lQTeszoDxjspY6tnJLCUb71M9mmMNlm4WeA
KnyQ7UvO8BWXygqUnue+LWWq5qb94+xGcOxmyYhitiIb0SgYURtMlLwJsfY2DScoNAeVzVwk4bN0
RkW/ZnnDXNE/WU2D3gmLCfBaLKPKbMOwfYKiivb9CWaKYmaKq0IKsdRila0YQeD2wuW3WSXIf/71
h3/V6sGEUP4sht9IZbMcZ9HgYvU2bOmZNzhrMsYA83n8jlEDgUmrIvNdleLZGwCfTf/lr718zlox
6xFrfwtGIAt3G49PNlNYmrtosIu9sDNQIR5GlkqWt/HMYhsscMuyQjIkKCfJCutcLCzLKuETVwTH
ZvxkWSN8wooKnTTPciVcyR1MVcgElTGrs7wQPnPFcTibrjaHK4XDOeQxF1EjT/ik9MsRM/OJ8ETG
915/kmfCXbJQFWWWC2/TssJLF0/P8lz4JA/VNGaZ8DaN+xWW98pyAcltGaYz4WANq3MsXZ2jtJ6V
WNMJTrbiayXnFq1HeakJtmCKmpg7eazjB4ftUseKwODOn8kzjOTwkPMMTWjGwluOhRK9EC7ZhUtj
VlKSgrJsrMj8/vo7/b+gdGTuElMQ7kjXYQ+Fl4kZ9aS8MiFY4vn8Uu08+f2NbzJUUVDjddcfDrhq
wzQEzI8XskqEoxZV6KjGOsIvVji1hpNZnYjmbHzfcKVqFlsFgtR/Bn0nCxeefrpE67wRZsnyhDV5
c60E05zVKs2ZliTP8R9oWWIt76gndMMPCOoGwXYswgoaWP+pPnPuOGSWnqzwwJWbuRGCnHq2wh21
wkC1/rPeADD1cizDWzTIaW0hgd3+ZAV7sgxrubNtkOMgc45UbArNRZCp5+cBdihc1n9WG54/ProL
/aKcQaWKtKrYQqvIZ8LGWQSeceB45ErkXvmsquLgOsyiZaTXzE5nCw+qCwX574V7AVpespnh61BG
IoKf1aGQAUvy8rC72P1BqtLpJhiX2GVxz0XwVmruCGBkdWPkjWIYTKpXaEOa7sG122BNdbOH4kDL
sM2GgBkm5/w8Stqj82sy7TqVDX2clJ/wy4KLPO6UpTxWHiB39ZyL+v4ZdtWYFanmcPFj8fJgtVxr
RfKPy9wfB7kBFg0LxWwnV15GpIqR8FQMI2cpBN7Aoz+69bBOMz4qnIipDX2/f3tcYE7Dkns2JTHf
taGjJfkP8a17ZNW1obxXOny3IaTBrDuv6TYSTEJjkRgjSSU8IRZNo2jqf6HOYctuQ9J1r8JSRAyx
JuRSW4SYy0MtdBNt9Nh5ZAHVr+3Dvvc0e4wCQ5LQVaEkRyowYULVyHHRfnhKSXUhA3wFf387HSFW
9/vT6e+Gt/9VzgFVPKjiyCkEQwrnNn4EtVuy4wvyk8koxodb6Lr/FGHnoQCUxZqtJS8EmeeorQQD
uzRWBNOD0oB+kgmZf4igCWoyukgc8eU/9HLlBjk8LZlYyq2ZFBlbFiWQXMmYVmE3TSDEbCWk4V27
Nk3KiqxyG+XT/iqrmAS1saoFyAQLZ2OyhqVSIcnY5a4lBPcLDTtZMaqONQR1uJfmM2JfyNqwyCTv
EF+TDoy8wVSh0+I4AAcqOG22FqIZAkkVoURF8HeAnQM/JMBWPuzmvz6X1hPyN20oGm52p0KZhNhv
QrxZxa2QNTmJAdsyW4mxPErcsp63DhECcgXu0J56ftGngLLTaz/P2kcRTsNkTq6wDrn857PMZFGq
UPGHlNSvhMqeLIT+Fd1RbhBJ7ickOZJlf5vufxrnKwwJlYtNqixYbLI8B2yZwxpFAZ31Bv6InHPb
IctuZd4p19WGB/QK52VLkWk9L1f7iVS68VwF3mMRuAwDvlmZpYOq2o6eNrQiqrIM8iXJ0OE7zCay
42EFD4FxUo48qQKVysl6McWMAJAz4Xs+J8k2tl2qIljKY3Pin1ezXJg7HyRhUJk8a9KgYraMWqar
p3K1qYq3YAKYLgy4xPFpr4Jj33QhGxzzqtAXvovu1yXHSoV+PoovF/dIJuodYDaOfAvgBFxWXdIu
NalGMZPfLXo9rJQKDVJLcKxnQ6CuMhQafw5UCa/F1DawqDINBDh0zK0+lNyOImQErsXx4YAi9wdL
Qc4kFlTFlsq4Ne9AKmWpzxSerQhpThwZBrIo1NpAGA8GOsxeDKrwtlgfBSPVPTr2Ygf9VCu0/vOv
P2zx7osy5LolzV7B4i3WAb6Wde6QGXYZ7hCf3cl+s60/x0ZvGIOTrQOYgrxneXxqlSiX9g0WmtKo
H6US16BY8YVSSjLWDh+sLyZU32ocYih1gPGQ0EoXHVtDTt6qdNnWoty0/IFZrraERzhcHYotnqZX
0XBgxdxsierqSqxVzBjPW5g3L0KWM70VTQ8WRMqqCqRMHCvawUYnCZbV4NtDwFWOcNVlyNj02MnM
YYBugV6IJCsGiqe9edGsGVCwsP4/YiukqRQnGKwRCBLNy0Equa43aF9uqgIHCnZpF/IJVwech7v5
S7szcIpPSSNJtyoMD4MlZbCKHQsEy9LYSH9FMJbJ7AIN+XyV+hFqXzHm0bw4s6GFRIbaoA3pbZzr
SM8kmLvB3LqdUeG5OYd+fnuZxBpzpjFyLFXJ62TtMoX/ub/Fxr6niggEbNW+Hc+Y/nHR99PamjZN
R8cAE/tXIUUN/jl8LiqulhmcrtnsN8frWIiYDViTyuNJwvPiDCy+rDbRjSbyD9MBJ1CPQzKbZLFE
Jn+rz8Q8CGabJSt1E3Z6HYo+bwpMlRyJzucMV3rq613PsWn4ROyMpkBXV6py4QWf5ZJqnyfuMlSX
+TLxensluO3yXptHZy09dpiEc81cNLgs/nbcomhxMECeJ7qctvRhtSE5denfx1ezYYEUqKzNVdeG
Ihka5xdy00ynvExJfGqRWfURyCijcEkYF8qnK5Wuoff/lY9SNGRFZ4/ZZKzjfJMKSbnXzPtgouAp
/ERLLndGgHJ3OzZ1gSJQOZOl0BhZBOrsNyWq2yqEAiFiGqn/JLlQhQRVSGltqnNrN5R/P5dFClhT
oRFiC4S03GMJdCpgNgCoiS/9OW8RwcridnUC7APEavtUsT2r12f6fGXzfarUPOtC9aJLgh0moV2n
6+MqnIml5sAWzxcMx1oUE7HiMv9Ui8qnYoVtKCq3Tr4Kdw1m1hf+861sgf2YWeZmNcUlniBwshCk
RMGuYLpG0hKhlxRS1GUW7jRdEeoPP3mtuTv/74wuS/gDXbBkZlUsIVy49BkqXJCHqcaHdm3PSSOi
YuFotuQk4pbhihHJG2PCEErpiqZbpwsu2rSRahmY+GEiY12TlNLRrM3IG/+sbTPcq3r7lwSeq1AC
QJs8G2tDVNuGMhKyUNgYBGXUyphaqG3bng7mbelFrOeLQKNgXKU8t4V2VNGEol7kdyRMCl4MhY0o
xleVkqeNwI3BcNe6wfzikgKCz5bzUZ36f82mKibPc0jU+VR50NYQS8HkjDvzdnFQV6p/QmAYZjUU
tH6HH25RWWymVXyJG52N6b5qGSImPXQrPPQq5a42NTMmlBlzCdn+bYl6ku20jrUhpWaayGFJGI1l
PEBP9ve3m40JQuoiHeEpm2BJZbznUZCrZbguV9OZWHasghaE/S7lR7J2XWwli4+6AF6TjPVgTlyi
qVqgqTwkPIhyzOjaTTKNOTesAnBDvDW+9Z6UcTC5gHLbuCHCCGjCOzOVMWabb+qGEqz3NpQxSUxS
SRBHkaUHyKzjFomwRffJeHpqikKqfjNfubeNVLiS4pUs1CWwejEKWolkWTFbwF+1+2QYvhu5pv/U
ph1eGgyDx00izs6Hnj3H7Rf5tKnCpG5DwjisFBN5T9awBzzeqX8mwCO8utrkHM842xAngGzIJzMN
wmqgbFR3+1ACVnJIG2NhWW40N701XVM2HGyGI83sjgXNllCYR1iTRVtZNxtE5p3kpn7746l/FTyg
PJSYSkygSkiQKiRBIpUCEllXPH9U02abcNhZkAgOBNi7XZjO7E5p0HsCea2EQuGHhgwj2JCsEJio
1v5ZKaEIMqqbqimCdVtmPO73HXieO5NGEjzQ0p+R0nFDdjOls7p+ZvGgVUHCElwB2TpngV8wrxtT
b/IGdTiPi/wtGzbD5EB8JIOpLcTFtJLQYuUU4OAb/56MHjMPEPxzTLTJUX024MfyCOXGDmNvhkjp
v5KzKWbhoht+meHwJZIotEQM58seYC1eNAWCUEzEAKDQ4nNj276ZoYP6/2qMHcZpB3sdv0pLxdWy
X7sAVVJkrYXkQcDpxTBTczgJ5WYEsnAggSbtmKgnkG+9+QcCrJwdr3ToAlhXqUCEvi6Xr92GAoft
+9ttut9Pdign7IqPrpUhtLcO7WC6NCZZS+DMlgwx0Elj/ys3RRVAlqaij8BcT/2HfDc6i5sDiV1/
ygglApIajdbYndsWBNYjqypX65PMd8jQmUUsgKJdAkcFA0oz04zGI6DkVMfZjU7m6LsDJu6Mc+lz
2U5K+hO3uQfLAWauno9ymIYZ/YHh+zhLZ3KwSno6/mpIQfG+X0JN5sgHrJTGLCWCKe63r8MH7VKA
v9npv9shvwxzXrQChWeOP0ocqJvZeaA4Lzy9lYLu5h5NK7eatt4EKUG4nRvrWzfAq/pPYnxkd1rl
AH+1+za8vN/v3vhpIeBd8N6GjP40Ie8oOAFYzoHh/g27Q4WuqnW5Vr+xHCfdtGLYwo6LnOFKbIWl
7x3fVaArq8ZNq3UaQP+d8GCMlMCobAyPEUa0vnyBUA5QUFqqGccZr9Oi9dyWNuRBgQHa5zH2p0mi
ISeQlknh7ZpD5scMs70FKE4/YryPCzWwiLTzLqnXsmNPU7id2riLYKt2VY6SyxyC6/rPhnODMMyp
sWvMFtmscKvJf60WOOS/y35XmI/7w7/DEt35D/3h97fX+CiGnI0Fh9hybnS1vs1Pjxdcp1H86V//
8dcf4gMt2EIAHiPREDZ9zlcT5GjBmA0SGEqwu2BA85jVqca1lnaKgW3GRlk23vR0SORDmpRCFXyU
FtqAmtDHeBIKQNugMc5HqRB4taznXUZlaxivqFFGrLw7jvEpmE3nxoHihGgTarALvGjg405FWuRy
a7GZkaDV4nAZxC2+DTpN0THxiLaa3W3xb7x6abfC1gV54rhi8Dr8o97wEHFw7lWZ3+uFh2jX3eFT
p2zYOFbXvO6THQekZY42zIZYqA9BupGoLEn1NkK97ceOlQBdJjdefdth2ZBTnPTSmu0WMPoXvsQa
AgzDJejY3RoMIrOC7qy1/M0U0Wmx9LhEd9UAiIoNjEWLKFt8tGiVB05qzRh74vCulqsHbwlLcOcg
0Hzh03zLJuWxJhaB2B2AEqdQ6j/VEyPjgBx6qyLOf+y5ccV12dj5OxoVjwuMYpYb2RErucOKCznC
BsUrJqE2UEennkbgMrqbLidbH7njd8RCpPgrs2PVuK3QjOgcZ7TiKP79uNBaYm0zzfY33Nbl+CO4
CcB5i/ZCt4rTP593jpKEIyuwHavi6TUXWThetPF52Q/xa3ctl/M4DGt50XcIqKRe05FXneMfLK69
BHehpSBym5YJ9WJJ2i3rE8CqX1aj2R0wJLQoUfazcLeczV1WOHz5qdlY3zN+N8VezVFqmG3y+DFK
Nsm6wCiIncZBj+4LgigNKQZmkQSeNtZGAwScYEOG0WbxQzmdhesM6u0spM/7fQckH8/D4cMy6Vcq
1x1k0q5a0Sesm9aRFohdu79yrQHi3zvSxly9WUVomkGM0WX2Wuz6G636oHTrfrpR0hSUrtjnwcKI
OHYJqlLMWkLtQfbXkS9PxTzPsvVULAo12+rcbjmvEgK4k4LesN0RAcHPQW+GPGPKgOW7gyscrBgD
u9QwXGBT2kmaFGNgu71urEJiuTkkn6X1MgaIW15nK6CWFiUiRfyO/b2dFEGCIj7JnXa6tfzVMFT9
Xyv4MNOKao+tbWTMmSGRUitKz+1G7JoCRg5eU5iZs5jaXkInZiXyznjGyAuOXWKQzfoRMmMNs6WO
XIUGfPNZ/94PCPP16fXY6mcToA9en1Y/36/CtYPtRMFnEm7H652sV7kCM0xH4RRNqI2Wfw6UvbRP
CCcJ9oE+4SW++IeOw7JFgKDcqIIAfs3iNQFWGSo24pBwVZ5dUJfYOayC+V7/XMyLgWGo0sTzYt0J
nAee/36DqO+wH2cpaVSwEbQ4t6cykhRo8P8aG9WhhCUHCrlPkKhyMq/gyUqg3rx8phRzPmwnx94G
QXqwanNbcWSiKv1t/za+G2XoVQjBqs35bRikEgIcNVx3/vzswkRGoALBWHHOpI0PLHbzmtGz6OzA
YqQXrdy0WLerNs/TATZis9IBuZseI765y66YZmWT8afkvrdeSoDi4sZU0wOzvayG23/dDidnp8nN
aZbl6GaN1PICPW71w1V4VAUIRXVx0UntfSYVkJMCohiwWeV8+crf94rpgFvEzydgFQfGQ8lgKYCh
YPYMc9shfnurfwtvMMPK8qAhxHfUvUAG2khGNRxrCiTIzQKZVeSatK6QzaWPO5cUcPwbPNZp3ENk
J7ZCncDV7o1pv2sVAqjvpm/52N9tqAj+lQCVZQldb0TokNYiFGBVDparlFuBeVy+XqZvF1ucIm2f
JaAs9cgXDz8fkHpM0DTccFaXcGV+YhwsHncDWJfqtBn8EI8wtpOi2MQsyjFLgTkhg1fmEBiK/HW8
7l4elwO0cs2ICSEn53J7bCAAXvPUQ3EHSMXRrRHH9YYCuJIF65fY3TM4AYJL57C1ijS4QXtYrxKD
EICaZQZp+89yBrCoaH3kLKYrCePFgnHWnAPodGLJsCySSRTRpC2ZFdM2LljjRlIkvufjhTE0yr5/
+3i5jYcUhJZ1aqLFklnf9eO0FOCY3PKKSkUxXjMx3qBIamxdPlbGGrxDoyyV3M7XPhKSIICZQzwb
45rSXJSOvmrRfhdgt+ywYP4tOicFX4DZcT2m2G5goFis1sGh+vfFUhVg5QssVvsTFxwCpJIJDJsX
RetnJu/rqM+yO/Zg9d32Yq6WjIuOGRfo3ppVQbTR+TjeQTr0HwNtiYa1BlFYhWKwWizv/S9zNP0x
dLHMzhCLL9WlcznlzOZaIsYA3GGc+xcIwGBdoFW0LNdNGB2lujM6c8bKV1yA9A0jiextzo97L5fk
FO7EOfJLs2x8M+U8u3M/f2UhYPFhCqdsWCfuO5TT7mFM1ml8hQz0PODEIpLjiegyKTFmlba4I8Zs
5CV223i63D11BTHLyqSx6Km3gXAGRZdhZW1ucQ9ZKwQiG02Fg5BDj6tmM8rYfAbNRcgC+SSdCeCd
gcNmu5H3dOxxupf8XLkjA8xzZZ8ig0iCho7mDGuvkDRO++g7WwtUAFyz2jT843O0u1MCbCauGkyO
ZCu6w4fSxwcqEtDq2ds5FVU9CSsKv1LaWoDFEUlLlxCPs/3P0SKBJctxl7Zq2BamRUFojIHzqiHt
tGkKdBjKjBCANrSPyf22sP+ncnuZ2GLF67I1dcv4eQJUsTPgH8YzhzCGXXcMHSYHsBgHVxVGZSuO
4PBnsZzkeoJ8B2hueBfZo6CAYunCwawD+Lf9sPQzpfcz1mzzfoYyIEHwcBu4lWkMicd4zK+17teq
ZYH3Eh3azZfxeJS+z5fvobSiM21O1yttW0zEmQyMzp3BxVd/eUzgjNrwXChxR1+7OC/bTLYFX1Lk
z8CufdjNZtjk/iWr5s3PNC5UzZzV7Vf4HB1XT3RMI7RhPdR9At9yuk/7iT43Zr75t/pByH6Lr3Kv
WZkTGveuDAWnM5nljbYK9DIdhjiwJlAzRQFTqPOhrew8NxC+NrozJo9aZV5chQNaQniaeLEZJoZG
glc5eM6OnN8ibZzmo2b5iJW/rIanCglJApIvQDA7aSzY4bXff2zDhQkg4tkdwSVwsbu/DZclASVB
d+czidd6C26MQYK4UU/j/2G0msmTSjCKBQaQuZknQns1d6m36RxSeMMp/r70m8o7t+k0pI1y+JvQ
pLLXjr948IrhzG6D2/b7plEdz+2muHzy9027ZEV2B5rzLNiPzb8juhqxLk4DxuGfT01NENa2t83K
JwY2fTwwnHO44VeHx/n6+xmaeOziN/qXv/v+DBam/Nq6Z7+e4TuY6dFPsuUTPgb9cYp+ULkP3ANh
vgck4v02DLvhNKA4JN6PAFIMkKPQ74Cy3b1/jX7Wuc+8MZCEmkWJPO7HNnqHInTpc39/O0fvbfsA
/NIJcPRjH7TeQU0dM+g1p/ei35ahS6KyCUtC/Kh2H7kSru/zacMPluwHvSnzK6zur1C3HoWS+09a
mZJcu+HRq+6ax19jLieZyS4JpqiUyZbwD8ddf5iu97+BKZFKpeWh7bBmaNlIpbs7qAOnWs1kUq3O
fHhGhR+mM3GstQSMsfSPqK2UoStPFkEJs9Vq+KP1d1gzKPGyKoSULZDwf1UcDlThxwEZvQFAlieE
YOb16uqqIUYKrulREnP6OnXpeCYHuzivbOSBVWctYHCfh18yHH9cAF85gofaK2OuY6Ve+my1Ez/c
nbNtivvpAVtYop837mpQOmniOhYzxi6Mrl5E5Dj5gLvU6clgccqCGRdHSRa2AsTCyXKFMwRVaf26
eH0JfNiu5GFjhivheF7MocUSPvA1E+Rs1iT5DOdeu1wxjY9YUCHBg/NxtC59XA8x6ww/dr+MCYu8
LvlIHFqOfsHlMTFRg3hzZ2BuI6uuFjx6RJ8TezgNxtT6LPsYvo2nwz42aAQBOJ3GEnGHEYbE0cQX
LCBIIpOpHDNMpjALhWC+wA5Vq9XNSFtJiJWjDIyB2/E09+lqugzy+K1W1kjjy6RvNxiU452piL90
HrI67PHTT1QzCneb1nHR0u1xBU8wQWqVuww+t50PgKG55anj4sKxJpus+3R+AQO1wwBoxtqusztg
/Vy0ahMfgsmqcpFV7glV/EvG2kjd/rFXueH42VVIvkDNa3T3DX5WhpBGJW5gqEW/Y2qHmgQ61iQQ
f6M29HO+LBGbYVGW1GFRejemT0KU1r7dZwpCknrWfYZJ/VzZAPoyvjtWyIO/yvSGi6p+u00QuNfq
rL/HRpLA112QtXwJLnF2yR4L/6ifFGEc244pWHjRiMvHHBtQj6/tSFtlaC7ny+8mxWLOBHaJf9QB
YtEu60XKrOANKu8GyyRGbJmV2bphnhAWThW2cMq3r95EG8rxCmDENBfaPiNNAP23/sP07pqGq/sd
WH7HxpfEOZgRJtYmLBVT2L4YlzuOFdHSqg0HO5kVJ6i29Km5TqmdOGkWEXV60AiYMBaa0hqOs1hV
VlIdC7erGMVTV6mZ23Q8UpYII5zxB2FOaY0bHEuvS+Eu2moewYGDUATILamLKyZna2oiMJs741zi
PjH1H41g6LmzxLYDIkz2ujgEhUTmx208ncZ9dKMNCkz2CLTlrF2RZ/xnW8cSzFPDGkWxQAIxx2QW
TTXI7AYDrDa0FftUqGS49taP2OGDM0jjV3LYwGLRNgQ4/jULH7iaZ5sVjhNUFlJ3CxeY3qQ4MXN/
Z+F0I/0h44KVgFqKQabTCmPXyWV/J36thlu/rEfZWebYr+MGb9lmMcnvY4EkVeMs9HzLueOHZMYV
ulDGhyL9nUzaoArPQrGtJ46WhC6zb922IJNueR97JxVivqvDCqvjMPb1EiGACpubSBIdc+Xwj4Yj
V6jgQ1Q6vgZAjR2uphWoZiaXL1j0IiYRRNOsYJYCxLaVaZR3JDRrsSWZhJ3v+bi2IhtsSFpJHfNd
3Gg7Tm9xjPC4YI1yf0mAUWmtjQztUFbAYR5iWT/KMQcVtXUVMjgFauue44zLhUwLkD1W/GZODqMh
tZI9rDx6vM/D6Ri/DHthVx+9RSTH31yFBFvUuHR2g6jvyidL08SHKbkwn+4wDekyY+0vIvHn/r03
pYApWd4wH8Q2llBb+KzNcNtmQBU9tBtgR//KNsIczK5SIderOj+9z/evr2DOsckeJmucuRy1clHO
edhrtX//eO7dIP0sLb2itE7jp0QVHwxsZuOamYdWpA3fr9rcgPpBusGf/vy3/0/4AVWHfmC+7bWB
q03yNy0e76a8N1bfm/OJ6AAIQgumi38BZIf6QmMwlICYY2uVHDNQcr4UCXOWLhZGdbUoNExolLqo
ZGPRJBNdMg/0VFfYsYd/QoT9fTj13zEZ9y/T7WU8aIdX/8V//P2Hn+JylY5auxQp29flt+wMlNMz
D6/l/XiDHcg3KrLff41NcsCTt5WPi8YVG0G10XXSD/9BgxySz1U6WHwdnz6qJpi//PlP0A/+kx2I
RpJ5vJgd4pqyKIEah1+ylC3EqpqCmaX/psXATyQGEDCV8wqH5dUEbMykO2w/g5hHrjLDLC62QOTf
bzBH+C7kZUsGnnlVCzCs+IgXqfAZogiiXAJbJs18pSOMw4zrrqWTuNIDsDbqLMruWu4f1rwusbmT
I/i/3FVUH/TpduvYsACqK70qAkOF7DHMujyU+IY7EYXCvQt3b89Qerr34nYn2bxkqHRe4ZpZFlMU
c9oCuzj85RV6dxWXb1qobZdoeYja1gcjR6A/aatQIBilGBtDFDePIc4Ulm+g5aJycsz2+QUOmD6a
Ch1tDcawSHTaKcGq3GNiz5btp2VUZxyT/0PwYESJJJ0YvWFMiLMrdCMdUiSrOod5dMFbDsIYaTTw
LsWcqitYeQsfwupuZ55PijDlfM8hajeIzTeSwSAJjDLEPsZ4Q3CLJQOld2Yaw+lD0o+lpx9LifDN
DkWJvGpPgVVPOsE8hf5z+G4UhIS3NkT0pK9GXFKyVVexgiPWb/OMOLukeryAgSzMbODrMBepYYr2
15sSWIYe1qpKLNWGDKtn/OGkXGa4Q3E25ZGh70hSZsoJOuaC20I+4yTMu//86w//qt/875Fd13Gn
rfbTxPlygcVQgRkTYqqhjYGwl79gadgnDtX5VQBqgfhvP/0D9/ZikYmFO79pF2z/iEfoOhah66QT
piA1WRZKKkdPtv3GZSgkHXjY9F0bP5JpBtrynQHWbk7aynbxtbWkqkYQNqbSPjrnhS/RQ5XRLiaK
s6BIVETTlsZ2ckqDFdTBnl3YlUYSxjpK9+kqHKdgftG6w8UOgz89ZEuuZVdyg9foImZos50huEXy
8cpW0Bm5VRrvr6ZEi4/RMj18+C8EoC2ra6TStUJ4ycvwLno9zAxmTioMwvorOfpUdDWctPSAGUvR
psCCleZTRdl648Xj0muTem92xUDXDVYhxsvTClcI5vZ/BYE5IzhuWRBM9VRcBjRrhhphUGPGbn3J
6i9YJwRCcsWVto3CLm99u8HMNXk+PB2MVb250kJabJ48i50L7zftMBV1xYjNfTzZKyYhuqI+W5jr
ZdmdmuUmlMTnjjvhDYzq86QXxNlO06QPqMF+G17mXyTp07QhwsXT/G2Z4YifLsrv+LiQ8477W0C8
uPFI4D2Gf61aInuqzVfpKDNqC+vqFu/4TXOiACpbQLFa+iAgyUSrlhw5gmLlP2CexFi+Wuon8CtW
q8IPkPRAqiW5R/do+Orbp3sIMHIHwxE9BMOSl6jcl5QodVr29z/88OP/0eYaMQ8NgyMqZcM9qT5V
+IHW4ZaNbeXaJHlGtYCgItlarS3K5YjY5+mOFweqMkaJbCU6vzg53J+6bRMiSnZQ0pybTlg4qsT6
0drOsItY0qnwQMndZgjMFXYGrBZvbCTZ/du0e5tmsZGF2Qg4W8e2LQS8QdvVJECrWajB1ZcGYP3p
x7/+BcpDQUUl3JqC3ZYFk0BD/QNTB7AzCpdxm/F5spFWdM4EYYkO6KB/dlmZXSm5cw6HfOd1HIOf
CMoxh9hj68+E95ELJASz2KZzccg7nPngQ3G/R8GSHKteVx7CJrCLfhNAud5X1hV0HG+UpXegaPQT
5JJCPQIFa3FcYJX8hjtKAhpk3YafyYgiGNGuXhXs6jVB5sX6ipEigXCmF/21ORcagv3L9ICVYn0k
5kgQnJnTdq5VcPn5qMIqWOvpymATHiuBZNdjzDL6IpLj2GXTyJqlJ9Uc5/42HO/P2cJpLyDKNXGT
JWcqLf0dRgKq3PdNjn+wZbnCzzoaZrWCEoZx7VG/l03jklm3Lv2b9h9U5c94y5PHwdeK148WrK0b
3521lYE8/o+//7DEcKyCn3bOuXi82NK63Um7ZRGxzSfLla03RDACGA5tKhUMxSUtOD4ED36EbZPb
/CPySFT6hdZdg20bc7+AfvRTLG3T4asFNAiDLpMOv6BeQnmxAKRhL78NG858l4wuukLjsMNWZq+w
s/wm+30JaOkDVTLQLZgxxeWIGde6HAX5m8nR0XyHe0XEJ90Gs3FHZ6ntNDY2sKhpF6BFPK67Mg36
s4RZO8JkvStJIbMMVZDQkydeloPeMP+Zzls7oE3ImUiRywbBUjnRZc2liJ04XLRxcEtZ3SyWiYPl
isVMpqmE/Qizd9DZwBpY/CczoCc+Qp+sZRVqnV9M4/10vtIU7xkH38M0BohVSBG7POR1POU97Cq9
g3S62tnyrESrzHLYfqwtMvzK/W1wqgZGIpy3XNS4Bq7O/cnlTsnCPF6YYo9hnlREVrWZnzMtEnGj
jWVEqln5bjVf+aO9yPVmTSy3K6SDNqHcDg/Vr4KUS+jebMyWQvdFKHTvnw+zPLvv4fZqUzqVhTJ6
jDGh8Wd+67VchUo0rNK4Q6XI5yoX2GHzBRGmyAn2H8FZb4/TMG+pTWJ1EGELArqv2Y44A/B7NJhQ
hbIExvr4J3m9boPlThSoMNF9RMBSY3GfNkb9i4Klil3ayyMBCpmmyaloXea0zlxA5Vl22p6F10F6
IlaKwPRTKCAA1ZWfCAbkiYKsdY3TPMBkaKmYqAsVmjCIaykqkXkVYqalVnfWtLR/A9F0vY3vuEcB
UgHRFQdUiMcz5bj744nc3ail4fuwh+GXmrawWU84KktDtVidWZssD8TATebQjPHtv5pyUSnT1oVy
dm7TKtz6na9uxI4gSUmy4hMz6tvLX3DHygY5Q56DZ2PF/l18gmnHdvSySR2yt/J5a5euzKal84yC
d2nzxuhMmMC6Le687SEM+Hs7vv9vP8Wvxfb9Mj849UPud17Z7+zk9ddF04ZQ+IlLfebH2J5eLCwp
/ykMxgZL0U+1ofXNXrZh+qwfSzTn5vYi7rJPPg4A1nQnvIj7gcJ1Q23/gTWOREpzI/v5jBMRS5an
3D8SkFV7dwnAD3Eo/eYm+IygnLH+GwlKQFPtLwhpA15XUsqIThIP1GNmrQ5khT/18tKr5/6r1P/E
7wi/koXWvci0tUXmrxi7+G0yf8NruPOzUW6foK0kp7ds74xrdP4kWW1TXmyZC2+R3fgaYnCFXqXx
GJGVt0uMvk3gOixBcKgpN4H+zNkZO7h2st8ucIUHL/xfqv9Z/SdyeedRlwnu+z8GGeLhm2Q7E4Yy
f0NO8QkMuSqLpOJrfFOk+dxDC8dXT/YULfYery9TfzuYzd7m7yhJK9THYBK/cTPpbXFxtA5OssyD
yWPBs7s+RM9u5cqrRPBl7eqkwzusm4sVVccbw3bfvuZSc1gdajq5eKLoNhz1d2+4f2jcw1zBPa5R
gg10YhSGtUkxsg0g9zN9MkW1SkcXkT6ZrZXz7pAweKLqnioYTXRrYwUjm/zZIb/mWwJlUpyMVVlj
0Xu8g2+23VZSkKAJxfGCLx6MXhLb5KGXfWojS5RSlo75IK5u97w/O9nbOjxU5s8JLcNxXoQ8W5Qh
/GTDTdX4xXiVuE0iGQux6pqoxM2u52WzWttspDhWXoJy2xaYPIfRXAohFTxjYtGvQTeWEdOJ/Wns
pRr+nN21RmM02mGEmy21Q3uXyKZgj4GLH7Kn5QMQipRkKONR3kHO7ncbXh+n/vZbI7plKLQtaZUt
co/xnKtZDRX6PDTQs1TQ04aEfqDw+1k/3afXVwj2pmOmjYt5QYa1rlLBSChFk0KRhd9+WDJhYU4D
hc229B1nI6QTBaxnZzWm6hkZG+7chgKwkjaVjpZ5MqKsUwiUFs4TCtuNxo7Tx7K1U4fgRZ9knF24
WLp3s25lq0QND0FySb93IdFtHgMGIwf6qea36XHSZx/gwON9/FU8MNOozCBBE/x+g4I79hOSnq9D
3SFc5ppSeeN4StUSJHhX7VmdlAkSEkDBkeqrNu///b/+ZGPXyUQAa3ROWSDW5kw1iqm8C2WNgzWW
m5MLtfIzX2U8O+UyUgvhb9r6a7RtqpGedZXaiuLpJhUAZ77+qf4rnVhO9g+0ReiUPF9r8mkbOqvK
kHmxbvIBVcYGaUhHY839Fbqvkd5GnCMid0Wx1mVGnZuEGtp/N6kCWhWOyfMyc/tJN1KVRER10OYg
i/QnM0Xk39Ewp4UuZtf76KZa7bI66nAXjVsO2sFvdYUdPAWJWegWsVCWaVZv+hrDTXDiW7f8jTVA
rwIMEjmV7OYq9wJUzEB1pbLeC8aHceDhOrZFzu09GWn8k1nRtyRe7ADQ+CHdukisxOX0uUh2Qlgc
SOXwxSru0hRSsjUGtH8OaJGe7wHZZazetg8pvBdfrAf/wLh9mKe2HptxMsb4SZQDwxw1058OL7bp
2ZUjSF6ob96H6CeJlLwKIcXcSF/Cji1BoI4w4wDLJrQvMMRsl+mioY0Cnlq+YhSnK8ahZYXAumyH
YYO1FsWyOhNwPe/OMOZoF50pRRE3BwX7aOyOvNcRYxovHzCYBNWKzFh2kMiKscyLwfNrzAifszWg
OVFhESJDeDxuxQtPlvN9mfAHSbal+23ZnKZNwzSbKYGipsvpg0jKsHogwlKyXd70ZEtlzJouNxFk
u5Ugr/39bd5F9o2VLGGCkha0V2NsXTNqAR/P8EqKffO2CIqjJ22SVQIMR0mspNnI5tRDMeXDJj0y
MgR2WMhJQgvfm43NHnm7ei7heZwsZMmPABoKAQ1usyiEh81gWthZAGFLS8XLXyQla6f8fa/FmoSF
6wSFMoxSST5I3jE+RDPWCHTTcONr3qRgVyFpBR6P3whN4OC58xgz2kwkwnLD+PFSRC4Qeb3/YzwP
ZGgkKL9rQpRvxgDBgjvtRJE03TlqFOi48em4iFFQLlCQwxYmp4vgDf8Cs+m3PWUZekpn7mCvvZGB
otVcsjjDavGzhUb9XfaYPmwBpiM2loNnS4ZNkySuzpXQX3GbCPcX53ElXQlKmjNxCX9US0m1FULa
R37dCwmDku0eQxbk/Qxxyi/ilJ97lF8svdcXa6qBzweH20D3DVv1jLRP4y1xSzSAomAJghHs6DbE
1xH7SrAimMyssLTRhEeY/B8vUiyDJD+TDDSOW60ulfZeHPtWHRZtF2tzWD87WMRJmaeytR5qnkFt
0M22pdYs0MZFg5EzpUEF+cy30i15v07TUdAteR3yPoya4zSZRFSXCcwPECCpcxsPwzJFSpYBNcOX
KxgMCyix8KVkSeTVuvX1I6apwYFhm0MNurYoFi7E+WJaNANgIeYAY6f2kqXf+oK7jBjqgj1RhIRZ
1EhTwhtxrYsLAFvvlXBniPAola/Rqpjhm9SNbdDMAfnMRH3UMeBRCb6cwbkXzEnA/X+RGCeht/Sl
6RMjiA0HJetAJ/MD7I+seLL5dtjT6454jlXpkPGQhewjs1YcJs1ApmjZYLTBIwvqHRMRHC/zCCvb
5qsAoPLZOws6YzRPM8HbpZNhvCuBZsTQiaSj5M3KL2xDoZO0aChDAZiwUPajcYJ0ZvzlajStuNH2
wX2jfWwLzlYGbdCeagR7ql77qvmT8eK3d2/wWbOQBvIkyBb5Xga1BZNp997WiKRiKTW3PivX4h/2
mpKoz0vpgp4iE+6nQpSA8sASFWRTWVQ2YWblXRGCuJ/OL3C3Jd6MZSfjIFWNlaHQEz+acAgVwg0W
nEFQXbDw/ECyifh/7mGKUrB9Np2/6IJmxSrsZukl3tFSsk4jZvcWIcUsAOAyGefKlEzKJ++SrUKI
TShxkBSDBQtndUsrgSAgkrq96YKufUB0nfsTJKM0L0SXX5asVnwh/S4uDEtBGDK1gXEZOy4llSSR
hqgSV7RBqgp6+oLIaEIevikjg5DIDge+o/cqjB4r2Tj6FcZ4vVLKXsi26h/N/PNwHvfTaRLiyy1n
PBD4RuI/yWhP8QpCugilkgLHyzOBIljckQ9FjEW10iGfOhjyiVnqQrqi5n5ehwVb0SseBs2ckL6S
Ar0sIALUpQx54Vm0jWwzt7g8B52+b/3tItnNecMUUo2Gc72isqVjNS3LCs8csJ30gWin3XmmqQ3u
TlafoIjzLkTIAYc5rTvyoMkSkkKtQHOMyxsMdteL75P0e9qQxHf4TqM5D6l+jgWauE13SgezgsEI
Ia0iEHzrYNHcKLtD6zmGqwTj1GkzpPicKdTPekxdyGMK5sPSeC9DjjM8uT1G9Mkb39WNK1MpOcMa
BbzdVivVDhWYy2Av+olF7yQCrkzypfyVTjinI/ASzcS8jRFBKRBBzao0YF6lSOVpe6byCUHJeYG0
DR1Mt0dqKtL2Wx46XTg6nb5qEwIWfEUhysQUgypxBEMR960Fyd2G8RQ0GNK5sNyHFgzDmdGIUiwu
86MGlfR4aY+mCEZlPpXkK7KQbNmSGNqQdArHiLe5a7xQRlFczV9+O1NIDBamSKXuquCFbQX+uc6l
4X4l6B4coVS1Z8M9pOkrrIuGTRAIFUyKJcBspwAKsGJTNduGMSbrZo46snvlpCX0ll1FXWiXkL9q
Q16so9jSGrN3PNtS0n6Ri2EzoQHNTiSS9saZZ2DXcytz5YLPzYN/ulBPW4hSaIruJ+aVZD5kvuDJ
hHu37ctoWT+H1+We2OHCFvzUuDJSKrztT8NNXJvS+eXCtTRk3i3Yok4FWJ33eusP4hyrNlSZGpho
I02yCQ5dcisIsJz3cRm1UbRhjVMdmgEWoAz8m+TimYL1g7HlZPFNRK/D/d9t48yPR6lRoQ1Wcseb
Jje0elShbVgE7F9RxeB3BrpROjDkOzoaiObLsVFw6zWSHMo12ixDYFp/Al4ZAQO1mhKYchuYeO7M
wHGjJ7vOlUg8A0LukAA1bOQk9ro1pFn/E/fr/Ig7A2gm8XdDMhP9s51WvB8Ya4vOQM35XgH4Cda2
LUKzks+bXab/A+FXSjeOrwKU1HZ24+p3KDMkAWJTPdHVMaoteGCz8dNmvrDORRpexActr+djruAH
UIBMJGG68Wm9FjBtQ/z70xjd+pzzRQx2mGIRfr91jToefNvTVXVwjOXqB0xJtwRHBcenBq4vASm2
41Cg1tRTlU6esJiq/DMa7Mt0EJmg8YZpGvGygbJSSHGnZd21SRLQLsFR62iJF6oyOFl0BRmxGd2N
xkc0A6AGahyaUn2aTpP8VT3RxroB7Ayz5rXzftG6DxwTLcW/C21FZcgmx9jSbxjLmeXBJiBwsOa3
QbvssBZkg6ugWuWbIUreM7dtaD9bVcDKpsPWXBIYtzPd/EDJcRBHApQMdbJJTuPwIfMumV1FaH/v
th2wvNO5CY+jWEZFmmVj1GJp31Weu1iEHiHcKbgeSxGdXcBmBrIwRgB5sEiIeqlt0+mHqI8VK4Be
j8tcN6Kdp8N4/IgnSQ0RBvd8ho/647eL3VP7p4FwI/UI2r4ApMlmaTclM/iPP/201fUqg32Xsv8v
uf2rJvd6gyP7+SEqbGsZG6IScTwh63IfcOegOLe4CW350A7Z6+n/ZrOoaoP9iUvMR17J2bHVnpVb
ZfSJzn+JW4NDKVd8v2z2SpTXmpjLatpNt1G8SKdU/iLoVuo+prbjuChp/Fm7yRkHkAtKBYRWfZym
oBiylH+kJKXZ0YWb4Yfd9zfY/5naxADrG3O3CBJ7EPKuMzFXA6p/HMbJzB/ZBjKrGUgwOrrSB2mm
LI8JMG5tYw6WUV7WPpilWG/TPTN2KMxYqtXSOnrlDedyiylZc86S2sV48n0yVsDnzugQh+H5Il8h
zrBh+oy20aXydiJEzrj55rl7Eeb5B94jhcHOXxlqWmewUg6ewl0zAYfRLrrlJvhqWxi3HKVwVypZ
+sJcaTtqGFE4lfdczraVhfIFHO4UKVaYRj2xkajcDXmY5RlW6obuSPi/9pmkZktTnyT7lrEmiLuu
CsqLLXhzoCioKR1y++N2Pt2vJMfnXlY9vSwr1j1po+Imq/oimKPxVZVTLdvHspWh8eOruSBPbmHU
Kez8Ge6tNMxcSgas5vvYTNLphNOxte/7gNFGN3lSV5FvPc6CuMSs9uAop21mnWTYZMHbRkLn0vCQ
sgw5HM+JsqQbzR0CWFGRnDeE/nmiBdnYNOXG27L5+UsPjnT3LnT3TQvIpekpRWit+RqjG9bLl6HJ
gl7YzQ6/3zAyJQ8dCrXOH0Dp0EwPM+bDjgAVZn0WoRHE6+93rzftuGK9pWY7mkq/Ow3fx30vzHOt
3cBYDOyUYdgI7SQMnm1yfzj2064d6CoQdoryAZc0RRgjHPnmq54uGy7r4ONWg3YL9DRUN1ebJaz4
4hG7h5fuv2VzgGJdpjSIGAvXClN5IR9ZOCqbGuuCreHXFs7FhlW7YHgCjfHJg3x+02oANhcJWJKa
2qSoWAE1wWKli8/33DJSuW7ZK6A128Wg3d/kxd88/b8M2I28QQpfTiawEkuB6DZIVJ4rRfKAnLF2
68kUGufpBLW7/2e6nWgKsEEfKzye77dYKS4MfzSOCkWQF05Jb7gEzjI1pfCtXx97An3+iCwCw191
X2Kvtr8S+jDoQ08f8d+tlq9Z+9Xz1W3BZfwYtbu8W1VgZgfQdHK8zH6+Ynr1+9stfqjCIaP1RpLa
ybxm7F70NJm7Fsu8PY3ti9/Gfc8SAstTyjMy8QCZO4ATRRxA4gil6a5ECC63B0s3/5d+U+2g/Pk9
mn7EK5TL96bJ1Kz0nK6bMKAcYbipL2RTbrh+6R++9b9OPh/7cbdBU5uyu81PWLaOL7oWm47tkLDD
H2FY4/9BSD+iBxR/BEfVrNj8VXv6MB23v42wa0u4ByNkN8b88ji/DLctWGx8NNj9aTdaTZT6PC98
lqyD8f/4rzsCZOVgG+djI4A69Io2gL6FBrMQDR7G+Qozov4cLRbAl3O4Y9UrkAVOn7w0PQb47C7H
PMgMl7mPWJyKXTf1XHnotvbESXGRhSjVZxk6gMAyTOS44rW99jG+CqUZ+OuM34uF0IPSPw5DhfBn
QhQbqK310Ad9CxHPjkpPpMxPt9FH3Oob1n56Ob5VTxqqmIfmdLOqwAOtXJKqzxQrk8PGobwpEyNU
p7iANCNUVw61es6LaJB/BY4dDn/86ae/wz0LqZxNhbblsZWjUJb9u71UIFt0WSgb4h0KIktLiO4P
P/z4x//3z3+ScjVCMGftQqdL9ti2Qaz2fLJv54/L/u02XabHjJNCpWLPOpRBZLCYbYxGfGqCbckC
V0zyh4N9UnCviu9ciFKGRBh+grfowps0r7fxnCj4sP68VOo8awbHxYSb6zDbMsTmG6rjpVhLHRoZ
nSpqX20rlaRKl2QUmdMaFiuFB6oaecun9QR/pEKVeCyXSyosgCyTGU2zmFeK/gXn9TOY8KlWDycK
YHxizn7+mx7KdrzcN42IL9iIeFaS8DLAHigsoDSHpdLELb0NLG1cwlOWTfmpg/tTy6WjN/7eySbQ
9bBtiLpiM9lblDMbkgZbtsu2IfalSgxwuz5TitKF5pTH1jwDOLE8jU3/ZnsGn1ac/JZCfhaybwq+
Uev3j8OoJR9+hZNuqEUZir3NINrEmu+ucEWl1Dtt28NJgUBdJqkj6mt7QOfeebxAECbW15ZjeKTu
GGA2JNXNMfiOagC7KDE7QFXdSjhs44pX8yJ309Mih70ARvZv/U06Jrs/X7TGQPaHw3zq5zcY7jU9
YG3zL48oZSHQwpUU5/iCuRvNZ+ta/tcf/l/5bHlXFuGzDdozPeDR9tOB99AVArCMPzQb0QZnWhC3
n87nXjoRe1TMyRoJcYCdOxjsHy/6fv/6j7/+INSZdp1Xxms8mOVW0iVYWTE4rnnWLpPg+4sWeuKz
NOz0KJmMGWwYfb3U8tsIBH8D4bSPzZ+iY6kqfCzGktoc/qrfHt00iR055VDMfZGbjFcSfcx03Zad
ihfJ8KNs4JG8q2t2KFZLwa4X5kDpouxwGEB+2lFHKJv7owSmzkLF+702yzWLwds5yrQWSCG1i3Qe
OBWWhfdbP2KSGdhFa65Kojl2T4xS5Ev9GHtP9wvCXds8Kf2YqHrp91/xryU5xVpXSEtnooCROLNk
LIBTTVdT036WFo0RF+VhVQTqoic8wTDix/0ugsmdoOvoNM9Ub5p5k4TPLsWnFhHNL+3+2iD6mnC1
SO4xeQ5Oc2685mP/+G5IIJdQzDVq7lC81BpTJYc+EuqnWXj4rAkr5/VrLfWmklYuuohQDmvlTbgv
MtY141mQsdvq33nZIcEjZPH29Vo9l6KQLSQhW4dZyCO3/qyPDIalRGsqLPlT9lIr2UvsmTG7oCTB
nd6dQs/NOb11bLqS3NJVuV3DFjaxYwVVssT0zjDA0im1CXeSvdRwTVw6G44hTPbckDxUE35VBkXU
cEVW5n4nVRtUk5yppFtVEXJdcxXylGxecFuMr1XgA+F2YAmSczcKAkmfKwuTROoFK+kFy7DZwnBv
hnmC+aj/VnJnuJDz5885k/6iz/X7n/74l78kn6GswkcjqXEdLjOu+SXHW+Ik9gYQNc67ZhPaaglt
1fpdSzOi2vTpYYGkrXjfzKHc+I44Wp7vNiW9LE+MPM8UXCAetTn4AT3qohWvNQ6TwHy1X+SEWJdl
5iTpf/rLY7h9SKetVpxnbNVP+OpdG5Gbzn6QiC53PMZ6OaiuxU1dyyQTpCvXVnu+yUKWNCh36knQ
dmuYV+oY3GQ3qHIbneX1y3i3VCGdr+RkgbN1ypXPmzb9uqzwXd7wme5vt2HA7ruZOZ4H/6wSKvO1
gVmIhk0pGTZtWFPYFM8MycKvkrXLmnXdUpD1lbVh/+hPicCDfoRuTSQBX3aDnvG4MCwzNJ29T6fH
Xeii1+qAw6EhhEE9auhfDpVlkXDRGld269dCGtF1hCTP2BlV5lzsqP6TuIrr59oNQ8f9eH3Ks8sd
9YME6bbp9lLSJir8jk/STBKIXcQ3j+v0Zbp/Ev1ax9druVFtkpW7/9Dk1UpczgDTSsAiJDCl16xX
fkGxjs3KEbzOC+4yVz3mP0pef7aW11JUA+TWlgAsd6Zq97LMwzAlC3LIpSjCdtra/N5s5pafC+9J
UqNtwo+4iCB6BQECY0vzik/afPh+vZkU63GCt5T86mIdVTBUgUzJFoBnUjShSwfkfakl6e6iDQNz
uvs//i5Gqltfh6mQ8yYdQDEALhvOAPxhfK0S7oJ+qEgA9jt27J/cNr3d/PMovVBbJj1vLB6GTg1J
ntfhSNRatKFWl73IKg9nFD4bAOCONr/ZmlO3xLurNhw2SSmsTlJY7VphqXSoOj1cncjUiwwLnlAw
iSe9Tt2sXaI6bUxLViV3fPlzByNSkmDmHIETIdWT6r7ftFH4IWnoNmzUBB6CkZEoMTpuy3E65AeD
urQL4D6V/4uIwlD4WR69QcIsohRlEtx687YtflsIp5G4pg7DNMp7S8qwfbKCwzljaBzEnIkkrCL5
kierUzJdu2adximSIT1JWDVh3bD2RE6T6CxkEcdoUQdbJGfLo+E8NowIYrNexTFPXduF/SF3lm24
abm6o1BWvgIE+ltJENqQ3x4Oha1GMUkXzH6DWbmZILgEqpxrGjI6npLcm0MNebPOpYsq5zacepxJ
LeynMSqnXHv6Txpie6aBJzg5PUZOaWMbktldRZSGqBJ380NLfmyFuvajFL4qmzDts+tDPfO2gCF7
JKi17Z7M+wuUcsH2INFbzMOhb76ESlI77kEhImHmz7gU82YTj6ftyL0o0vpL4u3VPD0pHi2541k4
Lb9mZhbQkzzrSNqJxXgl7ynPQ3kwX95JKOlCsyzN4O8NhpmWC1zdls5iXGvsTYa4564wfbtJlEmH
bMOuc7gQ6Dzdhi0BH8XdaYX7tYRIxpbiNB5+4OF2vyJivERHbhNNOCwiyT/ReTJwoU/yZG975R1m
F/Fic4jt6WTbRhJ+sZjn/jTRVCmR+nh8BQR1XovyfsPFOT9K6QTj6kpefBXJV60FBWzVup4e8y62
j9bo+W6tiJqY97LNjeyyLBzUFlWbVPzEQ6BQIGSXza1tU1P9KwfJy7X30q1lG5oWi6khqaTsc+cS
0+CRIBrN4Rjum0qfmNREE7rZYA5uimREikqErPWnQtxl+O5hObpNAaqn2JIKpgO3yE9el8ldrVQI
XqJDL/PA7L9tRaRSOkIpP0tSm0LBy7PZCwBTxh/zx1lrsi1qv1AnwiWZ+9Hn6pLBdAP1MtkGmuAI
PCL1CLRVUFV6AnYgNjnxORj6om0DKRhahMUdW46aCKFrJPPZztDRWedpkSlJzPZTVRIb69HrLFk5
uthRktnUbdPZwTCjpBnrVsjm8cSBmM17ij+lKnQkydaEaSMhkqHBUxLHRbIaLCiPJHHUhAOqMVUm
PQNvEaB8aPcJ0Sa5Jawog60W3x773hZ8ysJWve/9SOXfLKXGR8E/CRaIpUlzRox8cehkw3hB3m7y
pPh1+MtyQcn3BqbqCItwYGFjYwLPBPACDIfcRC2kxm61jfpXwRjRpG7CDmIq5izVODURK3g/TV/H
TZXsLS8s4J7g9shN0WwrCVnhSkJVty1MsaVWmVeW8IjQppw6LyyKlGUGhaCUVmoidWmfCzewqng+
DnMlSiUFmSdt101mK2fVyvEan0QFKIKRPzieVv/V6UAbb+d5EIN5LFXIuyPYCRH8ltLmJ98iorTF
gsJ8fdUN0VTJNuQuicLcbfccqJAUf6TJJlIgLR0lz9ZcogIm+IY+QBUpxXuKy+2cSS6dixc01k6x
OO7dHpP1ilCYvfoU7tuYvGifvKt1xYQkBRieaJOechRJdsSbFmwnrQDStbaR+NSG8ojWI2pWGe8X
GW4pZvV6LVhrTYQaReOuC/d/RisWRWDZ2mDfViot+QCRfp+VXygWF7hTeSs41lyi/8mph2Pd5X7R
nMsSqraTUSZKui6clou2XEm+Dq9rQifaLuP+LL+xtC8a5nZaB7RR0fJoEFIm8Epveu1jg+4M9TOX
GHOmNme/TpKLVWB1oCoQyYEizSbMMLtmehhXBzafNB+ZDa1hffSJWb9bZgdVytu7UXbCLCJpBJEb
v4DtEio4QkDcFEXzAty4D3CtzQLj9RwdGHKCgxOidR00lbbwh488TQ4xsR95S0FehDbaJJcdSudy
4xsgSF8Tso7DcKDy9E1DIIpuNTGoC54rvbDHDRaBBPbzLGRvVBAizAbgNo8ZZsM5/JT7etnJaZpm
WnSS2mvSBKcSGbGGtd3oWRzHAezLxGDprg0NV34a57RhilPrvYmZ+/M0mCPNB+F9oexVDsNxvAx2
DY5Evm4UEYYNqy1TvT87fkV1z2uaMARMY1S1PMLPzPYIKBN+HXbxTa9oedg5tCDuQMU2desPuVxE
HdmjcUgmE4apctfPweeZoJoXetYyttG7sDM3jY+Fjh4jlSiAwvQdFmbq53qfzXIfYcg43adY4LDp
tTOsgLY6DxFMhozbDB0KbZMJxG7mBqLOD5T82mbazY8XpFwRz8so52Ip71cORaldZIShzmHI7TeD
6Tj6Ppf4BRqGkXaZCgzFTovqEKbLI1KNP0Aq28/YT6cTGly7/gihNCydGn55jO9LAZUG/opvOOJa
Iy11bvFLVu6w1J4CHimJLwj1llm5e52goE+ggHoBwWc56m9ANeKTx90EhFDV7BCNyQ/5yhbFvOYS
lKb6exDW0fARFQYH6Yg+NVKZEBlffpqxYfdIBm4CvPec2psZ98JrMgS5zWdOHLHgI5QCPWDf5i02
coK4n7/aIkQOH1q3jHsr2O3f4lXxOTQ5RJor6SGVhzHbCLGIx+gcY2IXFbqlvZrKihQh2SVkAAGk
Sl3+UzQfsfyJ6pkQxp5kiBaZ8yKlWRkjebgZWwOBnMoHdmBylS4snCPvmJCC4E+1sjEhawkv97hq
C2JwixrG+3AWEOkIjtkj18f8Rmi00ETzMGND2Ao7JbVhagYDuQI9uEOg9Zz5N9t/7E/C16r0vq67
VZQVg6wJvmucFGUbdKEv9LaRdZeJ8YU33MxfxQHVCVCRtO1x8pbxbuHVwi6HSknctg0xCpKcyhSI
x+t0mQXs5uwMLqmtTwCOGi1TMrPmoy1wGV85UawqQLbwrMCdiuskRSUIPuLNOMTPoH1ld5mYFkUP
mSw2wvNOs+AFEdyxZ2T+ObfkblC5IoDgsoPVfZiEHhkJu9cXgRJMKT1yOkxibMRbCczq4EC80EzU
YUZXSnYzs5YtXTEkWWwhydwnSSNp+tvsXJXParQiK0MSYKEiG8H6DBkx2izdMWn6AL0XYioXbloz
445nWazBtcnAzWtmI/LsmC/fUu/WZCFVsaw/RiRrdH/rbwdE9iiZrZ0DhjtUlYlPuCEcztQx6BaA
MUxj1Fb/2USclPOkzXIIMAnoykImEz6cQ9YAf4Nojxn3hSNTNrg7IDkFVmHv76W3HLfhxmSRYZnb
xRSTJzkEqVF4UsMU2wAuVnQjmC4Fs9nhRoXxiAOssHtchP29xBNMkVAknM5kmRLpsDeRQDTdHy/n
kTpqtZNhzT/BFuBOmXIjdtf2Xsrcc0TprfrDQIUNRT1I/JokiXAmh0IW6fGeYatMKdy5vJlovjBI
0MWyzwbNUXDmjbPzFFagqGDCccoaX7QsVfAgc8k2wDTQeDoNr5GtTBkbKb+EGLrnkIl5PkGa1KF4
ybMkoREYSe1fMbvYlbgcTfPbzvDhLSXCHRS2c5arbaj9uj2uUPr18rGBzLuc8REfScDNy236pWXE
wAe2rGzwjcAyRllsiOZeM8krUBdx35v22/rb/g2i88lIWuUpQBKkT5L0lgoTOcZhsU3m82phjkEs
x+ICxRe+cjARJwPB0RhcepCKDAgal4mVq0xHCZvwW3JmWvLCl6i9Wwg01YYCKRHWEZ6r80xMcxnD
KQlPrmRumJsFzgs5nkw4QXU1KnShgNwV5C0zLFGeGIHyOu1s4ItKJa+xveukAZg14bYGsNgBRSpj
CQ06imMttvnG9yG2xDtzFhSBt6qXJhk0/piW3R01kuYkfzLTUkFNgWqz9fUkK7llFMyKo3hAKfVK
iksdarFcy4cEH1VB2ve16rZ4NHtqb9wMJTcWyk2osZbJBLb5xnvsTfH/vFzr+ioLifdUKKLpfL9v
tbMYxp4Mt/dNsSbFMhLZ4oPaPhRzx5Q/UzoRDGlgc6nFtUrIGZY08GLG5jaaB2ARojZ9oF7M7MY9
D2d4OTmBZNfskCcK4VFbiXiavn0illywUHmFYzGrrAzIrwSUgsV/cnStAsbZ9ighE8/+jLJVEIg5
3jKzVDwyghMzbATIRBTyLRGFLBRR2EZHOYtB4Q7o+snm5D6foDybdXz4yURJWuVMivEK5oWoU+4e
i9KxKAhz1AQcNuHw9kpKpE7QtGtb0nvNZstrrgIvVcxnlbwkhgj6YxVW/Gwot/RDuepJQ3HWFoRD
EUoxPXtKKT+pCRH8E6VtiC5wWw1OVJTNM7pTTFyw8DtYJsqYJiuJnhBVZRYykTiOU7Julb/rAh77
4v5vdt0ZJaFFqjzpss0p4lKO17Lx7I+JT3wy/+Mwjxu3WrcBG7eKGTo4gChLpBoLFmFGlZjzgJeN
mUDbiVywULBwJZ6vMGprqVWivKxLvG0szChDMZR1VEdY7EZEVoVjqStSTUnLMmLjWRtaU5W+z2U/
nARh3bFKk8ZVmoguqf0X/Q1aqKSseMY8jnpZ7QZWyKfyYsz3rrBYXP+5wSkTzOPSTzTWT2y+zcxW
LBBW4R+lK0eYNeLS5kzOKlBsTNwsKP6qTT7al4x/vaP/8xMqwr9N93+8Dbf40sbCLW3EepJl7TFA
YkNJ4wBqH4DiAEQtg1+zjc31Ug5mvl4tUVs2l8WhsQWWbnGhvcwZaoUJLfEdogVb2guxDhvex13O
Yts0fu0WvnoRjtARfrz8GWylOCy3Adk6MW71raFfqhkztAxbNV+NWh73JsMltXpAyKu1lYf++z3B
XPL0AihTKlGhlIAy1zAobkJI0IoFGmanyzA0uuz7OI8QjwTDb5aAZgtQVhgWAWrrOLZgsXVYbBZ9
HoGrxeFJurldCWgOWZhFqvzNF5H4MytopjV08XAg+B7LMEWMd4Io8rU7h4eFBJuA2ur80qsuW4Di
TC2LzQz4eLocZgFcuYBjabH4GYs0SNtXXtoBVzApxgerYm0R8L0VLWV8laZN3NpXN30y+7fxJKDO
ztssjQtRO81weOCeaRMevetfedWiHIPuUT+RYDr8segbx99zoHTDsxT15mcxpRDbKLIOUeR1upKT
QXE9ak8wNsZt+OWh5Ydw1LwLYVXGwAYqKhqGAYwqZCv/ysOCpYgtJJ87JNTLKpAg1A3QbJdhhB9D
Z9xw+7JI8hBlN4jRHcRrBJs5g1dmtBHFq9PEQp/QuAl842r5HJyWqk6S4xbMlf47+ArCpShmdMvl
VgY8ZOvumD9543BIlzm+b2LCTmRCFWtUwm/dA3pNVMu3Svi29L9NY3uLVK6SFOXpji1EykEihrIF
Ryx0gUEeTWHRph2E1Wy+M+qhLfTl6IHFyjfoEYHEmpBqCrJklmRJp8iZJxa88ZbnVfx5W5ozIjLA
NoXBZGW18Cgj40YgY0ceLOwYI42dYBGUTm0FSovDKmbT9QpGIk1QFXCMbXmGjD9DR4yR1gjbLD/1
JI7++7/tBKF5fxuGi9tgS39v1bf+v0DYkQoc8N+srCuMZVC72UQGFA4qiX6vnAvFlOr7eBgm20Sp
X+nWRx26snQOHdr17dMJhNAJpGA7518z+c8B2GFi0TNkzsNmjhAHQauQTsP3eDwD0eEAMaPIuww2
h07Hoz7PD8PxHr+Wexms9MqfQJkUPh7tPEJrFza/7r4NL1/HO/21vHwSPXiHf9bGce1vmPEFGGaU
DP4ODayKG9z4onmKpo54Wi0FdvQ78Ydx5MW6J8OUDgum44eyHFp4Eo1D+vUvl8PwPQ6g9Sn9GcC9
h2lSszDfBOGw8EezVDUZjnncZphw/tCy8S3WM4soZkC8OafsOF+Hj5eJ6jfhYHHU5C5CxExZj9KI
AubrSYvDeOAYgVUpNNFLEQ3px4+LpqBoCUAC8QB63Hpz91t/mUfxEVgYi3W/rsQWREbh3vFXcFBw
XGyxjJxbjiQk9hGCo0oWZY8yef9d/8VB/9XbML6+xdkmdxzIRrx5Ymie40yX+UzXSIeCKSorUbP0
4GOCIMHhucMhS14Ffgznswj7cBAYY3K+s4kedr4Oe2gROuzm8VfhTZIyB5kBmmnnFDMw1VQEVZO2
h6jrGKhu+B7Hk2J46oKUYiRhHAITy2oRy70m1w+oozai/TzcXgf5WqqrUhrXvFnqvbI29fjE4nE+
bjZKm3l8OQlh5ZLF2CM6y1wJwoz7j/iNmD1VI6AopIS+ycsUD/tIhpob1KvxszUpiGuBiuUbcZwV
ITIYztf7x25NVkDe4+VhKgZl6qp9Oq1Sx4wfsEzpfMw/foDWfutvEn3k7l154S8DNZwG9ESQo+Nv
4JiQeZL+5S4HTAyJqqdoU8qRyCvxhKpJgRm+a5X/7U3/1XW6Pq7xi3GLpHLTDz1YCUMkS+oCdJve
ptNBIkumvqqg+hIGOyAAJij5pD3/lWCA4T6+qgKxu3JtHEasFgYbiGu2hD5RXYqg++sYZ6yknWce
aIMoKfyXauPW52GcE+Zn7SvJknIxP1PGdfgOVSyw+4JmhD/mWGUtOvNGamLgAfK5ylQm7k+43+vj
ctc2lNazQ8ydxxC5McsACns4LcPMulowesaLNjH7k7YkbnFApmwPq9Q7VyGHsy/JPMLh+9GxtiWb
zIlA3Ksfjq+786SpZ3gt7tP9bVA5pC1g/DnUG9yBZbUI18eb7Cx4LQk02VJ4/xVJbh/91dpId8Rk
s3QaaYewRwjXaYS08XCBYfqAhYPwKI0D5SJCcPg4ueOHpmIbPvJCu6/D96t2IvU1j+NttnP7hCPY
7CFCco454PCh79H2t1v/EcdF455RqQr/bCz3XGju1AGY+PaK0ag4ZTXKnQPsTBPtMLtATA0FDNyc
7h/XwW4EiDXfIYkZsw5v5gxDQ2Lam7wLhNX61JkvSNE4UQVE6MyIZH3Br5fpm1aYj/OLQPB15mgV
i8kLBhLNZg9hsDVKgFZ17m4sVgrQjhNuIADlhJQ+Y8comBkH9PxwKa5m1/5yRyxCXdFpmq7x36qd
5MBKFDI7kDBomEVsTQS+Qua+ZkUecFKYhUGP8d6fHsOPkO/Vokz7Di/9QSA5BtDVBgIPv0Ldxgjp
eI1Fx/0FcL/+2zxOfJWD2eAfJqhElxzBXojZQLiLpHPsyJogiSR2++EEw3xi083wAG0e4kLzdjIP
tk0W4+ADjA561/Zbb0gVyCL+0JUDhJLVeC+jppnTB4riVwhR9ePpcZM0TeUeyM0n1rIJNn7utPtZ
1XX8NqWTrswWh9vs9f/m8Xw9jccPbVSONAIcc2E4bmyHkkHLC8jfAem/3KBMDa0IGI8avziT6MyG
NRQOQ/5AcUPwZD8IhO5EIUuOzR/nl+kETHbu4zxmlxmhwHELcph0WCTobppvxN5UPHe9S49RNU6S
sQFiKChAYdWlTFxVzVCDK+ZUZscrw8IZ9PjtOHbs7rkJZN7WKiRXTbHCadSA9DOSLRKnr64KMdtC
72fslEOMxa9VMhjO2wAYIDJuhnTiQkg1HsW4WTrT6Z0/Floy8366SkhxvI8TupYFeeN+R7Y0mDMC
5RUOqyhHqjX5zvKz2GjDIkFsV/l1+NiBorWzcncwLNdOqYwO5kMEdStuUILYh/K6+NBzEvpMpnQL
jsAExqV4Tnn21+spTs5Nxu2VJXFmNzOklFnDboXHcHaBMQe0kN9NR0rjGVk1mtSW+S+ukPeKB8JJ
ELvbsoko9KD2pjMuHcB/FreBlOlZXWSxo/PzOJujOA3x8sDnfYdi4zgWama14ua1dplpQEc0N0Wi
0S6pYKM1TDyhHdNxoSkkn0s2Dn0lTRZSQDPn9tiDXBqi5Y5kfOZxhHMwMGsWbTMB48wncVmMxeQ6
ahddovSSSQNvoS+yDqzVm45HJmDQRdb3fe9FkqprptuRiLl9A3JXX0+gI4ZqVlX+uGh3A9OozqaU
HRdbd0NjlOG+Tr1P8wJFENx56M3pHsP7cPsQXob5TK6XbaV8tAGqJYC+0HnQ3qzgCjfcBHcDJ8ZX
7fcNUFQN//UOl4rKrlyVh4wPsGUOO0uB1/i17Gq+telAMqaHwqFJ6BkgYa1CRyDjE3fXoqo3OXnN
59EAHCGmCxlCqFvBdIEBNZqRxhnJ5jS9vGBhIfGYtmXIghNULxOOCtWVMiavlmOHYW8Glc8YhxAI
kQUgXOXfO+ytfOu1szkDkyWpufQDELXZEnHdvd4g37xBAtZ1yJOnh0d/FyW+W4H3Otyhc5BUn6DS
s9CTBg1K0Flop2i5BoYzxRK1F3abvg6Clmrd5bEvI192UWh/6yqaBw2zv3DYYW6UCFk9kqlso5hE
7/iHGX+PomM/aPULqOrvksCvVCj8BLOepyTDFlXIHwbBofXoDBNPryl5WjKHEwuYu8pJeQ1Fk01/
OOCEaCw0IKfG+jw04+XbgIc9QeORiT7Ef7DKVNhgxYARhto0/gbMDr8LtioT3ywQbSNuxs9+DrN9
NsKW+dqmXos0FwgCySZajsyzYic2F9eiEUOeczRaTZX7KiTqjXt/n36SjdemZVZjtlzHGDn9i5Z8
Pew0+OXRn2CXkqMkwfQpfINFxdkbZ66ZERuAMoGhWYiqXeYdeAFicGVE84W777l3sOPpoZXIq/XW
BZdTBfkLj8GNsdug1cVFiP9VfkSxYRxmkaMx3uNCTGG7BQLrfC3r2R2EYWLEMZq6JLGsYoFFz0LE
AVHo2bP4zf2tv+/GWf8QKAD77+N45IrSj6RML+8jZCCd0XbsBYVbxnhef68lFAQax5lWbcV7HulI
tUdhldNK2ugC8TEeOG/LhkDJY+BwsGLhy0F7zeZ0s2QWNyzQWxWM5KcZLBEtEscDBFM1h5I5IJn+
tvZoRfteXPc0XF7vbzTTe7pInqrqQsBsEO4+QDtXfxMD4CyehwzgYj+ztkz2b7vxfAaB3Ysyv666
UBx9see+Y+ns/RvV8A043ADkv/ZVPFdFIDAmH4vFuaCQX28cUkcf6FYPlHmFJDcWNpkaFsq3LD6y
EPHLfJpuvYCtEzIC5ahQPP88/TqeTj1+QbEb/EtTlX6fKLAvbTUo2aaXqljty6YQaqWKoiqlz11f
HePYvPqd+l31u1z4sHGtZMx0z7Pf1cJHJj9Q+Zn7vPid/k78sTJ4ylyfspB+jl3OiTX9Wf67Svqs
cqdkkQaKr6EAG8mb1i9/f/uQsMta5JwM15ctf6ekAyh3bt4WZN600/+qk3619UjCyDr9pqX+/7mE
sJb9sHMF8EuZGtoqdGKN6VL8rGZEVHDqg5O20u/loZf9w+9y+ZTB5xjetTO/qM7h8j7epkt85yWh
mCHKBQj0wasUouoQ2yyC/4LFSNHu4ZxnACq/Zkj/uCasRvrtNsh9Ob6uwHxZkNNBRCQ+ZOznrDPz
uhIBt4VPhoZvlSwjHGbhxGYIvib3Qv5M+cikKFMLfCLhss6DSNH0J4ukxl0No6y5ewNJTNedzyjV
WspnpXTJrvb7iQmhKMpwaZElP+3oAEBqr4BC6uiSyZJta18EjVH32KsB1SZaH5+m18cQXUvFHZQF
lcq8QCMisuqCogpUgihxfP5T7LlFlZCFWOdxgeTPAXWChKYVrTAtIGqvIkhimpxlodpUQa1HbCdp
5zYLyZXrbTyjq0+qT/vBuCU33trLA+4hoVHJDNJFPkTlJWnNtgyJG9AJ0u91WURIVYmDtk1QCqME
EJ8n93+wplIt0EKmWOutf8yIcM2XJq1HRR5mwe2O6oXie7wxYm4LN2uPZFfQDSQPuvnFBPR8gc4s
MgadBkD89uPbur/ay7Ns+4FNN7DF4OYGxuWR8KM91s/gn13AmQjPFwj/xLYrsEdgxcPyT3zqDq3/
ykEceS/wSRzV/iNXn7jANjLt3A+UITKNsdg26JUPvd5Co5/DkHJcjMK8+9RPbKOiKsHKMUGx7Ymz
DWLonzi97V7wEfS4QHoHxseRST1ClRemkYwbB+JWwgkjzGzRoZuEw7ZTO+HD+mO2CodtlMMQb0q4
/9tPevdYbPYK6bUbxdnlzHCjslBw2y+ooDipVMnK0mmqybBlMnO5XZO0ur/dpOhgk/vFCjkP1d9w
RPTL9IDaVv3/hGh9sKIVC2EoRpuop2P1jiyDj3Hjw8FUk4m1nmUbrN+gqgvaXwTTz3CB/LV/TWTu
WTkdbrhU0XTT7jTMUjiQRaxaXEnCMEPb6DDaeTyCpU8L0s1vCLmRuvMiaUYUEKKd5yElQF3GwNv3
jceCGpdUbqtlKdRVGfhjKdc1oT3kkFVgPY56VpWJy2SWmafzcB4xYXYjHoHxXAfIxgnLASlqmIUq
rQyJn/vLB1Se7b8OdykblYfi+v+Y/iZTpWoKvxLXpWYovUjJjKWqSAiehisdsdLs3r+Mp1ikg4eH
8LVcZxqrVjPx+z8i9UlVa6vyHzOK2qTjIFtK2zBu/Xgy5HyOpzm6rAiVhiHTPk67lxFrv6HGWIhk
cynoOmww4u5Yy8wowZ4oG0EXou+8nqjFHCwvRs/rxGOxagyFK8iUXcwEEJ6KtqiVA5O30MaAfytE
7oNlywecZGHKzs+UaLsPApySSX62LMkUvGkN+Rcxq6baJlYRitnQbVnnqmNlbWCAVMrWYkBW9jzO
5x6SJprZ38/xNUvEaozGad186xdBl1lZZHEeYY/uDdq5Dv19Z3oi3s+mLFngtaphspV1wx8e1xPU
JeIz9edExUPNMLPSZ5CgocZYVCBYgAv1JD1sRB+FJG/ehYTYwrzUZ4V1lPh/zdR06pmeBSauvBov
u+xjOkDN+AUjYMdBg9iLRYllkKoHW6IEB3Q8LJgBRahTARnjtnsbX992Lx/3Aasv+v1dEN0ta6JY
lVRBPt2mK6F4CfJk/O+x8sJcWbC8slDK3YiYqrALOmD2Sy+IA5bdxv+Va6LPlBIq/9t4nwnmgyHF
9zjJ5lLJzCU/zQIadimouU8TiHRByTahpPfLiOUnplhQsLVYYRgqE2NpwYwfmsoz4mQOY6bL7Ncy
evTGJiJa8Qv90trgCp8HTp9ZAlLeKovrdPo4T7fr27h3CdYYkNxOoAMgtOupsK03mkTm6xjJjVcs
/YYHyBbb3hRcUQGqMczFrWoIywwzwEWI3WJympy2qS0HfW2S7VQqpVEUv1nr0MOmXhhQtjAn/rmt
2VXGRM8tXqAAihoKLlr/YCkUqlZTJBdzVyuW+kCg9bLwc7wc0YylhYyW1eNQzL4Opby2OvCkYUP5
wdUV9jgUPX7Hzh0Hq7Ybs7xkMaedRIxDWaodlRd7GsHCQnTFSiLwLqVDM2u8vJ6gl36aTkN/odq5
+CVyR8HMxsNi1B0wg7GEXS0qWWxHfbxoj1zFfU7lGX6GgMCIIioUSMjRNI7NrMxr41PvYdb9UQsc
4aFLR8Ks62qx6U1BKTH821UzfOLBG1teo5ZlnMXqUtqA0Ap5vEmF+ni5ir26S+tgqAKaEHBctyA8
GiY8Ohwqht//Hq70h8cRGOJP/b3/3yMYs2Dj6ceC9VJjbOwRAs0cLUAOtTPFQ6YchpgV/y6O9I6J
VRYq4Af7y+Xe4t/bk6FjvOl8jqQKWiKiFqENClnTBj3hThs3qOHvrnZqNmUygjDPQm9iFEmy74iU
ivLFXmGmVWNp0slxkSBUHEfjsjHFJLkgrR1m2CoS3gF6EBilXXFaHdIeWIYMOkRWGw4Uc1uONwhS
CepLhS79/Kz0gsLP27ZF5RlMntqZHy+f0DhB6fjcQCwwujsROWMkhKj6af+Y79ANR7FAZnvEeaBq
fHXRMHl97r8O2J0mSGV2IVa3u/i8L8Sj4LUIPO6EF1bvGqfwoPUe6wNPUF2jyhDVGaMLalXOWMgc
77zCs6iVIDUR7NN4wDIXuJnpZ7lNx9N+ut4F+mk6R745hpdzsxActzcBOziqoSbGQ6Kcj5jaSWss
5yu52mAQYVaENv4wpAvdGnN/EURF7biG+fj0jnaKgyqA8s2LzI+zQFhVyA4JIfKunWwBhY7g8yJ3
3Vrn8eKskjiBMlQxIXyZbBV3qhKRjBr3jKrG8jbCzV8AIZ7u2aB1lJPIuOdQS3l6Pqq6NIH8lLHI
LDUs4H96LPNGYPf1B+E4XKC4GYwkQgQ26ZjqxAyYmTUFpdW4ytnSIY2bpHHPpw//n8afjal9JhIs
wcQiXfRYKvTirN0HPV3tF/25F1RgU3I7unQ3NO+jlfcbZBgE0cjYCed2GDVkDQBhyhLpfvcwbAD2
8a4N5fHlBk7yEno7aNvsXdtmgkZ0+MS154VpC/SVMnfnBJ1chw5mezXkt2H+hctqniZouj/ujuNw
kjDKf7gBi4i3Q42HnfYiD9bZfnIzWGdPwnBrmRfOAhyizbnwvdF4gtHpOMebE4hV3uYBJpw2Ba6J
bPY3TLphQDRjY9DMm6LzJqm8plO+NjHdIFRovryNbYqOw2kcHEzrLC6+eQIyKiBAxMZkCiKuERgZ
xoHuBxrt9vqYHpKXxRFeYzDbKJB56f4ffhE0SM10eI072ChSRbMvQOIJflXhB1LsA1EWC+r5Hy9D
8RYLTtH7MBeoxAhVyaWhjUWKDl6XF0HL044JuG2IwTRME/ONVRQwWY7h0hvn6X23aFrBr25DR7tP
xt5IqfiuWwnKSgjj7ADn+rqClGGuNGOHuKBMODAsKge7fujp/lU/+F/768Kj2k4DMWaidHFSYC5l
Dtra7lx/cm0El0b5ws17Qz62CGJWApaYXVWzSg99AxiA5Pq/9L1ePiSnqGEMxpMBZL/ErNk4uLYI
hWmclngZN+gIQTkwte7mQmnwX6jx5Mt5ukwpt8tuKlopQutgn6fD4zQJijD3nUAiqn+BcTPWHj33
mrS+oykWRxWzCpjtx2w44z2tbDjvnwo2XBWCzmxmp0Xfl8CSQPtdKILsR5MSPmLHbCqW5eHxTUGC
diFPOW4JCDdhHkCpnEA/DCeY4/3AvJKUbdC6lplCgI3KoMNYp1rqJkZWVGwJ1yrc67x3WAsmILPz
BaW10bHz8YQDpNa+noDd2g9APr+M8WgEEG1IJPXz+ef5C8D48vJ4Ffyg2ucpZZ83r+l9zeLOO7CG
8LbbAiIJzAaBsLN8gtbKtbmZB/2h+GSPik8TQNyC02pmEJoZSoIYaKouJI+NPjUjKIWZJGR6BKNU
xmMm5SdaPyzSzhosvRBCirxaZoZheOQ5f6AViWTmVH6eqLHf379N+L1gkzBnlE1F8uKQMB1gexxS
hUyu/iUtBhulQtraOwrA2XwUlq/i8YfHi58F+TaMNyGE2HAypzpOQyKXr5tlEDNEc2g+sYuzaWUE
nxcDXbGwCJXy/7HKGbJu2lAIec1+sXkcxHyM+lv8Y8lPU3YbawDBgsEhI9MsBW7ccVqcp6K4taVZ
6fRAHzlttrVBQ+isbev+9TT2bhSNwFLOCoIixyZ/yulRQY4QDu/8MJgpqxjft7J1wzIM2G9QhLyH
wzBcN2SCmYXSuB3ITtIJ9NuGJL7PVYdPMHjdhh5n4SrhIPXa2TTReCpP/pRhr6qgzwkFuilji+Va
sS7Ud5tW/hIMfBZsJWYXgKvYldFI9KEXDISWxRFyWn6y8ixomBDs4h5OR8GDYGUHMBGhNG+txYgr
FxgHiNqYg0maoQkZPdp6HNzsgOkiDAQhqdCE0mwrp9DU1m/wDcsQW/va6nH6hLYqfWdJrSxvtMxo
RdDHffgBfXPBIipCrpd7RXKjUZJCmiY+tYQes/QYzdb2B6K0QnCWGVcZxn6bmDetKT/lTTchfeqX
1s3fJHXDZVEYQb/Fba48AWeOBVtl0imcPETiq2LBZNKsYTYky6W/yomOlmcVmYIZlrwRxm+gxBOG
tM4Y3ryNhwMMx/2Qx2RUvBJSeYWfTyOGFvErR3daVifFdhpaFZS2s4PqFNhhetySRiorVqhABbpo
giMeLSBD6SEUWFKUus1YwsvV1ocS34Ir0obcgCfb9XNVZDWjq3apImPO2svjBbOlSxPIJilVebUz
Zprkv9BE4c86gcy59rw3nCiWZL82lBben6/DL6Ce4EXh/yD6BDpf5SvrlVABlQmvgDpUECNtiMbY
sE7NhwecjnMbjifqpxcMlCZU5rKt/EeIsOahvIUfQJ7fYtPxKWrsDsaWQJikh0a4sJqIzGLlVza2
XuZxkV1C8pGFqIBVcpUHStOSVWmrIHET9O0EcVSFc2WBArlUMRarc2GNRksPnpi2bFlRI3vR1/08
LEltgWSz0FsEHFPR/OxYCCAH/ZXbSVpsZruQh+pCL8H4Px3+aEI1J2xo+rboPPM/0fg1PgEucbM+
8XGkNpl3aHuIVdUTUrqQQI9Xmwp6vgtJuW05X0HwurdHPzPnIdId0ICm3vsbjPsQEm/MPlRAispU
QervX0/DHTLae6lKq2Ohp7wlk5oomCz6dxuD25HFDzvZTSjhKhC2Clb42CF9woesFpwX9YGhYOIQ
lPwTjIEsWQ4OpuV2D4OZTW7t4HM1zXjZ34ZoS0rFhw37BWTuXrZhkkWT0jnShikElkf2sOUDFUDV
QSMIPLJzdPFSxRdHKG9drk2JAjuMB1CSG8r5m1AJCZ5h2foi1qlnfnijc4qbMvpCQr/jIXEI+eVW
vVI42SVOdgetZgWuykL1Dv5WnuisfNIrdUjoSPk3u7154jUUmxNyTSgSj72XqXhMtoqSZaG+vaSn
25Rh08hT50lN3gbLj4bXDbdYsTl9ajWgaAM0dZCv1xWAguIrQvklMde68VXrUJRtidrIt2I1HYwC
l8Lf3V5qiGBV4l6BTtIVZ5zDiiI850bfn7lQYoKJWWc51BJou5GX/kr9ViyZgQ5AJbR0YMlAsqWD
hYO6ZXO2IKc3Cf8qJLGfVxUIJTJZiPjwmW3c0aQ0hNcOBpYiVf2Ca8MaEmC1RROMdAvudhfkIyt1
UVsPorLPeXwL8ZkH04lm9ImgAIpQ0D5Y220mkGx5qmDlazicIIQPnFBgW+UpQL2xwpiVqDCDnzPD
hvYT5q+DqGnisXe01eQmJRYIzEEh2fbIxeSEbiKBgIPMzhoE6JEEjARjddHsoHAR5rawiXHLAF6r
5XFInrxRnA6W+60PknUv2PN1qDgmsBElpaHboFf2lGLEWHZCuzXMV8CApqm9pAfT3iHMsRCUNmsE
qpc9Oo5exBHfFZupuQqosgSjcPQ8KDBJUsp10swfYeaWVFy/ta5ehdBpziSWoXY8Ue/SAp5ypF0q
YiUGi2uysfpP8W5aNzfM+oEElcSqa5kbwAg13WPnxoArb3/bJ+sF0zXlhR+A6dYbneQOqdbzvIzl
znG/nFdAfb2pvwfyzPPjRfBwyxDWea+p7PY0tQMAteednf5wArsvIG7wFeVHZJFCNvb+uT8HOF8g
BV5eW7lSccl7F/g/WI/mFywmKj07xq8eu0QqrnFciSTjWWAYaoAaY/DSELMB+zFTPQdcTbhroQFn
Zz/I2eaWZZmYx+LncwXTRoV/f50xS2XKsmCFBO6C2RJ6rIIecaIHT5CuZfA4BM6MpUm03jPLGIK1
nRUxOL9vMZCh11SsAGFluzUozbp20gYHekEJpKtx3iR5ulA/7iq4ajkVsmM/JqyCPOhMr4uq5uks
MDur9ioqbGFrpSIT4TC8MATXzze2vHBDdk2FbhKOEO/ufWxdFMWJua0EhtcSF0XegMuYHlOpZaGt
g8WBj4uJzB92p3F/FhyY1suH+kVdG4KxHZtF4Bk/gUEmYuFPy7vNnMLzXE0w5LZHibOQ5Nn3aFqz
VmVB8zUhyzh4NVzdKV2uEKzLrUKnDZnHnxZeLeNvFvV4FYNHLEvKnOe1n7yhyqwJ1hdHVSSwNSwz
AUbY0p3E5DxrO3hODcjN0EGdZSbeyQXldTB0A94/Bly0kno797evgqJyiAYrqWnCueB0PyozjkBH
5KZKSciRCTKT55cbN74NXRznCC/VIltjoW1oBgCuB7ckJWC6DflGhBbvUGmPvGXqPJH0Tch0Vt+X
K5x8Z+6E9QnbQjkNE1ys+GpTZY6A65Xz1fgPuCHnyhpIWDjeVRCjtY4D1qSmYKZ9IcGRZ+1zN5S+
mxddlo0Lli0FQ8o26Mc6Cr9NqY7CJiyh/Ckigt5pQwpxGchjip9c4ahwNTZxCKKvdimkrUoRTtEx
Isrb0iWRWWiSgvYW6SKSWWAwB1slN/V4bAvVaXx9u58+Ns0x6VQRjJGHYrH64S4b52wEx++wiCHb
SLd7OfXaWMO/xgDPh5SRZ7lzNrgwEEwXomzB2FYoHi83qBZC6a+sPgWKz0Pi71lpypMpstCTSjOp
tk9+4sMdINZZFclWZiEb3fkWbxYeTrfdzgzWzfvVDdA3tBleEarqxI4aN0OCLgtCRDABqpAt4kbd
yUFNXpnsxL1XRYXzte3yRMH27UJlNbRPerfMsxacLocQqL9t6ojvDgaa3LfBI5DO8k3FZzbZnbxh
H8jfwF4MNzHMyjIM0NHRtOtUf7reqwuZrDZVT217BxhDK1ieq5GYdtrH67jHGf1SiVDlN7wVTICY
oszPZaKactUWnq/7treomVY9B+aXQb0QADU0+Dbed99A71ynUdq1njehGb1u1QDbxUrFXjsztOgs
zsVtlPJXW5ZsMSultK/kYGoiHXpxt26VNfHlpDg/HOZHg69o7NnJ//tFZOE6SVw1efH+C2GXaR5a
i4l75yAz9i0WDUMU8PXcLlnnJuXmWdcKY53dYGFs/Gm6PL7/92XQmBgofC5MAK68Cdy13Q+NY5f1
bSbYV0CxbuFcboIvS8Lgw7qypaUvEAKysHXqjrPGE8shSrZtnJmZNIPa1ZguWY9hN9tNwzu3TJbk
HPz9dBTm26vQFHebCQFl8uO3y79LjUY0lTz3T5yv31j/PwGX7hCYhlgVzmjPejqIm5j52lZX/zLt
72AZpgYYN2zkNz5lzoe6mM+NPJGgKH/zdRFYwYxlfdRCIqxfXo3krla5NIpOTdL2gzq2xTbGMYIO
IpYp/Q2wKrZfWrhWERusPlxQO/sNvdNlN8u7xis28Z2pfNDoBkNcbEsz0Dt/GHftSjTiDQYl7xfL
vdCfkcbHy27jnoiyykOj3AE3ZrYRU9W76zBc3yaw2XH4ZnqvQpWXYQlsMhC44mM/aXPd7fkQmLX2
V8aYafaQh+utt6kv/rjttVw60+Kf+xvYOdomlbrTSj61OPdWv/4804Cpi9aTL7eh/wp7yFFAJ/at
ZCGxxO0VuQOj5MWaqxH5R1rFbIoI7DB/4ifNV7YR8kCHhP5DO2PIElZ8uDzfEZEtaRrcNXHoP2ao
CIcwwJLnE7ZNZKHD00Od+vmO2yZ+jCsI1dWxcfnu9nzhh7a1X2CFzYKS+C3ZdhRWtnvur0sA/jje
5jv1rsPK4n4HdC88d+MbW0VYb96Gg+Yb0Cy4w+HVKk9BSwYH7Qetw8vwjUTsEfQ+bLgRDqxWMrHy
dh24KMmLtOymYniswHSoupIvAljy3GZtuFvCIC3eKfw95R5E6MeC1VSTZkUtnDRzH07SSy9pCV9O
Miv4Mb/tMON7fQhyLAsu0lj2Wt9g2QGOULndBPXY8o0lTsagJyVsfChVGVqaYzb4WBNcWIfUhJbc
B5UymKICGviqptZ17nycX6aTm6NHlf9ssVUcIXznibM3KXY4zr8Xl+6ouvIfxXklb2xEFRDysp9j
JtEING4kUbwHk8wPFds1ZMJX7xNIi8evvwrWghNk2F3btf727B0s3BO8GBXSoSu1x1Scr/tIHwpq
L7iHzaQjHWEsShB2lAgL6soQqWk7RHsFS2mIPjXSRx+bP86XvRLmMxygStyilYd2kj4u9/77bn5c
pRVx5coyVqtIt/6r+AHazl8Hky9KAuwXfSEkJWOsR7PQJU8rraQtKJo//fQPmN2yA60avwgH4Bxw
u8kDBAHtppNHdJLDxDZwARMr00BLFS/33QXaICaMEQnncSTNW+JDIgUWFWEjmdBmT8KFmXdUQ2FS
pBO4LumuMFoJw9ZL5csgyPUmptd9chkTX5MDotokp1e+mclVS7qj4e7HyoqzhW5+w5CYlCD7xfEG
+Gym2YEi/SB2H3e+dAQaooVVPm3cDwd7ZT/8HZIwwoa44Eq35dfp2WfU29ScL7k1TPm7AVkQZXyF
yJH1P9BoEjy+sovFq1ZOI6bycLxH2pkp21aM1C2WuE8jglgomYhz0XB/Y5wZFvftDRpi3/p3nHSB
Rj5kIIWlcVnQE48OrZjfpsfpoL2IJHK50+r0kV0jdzoJoqeMWfS/IYz4ov/6k7HELBQ4Y4uzVFYL
i7OC6oBZzONh97hgKbaJcurzYy7jW387P66CFV3FBIQWdW1q8yBjX9zZrJTJJMrS+HGxVQ3RZbgk
lRs//mKXie+HK1I9WAqX6ZLAfcNXxvk2KCga1xZ1Gx6zcJpchQImaI6N7+BvFHcgEZVj9cLFtE/A
e+hjYrWtrXIGY/C+cWchixIycWKdHHDD0svlVOXDaFeOSLT4m/yPMu5Mm5EQeDGQjgLrcjem9OSi
HTs76Vc9j78mtuVmzO8DGVAZSOP87zbEIHj2TRXcHdy/nxJaueQxms5zs58IXSjGJ7oufFemWNE1
gNOGlSC918h0tBiqwIu2UdL+0TqmsFysQ7J7aiZD+NpZMHke9z3qiv1pvApSPXiCVeWwFMpsQrLd
4XMUlmOH41yGv6wa3fU4fcXG5qUIQhYTEtbyl/rD6T0YgUPjZJ1loQCJqb2SnrZiq5srEAKVic//
PN53RypQsm2gvYAjlmjAlmfT33XuR9hEvpP8//XKx7UIdwukpYIveqkyarFM91TYvJZSklGzzOSv
BAu2W6X51OLCjjjoXahUKXk3gRRonC6ULBU40BEx33hF+7V38NqYLE9soWR8jD5QHUBRuiKX0NLF
fDTBYDlPmpiSBksdMoTBM8ZUsuAHVyGjlDKFO2vlyxjq2E5blfkLtufBxVUTVe54j7JMS914fH3L
XBmKqTO7k/V14E5ZCV0tW9rOzmcjRtrkQJls7ZqDEMfqGI2zNd5Mcz4uDxgud38bZ8HYZA8PtypM
89BpeB21itHaBvum7a5Kqdy25L2ZGHyiWKVvWgmzX0ver5p7ExnMRGpsRBNCBUUoNGx8jaSD1TCp
k3dYGqXWe7kT67jd71PVap7xqDLUkrz0mE0XnqRtViaRzX/P4682sUkD8gQyy0IhQKAN417Nv9wA
I/uv32DdEQYW+teEiVi62+GUtpb5ehRognt5FTy8C9wOLY2PlCOXrovVK6AgOJvR2tFB+iQG6lAO
n8bILd69U5KCDVT74cbSK3bS+ujnU6xGu+RNkc9ZpKcOder3xdbnnewh1mVwS/KPG+KWisVgmdc2
XvQ5RloneoQAwu5AEzgfl2/j5SDYMGEbEW5FOZTboCWHZCgWIcWD97dbBqU1WORDuEfCybQFRwdt
PBJSDq3gqmscoNxhOUm3rjcdX6pzxodQnWrL2FehfrCITv31iluTT4OxCY67GV4C2F7Qncy6gB8w
Cm86438N13BjX9g1whQCx81zY/YAkbFokKmBQxUZ/7hgH7N2RSP9wammYH/cIkAwypTy4hkyrNZ/
Ws+kpc4N+OYSY0C6jUFQWZol4Kt060uMvOk6JtmI52DNYcauMStbYes2dVngqj8a0IC2rniwzkdz
FRg0ZQ3EQjiiMcHxgvVSQ6G99vM4Q+nLvzxOEMODgPswXOOAMmPUACC2dsw1q8LwCqL7x306ngct
5D+EJzTqAsBVaAroPxvhjhjYwarNm3TbMnRbQ18vkQSHoSn3KbMsLKJgx7xm9WiOnXDUMt6o2Faj
Pd4Bok47ja/XV4i/nvv5l4d2dA+Qo5TLRokiOna3FhsyOj7ygxcg6bc8DbBWRjhsUTomYp2SBtry
CPqz6fQuwnGXxmY5u9dmgLzZ/nGbxVmbdLfSUSntUFRVrHsgbtsQqMwxjmcfIQnAMXaXx+kkua5E
DyZNspIMBs7jMqJzJ9YjGDjuPGxyAtpF1MNjYgrxQk26V+XOw4ZoGleKsqPCKWrlU6ZhNS3edhqd
ExV4wz4TGx3vuqZSkuhjghP7eZwtjBX0iRWrdCfl7sQKGZNPbBoJ8TLOSsHYCiY5JuzMvT0umAG8
zW/j8S5dpfZf2i7asLQLta+mzEGSHwWTHyhA7LxGk8thUZd4ZMGwursgbh0wTlc/3/86HcbjOEhK
iT81i7xbIbTEV3Za6UtY7oIvbGrRT4+zbbmYpbM41GKLXZO3AbWxExSYUkwRtkv/iWvyStkKdcZw
WWHrKbfhYLDH5AZQsvpmzF9O2rAZIQoQteSMVcSQVWEspwrEl6UmFUIYI+1n6eWXVUgyx4lktisO
/QqbUf2fTsARWpjRwBq+10o1pWKyltFAtsbKaZq+7vo3cP9wCarEowyOS4c4g4MFWSQjIw8xBnhs
xlUzvYHDx6RJ6H3AYj2zPZL8dOmIDmM4Ks83QzagyokhVjOLe2Qm/XggykYRQNf5t+OZJxSxZFxI
4ovdgUYXmwKB4Th+T6qqgtk5TH5ZDGCwQHv536bbV1H2ZEyIsuyv1nVnXpho5k3h4hU71VbK49MZ
G6a4XM3iQkjWasWhhA8q0noZoIhxtwgESSE1IQJbvpzJVkA02KCRdNhChQy9dVRREqGNz35FePqO
rW4RjlI1/tuWpivxZTyYhpIzObrCaRqmaCkpaLZCTnZ1jrBQwDwfO4aSi2wxaJXQ14VyBI/lOW0k
twgvBlAkhVfkzGNrF2G3/9ifUFYe5XJnY1jVoQtSkNJU0mHlKhxovGiR0J+0WJIUU+fztB8zNLN3
aD7Bvt+/ARtR4v18hYYLCNADxS5FQvNpAhOtv847JemPysdFZkkXKBdXoEEjVaKCyhCxY1lWtfTz
7DtOUC5hIgfGVZesmzzEWJf+fXzFnpDr6fE6XpLhjIJRNFBmY9f3gJhNysuc+XHemOa15xRdP2mM
6ixoNv5mm0F61cI3T5QX9sSJ1/0BhoHLe6cIWFv6wMwES5vFSVlcqnLfg5lhl5D+k0QtMTgzrNlY
wMVPgJ+AjN/SKiPZ6EVIU/RmMIOtIwAHDzr3oPpLdsiyNsTlXKoiThJjJ+ia7UoGLa12MPCb2vbp
gEkGyYs8FNZBggEfoGdLo8eD6YfYFFOpnbGDRSH5SnDP2usbLntR2BYsUlCUqNWcvb2/TdqZNkEV
g0ejOF3JH80vNpFdKQTAFHm3uMsrazrWIm7MwzrkX4yxaURGa6tQCGObi1+0XljNSCfsm37prUX7
kA2iPF+ZDXYM6XzfZlEq3+yvveV7VKMKvp/3TBI+Vkg0odDhhPLP2GixMRckdVjMgU1DZ+nZpKWf
14z387YgWRgtsEishjaqpPEvVoh0vBCwRLK1L+saj2TjHQFErXUZ8vsu1GNEBozc4mb0K/Op1FIj
vph7QkuIMe+CkoyFSLF9eUxY9WVQiFEeDCs0TcYnNuPbxM1X7lnJ4ymQ/ZC4UfFsgGN/+xz9CRQv
VIHD+0pBpoyZPswwW7QuxE7QaP7xaLfjSU5v5aDh1qKmseOjNVZmpnhYem2DI5V3TeiUaPORieck
PUZyRQuY8RtLfEGdD8SMaFAi3p1GVeB50YiBwiR/6Zn0K4xWXT/m/KYNom87Z1q+DhOOb6VKOz70
WJt72puF6qxERFmx7BXDjiUGIOhtjnbYsjbld7gy7B3kK2019bP9YkyNZVPyBmMZxhVCWUSJaE2w
J41isXrDuESFHw5Q3K1KOIy5qkJ8wxL1YHbYgbq2rzw1XMQYwzy2hWPY65URYrx9lBGX4Zvk6Rch
EXPqf/0wiW6mFmyLjjRJyJBkGcod2KIA404CkYubL43q7EIGK3/RDU/JCBdedWUHocEukWvwLSm2
epcTfIqF/ioQgVXtNC7MsF2aTMVkFwsescJBuPx0G1+BnR8vhIz+BTwBnDImMbLyU5d2nBfUze4h
PfSff/3hX+/369/Bmp1Fy6YNx8zuu37H+l6S2bOizWKWBN94sGYZSRgw9qX5SM0qMiobbVmjQkEs
7FgeNsTUiyaYSMdcIvbzjpcNWMlDZ6CwDJkzy/rfeX8bryiAB5k7W+ayVc6s0IC0Xz6cDumQM7f6
qqVIhEfFtd8/nkjZgOPXR4dcGHsp6N+vYtjbdAsLALEJJTxAl7LecmZqP682vl6Q7Uys4TPuLStg
YJXRC9aiPXgGRW3YDzsPhxEIcplIA1wMqQ2olx1OopeWhWLSm9JcqeQWqzzAUiIT6Vpi8tHRJSYS
X4UsJzaP5YIxcyxdXE9mgQIzMS/Og3AuxfSilRusMIaAym249xiGM0afUPNu3M1gBsKkm4BDted4
YLMN0vVKjS/xWd0x3wo1PO5i3GydBlv5/7TKaEOKqPTsPhPkWbMnBiXMALuEaG2Dns1TlNb8Aym0
n4WsA576kaisDFGZebVbfwF6okL6SZ9D8pLyKhSBfyrDJqNcTlbUdSjW5z+ZhNlg/HtzYMl2LeNb
4hz/l9MgRpiCEe3xYqbXWJ9OkkJVKFTj6s3+bnzLZLkZcwmzpWpzqS/RDHyeLqLcL7NQBV08/lhI
OiTzS0Qadxo382TDkVb6X0ULuPq7PtqLlgdQy3XAVvaDUZeSTnIsgL2b+f+tJI3kv7SSF/ksTY5U
cCgRfRaCuF70sEVJ51kVyo1gWMEhWGuZZZ2lHEnKu2B8fDXPjyIWibyFYr5ajbXJRiuYUM5ZDo0p
1Ui6wEVyEP1iJKcIoch5n3awIKrS+U0fTirwzSPOlT+OatPjKWYjrWbL/Q9mZ/KmDAX7ZB6VWNIh
pO5QmDVPYRbpdbrQaVYqf5Ml3SrvnVeaCFnTZp42FBVknQoxqRCaocf58gXf7ssXKdiSh97dtnJe
tVKzhmyq3ofJQ8au//bTj3+jhh3hfswTpmUFy0AFzMry1To0UUES+2WolNR4eJvqwlRRhth9lXK4
DWftyO5e9xKgxkNJUlxvCLNmzSqQWHhV/cSbknVchdIzTgKl+wSN7MnEshmWzIO6/knSaoVXQQdT
UvI2EG7Y6MMWIc6D6vYLxGsxDbalLCgL6kXTsW1MQOnti4blreAklqaJ+rSDqE31/TjLp1jJEZVt
kCMbC7aCmsi2cdvwtrcmxhbZJYMAbdBK4XGELdI8Z1XPYF6aPdQ4NXbY/cff/5Kocy+yPFSXQ+2L
34b+67m/Sn5pEYrzhQPFiXLlgveXdOtVZiRkTd0AlIVLMraSUkrLhlfsbNTkNWhT+SYRQRYSdNgy
BiPJepxgwkuYJGzXkmm6VJ+mvNs25N26ZN2mTFTWhGLon3XkJM+tCCnNxwWL36n9SHJTq1Dzy33C
zR7/8ZfokGuTvstYCQ20dZl2rH/WTCulnH4TMoy2IlRCZBXqSfj+xlLNZlz1Fiu/qWOJo0D3hznm
QTpdEwqtLgIc9xJLwjsYmTVcf9T8BQVHYgK5DLEUsSfiPRWvKzgnOG0PkhhKzC7LMGZpGZoRxkUo
bs1N0A3FATmr3YQ8f8kCDUvk6qwdVi0y9CEP0oHKItiXwkPCMFsWMgXRARUmPNz4DSCl4eZ9/3h9
42nrbdZjHTRAIawDU2O/DrZvFUckolkqRXjKmChzWxzTscyyi0W24hlVSb8z26jGTtciWZItJVJb
2ZTkmtZfQ4/J1i3FNgUvamNeQcikl+x5lkzslhUXZiPQywAD5KaHRBusfJQtqoKHoMYpeAscOOF2
ACBn3qdRVgs5D17im9SdkxamKkTOl/FePocit75uY8FWXpTR4mUhG7kxgc+i3wqsF2WmMz5VTd6n
HyDjMvyUTBOujIXWL67Z3AbEiq/YpMenuLwbCiiJkC4kkU7Ddxx1AD04D5zWHCqil2oLqpDIJCWy
Wypc3qDsHQNQj5vUl6GaYP+vNvdo+Pz9A4IGMCGuf939LDauMQGQrTMRkvnqUI5plvq5puYz1jDr
vGD3ESwc8w9jU3CMylOhlJngKIvtCozI6A8zUNTtJklU12Rd0Dmzr3Yf75tfrfNfje/t/HmC1byP
1x3YyqVkqqtYHvV/0J7Nw4ai0EIiNeeyBCbrH7Uui1hbk/m1jqYwFUptd+dhnkEs2jnkafO34C79
eoyxmekunSWYjeIpU5yEPcIgEFDtiTy0YqFu1kJtmXNLpIun85wHHplYMB70/xlF/Kjg+AkT7li6
IMhTFUPlQTx/G172WPlvFnjJ89mNBM1D5jkFYQDW4zJ8v1IGj5ZJaStgctZVn9oSYnQmMzrYKkRU
bL2ZymKHjVJhjCkflHCQSYEIG9lMVYc1QVPBOGvJJS9GvpZ+V8GqOBZ6l4eTGFSpmlCFORtA+nob
hsMHqG6N9TetyCXM5OGOcJZLPfRiQ6fqgkRBofBPjzbhESPnt+HKjP24GHUw74j+ChfoScNEiirY
BrMgfANnq0oJNR+uxVjCciZFm6hZfVs9rQoVLKEnALf54zG1VsN4BnnMwzK2gnESxvNZKq+JTBM4
2/jZoujM/EVaqJKoy+5CtVOYlyFZNR4/pNwMH6kBioFVYXphFSmQEqyl0T/+PrLxJxJ+w6WswUzK
eJervrOmjdYX45TG+f54YR1NsK1G4ldWq8j2ly+Gp++xUuW79osHsVWKdTlhE4UNfR9Y5zT1UksO
XRGSrq6s/dRfXh+ip180wWKjf9Y0qyQjpg3VIA7fhz3yAPQs377KHh13QMGp1ejk8oVqD24DrAwy
feLaMX35ECs/VXhWxP9gO27BvBvmmHoBLrEutJM6+y3HEE63ZdbqUBLD7WrHyw98MVaqUq8K1hy4
bO+GbiNedxRKZz5Z8rlkyRchQ8B5eTScRjoNk1IopvxBRlgXR8O1iHkPu7eP69sgSj7m8vEFNRjC
5gOgrQKfE8JYlUHxRya+nBLLgpFNM4eDtnlBg7ILShzE8p4sFOSg9b2MiJZ935iQRMbaugjciMFV
8YQXhj+JFTZKBZNay3gfGu2z6C/iACmjwHiaDSB+Ge/fsJDogsuVl3XPkoIIFthzb406oyQHzUk0
KEqvVoaz7SQTtXIV8hn/x8rfii44AvCfHbXzySk7ecicYgEY8xuu43E8DnKPTdY1sXEAS8GjccHF
5oK8jlo2sV2c6Yrv4KQClsRK9DuoSqijWHCUStE0K9e9fdoRgWORcbv4bXpcRYFahMoCqO3GG0ay
ofOGF+M4+yhSJEC70nDyp9lcLhkxQenoTTd8Ge7fBiDcm2wK5Kx8DIe8Nrntx/mF5vMlZ2aUoTRt
0JaQDIgmRJ2fndemeG+Q68F5SgBsC4m3q5D4c8sLSi0ancvHSEoJkEZgGTuFjVVcJawkVsfMEgtm
eAfWM9l6SZgHK2kNxStiXJU2j/kYlQaa6DDcB/0y4GlSrGhDCDJsIayurqTLZqHY2moQ5IZsTJHF
umD4yt3PzlJhEUkWy0+0lEEdxL+kmzXbVY625GStwd563ErfSyDK0MCnT2+Akhz5LPoLm2dvJHQY
y3iz7c8oPL8OH1D0vXuft3S/Zm2osYSqJ9BTMUsMKJ0mAapiUVo2OHy2pSVaIG9p9M1ZaR8KRi/q
CNMn0b6VmLkNlREZAFvmFpahQUhLZBCnhtA+z82RwTxUJmQ4QcsQKN+C+kGTaRTjaaySG/5Xc1fM
TQudsMXhRAJKcswYrlTppsaYweRkb/97Ur5lzBoCd9gOj7KrJrH0ev+YxR4OFVQPi9190DbVn7XL
Kpndq+567sEh1UxHyYsLhoWINYEj5JJmbokVpZvwqWn+x28Xi8I/DfTqou7lc4hRsDrdK2lXFZq5
+H8jY1hJVn9wuIVXwakPfoR5hxexqb1UIfHmhmbTaTHMD8JT4v9gIzq5oGRsSg+Zs7gCZl6Vyz1C
rZKpUVoG2Ipu2fOIYPsmD6xbSexQYLtJFc5/0exv5wKDzIHWXBRHiRUILdu2ufKjXKLw/Lhjf1d6
tUzZVaFdjPZaeZ24FlvlqCoIDamqca35+okxIWR3wxEDwnLh5R9ZK2x/T2+Er9lyYAwzFM9LtQIr
iYQ1RI2/Tajg0MRVs2z1ymrckl0FvvJDYYG5XZEJdUHfdket//z/SNgmVsT2DC3EvIxBEfZ4uPUQ
LEmKpt2/wCDWONFlbM+oP2Bv6SvHHQnc8KTdCcLmFRVammKXfwuLdTufCHKz9AFG0mqtCVQkrPxu
VGxVjbHkhv52+kjtEan4xrAn/0f/eRY2lrNlTsViYK8Eidt1LVStkmCp2G4oyISqugnsud6wfabk
u3A6fxfO+A7MdRle8+eFmJ/dhZmHtia9jPfpaoYc3ftXYelSFVoB49wvcdsTk8KrjpDx4gQQeDTa
Yr4K6yv5/jKITdbeyElMtOz2xx6CIC8vgiCp2eogZgQCHKqGWPaaGr9iWakiMIhDMBTsVc56wN2t
SwHrvHRwI79aThZIrY3t7pO3nQnqg21rdsWm515YRNawlUI4uD83cSNvAMf9DXqytdcz707jV+3s
Pw92jLkutPGwDO1bN4aH0dNuzu1hw8rtsuhCuwtxHPCmScMYUsrYhh9WwIprTOTgBXG4itG/6Yae
rum1PbRPtg6tQnZT9DFR4v0d+uGLaDX/wvxD4cKtv3CIbQGjAVR2CTErk7rY2KP5l8LirtVm9S6w
jWnLXruarR3HQG7RdGtXXN5K2DAVyyKH0KI0vj6mx2y39F6m1I7euoxtL/WV9XG8zXZoC5SGmTmn
tDXzPNwEg6RSRWgj6Hk62OpugX+D296x8UlbDIfpLJBDW68WvVaszossZ2l/aLvW/myH8sv8yQV1
ZatipvN6VqZQxkCQGnEhumSJKqb/V0s609a3YGlX/iI60/xw6rVZfOGpy8XFoATAt7dRczX8hOvI
333T5oEZ8i/sdmNr1Vjg0cTDKKNs5yJ8wX8krMFzvARpv7Jzhu5fLpKZW4SE2tIM9efv1+kCJZiS
5miroE+BbQADBiSlLb1lU4Yci9BGifgRVNBEWvxtjLFCguUyfBPFY9NUIS0YFY+75NI2kpVsJyBk
8wrjMdpIA4q5/sUsVkjYvy3jHb6RTp8R+l93dh47SL15PA1Y63Q6CdYTN0nwj8ZmfCETNGNH7oyf
+v9oV+j/Hy69aLDIzFwbd53p/xUBsAhDCTDUAqPChLbJaAegNAKUZoGSd7j5qzN9BU9wlHijdoGD
bNbGzlILMOoFRtNhiLaLnaSMQ6kZbrEouy5jZ6mEs1TuPm4FegBGIcAo3AtB/r4q2th9JCidOwn8
dVnnsbMIWDFpBnznFo2n6FkEmrPLXQG3LVb/RLGbi7Tr4HTQ4tTBcGke1N2fHgeB0xXza3gwECyk
i/aUXm7A70vx8Kl/GU6SlRQWkj3sNxhA9gjqpQsZWEu4VS5YpSCeCoUPlgH7Xs3TAleodiFTuYka
N27zd2qHaNm1IbzYQ/xl/jN2a0RXAdL1St9KawInoWQa5TpxSKlwJBXa0fxsGqfsYuXvfu1Wo4Q2
v15bhXwSNs7UuMCpYnryNNkSZwgN5Z1lLrNaaU0Au+HwSkMUBK2Y+0EWFmRiNvo/G8qpizwUUHz2
NLSUuN4GYzUKTkUZcoFcwOJ6FVyDpnCECwqu6pgRnVzGrVgg2yzDrFNDGmHTffwFiqBN78XkoiM9
kVzL3N9/bVudUoEGxRZ6Y/yHNae+6ScxU5rR74s/LYsFQsClWROlMfXk1eJsHzGv6/RXqWCTE4Qn
BclWhnbPU02CZE23WRZz0Uy0Nxn0qtpovsVIDjMD8mV6XLSbgrbvhsRLXVUhGWl6IChJKdTpkTdb
h0xfjE4hryRCDqUKZhXswk6tcKuyjf96yf010D36zy6acR4lzc4Vqqs+sNtmUoZB2+Z+XJJ3J0bS
xGRQtKH7u642N5sY2qN6yQ0vWYamgihDZWbLm7kPE9u2Pl7eTXWA4AaqUKiVTJzf//QXIcq4Ut9m
9jK10uhDwBxnQYYWIaI0MvCg+T46BIhkXjSZyAcuwSnEYFpVhiIBt+FNU7O0rxfPwPiKDaNlfjMg
AmNcAvYZEl3l8XPRviZxsQaAFHwWMqhYVuX/hiqueIbQ2UhozmL7AqTtBSukyZiyqSEP0SSzBoIP
zVJckOpu1wM3EZ5dYWkm1pDRK3BrFwtruuzDpvwIkzbgk7Pc7R4oFauDjh9sPIWbbW0qL0DE42OZ
/fCQPsEiU8pm72+4eSn+WMxuYmF4ow73p1+F6FIRkpQugG9QehiErEuVBV0fO94flNkyN1wgGU5x
rlB9/jhDhYd1ZYQ0aDCwb0fzQfptZulkSf6XpQOFfnvBu9OX/LtzETQ//fIYb5SUh+48M9ZEEO88
ZgXS3VUK2MpgU7fFRnxgWseFSoUcoDs/Bl5r69pyY1Fr015/laz5Jc3eht5mbfcsGyn7OzD5vCGL
VbUr5lFryDwPExvnQiUUzkyFEEPNw+cQqYZ8/pKRJZ6zLElCGB0KbZK/PO7IgabHYZQ4Lwvyj/O3
beDfhLONdDmdJKANN3NrL6u2sQAGkt9SMJ4ZA25NmxGbpijzdS9ooDpkwqLrPWuLBFOY5KwKPFbF
pK97cKbkhRfIYjHlx7JWQJg/RYloFTvMExFS08SwWzWTCWRZ+/mUmtco2/nn89t0u0Ofq2MkMSLf
lTF3fMOJqi5ipoNR1p+wGBt8MskR62JqAzQFLBzTzgu46+AZck0ipE6bcJwI237/DO7yHK1/Jd/M
nYmNRSH9IXzWrdLoXNjDPfaCS83LmDKv3uupjPvlAUNAhAKgMiRhcREAbgS4DtIaZCKKVihGqQqt
nUYtJ4Cnvo4SN2RBc9lTHvteSHmUqg4lVcWCERRkUocP8WkXKxvDMO2O5pRSwtklEpM1Myy0wiI9
gVayeHk5wel8uboekcO62W+2qwkT+rQF9+PSn62vLigHFWO9leWAxshRA9xkMnCZ0LkCJGs/mdJW
bYHch/NVm0C3D3i/mxYZgoyvQ+7b44Ld5LiJzk5l2U8PQSF2zI1kgQljGvYvM2zFgnE0tAIIJ7GK
k2SI8VUo0U1m5hfTdyN87VgfUqxN6wVEc9FqqPM2FDlmgZKi6IRASTDubAtkTDmMrY5JFsTkqwog
HuwAm0WoFGh9bix93wF8HuwVPZlRle+0FTEpyStuHLsed2zUpXOhQxvtiaFrucOBXMxNZa8JXAhN
x8RkXSzhYJpCWbJgEvdqkcZtYy47EotAKEE9y1uWbWn2gTo5Y3uDCCeMjVwnNTqqYEEugvltvKe2
E9M71bHwjPOgMVIu7YMnF5olyf39QxrR2ma/Uz0Ad4ZsQxbf1ph6h9I3rJcAHc8toO8tVVTUmRcQ
8kcfIWUap3mbKcUC4zjzq/RNqccFh5Chktwv3fzUrKHtAvPfmDbGhGNbcSnfBFZpXNOx1Wbludpk
JcTO7SgsM4dNstWUHHaAVfDpJEuVBQtIFzlaZlUjyFFeOOw68Y2EgOkpCUO6KcLpCCenINCDaxMx
znMeztFZqcSfdYg/pYxRdAcLhU/rWJW/L6A/JZuLqG23crcAi+fxAKN7YDfcdP3YVAZXt35XQWX3
pU2noWdjcjckAMsiWJ7tT8PDxIZts32JjZKnOqigi+IFytCRGy6SFFJdE3yWaUdt3fOgrcDpJKEo
3GQTSWD/hugUE8eMM0waxu9a+1u0j75kC9NWdX9GWnw/n9DmXyrIBIFRB+sHiVe1EgVaTlXZNyxM
mkPQNm9yuVdiQwk7K6+rlkl6FmCrnabzIg38xB7rg8WiTqGo3dELVgoYehleHq9SzWXJvmNZB8wD
aOaBIM9lSk2Cpshs7YffOzlluThN23OXDev6Wtr1cWK3C4gf+/EkyKUqxOrxmK0Qmi1CaFuSh9oD
THeWtTyuvo4qHKV+PMUb+5yP61YCaXZ+jw7lLdlKv1UTRDCaBf44zSI6kbW/lL/vxaAbC5hhl0nj
J+KXZmMhBV+H0mqEIPmBFMsG4QZyW/g43O+gYkZRjrSbI30eUQvxPR7Ahtlz5q2/Hgb87/8XeuM/
xlPvFc/eK6+Ifd/Pwje2/kitNpGMp90l/pWNRyp/fqgp4c2Fnyv9nyPCPB+qSOEhftSxj1yTys9L
yXAZ/9QGe5S3oVkcYlBx+0GRSK6INv9kEm//3xCZPE3PoPzj0h3/HF3jUvH0skWMG5ogvIJ7bxxW
WDm9KCCzXT4CHq/N9nRQIYsNPwuf5+6cLpVPftSXJQf9RUy1ESBHQsx6ty/zJZVRolcq/NfNl1qJ
0yC/b12H3ojaAQSEs99zXpu8LJou27gPQWjluW9FfpGTXHRZhvnAXiThy6b138wuxnh5jKf7l+UM
6TdrHdbYxE25OJE+bEJS5g9kjgtMEcQ3pumjO3Yr3gHuPy9WHkmCpuHEDTg2VooTNUq4Yxs6bLRt
sOJ1/cokicul3mqQqaHJ3Jcs1M+45ouQK6l4xYHyuqVMMkmi5SzEuMa0KQSt0WQrOV74xYNC0JoO
nIcelayFlGqs3aFDywC+pJzKitvQypt4/e/itEyi4zZE/muhKaCcKfZs8Wb/Fk9I0q8yJa3ILEwM
+iBUtSGh+iQt4j2hFe8Ax6D4Eoxbvk4RZ+t0KDPPLBcKLFxXIVTLlLW0OfrMBFaJYMp0TM07Dzy+
rJNISIUMJ6c3U3jputCPkmATztpkoTd1Pys/ZpNlvqgwMQtM5yS0Vl2EmPa1v73gkgWBAsqQOP19
dPIHkbx7SPTwbf7pchgpqSMcNKii/j68/jmSnaIf7HwB7o1cyEVhqELCkJYsftHaDf7P4zYKb+oQ
pDqc2ZCzCItw5CYkv9/7G/zq6Ut0VS+dunrilNUIJFemJWyqIBesEMZVLP0FaJPJnQ/BCn060tK9
AmURsBxFcNnLkMvOC4+VEvJpVbKyfkubZMnCg1gNoKL9u5N2NClLvcwK2tLx33ahJmnagonNrFDP
RcMpXc1xok28ykKBiqfMC41+9ZItiWrySvnlCEVoFbkQnO/8EKSSgxgYu4Aklj7iDmO5Us0ZK+kF
qayMTQFEj6Fq298pp5O6IgvVbIR6a3eLXShEl8tQWvepjPSp5wITX5BkMHUPyV6Mqihj1Xz+mwcy
bPFhh/TmTXSukDm2GGGvGc2gmZaz9bNSarPkod2GmuoMufUHGx8epAkdLU9m1uvRgMBPo9ShVgQf
z431xh4K4H0p61x0oYbEZYAfVXdA4dnj9U2+TcOqqQCnault3Pd3k2eAJABI13SeraxW3fsuomhW
0pnkIW5Aw8zxjtZAyK2BfHqOWrWDI49/uhe84pkRMAsKFuJ3VWmnSV8ZOJ2K+Q6uDsnUfKYD/wzB
GGQt/FSyXNBSxgsCjjA4KzX9rar5/KwWS8+y3C+Gknrbat7VARZikbGSBK3vPje5omb6lxdQgSGx
qbyY9+tQB//TPqGX81XIoQv9oSbRyUp9hSQCS+03JEp4pZHr0wDpeDuMOLEi1VXV1bGJM4fpATTX
H8jEdTKehjQJ9SRlKNlh99087qbNl092FLq+Kt944jYYZUwEwysL5fGNSYmxpcHRkmBOMjMww+Zu
kw7A5KxmTq3spSRjsJ2PLcCmCumZ8idsrK5Wz9qTSVSmlpnfeWnKkd7AjmNTMQVZ3AUrlGk5FVVd
z6bsWjL+slBDTrgb23Wt064ru7Ml0aldx6YXPuUyhWRlywc4QpFJVYdqu9matsQ0myrLYzc/Q/K3
Fyoy+QyYgqVVcOyWWeK5oeilVEww5CVuKSnrtZNR5lJ3o6NRtsWWz+rEkkjBPuGmFVZe1PEUZ3qo
EysjBZ7hrdaQjz/2u8M472/Dtb/sBUVUBocuIhjqavo2uQSwYJIXXajkj9TR12EHT4TmPcZojGEu
jc9SoRJmVpmTXJRHBTkqVOqFeu0+ae8q4SCUTRWew2SZACwvuaZYNVXIQ3aLt0wPvzGYkuMYatYF
zixsZnOd+8uHtCKPzCyGGPtn5Y34NoPCYQOQVQA7eRgrc8Mh5tUUiYgnGVJNuLVzYco2k5iy8UuA
y1X9WNF0heCilrFOboNKcb8m4bFIV1DiJMlbyhmt+ZQ21MVMThqj0qg+qbqxYtWNtPxyxdDOpXmD
zUwbqjuqIugULsUCUMQDZBJNC1G9gAoNKuSDTajbUOjPbnjyn9XrPRdNY1+0cJYudBZ/O6AtKZPq
NJrg4DpveTaNNRSMN1bSS38UgZlaabHArsQ6WXD2sL6S5gb8ajhTe7L2kM7DeYqNbMdz2LHvUDCk
IImo/zTb9AYN9HqLLqukz8vlc9zTzmYNadbYsESRoFQMSoaOOkL5CxR7/Z52PoEHu3t7xHb6IZyK
naaocYR7Xa+bkNHYFsbrGVA1x4sLPgWPpD1VXLj1Pki4sqtBa4yEZPhnYVKYt7l/PY29hKPCHajB
hrIIjoy1vOlEDO+VymjCo8sC/AGboXb6F9rfeON8gV+CZi6tah6sPOLtJbNk4huAnTtwjX+w4RdJ
YrXbcJE8Whw0T/wDDt2wnVodaVQt7uatkzhbPwpsNnqFS8v4c29egLK1I/PWO6bAY8KCLhykKR3d
kWCLuWITUDBbBTYiwC43rBf/W5k6z9PBdoMOv0jHcHSBvK/MM2J856AloR3kGm1gM3Dcg5YQXCih
tDzZxIYzTrfUO/IZg2AC5F3F61n792mEjg6w5eWe+fXw/nK9S4vNyaUZMEO0lokAFqE6W20RjZow
bn8kJ+X3OGvrD1ia+Q+gPyFp0cbHVcy/aNf8k5GmSnmRJmO+eqOaIVqU3EtHjjmzKTLcVWJKCcc9
/vfGTwQOgHVbtKxx2d0pkE/J1IXbvPu4JDrxDBNkTHa6AZQmXMCXBUknqEJAzIW8Tm8JiDsJoy4D
xCt7lxYnIijFJCSfM42gnPbEXMOShZSOpvz7GVvXzZFNLEIlIE7eom+l+KGAlg4ul5mUXWXOTI3F
V3y6YRrphYApM/Q2FbMwOG89HJVurDnkiDSI7x8bCKn1STlESAztkKuNVySYczFd2ywuLZyLe/fS
mZoQe5l5PldwzC9zQgwbQFzr05ttD6oJgbQmFhRxXh14UIM0N5ZVcbO1BtSUvOwG+2Qip1ZFKB7m
T8SjCIAYcW2YS5dX+MeqhbUoK9HxzkMJe/AC57f+MH3D0SG7130ie93xsdLg0pWrfTNeP9L8dbxu
WWvCavfB7jcFxDimUlsQFK2c2VJxse6Opux0IU/PLjDSGvA2aNtuuEhZ65Znm9k2DdILtJ3mISXb
8lC0ws9vJtDdFioW8Vi1eniTVcCquaTovSraWOp4Hrck5Ko8ZGfY/vWfT9Ko05IFgnigzx+dIHjP
VYxXA4ssxmSfas2mtbE5mAaQJr/xDjNWElNFm9WwhM5vLIVusMcpkRBjk4SQcI0y+tifINFklZo0
IzVaELBlyRWfn67IY2ZzxPwmY5zr/eNREKgrpHastgBIVIgclXmQgY1csU5SotKmDRYpmVY4O1dD
zG63fNAWahYWJ+e57A0DOau8jdRMoTywPabUYmp7YXAciSAeVp1TKrwNh1xWy9EoSfudODi+5im4
9fypz6844mNbcNmy/qOO1u6QqP82Ah62lPEEhyPRuCCsUkqvKMlDbcB2vhOsNR3O4iA1ljIw6xO9
9e1AF8MfabupUJqnnmZuYLzrMp4JLfjV1+EDVynv+sd9ol7Ol1tscEZOvQcaKsgCZt0uQHH0AEz/
dkMGY5CMOkSp4iQLBEJwjtId9M9rYucpbaS053GTRTSioLUSpzz0mjBvsJp2gkgQBnRiwHJTJY/n
YRWzZk4nvn7MMqZ0jPmY1aM61FCfHvwVtGvHGoUM0dhToGrSfzYpYLjFID5qC8ZosONR0ayyAXTr
EqP5735ExRHFHg/LdOpudUA3EUtT+xSNBlK4+hnnJjthyXOOft2498+gDEH/aboiHlpDAiFZQnQX
i2LIEZOJqpkh8OOMCoLkEi6qXU4Wg9U6UmJ5GHwk2keYcgEpQPLMa8s7p8ioKvmDF+zBJTLSiuPw
DdYmT9d+H8t9IQk46K3b1GUwZVglNWoUGNhxDc4PLMz2t9edtk7E11Lsfq5N9mU6fBDJ9eKOd+pU
fkbv4iQmSa9tfH43noudAnX/0Cbr2zBQtVrUISZjZsEk8GVrTF8ciH/sYWbI8PIVHNh+/rp7maDO
O7Yd0qT9+MsUyTcH496+e/S9CwfVrdBhZ3yhWWd4tN08PW5xJVIWjM9cr7dwwpU2mNPHVY6s3Noc
S56L1kszYVuEqEzrEf3f9JcBhzXglufTcLxHBQsD4kZVuQuDngL9BLGYG8y0GKOoczRr/zSKU6u5
t2F8fbun5VzjKB/yJiYI+7hctRs7ftcmaJL2c87+TtkxEDiRZN6d8W+wWMv+q7hEaZgmwMBSZ1c+
0Wm0IXeEHonBLWWInrDuQgdcq5X4yH0zK2GhIZRNyiRZzHwE7bv3UQHZMnPAdWFt0uBJ6maga5xJ
WUW1L4bU43a/qUBcaAqSX3bPwnIcLcAxxF9EqZKByDAalxmf1x1J/5/b+N0Nl5jBit3hMDn9z6OH
qzzOyU1YQB3wv3W6nVaG7N5nJyOCIIuFhbASDX2RzllBCEtLBHCu4ZQxGNUCgwlDc0MHCAPGMjdC
8sjBYgIGHJVdT8vjabqPbFFDNHABhOkDVdoSeJqNA+9J22gTcAqHILKCPN5x14MpS/Z0MVjZAgun
Gtd1tnJDHKlG2TD3Tfx2JRSSvi1IPCaAXXNaQIon3ZZupVjWDtBe68Pb4yR1YOUL/VTePPSQAEZY
cYnphBzOz2o+rUijoEtPelVrFQ3DmI2IHy92JmaUiZl0aF0HvoPmiBwLACaw4C76OeMgc6YrsDtJ
ZR5ZPFsMyZetK1lgfxtOsMF2N/fH/hZV0EpxDY2qslh7gsZUEqfQ5As/+0ZD1LWNd78ipThgfLzO
M6VEIdQhfRo9DU5d0WgSTIjMkQVONKjMRAd0Oz7jtrVdCFGMm9JWXp4zIcP7jxwjGsM+Sj2tbOLF
Pa34mRx+QH6ujSFJMjTuudlAJmZIWfuJGl3QA5B2gJqtP/Y4+F61TwImihp/7soz+gu7gxOqMUQ/
rcvY02Ru6tdz0Ckqf9zRWVzTfY8jtS79aZYs70L5amiZu/PC3FxyWof/B42bqLWUhXyTRXLNw2nA
OfyLqaSJd6+Fo+Dz1exwLqNqDBK4aPRVm1CYwhEKtP33+khXCKbGbfe68fWreaEDzDs0U/EoHBMH
wV45q/HPxizaPGF9PA6hBWqJQujYM1cQy9F/dim/z6yIFyi3zfy7rf3p6XiEQvsB1+loTYN/HaUi
Fq+sqKjVoor2aAXkXlxqOTpye70eF/oQCl8gBhFnSHYUNuHlyeqPkrETux3UIHZm9CmLCZzG+U6n
SIQsVtop90MxDhNbw8JtOLbjR6eiPNH5PLEW5cbuoX3jUfQ6ILynKWDyoAG8waPNE/Fl5/OBYXEb
pZhT0YXkRdLtb8oEK1yWfSKSRC+ctGAjc7mb/96fRrSC40dhXOm2BYT0rR3jmwyY1qFIzyIyFmr8
DZYli3e5vn8eyBUj5BXjDpqklsu2btRPr937sQH37iDr8G2SIConghT21i0z4hfjK+nf5XkwOmbj
9/Afn5kMMOwXVQLctcK0eZZUAVuFSu4HVrNwzCsucFvms2DKdk0I24PPVcEQDy6kHV6wwEpSZcUw
BWSpimC24zjetqQ7mFucLWuAkjmpqmZnKN0ZRthRELXn6s28TzvDozIklmfb6iV3TchlpCq45BOW
LL1TuMH9zipdbPTPucYFS2IqNHeVnOaLiouOKULIrdnV5yYSBFNQJNtSOXqngjGjsqJyK/retfze
nv3+CSYqWGCiYsnjCJ7yKJ7cRWuIftYmILhUgB82RpzLKqTiHU//BretcryCO1xrI/SJw2Q9XXWh
yJvz+c/XxwYzMw/5fc/xzShymc7C2GbxlGrGyN3nmEQx+elm/QQszqjAC8ZDtuGkzH17gDj/23i4
v+0eKHuHsxCqUCGh8xSdJbPbrJVIxlAUe+qC2mAoUDteDuPwGKmeHi3eHQwj/+UBnSbvUiWNqoLd
t4+x38uLkBRrzLTWO8pVcJEur/jJeJlBeXt/t3u57X55TID+LKvDN4VhxyalByqUtRFeIW/56wQF
PhNY5bHtJACiMXYPgGBXAyf59dZf36zDrJ34rBCglAsUfEniryqv6jLLd/EP7VoRvIELaDgsZJHa
Xfy4cddnc/DmMzARoo/SdT2Oobocx9eH6JjARWp2nhb/KPmJYK9pljXxI3X+kQw6zdcOq1kZPwJD
CQvP8APkAkKNIsev+eBF/Bq+kgQl/rx7StZ/6V5ES7p7/zJf+4vGhHAQk5pFTOaBl/XgKAFO7eCw
vYaagygicx80jP0Q02mlyddYEE5wm6PA2uCth7Ebb1fYrbquLNssfgDlcIFOas0P0B+xc4Gqp7NM
uEe1YpbCzhIAwSh92TSOy1nVon0MGsmhvd2vEhZNZG4lbMzHdInxAg33+ibRwkR6j8KXOfkThRe1
QKDuLqxzoG4y1TYCHZV58OmqsuuKbid8WKwej36v0hZ2VneSbCuaEMKeZYEgV3MHosZDe5Tz8ooS
Xngyxstugr+HaEEQZY7cMPTePktCAW1t69++8piuf5EZTdWCHCUhKJBqVwtahU7eCV+XPqUUnMCk
B+fSQdalsLEcGzUFnq3YJdQagagahaPUQQyUXa2VRyZxORP/rCWqbLWh0IrUnjOmdi6Ih/NKwHnm
M7Wdf4HDEFCLmxmAKeHS1I2vPtsw17m3SOjDovVFZ/OkPLTfMsmM2DCJx65nJDcwg7b2YQyuiVaf
BQulaUNybLH0dvvT0N9mE/iiHxBMeFQrmUBoJCUEEZU1vp6nq1VtprR8lChNFSE2Mz+r6qps63J3
jBXU4MF9raaehURRCbI1C2nTKqvavBbZPG9DCsgeXD9QVnWJg5eCbCTp1gkYLwUKfzZnhLdTXUhg
Ge/E9EDq48yCyGM6ol3i6NayIadYlFOFz12d9wiSnNrG5i/D/RsmtDRaBB4vQ3iwL9plmn+LxIu2
IQav66wrm07kgjYkNoP+l6Auq0q4wP2tH/muNtFSLB0kTMUFlL7wnG0TsuyqutXmUi4ZWSqXPhTw
VzASdktDo8wg3Jy/hKOoqsxb/U+FA+QpYzZvBF4OCkHjUEhCSJXbHE3hwnnto67xDFvpynUQU5oy
ylJi2VpwbMkilGRVFfpRq+HQBcQyfQrpURAAXBpBkzLjuoW3eDKwBCOxUSGOM8fpb1A0RDAkr8y9
IabmPaPn6wBDL3sTFBTsHRXCC8hwNDDR5U97ZLXnIRtNapW4RIYqpEQFa0tbvti0jvEZQSJ3gkDj
0bFSEEaZYGCQeSBwJrNnn30I15U4Xkxe6UQTCGRr0i4kWEmLsqu6rBbCSjlDc+XW9thHNqnq9DM3
IY73ZJUQxeiqUCRmeesZJqyOh9H2AAisXPjRQu8YqtWOYVkn1C2jV1dm8Sz9BPOvyEIvwZgPvQ4q
YYLYvCic6soPmqln0SY42qoJIXbf36C5apJmvOCjMmOyW+MCRZBAWE0u8EhCftXs1oxF6jwrlRwZ
4d6982GWQJZg6DCxWxW406V9OrFgZjDn0F8Z/GxtSZ65kpG2CCcpPLpy4+owBSMRonMHGTwY0PBK
ugX2st4EkhLeFRXmCSaUwEw+7XE+bidD7Ru0JpMhrP7WQb7f+vHkdDIc+yRMmkGQDBeNciWrlWra
thSol/NwOOZQZILtVYUlwGESnr4N6aWyaNq6EzIVLJTG5Ld1k+Yd9vrN48spWumE1JuJAtgRsZVZ
0+OODwwSGQexkb4QhCJjTFQSIXdOkgi579jWz96D8HVb+1jyWJvICTo1yC2d9gL1K8EmJ3EsOQJB
/9r4coJQ60LZKKZQ3ApqsOsEZbKyPHKv+UW/wvsIpDLY0vQPgVw7/z2eA6G5oCKzoIqsqjzTnClw
JQt2uV4OSbMKAr8OWqbeDQR537WhNxHMUyAO+XWUQwqW/D1nLIWEbZOF9I91uaQkRCtn0xaVI7xL
q3zr75k5c8Ga7jpB6RFPwreCQa0ETx0RJ8SHeV5WEH2UhrKPiMonEfkpQrFPRqvQE6T5dgAzfzgd
BELNhcQriT6BMDrpa1VXXdU2CZO4EHI9DEMkxLUQis45IcT42b7SQziWQM+022HYfU+mlCXXXbSr
m0JIoXGylxLInc86VTorI1U6NLJjKnqkdTB2L0lGQU2JyT2XmMC/StBuqVK0WwgHyXxnrHguWCgE
AZ+1ntIPCHjRx+9C2YcnJJB8orq14Z6iV54qdmalTRVLGd9SiIZwchWMoCaYNUb/Pj4MnI7dJTNw
gonaSZEc1WinJ0855Spkvi2VaHCF2RD3IBAjS0cx84E/KXLJZfiGEAV8uNfA1fC194xSfFMJiHSC
w3hP8cpklKMr2Uew8qJtBTpiPMFqkAWzpb+niKOQ5BaLmAicyvJeUJTTtD6FtNqtT2VJqlAZStmW
WV1LCbcsJOlsckCKM2SheBeTt6Z65QVlf8IqzwQLbG2BQDnrEp27QFbX/FLCGnGChzV3O+DWnzPD
scXUXFMFc86eudcKYlmFLGdbQCA9VhVKTNgCAik9kCdLPoSqoExKw6i2yvNkNrkRrJStZhOrVntO
9Ju0AA2WkTMDLAuXL42V5jYg/mBUwHCBMWc4dRAi6oIgDCZ6TJxO4J4mWF5JYR0kc2r3AQHYC1Td
ZBtj+YL93wbjWSjzWD7Bq6UTIqbKdyaaeDWGcCvf3bfrSqmMD1TD62U8jnvYqIRKK5EY4HlX+F/F
almxMu8bzFWlmDDsIIQ2KytU/uPvPwhyq5XDwxvTozVLVj1bWlAtbgLVrCZTeE532xLXDnclVUZj
GuFl6m80FoXm2APnhW1AQLydmNp6rmHe1WUZkVONGyOAX7mhfZTFILsZZXd0UiwOXWlCMNyZ48G2
xqzOMl+zvsrh3O/n3f5+O+2+7j6iT4IUVywAWNH1frp+mGyMCftRBtHuL9YHo9mtl/d+jqKndodj
JbOV9mGbSAwMvioYUh2NHG7TlXjA9JuCDhuORyjninMFFp9V7oZuMBldjjJeeJk5GvfAozsgrIzx
l8d4+zpTM4rmgiiW7eIWfCaXtaYzOGuUehSi5Gan4K/wGYQSh9E5GG4rHokIghTzpeHrhr2NS5mV
WVMXdRNnkxWJGzpoalimEsdarthZuTcB9cF41cM4Yzv8BXqvtHaPPp/JZKwgHbRJZBQpLOHx49tg
zI3xJj80Ltz5WJX7Gg5EN+IixC6sbr3QJHtT6TkYq6AxzQnCGRsXKgg8naZvIO4/tmR6GzPJkj+b
zadoK6xp44/GJFLLUK3ZN5oTQjZ137Fm6qpss0bV8V+r/Ie1Vn1dFV1cxNi9zK3nHrd5WcWpsWOP
7TzKCsb3V8Iv5f4vVeyF9tjDhuGvKFYaxgI814h5cmeyoLJhf1/EAVYhdcPk/e2hKSTqYTQmu2Yx
US+YIJ/cEpUkCxlZOf+Nfvzv//iXP8XpsQyxCsmAPa5voMG0+Ldv0yk2AKvBecC+kuHvQmwbCwfC
L+ddnGlXKqWKq5Sg8fC4mF49qPyJHoAdn7k5XGrkUQ5VXKy65Ct1s/21v319XHf9DBbZ775HkFeF
pCmZLEnjGa0tFToBs5sYKZOgn/a4voKy2PG0NRpUTNfCQ9lE8Px4oT5bEPsXFEhxIm0drbHRAAzB
G5p9UN0qn/+N1MgarRTLuAnU+lad6dGB313iuvGj1yGT0CftuErJ2/jTMMaiLp0oFKYZGW2Xnf4X
bS1o/LwOUZZGV9soQchmHjd4LXzWplGupiDhW6Cdw56/WBYFXG/UVYvUifETzD0Ioo7ptIJ1xV4x
JaSPNn+bYJFoNLCOFkLn26/Ka4sUrKciJCM4VsaL8SqFWiukKKfEWOjMxk5tRAK3cuIumNtScDQc
4p6LuxZfDES4wQDVWw6qUQuid/0jb/GL1qvnb5cB8zfTBmyOulNxA3GlD2yrS9lo6orzKdfubIGB
Z77VcfPNaUIM0Khn5w2lH/jpcQcuDwFB0xZlHNTlSOq8yCpfRJmr11rLNXG7Nc98h5nZEfq/nE7w
Zvqn485hU4ecGef3xt+qrH0DonM/vX9Y2jZe4nG8YYfnAGMwZpB+AqM5RGDBQBlwhd+1WoThmOP+
60ecIGtfenCPs8xUqy3raBQRDZ0ipDTo+7m/aM761YwUEpxFLkrLdR3MgwgLKfQw7CczRgH8qDiL
VCGjucrqqo5bOXnhjsGmxCBSramIR4He6hMs3sL9J36FGvUhRQf84ds1zMHu3FS8kBSIG8eqCdEk
Hpa7mvFT1L7vk3H3OE7RdvYYKV14rM4r1yHLxyzCNPHSHTMU0cETgyCKkaTXIQIkZSuBaBluFEQV
96FR0JBfDiTVa1MyLm4yPwCRc6F3uZ8S8SpueudsWgETuGVc4LIoTrOy6r7d+ius+F57VfrBE7Xm
iJwy5KcZbkOjlWIzwLkQQNvPc5wKyxCjWQIk42OiTFNcvHaZ76R1zx5C3GrlJ3BJ2LIoC+21CCZH
1sYFn3mcuLHEIpHsR4/jCaaN0twOHEoBFBdHXlGG4lt0BFr+Q1E2yQbOylC8KuV0x13uYLTBe4os
/hS5b0KWoiMSx26Z+wRardRt3E8t25D1Z53dWXzUoutCEtW3TtJRy4ILSLZ3axE7hIk9xGOhPECE
lat4/GEdi42LEp4wcHIIFlUd+ntPgDS/ahMbThkn1yp+mDfYa2aiiXGCb1VI5+x7mKyrv8dlc1fa
ZAnWkTCUDTiYXYsV8STjTfHEStPEA1guzwVl37Cf2aZ/cLfhkrKO3z0LMaoj6jhdlmUc79viaJn/
/kwbIlNoF/McJ8EsFOtcDMSuaRIGIovAuf1tdZa3dRW3Mlgs4ultLxNp/938/hqXi7X3sya9WGWq
yDrBAgzajWu7AUon9E/r/wW1WReSXmjNHQfMYVKHLqQiocUBxiw+TmAZgb1E88XxogtDxSkjCwX1
DWWY+gupvhffp/WP2z7rwbjyZRoMrm23OI/n191822PlGXNJem2fjHt5f2JjpsIvTjLbRe7Cp5vC
pp0vbEz+pynLWFlY4yZarqT3eLkMt39QdR2+pJzpLDo/hcYSlbaWAaYzT6Y1ULaH87YIQSvrMs9U
nINypkRb3BWink+RjNDlrcCIq7SxIIFYnA/ozbgMMLnh8riCgSiFDXKWByQxFA9hxz3xLg+xNjE0
BrUECbwK2j2HsDfMH0BFXIQk+d64IpJxkjMMsqBPUtnF8dHUoSqCIFLjGrMrQrIOReURR4fHJXSR
r759krUUAb8NR/3hW4JHunYVSDeESiHEBWg8iJp7bB9IbeZx+4pHG8pVDGSFyi6OysaX5aaQapjv
+34edl0Vz/grnuRwfiq+gCVw8EyEVfEotRyr4/LlOqRzv2PPw/eo2nW3qHH7wTouRQbUTFNbwE8S
UuF5E7Q9qqKsqlwIsatQ/ABM3X/giEXolh/ufwLT95X+b5zr3HXoLwnUhMoab/XQmgGwChvYaXGc
kEAPy6BV/YwgRivl53VrlwsWCn+ykFWrMfAFUPIFlt1Mxy9UIxqPyXShohCbJBFCr00oEGOy/maE
GrII+TDJNL+fEa4zm3OpulJIUXUh/iy7QlvGcTLKg+l6UtgUgLnNu+Xx48rLyVm2MqJ/n8YDUhAG
EaEbEl05F06MAyxDzE7lX0K4o4jm0i8PmBe5jEuJh4rzaHjUhKXgBjSdFqoAIQgqxNSDGXKbRNF8
pW07mkcvZVAVcy/WYdBVjYBBcLRyFA/lsMTW64UCs4KxUMdDKE+Vm1tCMr7551lg6LX//7T9WXc0
t7ElDP8inpUYM/NSk320liX5leTT3VdaRTJJllWsoquKz+Bf/yWGTASyEBugu79efaRHshKFIRDD
jh0Bv7h3/5R14DUg3FcJUVIHkWDtp3MhgDuER01fZr/tAvEuRUyBt9RSlOu1JMAZ1gofN7G1LoLn
KHvncygljUw/dHbsge6i3lqS0KSteT1NyW+k6jFk0sEvyr6kcvJ0OA+bEV1LXll3X6fmVr47ytPu
cLh4VXMXd5PHim0p9sgANYBNdrzfHp0qwztVNmc1dNlqQnM8ftpjyVv2NuZxzeW8ev4I71QRN8Kl
JIQdN+zO5ihKUqZC0tl6lsABUCsEoOzGgIFnzhCj5139jiP88RkiUZp00a3lteEwNuHT/ADU8+CQ
IF4CKTnFP+1ibveQl0GSECT5aopXeoA/NTHndUmRJaNnr6XvEa2UppC2xsRrv/P06Grij9cKl9bI
0jamaOvRLQhSSAWJUITPsM5/pfqAZPnCjeAns0nIj9AGQcqJNBs2hE0LW0rvWN4sf18FWapIj5fm
PB0+IOuLiAUp7cnLVXlfApDPtvg/L8YaJHWiEuchvk6UaNQ+5gBJYlHK6Kmxn/UdiFQIBalfHUzC
kbg7HQ9f5788AGMvAaMs2BzeYCnFk9Z9KtuZHky0VoQbTPDuota0PBigSxFLuq2vp8f9k3v/5o17
msvDVMUsZQy+Zgdm4Wfwutdur4HaktFnHbi7d0bw/rA7/nlXIaFTQbQe6WUdbB50UkWLsPhzvC7V
ZVIADOZ5ZZhDefFmujSYLzaBVR6yZ2Ox6+fTXSoJCi/RzuHhfMk/n8583EJYbzdGcvFSIgeQV8oq
D1TVNpKKbd/c4UQ2HooOhAVa53h6O7w/73m8oduwH7rNBUglon6r+TSA7FRpGv1oWH1JsUTSJjKW
gIB4oSsdAtnA3fW6e3hBAIewNNjzb7cqEnUET6MhZjSGTUCEaxvfibhi9ryhqGoXHltVBUPIQ6ME
ZSbn6CcyL2Z2XA6uHCbGhxDhpcnZMTHqV4mYTanPZr+f+fo1YmAyfXYbnM/akfTUZSvNfXyuSiyO
FCY6C8sflORhfVJBxpv2tCIfr5TcFD5GIDlpcjox4X1697XcxCkLe7OUkNelcBBl8C++1sKbnS4v
YOPxdJ6MIsktJsxLGku7nBW/sxLkVl2ZFIzEZakaqUTs4cfoimIVmKPwohB6l2/s0C+UqAjWgpTh
UOKm31yOdgHodSk9FNigIRnhjeVh/+bNnYfk+cfXvaHTPJ4c3buRvywdEImNNw3KJGwJnspRrwBP
fBD2skWpXwDR1BCFlMu18QSU3aTaqMOxrnshFV53z/z2d5WKLE+s563bWELismCcPz2ShPXws7gx
jFjT2lIEnuwH/LgrVhXkZ56se/uRK07H+NoPV2/hMIY5Xpw357yDMKeyRbjmttIJ4ZaSR143scvA
K17LFZzFbgO8zrVd6YySKb337Bg+g0lwBX9MJomnQztDD1Av7NP7A69AqQ/myz1ssaybRw/6cjL6
/fh48pZnw4/mN2Toy8T4tarY86H3h72Ddn3XNj5qKp6t6eSgNV8OLTVfExqsqJ8GgX78BjmWNzCt
opjWNXL2x/ipKFupKEeADKEUeWx8yITSAzEvljKxnN8z/ys+WkJQfTBE/MeUuz+s6iT32njPoJeV
lNda++HftuW1scm1T2kW/BoIU5jg86D1AX9dbA4WDZziAhRJUUI6XLckMyASOD2IJN5LEQRAqkj5
Tef8rMLW8XgcCWUIRKTHYexRoaUk29T51GcxE3g8OUvO+6ZdiYNLCrl2rg8Hj110RQpTKaDjQ7kh
R0cFy0f2a+PnYqtkdV4jKMD/j6AoH9YSZI0U2F/2r2+Hp71P6YfkEtUol+t5/1Z11QjlhbzR4D2N
QOJxzf2W7E2NLtEB9kUbSUyUNimPbRFfRZT8myXrAfKgRUc9tYmMag5XEdUrGXgVq4rnS1Ts2zl6
RJXzFJRYtqXZfUFMKlNsfrApFObFKMfPspKajSfHH99YrJuMpTW8bhxLOpXsnXszgTdKJOvqnAOh
ZYlV8LHISvOJTH71VpQIecQZrce/W+Kq4osjAZhgSmBCAgKiQ+sChON0er+4QOS8v3+/gsyuYuFB
wpRZqUiQgSNIrsut14hqj0OPNeiSGcocsrcbf4y3agSpzNrbrEL3eJouITL75Jur+6pYL1DeSUpV
W+frfnfw6QBeRjell0NiF6TyT+DUy5K/Q5ElUCmr+BIVv2m748OLa+uNsoplEOV+18arJ+QWWsRD
aGCz+3FJ9TFzwHc6IGmkuioamXU//X/vaxKfdq/7w9IwmG2IYIhn6so+hpUkGF/ADvy9p3mLIgTH
lBYa0llBZeDsy/755TD/35X9bmGOqOwB1fDLuKLPkPJMleVOIyplBzHHSU5m2RDBP2s+pplT43E6
XV4WmipnPvz3aQuJ5r+pdT5P19lLY0IMQ1gHatNUU9hh6NmvFq9cxTB+eSYq1hIvxED3stLp8Mgv
wiQ5SOwN02k79Bxh1pDyQ5WHdu8X19vl89ExHA/7h/112cjYU8L7QrMbzY47pmU522KX+YjeCgXm
o9JhkpT29jCBMJDtTM83buvpZ+/d+VQ+CcsOpdJ5Ov8kUsRzyba8NCSpIvWhN+e6ezifLpes73Dl
oLu0sdb5zVkuNvAYfRz5cubvrMg3WdC5hYafH+pD6ubV9SU9EOsaTsfDydVMRhN+5Gdm0/El03ad
HM/WJ6pd1QnvC/tjI4sjb7fNG0MEYOm1e3qaz+Iyi/i1HmT4wW1+XWTlusArkkTdEcdinVBpx96P
TM2hIfUQ+ZaVVCh767RMQkW6KJJlEd76hReBNIpDjMyIbVHH2yKilFJI5K7F0nXqNV5edjIrQqw2
bb4/7Q77x7v1RV1+W8fS9/ntF/ztJ1YxlRBEItQjlDCd24OgOHdvb7M/cH2Zte/zy5IQWZpv8bPY
7GM41n++zw7h01f2hn9hBZZISeq99a/3ab6Y1ceIvYCQM0mthcLa0hvHs2O3tpXnsVVDar1V1rN8
zSKlGPpxfwakVb824v7Qp0IOs77wSnF9gTkwd9Bt6opjBaFZXvWBHok0mScRtQx3kYB7ZZMYkiqG
m5nw5lQW5TicWBjmnydXyf6yP1A0HKvolRKpstKe/G7xnqohCk+tX1ctK29RRW5Rl35/cSD2O002
N8WCTlK8oPDKoR9zh9N+wOdCxnNMLgepR3Pd6vfHl+kccTSsxNWocp0R22eHTyH322uvrmR8SzYN
WcYhXSBt/V+iG3d6fl5W4L2ku3lN81bdvfqwNmAjPkHETzCpDNpWmbta/CFaWXQzmBny8yFuolNh
er1ga5nYAoC+AidAF/0SdlkDv6yxpKLXMPBu+yQCf4Zpf7KXBGkB3Jers2Tnd+APkvA2PVhtpByE
5s9GFxUwuxu8qrFkoISr5opK84rK5rLWZ57Z2PUd/2iBV75F880ug5+INbm+pRNZlXbyB9Z6id0Z
eSqSxM0BNu2qRlPzRtPmZ2ajNj3HojjXH/nI8W0N4XflkayR/WgkEBWTX2NRtpD8vKUtxVK5iBhe
RIg6Ij0kY5jMT5uoDUq/5Fxt3kPo1YdkjMcx7FDSQAsAAQ6gK03g/RiUZyUY1rKEetycHgh8dO7f
5O+O14yAJmgFoTGRw7/gPetKMr/5dd5NJNgNaaC/dYR4v8fm/otk/CiPJjS4UaqERCavJmiDhrCY
3EjnSYvOYpkceeHuckzTUgU8jsMwSqyAZemWlZcEHTOiI1w2XXSVa8bDSrYvOeTx0CJ/tTFaH0pO
eBEp4+VflbCH192fC8dwdjpD34MYfy1zg7tFPAfnkMuIcfEQzvl0wokxP1dTsg8OGTl74xSSGfNI
yQDiKKa3mekQyysaw6xVgL4jUQPhA3XWjAARIYqOhN43is7wokxw0URDqF32OhpJFHBqo5F5eS5x
6YBzAEcSmXZkg/na34SZu+vplXej16ovlXf9wi/9GJI7zv1dar7fzqfn+aNqTDuWpAH5Qrxi74io
9ptG8AXrDiJNWUrqoEnxtq5TObKeWZtNtTHhFrP9uPyYRZAtlXk2PYnuB5IA0U7i7e940Isv08S7
tkKXcJONYea9CuLTEM4TFWcsS3osxU7+S7ezD5dLYzm2v/ljaWtimvHB7Q6f1zeEwJUHug06Hhp5
4rp4NagrESvvQltbcuG0VN0o+ciOAPnLvc9oN/6b8CBXYqD79QZBIq+2hMnOmtIl213LtztW42ji
VIi8XfMgjTJcdbQm4KnIXliOMfQ8jSVNuL6gzmPDTlMveSSxeQw+EH0Op4vjIBym3VMA99hxDJlW
ahcWp5UQWJYH48ZYUEaRsWjS0tZ+LWwk5kZZIkiRQTtmDkulNdxXq7chMhX0cNiHM32a99G3Jw/v
tBGShm/qVLl/7twW0yRyaGbTm2D5QefSsENZWTqz8On9NAvk3fkKmsr72fRpiOQ/pnPyxbao6oY8
8OYHUemJAD+P4EEcdpe1fSAcSy9Yjcjyhl5vzyd/cXt0fOAtkzv4cbPDiopPfLPg6rthnc6voRfI
592ZF2mRxqOs0fTi57HFRXSLG21pcUaPvdWKF8k+u1JiJJVE82+3Cp41JWmJBxwVxuo77le1nZZ2
8hzbC7tPfTo6mucIfXl2hwOrtv2DnKK0NfGXvd6V7LejKt1ZX1h9dHwm//mZo2F7rUU0DnklgUgw
rQXkhdeUbtNqB84HfyGjJIaipih8DL2LPM6+iF8c9Abivhv5g+lKAkTqFjjnhbwNuzmYgFcq/lBW
p0VkaOf3v/z026pcvo9G6fevb7ySI79P29kEqXIuz2yIfeVVrL9g67LJm+x+MaTIxnuFb4FEtpSC
sViJfzRa5AfdM2cieC3Vy9KhkNvS1NWKPLS8Ef8QxV7ez95f/i62pw6u+Nt8GSZPEDkC18SqtEpD
4rBkHZb0+enp6TJdefsAdXqy5pbdrIGodM+snv+aqfVZlftrNI/nS8fmsfOHmXntnrQrfd8kTs4P
9ml/eZ9PJHaLuz99YVcqZElYV7/ReT1rfM57hGnblW+nNf+1j176g+O4OiZw7ZkLtzSVdo28MG26
3iqpeNdSEUVOXOjYrvf9fJn9cLe/rlo1vKlZey1ZEzxQbKr7n6frr05Uv+G1s1al+cRHN4hTKXhJ
zhXz2g+5txb4gqZo0CLL1J8FcM+HktY23SCk6YHa7IeSlTbdOKqOdxH6Mb9hQVxeTq/T4vA4QVks
Ob4QxCUkTbH1OKjBDOwMbJoBaZVT0IiS14hFM152+3lVQTc+BSDUBh+u57INZh7yc1ZQ2FJIModo
s8034Dipx5e0fKjp+sv59Pp9JS7TZTPRFomG0O+j8Sixt2bjCjlG8yxIX18d1X55cBi7vKYYTwX1
Oj27+PTIe95ErIk6NV3XC418D+rwJIWRJImEEbw4El1OrFZoDRG245+7t93sF044xBqIFU1Jqfkw
nN/troanWk0vu097r1bO4SCfZwP+ftidOfaCl0qVX1UNfKOWghHvItmSi0T8EtADynsjKlcEku69
N8ukN/N8Fr64BcqQod5WkiGPn8Wk9WmJVvbHiosuNmMN9D4dHDwcnq88p+sCT1eMJRtx69uggHUo
4h2zeXdHGIszAqy6mjq8YSbXOmtLpAXGD93z3u+/8g6uLcW8t8u6P79fPUf4gTcoA4kEhs5jqF1f
hoXWgXlZSDbZ9v4vkREZcIa1UQRvmDfyzRoqdgq2qJKpu+6uScC8X/ZPV/76Es3QrRnXsusZwn3X
Ev2OD6K75OYoK0I+35bc5LBb7o2Ke9dg3T8V/+UK8UGb35sxDjtrQB9IrGfI4wNdV9IscWZhRs6w
THUswxDw03u2Ikfp3naPflLhVcaFPBqE4/RluvDWqivdRKrz06OkFcM3bMyH3tzBBv1upSk5VYvv
Mj1d786ehbVBb/jL0xH5WHnd6frNnv8gLM9CcnPaBgfjil/uZldziW72aJPHHGwZyrpgw0Nmc8R+
YQTr9fQqcCXnEReAlb+ZJI6zpGu67YSwvA9sc999KS08HHZvVKy9lQIAuDZDKSaNK0Hxp+lz520g
UMD69o7fzd1xIQbwQVOXberSyeN6+u165prpeTiOeOBe+jO15m8h8rsIAu/hW9umFV0WzL8svqt1
BfKakhyV12fRqUBY3aI8AVRXRGJWpNa7OlEnXQNrAXRT8ZitLQlCjHwfyWW7U/wxjnmiaGnpN7vQ
CoDOxTh0e6OqmroneSVCKymf5ufzab7tSa/xMIvNr+eQ+aiB6O26FPuWqcHTZPNEloK2G1dHDb2x
YkD60PS2pA/XWNulifjzHU3pbDZXhY91x42XJnIZPpxvYt0VJwOhrsnVs401zaPRcuD3ca2wyU/a
60yms40mBKYlxIt1Yr7GPTZb86YN+XSGYM3e3zVAyKL+Dybc9etANV5e2JLB6x0O2cfKLD98i7Cm
mzQ6fTj2mo0R+GzmkI6atHeKIu95DC5MCY85zWGDO+QLH+OJ0mDEhWa7qGhS2pfn17I8D6+NdDGk
12M/x9sdLyVDyS9zCnoTFwV/yJ0KPwPidZuVQx6nH3Q1CNasoYpx9O+3JyP73ayQ+V9WRUQhxJ6x
11n0o7zXc/4AaGNLaGOMav2x/jl9dYVQvCoiYkoKzUjGHr/O4l3DvpQHXokgOx9Xhem4dmB30Y7x
2JcuwRvcfhG0i9+nvqTrETjYYPS7fOPo7Y4ulxvp4kv09k9Pk2PRk1ATuMpm2JBDECRq+GiJrNpF
OMIo1o/gs6yqCKxGMI6H4jY0FUvO0O011J1aFdHDLHMp+Mxl8ePFkPHpD3LDCbkydoCertfp3AzE
KFvas5hJv5vNzrvzCyHAZFVpA70rGcm5hx2fSyLYC9mD2cZLlLotz3qJrl9352cX6sXMwurqcK+Z
+cx4mgepBV5tDT8ZY0VRqZCQ/H7y83g48+RCr03IsZrwUEpbZMG7jp3OkaCFYqSkMGw6XtEzcbd6
eWBh/k6rAeHa4+YyDWtrRSyHPcFLCB8WOszAhOuSeITc5JbHhMFiozuQ3A+uBK+QKJOKNOp4v15X
RwBG+Vr0RSqW49OkC+7itsl1N3VPe7zfX89TlcJUvLH+qeSMKwQILUV6wcv+GgRyzcHw+6pLIGcT
EQVEBjIHPuNp3UKnfMBi+48m5xb7izzSXoqSGCUz6a82zPWk/aKt2lspfaIUK4ef501DV2SVFU07
j0V3xdT4AtGAjDgllREhTW3m/BsFkVxWof9Z3sTHEA68iaNJ2VVupTI1wK+E5qsTGHAbXRGNXuMJ
mbErQZRGjEZYCxT0ULSc4UGe9FKSU0vub1/ugOHekBgF3VRHIwn+iIPxPLkyOCa8e0+gKeLe02eL
3oAr3lMXMmF6q0aKTkwAt/y9fZmQY2cI6EILWMKJ+6FcqvDJcVinw2H/dtnz0eyG3hY33e9KiAkw
zmmMKcmvHnWvBgBcmBJwEVbw8xyrLYwrftpFYh31puLtmzd3jt5chRmPI6kSENTSF8R/PZRymE/7
+fOv09HVzITX2vM20mv227c44PUcUa3hLzGLL5TmwSRi2x1GNkZOmyvHCqd5f/qS3rjylPRZkiuK
ingbRIh9jg57CpbcRtK9qYlUAg2XGEp22sx71EvAUS+mYFZK80SzKC725mVwHEvZcP7k+VM2JbK9
6/pKyOzsi3tewxSzg7MeHM3I045owkOmBpELW8X1wYrxCp9sMcD4eFXLdSTwcFDS+L2LMPr42GD8
Pmj9WHjkxReLqB3LukhJaTveJ187E5QWETNO65vibi6PNZuuSiAwDBiAo65KR5sss+98vKZEsHNN
UYjk8MzKRPTCgqB+6Eo3jTQCxj+7TX+H/aVc4RpLvZdDKYMeRNXDyK5ydfbK/aBL8zZeakUpoF4E
hd8HK0s3/ib56jxmPttK7YUvVqfXLoh8jQ5q+tI5NmlUoE57xKkuSi1PptBFyh9lf0oeIh+LSfJQ
iDCfcQX1sqW9ubycfcnRekaRxOHNl3tYCHkIloAOhNa3cIEBflcUfM8sRdEN3Tzty9q23HHf04bH
yvtiUGGkFkLz5qBcCVIg93R8Pk9koWBsQbpQEBx5PjZ3nYLnDcvhtCj6li5X/XaZ3h9Pa4msK7jl
MUACXZEOvwsQTr1cUDEoi5TkhbnxM8ovEBCO9lQNF4u8zuM36PTmt2i6y5F/3uYlleQ2v5fMofEA
twWA5dIXoAmmJNacPLS2FGOC+w4yO+6+S5iS0kqXlLKR3TgOvI88FFVoTPp4spdD5BBVQ8uNR6w3
QQx/PSX/205x1xbc4bLDHaaS2b5YaLVA+3x8TqlHpClQZ3rTobieLpfEVxGsWaGzDxefdLI0n1t6
+PIWyPKPp7dasKPLiZcylY1HIXRJGfriL8ED3MQ3IT3n2QLMCPHx4NwI6gKup4XXV+O+jSVqlA91
4oueHrw+nw58kKMIkXVtA7AqFv++fIVNoGnslmC/Bfrn/baxCHI8vr++3e0uy4sbbj+x21hGlsuW
hFd3sujepGwO4M7mF3/JHbjuAQ4l47deFmlENzai53954FHKWUXzqqovSd8ScPCO01B0tLNkE0I1
aTicfpbWwwJsV5aOp5zn8uxYDP5ZwlOW1kufXRpxT9dvd5fpm+PjD54+PHvX4YmBGmZuy8Zrf3Sa
/1MLBdh0fIT6zeHwXYSEeBMiSpu0VPSAi5hMj7vLo926Qryfo0rRSUYUiO+/H0+4XiAt3ai1y85N
DFd10gkbwnerV4a7VjwvyZqi69KPepSwfUWxJpnKN5+ApDqUXGUHlobCJ9fRxhVP8BkbWcr8oRsC
T5aQHAePXEbToAdrZ0HjDaVli6PccxLOSM7779j18H5KKg/WF36G3XzZ7cNidtfkOwCJsIRQSFxx
wsmOMpbaXvjJxtA6nJvrGsG0evEXP209aXEYUiThEs0WZP94AKmRvuRsI9ZjU4WfLtWrL3oepHyK
BUXxBeGIiCRYZWlXvqBdvPtG7mZqr0TRB8UHncW7tQpA/bcJ13BYs6FLsffsJvzqk0b/s58+8+q5
mIEuMY5A1W6fj9G18TV4ILLMCCqgeIpH8YoA7Yaxy6tLorpogQmRfl5lDrbUKai6HcDHEEVfVCg7
KwJe4HUJC/AtYz22PF9B/idJdengxdNkuCV/zcrGM3qqOMgiJaguV2w6GvTxIZ8qOdxbAvzb7nwB
AXbfjaUuTWSAassKo0sU8dnWuYTC9K/3hr4kxmySyVssLrZ7c9yurDAh2FIvYQ81f4oC7LpSva34
gDi5E76F/1jqavXBGmTTjcVK3rUboPO3/L3nNWJR+oQegXEnvATfTzWSUnyE5Z5fb6IojZuCHntL
gDS88Nlil5KawuAdr3IvlpaaGcQq0nzPjNmQ84FZMed92xUCJ7oI1u5AnsjN9wRJcLSmpIlbaEzI
AckBiqXLY4LU+J0QKN5r4wgTp8qB6DHh7kkmv67EeD487ytqDlSxWCPZ9jC+I0+4MiT3j1uw5FO5
4VXVIm8jioo/1QNpgeuBih3VbkMqwHjNkxg5vxIeAyGi3WZtX/cXX03Jv0/rg9QiuTMYgTms/pV/
ZcffpmJkxneO4V1Yioh7oTAlR4uXZxKmkwgvU5y8k9cVG+DUuKzJyPp3kYNS8OLW0stBWlbsbpR1
1WkQpq18H3EiqZ93I0yb5hI+l8rLVA8a8t1/jR2gry9+NP5eEspYqvFdiysbaDza9tVyAs0LheE7
mawCCboSimIHmdgQCDRjKhbVzGrG5YYQTjXmpNSsbxuPSBTLNZc0MUiQGNTiawOoAHSAumrS+GfK
s4j6pgh///pcK8RXVY45z/A3G5auKhWL8QGn2aQuSPHGysjhJ25Kxb/xPfitXmnKYOi+CJq2dfaC
KDltluOQdtF3bIxxf3g/fzy+6MdSrcXBZZ1XZCMU+BPSE2qfaszGQQ8OpNU9HxTqIvNuGxSG6tX2
bgOkZRWR0JK25gMnIiy+qnHTlsGH5/ie0NSMIv1BP0X8bBa4S5MD1W+WoyMWKgahQbO1IpC8VPh4
Fvlu7RMCA36ti023GL4Z71UngXP0z7ERfara5q7IvL9B75eMb8IReRxfsi0MU7+RhP8+Ig+ORCGD
LxUcb83cw9cH98SFS5tC4GUsVlvuHh9/ZR9a1aTdfW5LztOzZ5K4BxPnKOt6OgM3VJHExvoOy3yi
7vEfXgKLSYGF9A+ohabULITaq0qm/qYeTN/2SvUIu++rXmNzd8hvW+hGSS5qiXO71QtmeVXx095B
MF4iFk4Uj/sVmXlad3J2HfgTUSUBumVP8TqNtJ7y/0xCqfvTI88WUEWiSKi6PH2wyk3TapJx2xKt
2R8n5+pJYCoawOf5Tiz7z9PwzYiaMxepkaDkRpYWdFvhBlLUXaloJwORea9qixjpkifOm8pyscTa
rqPaRsmS2JI4ycX2ggBmEKUECam3D3WMiM1he0ApPi2dfmC8r8tXrJAS4eust0X1IsucAf6aQkFq
bmAX4MeviDAwa807iGsVUqOxMmGhigFGfZGiVmp4xgNzY7H1zi0WxMuqLaL/m8LEWj1qV/Kcb2cx
8LMoMrCyMnb/p4Ym9LpU1rYaE3/oaxP6qJbSO7K8RiDHnN6F9E/17F5fZz/v4S6r6J1D0Lv9JRFU
D6AzhiUpv96rUe5RgnqjmnHkQZ6cAvIVPGzv/X1RqlBc2kLHPr+ICQYi9gXIPnyNjOfQTs+ZzPMj
KDK0xBF1pF6hbFtrN4AIGFK4SJokehP+x2Jo/nAf88CcRMAN6A60vIBQaxCU9Fjv356O/XQCqy25
gbyzIcoNAZIin12VahlTkVhI9jx7B+aHypoGUUJAqU8bNye2xXBslcYOs5pkCj3Twm7J0nxIVoTg
jBRqtICJVywZyqmTvAqXJS5rjoLWe+oycKx/euP9zR1xc+WPIRfXBbrOoIVLNj18d5qV3fHRfxU6
4/r7+8AoNyGS8LmhvCIx9Kks/8Z0eAkvPCcAFbwfLzpnbjzSYzK8cr+8ouGGvTBtAoRIfV+0zZyj
dydyf/I/HTOu7iuPwMsI6GjN1YwIkdq8b36M7sD+Or0yDlBYs0l7SN4F9h4c/7s2feXdSGbnF/5Z
nAc4ykiucAMSVfk4Pe3m/4yEfJfJ/fnKvJ/m5xZjUjeUqw4WXSRNzCcjjQZ7oeRY2s14/l4cA7JR
T917SdBpTfQ5LyGHbujAPOSYTtXd4TGciRitUeizIU1/uV3khRD/zGdkv/lw52X/OC9sMRH82Sx8
Ln/YQ3jlMKzEajEMHPMlrGRI0kW6oOtBdsyLZv4g1EasJXsRDbiIIpfs+KCjf8R8/+/p26/fwY7N
fgybtpSGnrMsPLwEufZ4s5eN/fHoe9BdrkBjFZVDHI90+10uTEXEltplP7/0vJ6ZZV338g7t8JB9
KOnDTDc+D6pyCFeOLCsZif3jeklmj/B6evMx8v7C2wi/56J4bUzfd4OC19eQWfTbB2VdfcHuCiJK
v58iDUGeq5SzlrRAyEVJyOV82B34SJZWeT09Ox8uWAvWtwwWI90Rj5rHFkK+li1DMlKhMNDnKr8r
Qc5nH+H2xmn+5MiaSKMOXy4zx73TtgvD9I6WZ0ub6mpeQAtfvxaic0j0+6/36fz1bvsmsJ8HfQyT
n1Bnc+0aHTg7GNtBsdRD7qXY7I6CD5XNhHG9o+5dyb8hb2J5icV7E+7/xs3mzdHjHKDufaR0ATvZ
l3Zy9lm7TklgRotKP7iMfzmdp+/c+6dN6rdXpZHEvOEjMIPpYhCSpx6FlYo3F6ojVz8Bg2/zdgFd
NRL7kLDWaKgS+Qcou3TGJJS9zKf053R9OZ/en1/ca1qXu/Cv5uj4GThRxAFIkPGaFb28v72dzmg1
pjQZt3O6A+fdFZXH/nhx5TTJdbt+3j9M5OEX8jJx0C3O4gFTXFQuvggueGWoJWcQ5yQYtNFHULkP
p9c3/zoveGs8mNx0Kdz9WNzLknPC3+2lm+dGsoOSSm8Zf0Q9bYxfFrt4q3cB/sDyFoj/nGT7Q8I+
Ej/h69d+h4dkCQmXzlgzjEohd4SEP5t3KsNLb8cVSIse0Rd+DkUnfjFlpGuGS3mCE6JrSd7EMk49
mtRE3Bz0ZsXi+86OigVa3+R6aIGkxSg1b3uVIGLZubghpxg5cMM35Y2xyw+pyTfwVxduzEZMeX8V
XJuNPV+6w8iu19AKdkOuYm8jw9eJbR8WJKIrnaQws7gCK6JKVnubPfvn+6y2nr7O1/4LUXXAzxqK
cn6cB3OCvqNuN1Bk6a6PXsxHqnFJT4PT8XDa8X67ph5zIlqt41xi1LtHQxRv7nJNaO4Du6BLicjG
+DD3FmgyenBJXpTpRxRxp49I1n1/nM2L6wZxnhzDyKcrZjPxfp0cr3h2ZX6d3nbQPyB6zfkyS8mI
GTrDdksNE9pcF51pUuRtmpLTKEbdKSDsxUOMIVN8wfwjSJom1sgnfMXtgKv2WK/NBfXZCsOmY3II
lO0zVxq4KMRoE58wm8/8B+iqKeLrEfKLVcb0A9DnRpXkOt4xn5SI/gJwfUQJo6O4FHYOtC6CfAsi
hvaty/fN0l9+O1fMhybb7msyi14O8GlUyabN/mjfGeTJ25KnSLVa9NJCy5fz28vuOCEVZ4sgS29n
2wT2zqRTIw0ostgg1gxPhwPwzPqSZ5aJrl/H/RxMAb91efpgYwVDNEl0/QtCVvsSLOfiA6ORBdel
Xw5S8BBg/7tPu8P7RBr1z//DAYC8yytaAZNc6zyLgAWwFRS5SfCemeOdfgRXmmDmxMVcxDodDJh+
2hIfrtoCVLUqyAWhZZ+RCtBVmtToK2GoBx9rz3wLE3cLvDu9P4ZLGNuatOBExLhu+wDkzy1g2m0I
7kk41q/hmENTlEChgi7Cg9qOgwWZEoK8ukRnLEp2U/WSVgFaFVHB9FdNb0QnoD0mImaz3i0RigEa
hMbjG5ZJabcdRPAAtDFx5snhZZpk698+7Q4XZI+77CJoHqfvgZFQJdscOddOQMGp2NzNkDSiD1lE
BSBGUfo6hExCzRoAHGvflcKD/AIvliXFR+D2FrWz6YZOYX+PXHvy5LERWgs1wmSXLnqYnR65tg/h
91QR6g9qhbLHg4DWWJ/BwBIxSq28ss28Ish3eWV1uWSqKyH/xxZza8rrm//1oJGNk10p6shn4JQu
wZ5xFUWYzFBy5nfn5/dgEGbreb8/7nj6ZLglaW6+H4O5vfdNGJMmjhXpwpddNwmuW5qG756Rg0NA
DdJUQLfNBsJ4QSWX3XoyQ1mwQnATm8zuF/4iELeu5DY0Wf6lwcUG3pmNYT9fAxAPjrm+6QvwngS/
WsQdFvOF9l6WzFfQkR5jWJlQITiPXdQhpiRKWYUwJMEuAqgbPTowGvEiurUnS82Tgpk1octhh9RQ
BYjNNdPQWgMzbUtxJg1fIh+KaQYZVGrZS+q7TgsY8VFdnBixgXuA8Iou98cXsR6s7uDvEUeeSKZr
IRQc1vn8HmJ8GwqvgDc/5GiWKkFROGAlQIhXuANJqi6MKb/5dZO+9LUO2ss55QjQAnd3kIDjQ5QY
UL0U3e+3inuTEwUYLiG0eAnPsl0JxgH6OMe2o7+4bknqw1oxRMMGljaFS1/ltSw09uB4OtmzHY2Z
gjOzd23kXeciEBTJ0oUNCi1sjjueBonpVd2JcKl92q2xxhChCUZCQhrlYFE2lOwNCfVn1Sg7AeF6
4orRpsuOpj3hmF4LCVxLv31fXg985md5nHmzfTnOcLnurghxItrP+rPseWABJY/GHHBTi4fgO2lE
ATue7i4P5xMEf4ra0S8pEiZ/cwu66wDDjwA/xC7FW1uXSi1lmYzljuW/f//pby3t7wOMaUpuU3Fr
gToci562B6EGABt0prQK92Q7pJhS8kZCTqnLiz6WJRoGEej1Ibrd8XR9qbHHNHHkPRSXg17By1nT
7RVDl9bl02NySU4KA4l5qugOno6hdWaw0ouTdT35V+1QZDLmENBYpK8i2qjN8ysW5NMg0kIpXA6E
WPjZ0UNGeJQqxWjxioeIM7Cd1iQ6tEqK5MGyVJQ/49B3qVZIHDD/rhSsEei+yWAPpfzVw2H/dn9y
mmz38DBd0AH3Oepm6CTcM0FR/rGwiiLeOrstnj/0+IeXuz92F3evwBmT5JFDGbqws66Z/9coult6
WAUUNENxXv6gneQv9YBgTl0J+yoBaADFlmM5PvZqJl6mEOaHKxW23D2pO//K7rqUJuOohHizPkBZ
2AxmkBqxGUQe7hYyixWrUUb6CZ1vd3C90FBkYKjyd5iAiPHJ63R+nv4vSIG6L7I4o208nff/dpyZ
w6/vaAxyR0hov4RqCFoeaxmdDyVtFQk8depSQ6BqoAVJvppUh2WwoKsIPb2Fp4TXxxUqXGCyRK8M
byxoUPFXx0cBwXAxu7/YzfP07BqRNJEUiA655W+vfHDAgiExoRvKUGNB2h/vLhXJUyQEIuD1EnCj
bFwHihwu8y2YNzR5Eftj075oUY4yejt0HYgyiqS1hfa1+Oyf5+hhdiu+TA/v/t/Hq7n8zxUlTTwd
iqzHSAbRWGWJ+1SlNT68X67zrWsgNKqSX752AQdOz1BC7nM8F/sGRB8S7nj0auvUc+IVOOUV/drZ
V1JDPwJ9VfTcQ+p5KR8LqqJiEnoB4IzInYe5UsKHIC9Q5WY3iT3wj6QC0HRCMkA4Q9KZtGuVkJ0Z
Edg4lLw71/+279GFK9azxPnGmvtjzRvT1TRisKBLB/B7EPN3Q9mAfqjuQBXxeK9Vl5LEWcu7QZqs
uho25FxJtXQ9aleEgU4w1IX1hWhopsSkNrLr51AJaKq+tH4hEWFUEtSKiO5CFgcmMFl6321zwd4u
0zWwOC4xPjnuPu2fd5WKy74UPEWoNvjkYbAgEbVsgCbhunBaSugl02HHHoH3JFNEEyQx/wqshCjW
qTAoL5DhQVdR3g/QY0SR8rqmi56D1QJ6rUiMOV7m/+7t5BoOxgMBOrpsdjsrVQ/iBaJcSG8AMWpA
+JLUxNN3TsZuRExrAh54snesLhm7oQe/ZWoa//240idqBaK2JHSufcnxMZDd3/1eVzPoilLUEkxF
z6t6dfoNvbG/cbVny3A8pcX5fzf7QTi1b4DBifo9XHcI+pGjovL4fjhELVHZaUoBTxC9jxzdslyw
Dja3uIbAWHMn7hJDLQ1Ngusx5nTQDI31Z+5hs4N7nvpUW5YqmuJISgdHTUMAL3jituzot3q9PLG7
ovO1MPHFwdPhsf65IhU9/jkaVFxLuDRgPio/KFums1MhjngcEOAhJ5PqDfoN/Htbrg3bkvQb0gAm
T6pERbEUT6Ds6kba7A3AiloDSKDq4t2FSWi58YMkye2C5AkpOySVeDcOprt2vrtIDUAay9YhBIAA
05BFYhqNkmCQQckn7v+GrGgeeYFp/f6NpH61S6jq0cKwvsrYJ7mK7OEUQjABB92Vttgjq/68llzl
p/1lP9+6pQnWfKTuB75UcdYi0EWB20YswDDu5ocSUHLg05Q/wvJybYuRe9kaouJBA5YxW+Tr3gFr
GAKg9Vgmq8fSA6DRllnkNCH5P94uvh9jtal7rjv8DyCN0xUR7Fq5CLjyRPE4JSTi8gqJU8CaKFSe
hVYujyf/37s/QD/YzSIuzcjMJp2n+dMYjHKtstznfSwi9J+n8ML/ciD/TUs6GUxBrGMQ/p8fI3z6
v7gXs8PnZAouvpLxFRo/gOvM/zYdXJx/4YeI4YifQTKifoDLq3tym3SGBqOodZTbd5l8NzOXc7m+
TDHxMoFttaWh/ITyJD3YljSEB5WH7a7i9qRhDJm2dlgtnR8jWMnPbjHxicuLf7Rs9lbPbAvasE2C
nFfqN2DN0Mue35IhHXPWYH5dD1hGOhiSFfafNsj4IIq/vHp8G9f67v79WcmBffk7LGZIQ6ZC5PqQ
4CYORGQI4uYwT67uwH9m0me0I7ATfR6F8jKq8kuj0pexwfJ03XFpDz9Al0toVPGdVb1BC01C6fLz
8SG9+t5JMGSfBCR5UiUt1nJpyLL0ms1Z1MBS2eJDKZ/jPH9yEuh6pU1n2FDH71mf30ii6uKb9VNg
2/nwD4wz5nqb3OzIM56t2o50lwfr7fP1LsdoRl2R2K6kCILohQDT7ZUPiWCi2q9H5lecnOAaux5h
M7mwlnQvKXknrgVJkCh9uDTgd12Vz6c3B136hGD897ULZkoXrC7oGkxzZLcpM3T+rdnLVK329uox
bb3opGcuUHEKYhneJHAHMD2CFRe336hZ+fdIm6pcm5YF6cg9ihN+WpQ2u2BxWzTA7cGtbRj9B8Fi
YoxU9psMany8y1eDeU8iEiWwVPuRqFPs+6PWxiJQLhjWbklJsV/ixZWjT6HVdfzSybvL214uviko
fNRmoSyt/ZvXuJx8HB7q9OmT2QHYPz1NDui7g93CFXnEifC5mIH5UWTpTYnNKEFrPvL5dp0yjl5I
YkNHH8J7GzFfG9dIMAjMfBJXbyNiG+0vTLjrcen4RoOJpKZ4Ha6HJhTQB1z9OgLJepFJXPavb7Gl
N5hHGoXQGghfI03ncX9xYvfIz6hbxyJ2L3ZInU2e668zL7CyLJmWlXwd0qIHPlzhlzSmETQplg/P
t17e73nf109Alz73bwnHJ2LcPWGh9IUIvmwEMTSeQzPfBM+oWU23szWH6fh8BXti0nip3mc56uvD
S3iNwsW6/K6kOREHeX0Z2InzIs132ZHh49Jkt3wwH33a+91l/xDvBzystDTimDgxySaR3baaBKWr
RfIYla5v/kNB7oJ3ePWtBGctuvmhVNqWCHFs4abowmG0SfY0peceJBkXBHXR2xkM7XsrBXfMT9Rx
Imajen5l/DJvFuiNC0lPgrH6nZ9Cz/fYonLehlhZe5w+s4w/n0ZSpaNYs7x3voLRaWJ3CTxQD5+P
8QIjSmrP+UK7w/IC91NAejw+zlsxP0Fys7aPb7pqy5fJvxfjhsQDdUnp+LZp4XoFTN7deT/K/ikr
TlvpPuvbNC0tpH1iIh2ZL33WEY9Z7dv08OLD/4tzqBR/9GnWNvyl5zegdXJd0jTkhXPyPlRo3x8O
/nW6vpx4k6L6m3uUTtvNJIlQ6trOj5YMFEFsHIU4XHH/CNfd+f1QExtRHIgXwtatk0mbEqDvo1JU
vUMqXUufX9Hxh6bX3cMc3V7Ph7sTv/b0sSNu9YKZY6Hf8v+VyKet8dUophuByPM7TE5OOuBbyOin
xCRAUGyP7975wVKgiXZLkNVlFu6Hl1mipkPMJTjbnF5b5ldoS1a+vD7JHw+x81KH55RovjHR5JYm
/3V5Eabkz5zevP/y5sh2sTc0P0Jam2+b2BcvjO/y6ryY5UnNmNT05g2wBPzB2qIjAX6h2Ub0HzBi
DcivP+sx02vLawXhEn3aT59d2qNta1U6HF+8TBOk64sc4SVh14hs7995iH27qycviW8wkOdwM/0b
fqtF/wow2rZtyEcGlmPpiPiBmy2GHEozpucSRZSPsETfbHTqF1GUzCHypyoarCs5Uws8GXfJj/yw
Oz5M7mnH2OUUvHfmBy7Kzebr4Ai8nSd3NPyaiU1MCGSuFt3GYbUvqNr3Kb1VXRc3r3Z/hxu/0Q8W
01jhBYr4D5V3cZz73S8p0SHLnPsR5ujOM2q9Ogy2BcQMHnCXabD0BMU6HfqmomtgxubL/MTUOhbR
LmRi/o6CuZj1e9l5TZfPhv9lkVZB8P7tL/vbvT++u9eTIEARZpNWQ9COCOvznw1pEQ6TF5HqFB5X
Oq9pgVmpvu3BKF3+40NWKO7085IIrZ2K7ZO4OAJUfGub7M3uOoe69+/wZMQ6hn+p0sQOoKucrGM4
t81rKTDYsA4mHDNMxIzPZovA5qTZEPNdmAvKdPiZjGSgziOB+VDvx/3sm82KY7b/gFnshX8kIuh7
BJCnaSMYtAtc2uajG9LROZjIdvnsVkiSLWnyE5MlOabnf/l6fACblETRP6+hYgNqkomf1cR1vlKu
t9vyst/01dX1+IdwwfpsUhipf3iUA/AZue0JO1wnE97hej8+XN8DalbJeXgF0rEiFTbpX+/TO5Kk
tBKhfOrVZMzyZW512dZpbQ5vlXq8Oa+3fU2rD+SKpQTKOovpy+7h6sAlvzF1vZ7mRAuHltEWXBAM
kC5sgXW/2ZuqalRkh/xtk1kVV8CynAyEAbksn0wPZft96oZEKN3ejiXBB9pn+aml4Vyyp48Aie+F
7Ve4uTJgYmmRpFw+e0Xw8v78PF18B5UQnviF12Xd9poIh9O/Go8ORrIl54Gd5eX9vnmOyYqSRwoz
kQsh6fIUIJ+5CBLYEZvjvOF+KZt3oXZ4v50c+unpCcxtyBWqLTsbDR6GriidyzSrndmXPr6/glH6
XFREQRt+ftlfp7BhLcqQ2NdURL+5pw6leDjv3ypWkdr6FLsuQ73s1gsRRgUjJYkgT4yvI0XAgn3c
MIxhb9xEWrjlv4k+1q7w7vPevzNZrgvp0jskMqfeLVlm3w3fP/5XaQvYpb6nUm66wR8Ou7fLRM9T
maG3nZgDxC/saF0ajbgAtFWrs9mfL+ybyl16QUIurD57M0jXafbraGD9gkjBiLPOhKfAfh7DFCnz
FxspxSG+gJoy3uuhcaMuT+zInJ7gHlLieNruv4rVoO4rF7pqXeq109RvuUvNnjcrM3o0veTnEFXH
5isiFq7hhmAXLoh4JTSyKvoDK2FK5MdrboVDKF44xmw1YiyIVs9/rUq/HWRjcQoWZcwy6LvEv5U5
99XIsTOKleylGKx8ue7P7PPaXXrHbHPN820T/MLJjUwl+csvT7NETvRda14elpefZE5PJWsQkldV
oiRL4RKxvyhtOnKf+MnnHhjYvlnG0sBmngOveQ3ZiWSxstHSOOA8tChpqTAR2qNgjr9fRDCtj3vO
w+xSLz0/WL9pFPvz7HREbvgd6CXTpWef/Pkk7G07L88VeCNl4LwSW95YlDnvMO6YGuWgOgNtihAl
Y2e0UoOV/I5IqsnHba0zc/C83rFdPotbvRMg7XgbfHnjwdM/USFWl2qJNiIFRYGn/3Wp4FbmnNT8
rvP2U3bohpa3jb/vRpU0nQ9x/OPhLH+6S03spcwKNxkrvDxdSuwIf/3ExsUwt1Ye3F5D3JyyFuP9
k6UV4npRG/ZX8vtrVemsjdFzyASMuilpn9wM8je6G0vOzHKjbTdo1WEvMQmom8nYN4gYf5YmLcbH
hmPDhvKjWZNv6HDbOBPp9bH/+O0Z+ckIoHQia9txMD/De7S01NisqfaIcpf68vnlpKiqpPVCcExe
vAmKypGJsLaSprTGWCQSu20cLyHP2tYnoEsP/m38nYY8aJcqY71EjVuXYbvtvCzIDtwy3alBdwO2
fOlyk3fWloqii/v2/Q1eVSPybehvrupsQuFVtSVFiS8Xr/usLVkDqjd5748EQ7daZ+daNO78s0Mu
wuTdT1Nyb+gEeA+AODIkEirGtvyFkjZXVtS/Slxk0H6zS/2VKs6jd9JeLPXSePdxGx8EQZFWdLY3
KETVmYKIAdXyHe+V09+78VHmrTairwhmDzRTogejs6DCUFBuocsVRipGEN0u7bQXJXkhRCOYU+9S
204/t0D4jcSi8/vRp54C69gfOXCgbC4oqmTM+Os6Jj3o6MtGlPCHHYWZIieT10fI8ZiHgcpMd7mM
Dh+BZnjZX3oorja7K3hD/B5TQUwU5qL7Xuk316W3OTcSZVwVi+pQsDOUZHlzVH9OX/mTye/TrWYE
HhiJPckWJKkAuNgIrqCj7YXrgt+f9LKhAL6RIRQ8oa9Lr8fLvLotnOb7cVbO4VU7D33xh4hW5feS
99UG5DQE7PnixggKALzn0aUOo6u5a3GNeQtsdQn+WmzXp2BwgmNUD1LpYDfmnPg2fKBqZH5Uug1a
5L1tRQYctyhXUE78bPTm4jZsdWd5eGioopx8ekATxIS+ZbYeVGTMp1Zk/CltoiGbgzdmnM8Ru7Ay
9x+Bq7J7fDxzLZe71Bux7MuS1lR4RboveYCLguUdlv8ksOv4mFWWAFXTy9EOHT8HC67zy5m347qE
DeaAEC9NUpTu2YK/gR0TJVWKlQ8PvNoeuf+Hw1oe7f8eeM4B69zzClJt16ZKOBCf3eiK8XlY1S2r
nL9lsuqA8LC4JtE9uWJG2REou+VZm3Io5oBiV8DK7xvJ8+k1jMma68YK9elnUI3TpcbDq9YVTWoc
WFC1MVMW4am8DTfIoThDvKXvwLfT6+mfe/6qkk9HHyBmas7zCp89r7CC+RAfpBBq36ZseLOvinHv
SnUlM2Pb/3fp0fjyBfYb2vMbaoHqj+Zw5C8ICvrXXq6VwF0Xg8XZgR0VH7JI4s1RayPmANla/quN
dVj6q8UuU19jaMk+6tylJ2M29ipgaadLjE75tG2XI++2wdrxcSTJPJMKeewb8TiM6TJrlntas//c
DQr7JF0RDj1Pz8t7AY/7B1cYBGR5AJfr8n4+n553V/eCOg9Q0lvl9J5QNNSYLccvT3+vRj3WAkiK
2ViQkzSlW2ZkL+fQmxfWvuRcGNlZJQRwD4iCdSdqMvf9df/FkWG3uR2I5nQlI2o6Nc+Ev2r9WBLN
xPrafTrtH50te5gecX9lL1mbi5vZMo+P1NSkGvrmBGxrqDVsTD1AKLg3J/0wNk/kNnjAAM7VGlyh
EGyBsx5KQbLtpFWKdyG7DtyWhnQivxhR3Boz/6LqeReMmGjiuHFcAl69agnghmDdn06Hw+mz6/3+
9e76+cQ1LvceyIh2iQ2r+c2hCZ5C9LHCrAA0Jx5uqkPJNgqjOnYAHIQgbLx/rUaQhCPsK35HZTHB
v9v7yvisGXglMUXygbcSs+C5vE84mhLovol2AE6KCBUxTLH8IRYJKlst5NsFXPce4671XepSw9+y
M3Bzh4A6QvQOJljlw3sS0LWOBnhPRufBVji2WR9b7j3rLjUB2oTtFUOy9qLcvBzE7z/KgPhOZUGw
v//lJ8dC+jW08+HvmigpnzDpnHPI+2aIv/LwsvMva+H4jRDtbgMGT6x146zvbvPw6wYXD160r4DM
ksmhjT5/8SgDKqFwZhg7O/B0QaLIiZEkrk2WuLmf3d/jEeRuVLfB3zZvUZwnV7j0aT6cWEjpYfLp
wXVsjV1y+WBFV/kogqdlSsTG8TGql/L3o9e0fGfnLj2zsPEiA8eQz74QLeTfl7JtNpPHf+UINkQN
1gymgrt2JQiYaqAgdIfd2ffReLpMwCm1IxiNXx8f0BNnnbRNTXmf2JcDX6+tC6mX9tdaqBGcFqG8
34ajixXl1fG44XKr28yzByShAytLYEjQc94RD35FMBWAntOD/K5PNPE2aqu5cwn5Gi4O2gcaD9yo
/oN7IMW1coOp03SApP8CNpP8naGsnVuUYV0QUPvJYpIH15cBfKaNEpCCpDgnhR8RsiOAPgEEjxvx
4D1XOwDFmEkqn3SnaOoW4j6iQEJbRBP0Lc0P0+74/sYrwXRJ/Mt9jbUDfKBECkvIWhj+PvdOWJce
HgZUIKDctZDIXqXUJ3+wFAJL3ZVr7HE+skfJ85gnBAe9iatz60DWA8DVEYSIDZE5oD6a0l7X+eyA
KWUBQZQ4VFVAnITtRH8Wp+ajZECr6U2d8d3x8mhrpDhe6ZJfJrEJVuG8W0BAa4ePKhzNgRTQf+Sv
AGOpVA7stTLu+BNT4MR43cYvmVQR3Fpj3Q3KvfYFPUZdiu4XHBd4U0l6yGMgTJDDhzibsrvcVHlq
pz9/3k6laRj/Rkl2BabdY0OOp1MoZ1ZGOHk6iRGsolj6r0T29JIqvaSykQq9mZZVJEBLD70RAw84
9shjy/wBgIYpcLVmF6rvDZYzWj2gufTsBVG/eTu2KYvVbcqev6RFmLlEweT3a+xBtBB7eC5EfD7k
UKW7qUcple354x5KiXCq13msvNclXI1RePwGFp1HMzscqgc0F4Xoc+VrCNBxC6hUzGi8hdJjMUcm
hLEdyHWJ0m5e/ty/3X3an3evO8wy6XIba0uwreY/1x+ugwOCoXtYB7dGffyN6BCzwtckaFwQ2BUL
foywgxkH/gz0f4RhgPIOW/IJ8iAA7MJQDyEG3mUrQh96FFYqSLvvPwxMA59DK8TmzogV/EbQ+3nL
/9kU24AU3Nji6BMPP7wg/47ypn0OKNwyVnjj3+PjXa8JqLKzNyZ+aT6zu5939vo1NFr2SMDauNSv
za3y4XIBT6oVH43cPx9P50rBavg8Pdrn6jh6Hfu0ZjNBT+uIZJ2W97biDm0GiQ8+3p33zy9gQtsX
Pu3ynhV9qssvyn/uDW6lzNP5R7bLG9+aVDfn/VsvnfzXIu/Gpwkr3n8eWFj890PeYpCy6lsmX2zc
uvlc8J/rvAU/qRls+Nqk1pe0vta3cfFtXd7f7qZjAFpiY0d+JqShbcp+pFOobaPMu3Ca7TFUTrHP
nw8obiPf+Naamz6R6aGL5Q7HFPZ04ZuryaVZbegg5ZopdUGgdu/Xk2tfGfJbrnflvKcRqUTDbVpt
mbXvpGtEe5eNWu/bJ5eGon56KYBLK3NgobuKaIjUeMer8Ni+8p/+bTv/yToRRreZ9UkX3yxCCKcY
hIidikKWg/8yEJb9l6Nzc8b4HByrSs36Cpb/yLf1MGJR9U/T+cw1ZTLr01H+S18OJ6Mefdxdd+Ar
m37Ppc2MiV2yP7Eq26zP94RdGf374WOkUTxwlyd8p9N3vgJy/muMBXbH/RtsVmjWl7r892ocvLcW
Gyo97mcNf+Hbfpn1sbOwWOdsGG0WGqN7ZYjt1GnWd53CzD3JeP6rCRL1uru+xK9efcTt3oZfOq/5
npJzxMk+0iNGKfJn3QZiul4v7/ez1am8xiVG8pYdrdGYv77bHU/Hr6+O4xu78Pqqo/qIPTeim8/T
+7//jT4uPyv3NgvVrCP9N8s/zD7Gebo+vHy9ezmd9/92hA2+E5bsSFdH4gndDIZGELleiK5dOrnD
7qt7Mnf+cP9voKM60jXPc1KVGahA+I7o8x7fn3bgscZ5r3Tp+INxu0Qx+o7vTBpEyNCnr8JfbXZg
s76cfdbjY+hx+gVMZ8zPPdJZT65T5u7xsToT8hifKwJUsdL09Xi3uyRsAjWOifMgzwim6hSPbR3D
4zih7dnevVXDn5IgPRyFy+mJ2I30yTWocz1N0bek75qLe2W3wEvHh4OjPR9P1/jAzdq7Fb2o6QeV
xLRZ/9Z0TII5ssxy7Avr4QIGIv38xOCleWnyHy/U4/Q2xycvk/N27y5fX1+neZIPYETS2I9cjWVO
n/eP1xfwNbkPwnlsc/SYff96Pn1GnxN7bT2/pc8k2KvB0DmWkV8/jCWzsKFVbxjGibDDRp+qCzF2
O5MxuWmX+OYU8DxIP+msUTASm9mVkEhoiK4Z/HUw2d4m3Xm3O7hHGFjzHfaaHLS7pUs9+GWa7fB1
/3Dh3u4LYiLJ/nTpoOe7WGnROF8p0ifWXXQZo8Xki7V15Yi6nO60rxXuW3ZaoJ0e8t6g8amn9+fR
6E6juVDBs176gqJxFDHfRzQ+zwV+XND1eA2ss2Neuvm3HfJQvlBkq8HDj2FNpGW74wAJw+3veefK
HIDlFoqszXqtHgH1wB97P+6vSNtZYvhdLDzrzs323p++oK0ldqD37Z+SgZxF7jI1KRdVNibX05/T
8YdAS7vcPX497l6RopWkFb4Y/XUeCuM4P+LT7rzfoWOWtFUp3ZjqLERnypaICIibQsUNIt3vsz1Z
tcGd86p2ByQbpNd3dIR0Lmez51FxpcPl1ZyMBRvSfM52e5ejF3PiH6ALX2q6p2PS/atRPl/RRtAe
8/SH189f3QOZ/57mg/mCz0WQu5u1Do6VrY8TliqyA84eCjMwN395dJAvAYv3X2yljXOm5mB3N397
dzgdnzl2ZRyT9HgXiYITteWTa+xe2SXSk90nvVeJod7Y9K/3/bxI5zEif4xs2ehDpjVm8t7LHGKG
8V72T0hvkx7aC3ARLVA/R7voFhEV6dLFIqatiw4hkpwkw07rRus+y/4hqOoz368iXoJx65mKja4+
vr96EzZP6XgKf0S6m+ysj8AHRR2y2Ut4fz1WBpFUx1D5S5P6kHUV1Pv2PJd4Qdx4d8fpcp2QpddE
cjvva4ut3Lm+440So7Nu1ZtY3Rm4Fp1H9EUQoW47TNtsLNVhqeYsqM67p9kSYDBRaLnRXEOaSfNq
NBMGxLhvNSjIF1SMgVwCgbfdscnac3PZxUdnq5ZainJE4d1SrttCNM/D9scFfQouvLz8L4ikdvSR
CUHimVMCbx6cZb04CM6x9lFwRV3cIR1uCj0UUk3UiGhyif2pIt1IrSF5enrj61TdrW68CQ6Honps
OFU9lCOGV/dKzvEdecOmKy+H8xMaZpMtTJf0YyWAp4B7kDS5DeCbTWBXxOhAVDffZ3R/zDZiVRuh
Q8E3xRwzr9Krepddv77sH/6cdf4FDaPomwLKR6yZu+Kd06bAjjxLIsITp8nRaHVxe1GGAGbhS6VR
UAQNA/c4tLFi/iRB5egjVVHBN9oZkzt/KvO2mvZAlkV+RVVqntJAY9o+afbdcRXRetTSUTyFCgY1
M2gvbw5CEMRrfQ0SHSWjHJOCv3t/e9xdoV4njxv5DLzYQErogqmNLFrGWMPrRcFax07p1NK1bnKe
Zqwa83V2LsxGxiL5r07Iolp+mwXqekL7SJ/l6T0TYSAQBxJlUQ77CnMnovXlFcbUA3lvKDEjoxtW
T5QIrTeBfdQQySC0oNQ0kxsC4hxVXvMu6JpR+Rx9ELCZSQUoFOShPV8ttoLLxIVZ3f/7HRrK0FQ3
wVte12LSJ9/Ur4oyj2UUddmYYDXRrtB4kzybXjBLyKVS9DE5VfSMHveXt8MOJtWorBgCFN7OBTrc
fZ5SWz1/YPnja8b+fUvkAtiylgx+8P3p7JKib7OmWd5pAuzgqLXGLfC2vEEccvXeX/L2mO1YFYWT
PMHXJW8n3tQGP/LGHxiScO/8A5jPh69vL9Ca06yoT8Bx6Mzx5AG9ww7JppLFiNQ9zxu6DkH4oCfv
5I2+91umDV/3DZsiuu15Kxp0IUmh+IsnABYgoeMp/gmZA7IO5x3IBUWMcd/19PwMN0LKLe5hCiBB
u1dtSocSlLh7QWH3Oj3WLNXA+MJJFWeXHR2QZvKgQY82oL2GONSpUWzCnatmnrzI54l/QhMx9aBm
jSIU5NWWEfjlBvtg7u7tACM6TZ5tdYCBWnLNMVC/XNomY6nMKCIzy0VuIqaES8xkCXMF1+BJSAJ2
xeJgkoLPHnlz5FrXLKvOT5GJH5BCxB8cCP2T9yl+mZXUd34QwHboCFFFrUSVJWLdbhUYKC5xM9Du
fL+fHfDz18hSBOvpEu+C1LcucrionequJPoFfVMqft3C30hsFOscQBu7D4SN/ct8y+t7mphDhGl6
mtWUO9m7l/0/XdOIu3j6/klrtLHknIcNsTdEOA+1CYmuSGWKE/BjzN4N54GGIUxO0glrmiXsa+x5
sHqRyzovaJMJt2XeLx3+Fsb8HB7co0sDA/WEbRNotV4Fnl7D69yfwtuAh+nTdFD+j1/edtcX/6f/
/ff5T7/6Ef+IYvbjNcz9t9nUT3/84+dffv3+h19/+P6Pn3/5/oc/fvz9h1+/+f2XX//4/f/8/Yf/
WobeTMmMqnRc9LeO76/30/l/vLvGjtKXLvd3p6PTp+6V9j/2l98WMvY84uHADmV0bUJ7v+rp5+nL
9Y8ff/6fb/724/d//Pb7N7//8McPv/7KT9GUpujH/fm3eeTTYZaOPw6n03ztf54tq1dw//j1xz9c
gLD/wo47FIXVj/uD83Hd+fwxhT9NfyzU9pgzZkftiV5IWAnd0Jfd5S+TryP4Q7HD6LFhcg/nyW1n
2oS1Yy03rE17SeoPw7BfHOXLETvTov/Xr7/8/Nc/vv/lu3/89MPPv8NT6snIiXPPrDtkMFlB6kqq
lRkKi6TIqW0DXu7Pv/z+x2//+Pvff/n19/kuwtVqVia3x0N+6Odvfvrht79/852X9z86yR+TyE2U
uL1KDXrkt5+/+ftv/z2vCesRXTKH1d/69pdf/vbDNz/jsYe+NPbv7v67rlIX/uB6dlL4zjukhp2N
yK+mxNLQfOP76gbGnfOK7z9R9ZaVtvgLl+Pu7fJyus5n9ArFAN4X223EWsab9+o2oHJk2pa+5dTp
RzSLqGlUaqIqqkX9RxfrLz/++tvv+clhuR9KU/6gehC8eugatM9/oNUs8Yz73Dqg3fnt919/nA8T
i7BkpaMkwkCAPX7ES7CsHfDsP+6Pz9Arsl3fbH3J+R1Pf/z8G7+5RX/t7+fTg/v8+PzHj8d5au8+
oK5pR1vztO5PJ9ekx6/yj6fd4cJ7gEPVj3SzO/jHSMN43/z8f7Y6Bp/9mJ+9ahOr/8SWiXwt4j/4
pUaVDK4gsCW8kttoz67V4EH/px+rLnlpPz56wINlr8sHLze2TqL2M5nYz5cJSL2ujcXuDN4KU9L8
3yx4UrjYzks5AktaDIE3Y/Bf69x71uxh/G06Pl9f/iOv0XaW9aU+7JI8nN75m2E79Z/o4iW8/OF/
//3XH3777cdffoaWz4xsoFDetP9ky8yHrDZ1BnijMpTMXfRYa1bEVNe8UfwfdINs19WMfvji969v
AKEYWB3WEAnXnHebq64K/sHH60bmm9nfjJOEE9zdvubo+wuDJGKQOSZooZR98JpYPtRBfi1wimR9
wO92lytwhs3QPCciHztgNa0u4Q9V2/DzP3769oeK2zAUa/6omPz4PS8dA3thKz7C/nL94/H1cn3g
PYWWW7aKTVUK+y5Hg2wTtsYPdwtNh3L8hEV75FX4P7rKaP+Hl4c/HOjtE9bdUAauTep0r1RmYuLX
4e2+0KzgPD35FIV3U7jhlj5Ifrjky7nhXN7Pjfm6my/H9f18xAPF3K4fKB14nJerLnB/T0X+7Ppi
AtCNQ3qszeOsbbVd7XroiuD+9DxdD97M7Y6PvqqdG3lJyPkZDnSpkUcT8jrrFH3LhnAX+VXH+qF1
+wRdtatrjVXk/s/8oqPxuT3UbNG7t7epusg0IaJh5pHcusIKI2eKHULpfAhFh/Ddtp/202NgVvCD
jGBjqJgep89+Qu5h4vVusfsdwYrbjXJzC/sT+dvszDoFhrhMV78w8H1ko5RXRqbwsYVpxQinG3X5
3F8l53+ww1g4uUW0266i1EnVEJg87tTD4XT0A4GtgrfDXdzZWjboqN4Clfeyu4QhvP/IC87m1DP1
FBXAqn/BVCQzlTjEvKj4p8v911k5OS3K78+YLgkJwG5FaR7V/Rs4mKQ3Pzst96k/LY+tHE8Pp7ev
TiHzQxkFdDkVcfePsyNwmS0kmJgGF+48vR1my1+7tIqIYgoU075HJ2dVl9OXh+nNM3rYaXUWSARZ
pP/L9GXW30C8WHXnr8oqn0Drio5Z4XL5gymK63WFFamugh2073OtIm5Mnt99v7o5flp1wnPtHgjD
mJlltrPI+oL416UvAz/JQbXeqYCX89dp4HyZoG6Os9A7ltm80orCGYDCcZY8OES+s6bvqcm7VwOQ
C2oGNb8sqfK9Zg5xPTzXmW12OJ7A6SlmVo+n1/zUnkLmEm7XUglRt11Ygdmif7Z8z97wcC/e9sDi
I9e0xXjoMZtZLg+hdaxfHtolRWeRkDJ3jPPirvvpErwz73c7oeK1oZSC2XAnA14qQUMXr2zsR4OI
2Xw4JQF9mDE3jlQOgjRdZveqYX1LD/2Cas6Ckmy7wG4NYLeC9CxC9nTePUM/baGMlwdr80UWZm/Z
R6e7D8wFEYGN63ATtzWoKcXFH423b3l7h9fxSKM+hJxtg3fbgXu4xJhQyShhWBmlqt15phXNPubX
eZVRN4/L22F/dX9wD3ewc9mGzH2DM7l7cCm4ZbLAu+F0MjHQ8x/hfi+VK+tmiWJY6roG+HLC6XxO
cXlohHecnnfYRTESGI/sQoXUIO/ha0bLL3s4XbMACLsA5I5ubAa5X47Bm+zuvHyghAyzzM1Wusvv
/vS6f3w8gG2zCughqkMs0CEm1yH2IwbXOx5PwOh2bQtOsuPotT7f7XMsDZIzAG0wi/es/j7tT++X
JpdvkCBIwVEcsS+5OnfzoPFNg3aSjXYZLISLlG4QgEo4aVsgqfLdbz3ALndDZemOrTt3dgU94IKp
xq1rC1pHztR4eWgMJJYGXeth2LLnSaJNEJR3SEIdJH9wTU34ELr7EPzJM7C9epQfU2fp5T9eo3Fg
EStw8W59ROIMMDbkFGYdWHUFpe5aIc7qZRsF4wlsVcjp8NjsjyuhgJ+ZpA9hpSOwMh/Rr0I1CQw5
0fkogKyYxrBagbu5iVZkBXN3DhOG3iVQGcFoLj4qwoEUA9mUrRowBKINKgcOQsdZ2ByTao+eepS8
2prKqpJWQrSBuvjy9QR501uYm2wUgGg6CyHONeuCEE7FBHQpGGjTzUvLjrI/EvKLBsTeXFCy2Q0D
dqNnlsKk8Gq+ru7zA7K51Ky7+yHlSI9M+dSv3ez47nI5Pex3fo61XIkYIWRODw6HuJpL4CzAr69r
XgesZOFGDRIMJOyuoL1W1IPJm0j1erruDiE1C3ABgZ2S548EbUtzu9vRnN59250vk3uu0AXOp6dl
viA875gjzcS4bhYGMKkVKLh+PoGZ6BZfnBrPOVabHi9h909PuzPyuyyQkQRugpskmH3KrUTDJeor
mQA2JAVYace5Cgvs2oZJSqIXyVMXGKyJT1NXbhcBhnN9vZWz2mXSCFd8rme2Rc9ZZxKPhUK901MF
Mpc9sIjUQ+uBh2ZR/jlzqMCiiApMjyDStKhzqoKYQ4TAbHSpvBnI/aECUhnzH6MiAVB79ss+g+vM
RiXkEKnMX1/mAWvpTcM4WpkOezq9A2dNCeD7UTIA8NQMMLJbL7QBTkaci/Ac6nwO07/ed4d/zyIP
wjfN+EzsqabIuPFYzUdTdq64jDeUApwnnecSUsdnTXivcfgoUkysVesWIENFgwdgqpJWcjfR9CUN
iYKzgfFEmwHx+ipFrq+Gmq330ApGVjjNBUyX6786X0dgtRC3x6tDV9PQwDXpGaO1OLx+w47T5xYn
3GD/YQNxAXgLZbSJ30x6b/ALHLCLu0J3Emx23+RDvpwnlG4qelcfgvt552HkUuRuYo6R4ATKN7vg
52cwW4ygrsBEcKnjRlcZ+/K2BymHLFCp+Hx64NKQN+nbAO8iMFZyuaotwQqRPi1DMtn6a8B/lB2O
XT+fXevuKG84W9YxGqtRWtejALMdDGtRP/Yb4CdsCxACrWIDps0hBlFPzTcn/gkEXigJS4C0Fn1n
xw86oEHMKxeGhsA3M6Ty2QTdk4O5dSTnDTt9Ps5nUyXt9mMLQnCZGjAWYcdaembe+unTVCOVSuKj
ILYT5tJJI1piwZPz+V1bJXSXLUDvAhypgGPZtfjo80QqHnrPkK+24hMvfT14GHoczjTQsGSvgDkJ
WyMB+j2Cgw5fa7CxovrbFnxNZp4ed92IR7u+Vx9EjOs+r1YV7R6UeF0z6tbkfqT7V0JpJZpKPdJS
M/8ErNdUINpGolZva95qw5XvEBt6enpynfg+1RSi2FQf6FqwX2GXygaF9kzMEtBouo3MhidkxloA
5ZXQGVlFYzHnqU4LkB1Pmo6kzWZeqiKqfqMVNpelVcuqbmi5LStGVhGpXnDcGMY1ARqrWE9yS66b
B73yFmAcAGKbl1rBxuVeA7SwsOl9qSV9UO6Isrob4mlr6gkk19oOQ7kD0sULEozlSVgQKl3qAJAa
mmm3dQqp2iS/5E26o5le2HE1e3VcuRHiE4YrVvJckDYSvCBLJl0gbwk4zW6Yli3+YT15IkeELd8O
dHryDjQm4Y62Aa9uuYoD5gZwZTwgSNAYa0nea6VSZiN327qs3eNjI3QnAcJF5TaI6en9enq6d44I
cLXkCNkmK2+gkt40bYQIoDXo7cwSWSh/XrFlg8Smfx6yGip2CkhBiAF6sL26hraGiHV3OLTgBmxN
CtqkKr+gazAZeKcVmxblIMUqd3sA216KKZpKiNXW6/5g/RSiAYoPQjoe8J0+1zAdC4LyLQpToW93
wK6TSwr4gJ1pqwcF6xkaL8Q8p1p9ZQ/MWriZwA8XA0pfuNAiXciH09t+QrRjWXHd2kqDEBDbw7ze
qqZbqqAVUbW3MkWQTOxV9OKjBZLu8YMLLnMdmeCjOUncgAVrQB4lWwn2T4Ea2lLfhhp1YBhbEjIE
70C8X72JSTQOByN2UosKu0YyMaA8St1GXl8OFLObuTrKHMupc196VH1c51sI2d8Ig+9k4/vXyNv+
NVlplNcK7poxV1+mEh7ZlyzhbcwawQw04JgG3HjcZTTjeAGjRd6j7DPNFHb/+zg71w+Mw1llKjlY
Z9TDolg8HZnvVkems3bc+/k3DreViUbiV9SHNxdgETKcT0Sf/EAdhxDcnJ4EC+wYcShx9fDU+tI6
85PjuizJpEj9TJLVm3+e7LPowErUzfd+Kct//t+///S3391DbrHnG5cCmb/tl/deusyHXUf4Lbxr
sgyk+YEifuIGIovyA82q5Jt5c5ZBDDvIsLy6ezvIX87z0SwjWHYEszyw0kWGi11HiB8byX6sojnx
H6crST4Wgv9a6zH/6X779TDyH0uy8uTeuY9/m63Xw9K+T/BHaS0ZIqkn8vuS/31FPiZ1Cv73/Use
y9b3/O8bsvXJByG/rzv+95eHi7osip3vwvV0BPI7aM396H9PO/ew1jJxwcuMULnUidtj5wVfL89Y
sV/LHmw7uTVj9vGiSCTYtOUt8nzT3Nffnh6/LivnRXbpRVLYvcLtFwN/+8cBXtzfpmvDOXQbGbT5
bJZpdECbjdx2/nh8e18vEb8jy9sdm4Xsjg8vpzPYyUGJ0nfpeQaw7oFcnM2sF50FJGjMJ0wUxyq8
/Md6qCi8QQGV1XEqyx/Xd9Ph0KC1RnaUv+3up0PdhC09EQs7QG+BArdg5Kbwy/0/ie4Fuk/0ue7t
87349fS5Pkjf24oCFZq3nXqQFSkCSkxRJZa2IIo9EF3Fnt6P1GIDGTRUiemSxQZbprbXNS36L/vp
8Ej0DjDc1HUpGs6e13x6eYL6VvMtGlzw7ooiZp9w0TgFbIECZj2n5SZ3YA09d4PyCyDABRC59KXf
/2m67hpu8SjhDaq7MD1RZpsp0BEUsGKm5zaR+q+8OC70tI037R9V1rwALg+xrTPfSMF3p1UNguVT
37l4/8HKVW8qhmAUwBAMuRIYbq+AAVfA5Frv5qeB/lGK9TtK4YsB4Qt7jb/xSrB+BaTOt+H2Ckqg
CKyqhR7AD9Q9d/Tb2EuD2Is9h+0gvBAOFZ9gcx7gKg5DfpOIJ/e6e57qUzGKXCqDTDKQr952nGnI
wyILwqLcPdG3Lj5wjxYuXEEufnmjW8lrFyuL5s0rJQk82oH1ihaVwCtCrTSnEjJdDAyaIeKYQJbS
8QGdaAf2YtyKowRhZse66Jl6QF6m3ojSWLSQIDQZBSfQ/9/76To1SIK2JQvpJQFo6GFQ/Gcd+KwW
EoH9Jqe/2e/ZGB7CsaHNHjcW9VadAl1MgYwcE6Na0AI3AFslEhlJgKh1af8clG35UZBjNjR5RSgs
UTXHYgSupexrWgT41sqwoJh7obiuv22voRGgJwFA0q7jLHsGswI7Qu1i0T0XAOfRZb+U3CRweem3
+Q6svwxgSWs5Pf63/fHPBjyW6o7iz4OPld4giuYGGAFO0VB0irzWAr859D2nOTIgFvgu1goOllvx
EIAn9qLmCQJ3wXSl2x5hVBDHa9nmZmjgZliYSSBBDHD7tk7ozdaBj5U2WO2mGYBAQBRhlMfTA0Tw
2CxK5q32wFvtOUczC3+Bw6RNCT06+QAezn3kpHULXQFb1asahAKARNFxoX+e+wB63rI40O/7a4uG
Hoih2mRvtv4mMJUbdVmA88ENUsJANJ4aKyAHnaohQRaYa8VZ3J+m43sDhk+jhsTS3zhu4A53bBpx
k8/RIJ9jKz4HOEKldenjeI2Ax2oFDDWWiAf4CFvdLbZWHgRrhk2DffP2dkgoKK/4lnKPFYfti6Ye
HD1JJm10wOboAAooDOdvLBsI7g+1nEkLx6MDyIdljd/NvQOmqzMwe0VGARtgh46DYm+cfgOSKrKy
jQK4QFqzGiTdYZRV6lgY9e/nFqdds+DBX07rQ3ZgE/WAjSkxaSCXSLDc0klssAMQB5PogdzNmFsB
YqlYXUzzWgCNJr43eeO+KEsAvxrZ7Pj3+/O8Cafz1wagtquhSQLcLW0NPItlCIAEqYH7/RpjZ0ic
V+TRg/DN9px3uBAjgD3ieTV/OZ1f61Kgx2IIHLUigHItG/b/fXfePZ93by8Nd5misLlvR7EUQFGw
uskxBh49pYikpjfbEQA5pTcjh6GswgMSHMQdIU8A3sZWYBelgptAb3IHbAtOUlM7B3zcTldusgF7
AbJ8myQDcNVJiLaxtMTHBImaMe2Dt3Vap/v8y9/2lwYTYzvWTueHCmAC1eFDTeEq8PYFmx/YOF0A
oxFDDZwC1l5rVrPS2BfIpdHsRvz3rw24eDe2Xg6Q7rDjWNmEHnAvKGjgOEhCZcALgJt00VfyKBUA
t0bRl9JjUakPQKmzeV5KkEJpNcIU2RAF13QWoBnKTYJclbU5cLPJhvkVmDLjBAUZlPMqAcQHrr9p
o2sCt9D2rJf9YyvZVRYBg0A3GIHwsEhdvn6U1GyjTCG6aMdmBramoAemYGAJF4Y/vpHA8ZtrsAox
cMlkD+PFTZIbKO+BPYik+BDOwXJuvt1dGgIt2Usuyb4qfuBYGpa76n6ehmqIgWog9YWEakAn9Kwo
5dlZDbKzglNMwZ5fmlwLqyR3JNmdBofaCQ6GyZEckPw0umLKwMdKF1GoaFnATbQ1t1AoQMGzrA3P
nAjgBega/bEHoiw0d2yZP4iS8xu2yS2LEXjFRrLAb64KAQQ/SMMZxlwlj0Alj2zKDIRHY9dzAc5/
z1+0EPBZa0JjXOCDDkUfNJgBAQzhhv6cpUwA2mq7lvmCHB+lchTTJRYIKx+A3QSDIF03ihLIFh1W
AAsQlNplnPRNQrcHyKJQrLeLELShryg0YOvV2FX2GkA3yrLMutxJA8ItN/CfJUKG6DO2tmihwY3o
WeZTci0QDr9hPJT9dES9IqRQz0wv1qYgOuXQc5hbbgiBc2GK0GWUcaBKtanYkgHcbSmgd7gIHaCb
GDYfkZVEACdiE1vcGmMLquDGKvEPrF6JtsAAROIdixE54PG1hecmuBGo7AHBGYp1MVFwQHitR47j
t6CMwAsYeA4GdUKAqhmHmg8GvGhtTMkaRhf4r+fT+1sLUikqfhCwx2oYPlKMCpQPz1391p9hgxM9
iqYIHwC/1rDVVbkGAykcUz1RoEh0X2WdAbdO9z08jYb4VhbRJm/uQR537MQHSOQo6UM0WbmgygLq
W2dbM7EI5SDpm80mUlXUAVVEMAKb8aBzIQKW1EiOvrgtzkQoK5GG9ERNpluAJJa5DdQJA2rBDlxs
3gYy6C3OgoJ74DIrU7lOCiCfvYX8EOq1gwiNL/P66fTYUmVlIR+2zjDsleQYeluelAS5ddHYLADM
ZJAsTSBX8kC9jqYNgx2Ae9/DCr4GdrHmWzBsNgPQfKVtqXxGF1yzqFFeBAhQccFD2rT8GjiuxlYQ
SQ2y9IOpFdMj4pdgCYB/m56n42OL210juw8gh8R34shZkMDhsEOLxQZZsF4LnjQNrmJf3PndLLqw
Zj7fLgreA6xwqMYnBsjIWAvtwE1VtivFk5HJA7aHR4UzrQsQ7s1WMTx8IJoD65fnbgSAyI35QK0l
MiGjauVpA8axEKzIoXp1Vr9sfhpEhz0PV2aOMeBQyNyMa67gGjgjQnOh5o17CvJ45dKuzKsDLjLV
1jmzJqO9A6OjZIUaJRRQmZvOD9RkbSJWVB7Jc/ep0QJh97bxjSpeTpBTH2qEZQ2KZIZa9xANNBqh
mwKLgS4DAXw2/uBPu4btN0NzrRzQj5Z35IhfjNI3OA1JbxOYxWA4X5AEGCBG6Ayb0CWMT8DhHgRX
vJSjb0AjdKyG/P7QhEIpIVoYe+Be95TNLhzFqOzHAC69xnXoJK0M7BSvXkoGD6j7sYclNg0Bk9wE
TNRVMgBJSStwbGJleGoUOI5OQiSEbCYYpGf7FK3OOcCkhYJRZ0ODFMVjUQJVwUu+pgDFY33R5fPu
CXIUkzIMxMSb5BpAOXgeXB7AoBKOYgz46C4+LCFj1Q41gAYYgSLkT0pfAIPOsGUnWbYEKP++qLCi
Ww/OWGlsNHat9N6+r5RrDODYiTeqc18yUy7AlZaKD/oA46PfRJs3wgqCOLXtlMN0agOsUcNqJSp0
ALmhcEEeEmXeK+DfKVsrswHG3thq4ygQx8paRQLqG2hqqWVgDRStllK3VYr1Oq2ebxR5C8cCT2UL
H/CeI8jw9x3b+yrv8ILSjQO3Ixn2BqJzXZSFSEQBGqjcNSi4BYAA2tlaMQzAiJSSLRxiYByNYTNL
G9I6GEOwMpzDZeDceDI0EUCAGNJes+kORt8AmEvLdt0k9XXgALqBZ9GA5PRY6/E1AD6JGBpbTKGF
S7Zwg6psZKnHClwAOgopnnCdOQrIPeqayA2I9c03yFrAS1DgOgJ0FviwvYZxDEnZAATSNmWDUQSg
dCPsB0SoF8MHuNeovHPsmmAfkEszbHeaLf8Z9R5lKeB/+7FBIi3bc47gHogxQs7EP6yXwhRUmcr2
K1y3DZAAe9UojkgO+KtIdDdg+Iwf6XwM3KGBln13gOQB2kWZnusakfkPwBjqHrdvuTQZNKv4agoU
/vWKc4NpZzMkhR2XlaZ2AVzFgeV4ZjsI+q9ovnM0DQZQH1uW95eNAAISNUDgbCOTwNJ3bEPOHy8/
ujdgGkwtX/6bQ4kgHdmZatMrAO5bFpenJGvAZ+Mx4dbcPr3bNstvZCMAsSJc7U21XN4fGcS5kiUx
5Z1JAYdI1/AFoQGlcxB8U1vA4hKiXScBJ12xpc85RQNoR0IUIX56xHcAsqQMp5ZcmNJS1yBhF0ya
VQCcHz479I+24pRBjh9RLMDwd5ovDkJUnZ6lf+XBGtiFXtYylWAPta62Vgeeq6aE7EJvqA0vFWQU
BlWC8Us1j+A0heK8r4wfDXg6WnLyQAsHUdWeKjVnDSoB1Nt0myDSMjYFpL07/QFRBrjPILpKKNkD
ceLfqcnz9yAQFF3bgy8AALPsczV52eMILAP7ZkzOoUOedMfRxrdsDuDOdwPM72w0FPBFCXfYOWRK
sbEuuKYWP4qUBgGRft+zpe55Oga9bFHrvGoByDv2bTIKBEwU8e2QMwMlYkMz1RW18+f519SnBydg
rGzuyIWSMwOX3NoKA5Bvvq1XLgwI+zLcVaX+MIi7x01bY077oq4nLF2IkD1Qd8BaM1oLOORd10ob
A4n0ch+q6MGgkk8WecwVJSpoy72wQrU9cL20LT4zFe4iSNJt20fBkhrQ9mcot2sIqQZgZsf+A/Ya
HdzAcyg3rhPwQ4XmkXOg0MaNQrtt/6VRN7qurbcucH4V21wyT1Ihn2+s5XzQ+0A0hMoj4aUmECge
pWq8bNRNkNZTVp1vhdpGCS7lTCJRkPjsRJtBBecoir12g/yBmQ9DrY4J7N/mabbs4g7AV68RpXtQ
Osb3dsmdW4BF8gBvY+G1phBvbv7bXqOUll1FqqFGz9l9BM5DFMtRtho+4NOKju/tAMRAsEmO7/ef
WsiAHWs2kLUZeWrNRtsD/Eb0LTxt1NZaKfbuIJhk3GgK3CAIEAeHvvo8JMhPE4KEj9IHxvCACEAO
JZZ5UB5AYdGrV3i8pYGWoZsawqDgiQcO25wFaU0FITCA3cMX6lEqL+rN1PNFj8ndBxjFaNs8VlDx
MUo+HwTSDz37EG72UA3qAFwzPqC9mRosz/QEsx5MSw4JjGDK5UHUTAMnqVMl7ngMTICuKTe9znBR
QB5UIw7VTw19RXvBZh/zUnlw4EZ/5B03FGgLjpRYMrpgoFHASqGGEVQHU8wEigKkie0DwUz2B1xH
uX0WgykKQEwpIdngEzxFMIws0S8XDOAxW4kLtgiWBMRrZCvIaYYaEPRoyVp61iA2BAHsAG1LJY5b
MwBU8DZ4vA09USN0XWsAYQBfalS1ZxRAwKgFd/QZeoeoLbV3LEDhg+pl9REd0GGr1xWdOgKVKtlm
0W0PMUprW+laoNzBthc0gXu/eRmZaT4OMmejbKoFAsHPtraAa2sHyrK6oWYiAdlSs8BfDr2AnJWp
3cIBsBhkzQtFZTOq6T10FMRqnmGM3kscO66LZb3/leKzxTeyC3Z9ELDV8MYTAEEg/8I6oeuCREzH
pkM2bGcA/gtdSrKFOMwCEEfV2ikAFT6Ixr4UKBYQbFvtnB4H/BczsqAtgF1H0dXqK9B7vMqybK5W
7o+08N0BoseB8FnF1XnkLhRSPz2XW82XAsRPCujKLncaIBkGvibx2hITdrUOq6jjpi72lIoOHACi
+O722ROUyIaatkIFcIK2B+3oQNJKK0iWJkxbkIftWYpxLoFgC0zNhgmgP7Vuq/RAxFbbNbdMBaOM
uvV9NhRLDaxNznEZAEyPrFL4R1unwIHieqD2DZDq+LdZs47NyLUQtfgCOPjVds8CxBbaDFxIvCHI
ovjENLm24GaZoUbvAH5h1/JCMjBwneTzuT3wKNq6RCFF3ola13lgmLVVTeoIUa/4yDIHREBIIdiM
XOsjFPRVsJRRDdgqgvss96ZXhlKColVe6jKPDPGJ+bcO6y2mlGEDqjwrAXLZ0rRRogFrTY8cVpvZ
dTCJLTnrJik7AIRBsj282/xq2XctXYZRQRd9mdtZEdGXZQkVQOuhQsoFqkTxKAsFFwC6NbJxIi2+
Qm3jWRWeKwJQ47B9s5V5UAcognKuI4Q3oLVHGZKlGBXYOcXS0XJUGbRO1LqpChh0PeK1yI+tj2WQ
zgWbTFPmxoARlG55WRDxPAnGsqEZrGoInAR4SmA/HR5/m5rkWHG9wPLjBPqQX0VuFUDG0somrYyS
noo1q9uSSpQ5Zd+l2Th34FLavvJogEBPLmrd2tMKlQqPtS4NFsS7G7ISw55FxU98y95UmYrqx8ZK
C3oNfIS+9jHqoqVt5R1l4F5tYQr+OSIAWTekZEG4q1rfxUJ0Vam4lhS0ohKAVwPbXHdFz0B0ptiA
P3fQ0CNGHafTcjcRxOuyVqZsQeaiHB/dePggETSOHP6XZw4Q5tXXip5Ai5gt6sJkX1GYQyXZFhhE
tIYPuMqK9XYzXwGIoxk5xIP6iqgF+NjS+Bq9e6rZtFxu3kChty42igyuHoi5+VafpMgfJa/7UvI6
81DAzpmR548C+L1jzQfNfIPNGiQP+4OUh1CthAFUujzI6nPVwP4T0oYDufRt9hnVLetq2TTKuPLA
2Eq2Brkq2bEvSqImCKNseaoc1KE1dc4EuSq+NuRWUYFj3zT0KuWMQN5SqRrpAOAy2qhKkTYANJVp
akElkb+mK+96AcKrau/nD0pFpODM9dohEhGN2Zq99ejAApRmw/jM3INwVg5N1ZgCddgWsE/oplgH
uH+d5F7kW8j7IHSg/Vu9rTRcPAlSFNtHDQoEHKACex4TMRLofvYRxtzjQm/2iA8QERH3rbO4P/ep
4fWYXmjsfzUsSPZNSDXI9HSypY4CAQO1DtUjoDGXO7bfz2YF5bf43FKeZAMI61grvgWV7mpbNFro
kATwHDvUnidGL7gKzbO2UdUuLq9s4KpKDXk7G8YNGIh2qsuTHN/+2gIA1V7X7MHed21vaADKhlY1
1QegD92PLYUDQG4HXXugHYEnYqz5MAiIVEOVcwMuDe2glD8xVdK9QJS7sdpaFYBPcmM8uReYgTtr
u0rB3gg8eFWNPUBSWfe2kXWOmmX3NcIG6D6lLBu/5LoXxH6jbnhgF3FGRrZ6JqMbAc6NLnIs7neX
6emEuRWUqBTDbffp9Gn+xYv/4HF/edtdH15++ATsv4eNwmH6g0znkH8+gs+H9XOikLPPuU3sEvHO
/3rSBfnngv88XoLN5B9mn+E6hakr/uOIfG0+3h/31/CpBr9r81UXpo1+OTb7WVdtNr+MVqzyT3Xh
lyX4ZZEmPjDHBSZuZem06X4bsN9j/vHtYYGJa5tNPF5X+jE4Lp2ElFw0+jHY8YiVrGIiNoeFtot8
mt5lzg9rAIfVlw4r/bIFvzzkvxwEdDFN/vPvdhe8blVXDGAGxpRudpo8OOuIEyCdgiZuunzbgnHw
n/2+Oz9P9ZXr0gD57wNpMwqvHFwR29e1Kdo4UdWm6NfN7b57s3KY7cpB+S8eTufJ/+F4epz2x8t0
vt7P1urMvq0uU59H2WcphsfT6+V63h+f3dMP++v0yh2JTHx9X+mbLuH169s8iafT/vI4nfefpsen
8+mV2yCZOvL6mSS3fQqm+jJd94+76zyn+/frdLyAgZZX5tf5xMsR79c80vLH9/Oe0xAygYp+nPT0
qtvc8/R6+jQ9vOwPj2AiS8+6zUQ2A3BAshsg1n+vA6h1AHq8XAZHJliP2Yv5vu0dPjgdH06uEgGc
stRkN0glSOmUNb+pC8rnh0nKr3jKAsjcSIbps7N5OL2+7c7TssS302WPYF+ZXr72kpfczfkO7F/f
wsR2bojz9DzfhvNXMJRarFmf5Zn8iV2mf73vDu6PnIJyBxYTVeuB6WUuD6fj0/75/eyn8rCbz//6
5nzZ6TqxXSxlQqXXa9WDc+vBuW32aKhtuAIbPqjSVV8X+TDLwOxo+3DvAoRACG6zZ8F+ny+IGwec
1vLmqR8gdUeKwjiPcXl4mV53y16hXR66XI2KfEXH+ZxmRf8wXXh1oWTxpOJyrtOX6zzWFSRK3YpU
X5qHv1KX/WPHfyn6oaRrZkE7HfcPu8OsaF7BVgp6pGOuqpLgS34A2/XZWYhucbyfTrOog5lreorE
cBxnw/X1RsMBuyGpODlGpMmnAD5VY756CWzXvA+CN8gLc2eVyQ5YU36Yfhjy7awqSA5U8Pe1z3eY
WsK3wyzW3pKBG9/LrnTTljnsHk9vVy8gvCmTcihp6VW0BRBtWboUWzMKrvfy2NDmfOPVfAq8IuAJ
GEG0+rCaK2KG5z+6I0YGWNnSKryY76cL+HJpV7rZuaJIWWC6NbG5pHvVrJg+v5wOk/sDuCP91hsq
KRgFFIwoezKckebFWdHTNNgkSgEc1rHBvQPnshQiLOcSr/qtwkf+gtScXXbreNrN/+1qfDrgKPZj
Se2sSvTL6+HTdL6ANLxXg+26C+xL3xd9IHfTP2KThS0uaeu/d8B/70oHXFbFQPeNKnd5NRA3oNHH
gVvOvCsOmJzDGcFLvelsSYc5MYtKPN1iflN7W5zF6uik0wF+myTmJBGStr4CCKy6okLbbAWwsSOd
gNMAke7gFj9PIaiTePk+v8zxb7g+QGRNz7k/l/wqAwVJtyVf1WYM3hfqFVGy45o6+w9WpKjRTN7o
5+ngNfX0CHT18ibjKiSi7C8AYRfFkIyQeBXQQrZZvdsBmDvLHSldBAi++04x2ErZZElesy5JlZsQ
deM/AaGXQpRvbhjiPDkz4S8eGINiNGkabMAEAuW+6DGzeyMATkPD9zwMPJxOf76/vZ2np/0XYPyW
Dh23Si2fTPL1wDVWBChxYYEGcJi1QPx0jrcEqzHv78OfDy9z4P8wx/3H+SbuDvt/79ArGh4xVKUL
mfufDZCYVKxJpVuNbCr1vQbsiwLx6QfkOi0WAET+nSxbgMwdFWhHi74Bg1ai0LFTnBfJBGpA42iK
5ialfXvHgQlZOg/6CSW+T/GEDL+uQXXtQQcYRndIay0XYN0ktDCrkQ6dz8xB3u5anU9nf88wXqA6
WVbv25gWTEn2XJROPCEUWI6WC21pDAJUX9mfKx4TsNfLk1MbBbMgJyBkIEHl5iJnsTnwa6n6J9nH
LK4EuNdgSujRCisAyKu3FXkiQRMSo57bARqmgDCyF3ycQ7wt4L0K2wKQoOCC+CckOxAE+bIoHd7a
WcHG0pkNB7kSPXLeM022gCkMxfioHHUCqaAXarwxtatWUMjKsnjVheDawPHUJo84DZPUA1LZC14q
iVBpIFRji1gCMLunCpYL81AgMG7yAxZ7q8DF7HsOmr80ZRp6DW3FxgGTQDSK6prERQikLmq6MpwB
znUkS/HbWs8FCQtcFl1aEfJzAdI7Sk5quZkB8bGq3TTyRz8IxcOE5B7wO24R0JhGAIBJ3/VIKd0k
STRIAysQAd4CDOhOFdM2OaaOkE8hgHZYvgeIpzAQyVqTqx4+RUiJNO2oJ7hXgywp7a0vKIAvSLR+
6oZwY8VBmsPKZg0BPLKe0hZUtpLMmANbrIcmh0QBr5C9M1Rjg0VoizR28O4u193xcXc4HSGS1ukG
zwTYQdv3JQFbnGuQZydWh5TVMckBIFl90XqlA10HcVE3UGQUmRtuPOabYA4Iuyy7WWVaAwgvSV5S
+2KXmsEAIJ3uJUZH6DYh6ZdJdrXnp7SA08D5sIK7TZs8ExABKZpxG7BFQydbTJkCvq1UJQLRjX8N
9leWreENigVOiADcG/pRpp8AUaPsXBTIHsACKt0EQKCkcieRY5AAI3QVB1HKb/Ewdwdg7qLHn4Ny
wP0bxo/liIHS3pJKej5bBmw6weNIJnPLUAIWmURyN/hOui8dch7TCA6SUxKxY4Byk4qDqgo2AKAV
SkPuV2JKIY9LlhKI6xjRMqIBipRVdxhOo2XhBrjEsus4u0hdNmDZGbJPScpAnEwS3eTRU5Z9hMR+
lG15JhAhMH51cW8B3YdsDWmfsgn+ge9DUx7GVwSX1TwYY+m/ssnBlI0eSOVQB7DzGJHmLDDwaKnh
I/Sb4mRAbpbuayqu5AH1EfhgtniLWHXbgxxekfxdvAgAx7QKG/bMAQM6k8/EZ14KCLhF3xwTWsC6
3ar/MqsSKZiyRSxeRkC+KqcZysMARs44cryAzPEC6zEj5NlGevQz5UYDkFOxpOaCvIAkihIfcPyB
viEUR1K7e+vQAe3bmZLKuh0CXGvRNfqEgChQ5kPfgF6A4zP27cQ25CQPTPQd9dyKMV6QhTW6GG3i
iAz5hR3K06YkgQFIsG7WMGYEado+c95Vx5GOQEimVI07uDqYAG6VlkvE3UL1IDFPM1Hdlqq7MAMA
LNhRNolzdG0VE0DcWyNKYszxBAAHWxQT4Vx5FCC/CcFtUAEUAhSK3jKqmGHwAHaTYWgLJF81H94s
Rc/XF+S92pHTGTQbDhSw/QBTWoBLtbFzCukuUJw35MJj+oqDNYAtFnnIVMZkBWIKQLNw6zgC3VX2
0zhZBjpDsNBqhsOALSaiR2KnAisO2NxRt2Q6gZvWC7a+gIMhQeTTq9It4A8KBGEb2iGLMKEYeQBM
raV0AhyQYH1xWlEHkMtt8QpkyIP4q9fNQosinW1NZzjqBQt62R0fD7PTCiBUYzhQn6YTQHTTa0Sp
SjE+cBFlsRj0Vi6ADijT0TfLAJQjO3bcrctqn5EFY912QlpRgLRi66KNJLMbeNG+MRNgHYNpw5KR
NZeGO45LK0LR0/AlQQtFPxB4TBKWLBMOIxCu3nzEwKDSKdmk2oFzjKvRE0sQ8IGkavZKDIChtukC
w2MsANmwGpQ63nrqqMKgyBkLGtCTMCGZRbVYfiTxRrRnEIE6Jli0r2G1XZGIAFJBQvMGKlk4MMAo
mkMDRMggnOoNhy9DvYACEEM7IxIlzIup97K8A+KNgvwdpxoddtVg+vtyAv72DgNARIomNQDQM1nG
FBmUaQRoFcT4n7fMBsBGM7LFBCMSjtElZ6bMOAH+89YCiiJOChK61BS7zIEYbYFGPIDUI6U2+NZn
qpIGBbgk1bGpoqVoSFHGrmdhGVcwjDqo9FxFTWb1wI0h++mINHoo5y1BnnCUpeTCJm4AztVWFw2F
amV05dvMtkIF2x8rlkIxg2h3Z7CtULSK1N4EhyTeBd7VaFBBK1GsCALti07r5e2wv2b9P2DVZRNv
HYTupu/YAgyqwUBYqEdYlg/upxjZ0oektICAWSGLLXkyEUdl1oLn7KfsNfCgxibKPcD4B8lDkWkG
AJPqZEkSt8E04H8Ztm1JBosBa0rJVRQvLtqwHpTQEM6jk+vYdbvonoNwo2+LzBVyVcYyn+dGRQDg
aBwai02B/hw38mmwnwICKHrKJis4JzkBcMe7jqP/U/cC3NTONJZ2g+sqbUvEA2axvGpVUHZZUg6Q
Yjvd4Gch4lzXFa1y8a6gAnPRmKIEGNYw1hNFKCFDc+LOx1lKSHmzDDw+wlZxYxmmWAbBYRZXUGX8
LDCOUiWPfCEbg0IOrZq5TIir2pfonVveNrgmauD8xkKUBK4sbaxi/V8A7KKBXhdDc6Uw8BbUoDnY
l6AMQIeJriW6R/1uOvvRllIgC9kX0wLzQH5XYI1PGe1cjnWezWEXaCAwxtHtha8gczNQze40tJDl
Gl7gQXRtUBaoAtbF6ttyFA18h8E2l39ogDPKYvTKZy2B0Ose1Ai1tVUxkq2m5HJroNdcb8oVDFzS
G3Cdy07JSmXyCGj0YIHhoEEEgQpYGwQ2ezRgsxeDCLDyYeTdi5R9B4kpSt1QgP4EPL1Oc/0PbwNu
gOb04oNNGQD0p+1Q8h63QQqgExhZ5lmujnCpcQFq5ZpnzdmUBMAiZTH1VVYVYGVEel0cbYr+JLrc
H29zCAS4H/l83KWedbJiKDU5vGEjgOWYob3jGACvRp7iQy0KSCmYohe4dkUAHM++L5Uxlhv8Au1Y
7jSUw7EawLGSqUmJypXh7KFms7Zs1W5CDgCcDQYU9rclavsNqtjQqwgsihKVjI+xQe0AohcNQ6XP
NMWsQUZBN5WOAtm3psjpZepdUBq6awG3wES2HXHltlQf/LjSdVOMqsuoGTT+DTdWXAGvadCcct2I
K+gXqMQHvS/QUkIPm/J+ZN1Rq2OIkRFwChhAGm6nLkm3+TzgqwjIw8mbbiJwa+BkJbsywO8yReiA
JuKRqBZrxkmfQIS+9k1llADSMn0Tfg9G0GxWdff2Nh0fg9cKAknDKgo6ANhBPTbSd8CFb6tYQe1F
OwO6jy8qB6yCIr6uzluoAVfMo5ZIpr1BLxCvrvtQOSh6b8BwMW3sWM+3K0EuRdFJQd1KwP7TPES6
h6iPCqr30ZwZ5ijwIGY2bBBPCYsgy9MPH23PiF5okPmrHmV1CW6KLRcpF7PzqNu8QQaEGGjgLQ2y
BY4H5FpyzqQ4eAF7QaNBbRpNKJj9KD8YZAPqkR4E7OayAIvoNqLONgUkBXjDbYlRAAkOY0OvZ1A2
3qmGQggQqdjecC/PcAAIEPVykr3cSAkw7cpcTDYfCAAQIz5Qyw5cfGX49o2XepWcLRM7V6FNThQK
4drcP5Dp2Mb6dTMElL0tqjWOeYvYEabSsupj3TqlNqXaylaqiRjL3aaKWQfk67F+GnevgM7rxQf4
46hCoqiIiQuPsEmLsMnbYhMQblrZVMwD2DykRKlQzHPbXwiIix3Zp7cSFoi4OboUqiKfBTBztaho
vtY3bqQWbf0dQEGPGJr6ogNMoBMfBG3Ra29WAlO58ARRW4XuY9w64FqOtqGeBBS3y4632iSIAzsr
RFu+DGkDvpid9qxBjLiPJtwUsCeDaegSCDhqQjYktYAZGovfLx4yUM70vbw8uKNEBkCQxJc+MblQ
t1DRFDitATBq0DGiivVmUrLk2/RyBhBQTnoNWkCuewxgE11EvtY0Bygzp/zg5OcUbhqQTdVepQTf
nrPtJea49YPuuoYncwDvzw5DQwoNfC8F71HfuDRAB5VfGCyXkIA3QBRDqrptHgEqpvTYSGIAAV2Z
/FdGvoEXa3W5OwhHzUDPXJj2GYFEne3LQMKSqIs8ahS3983VQsDs9UOxNw3XqAFYDJ7rSWkQiFE8
ckwtzn4C92jokMNHqilBuNy3OY2oRF7qD1ki6Aynq+BQWYPepwCBixwZRDf1nHD3creHAZ2ybPf+
ApQAABdVTGQsfgZQ2dSESb7hDwBWJF9L2fTijenG5idmAYQ3CNHS9h54v1q19PwFvIntYyNMxzgQ
9m2noLZJX/R6Xt/8ADaKQgbTVmkI/EahWp75QToME7TzSlCwlm4sRdG3GWik2BWzHwWeHbIyQ7ND
YQGGqWX5eecbdQyua18skF9UBUrVDrD15qfZp5lFDJFgVNHVzFk5wGkeiol3zsaClXQNJaxrNAII
OeW2g3zNJhBV2gwxpczyrUFv1I6QcAVydWVxYAjvAMwmLqZ/OlAUFjCCs6VumE4VtCVnGahgPpue
gYAgqrKCU+KM+wTI+3poJ+RZ0GVN9+2NBlHqUcsGii3ww+ygP9a0C4SdplhgW+4JCd7LGWvMsRzb
BEQYujlOCJY2q6uCK84NcasbCNHgtEzHUksure/79rIYDJSJtiCQlbah0hIFoKDbDimBAx6BEOX6
lVvtAHbDCPSOYYpEgMqXpq0ZPqLpKtmsFQyoDJJDc+SqQZ8LCTodF1pcATisLzoIpUegEXFyaIoW
UduxjukTeysrgChrZGMJKsh1jH27+gcnpJueAAJS24s21u+qt8Hr57Z4Ect6GwA3Y8+V+4GWqOhh
afmBtpTgJbqh/d1JBNrxDWwvTdByr3Ulf01f/EJdJHpQ97dQQUBOtNxiPn9SoQNu3VCKwMroGtiN
0TRXqKHM4Qheu08tE0DHAaE4liMF58AAVpcCfJIrR537UMVxQ0rIaNVsMCywO2poZzpdEAusG0sV
+hUdAC6dGT6YHIK8XFnnUKF65lHzRf9rKgOJmvlQ+ynUqMOWUPuSWUZ8Q2JTXUYi8xJoAwHg99jh
g8/rgYd89GAb3r5FwdDmXa0ySQ7syDi2PL4LkkzUO8ippLSFJepxJEr8d7ZDEKjd7AfYF7/IU0Lv
owjUJejSWJqgyr1fy34yqLEu50nLqSYAlFjLvdZyafX8e2W5rD6No4B7MhargsruCYBJym8uIQoN
KlDteII2adYFsKPxA6UsqJ/cR1r1gmC13K9vW3GL+otoECQuGRFwysK2v5YGovas48LgH7gqI/EA
8dH2Yw+oI04cdK1vLBpq/jXA8sz4jMfspF5aX/Jg4QmOVoJKKZoK2QGRy/YI07rdc0RVZp9Mydh2
IHTkOR1ElsFlKvPiK04eQnjHkhoup7mAieIqfFcTVeIHI1vVrpgVQHq3bIRazRGoIuAeCUFoJspg
6Q+1/URZE9OMSQLvZ+jG5kgdQCPD5uB6zYJFwMXWGxS6GBeiUoCeeZYyHtZtX0PkfQ1Nz0+BOJn4
b/4FUfBwGcJkhg+kltCrTWpsyieDYEprtubKdVlET0S0PxRrQOxebppbBjBAA7Xyq0Z5kg00Vxg2
dXlM1THqqieLenNNNALEr2/sXgBczV7pBn4g8GbKnWnLrB3UYHcA/t2CDQBWMoWznOoQpsj1BumQ
D3clQjJumjpIgVISY8fmW9IDlc6XMnNhCWA22b75ygHIbxBdS5EkQN1IhtIXSYomZxXp9w8YPuBq
dEXqGQfjAfHhHyjnYB0Am2371NUrBwFGtEW+2LcgQKeG3n6wzBQhnmZoSIOihufjB94IRzXRuuPe
6yiEygDS61VLqSpA4Yau6RFq1BZH2HZ/EkTLwnKP9N00oAThiS2+l8zHboCQYMVH4WygDc2IKq5v
a9vAvPpGTjB6k2RULQ9xbpUiiL+UAGjumhxBTRBZ3s8msQ9u57Z5qMKALPAwegva17c5S6YMahS0
H+hy249tdAeEZsmxpcQY4YPatD7CCaIRU3yBvJQGAbauvKel3vXocQAId14+2pBPdeIDdEbU2M9+
AD9FXfFNc2/UHrX36ZqTvqAEcBDFR5BTbuNWipDvpVtqLAElsJcG5UZuFTHotG57qETzJD1Adrom
Xu/+KagvxO/t0dpuMCJAUjZsBzPODQS2r2+PBAxA9bflkMwDR4DGIGVLBh91m+q4HFQ2BYAgSP3B
EAuVHBjdaKVA6EiqRxxKoy3yaEFErAV6a7KVfiaNLb9+yRfeA46rVm1d3sB8hOT8GupggyTx0FIW
gzAX3bdQmVDSE5XGfYTgoXr2IYasWQmokzLsYgoFoiCrMdg23wo9yDXYlkfOgWLrMSaf5AtwJUWj
gweunlFjc4v6I+Jc6s42Ow5gTf1o2ZdpaFc/4MGYrtyWZIHjvSE8nB5qSZPyo+QFFxycUD80vSEJ
0qXdCN5c3KTMAPOz3FWKcTMR0X5oLGgGkZYcPlA3CR4UUUNjLAtipHFs1AVgTwb1gcf5UKqkMeZD
HVqGnmkrxeQgQVUTVbc6U9ictwGgQWMbu5MAva0snw9PiTogML1taXEALND2rcFKhlei4mHV8s4e
SjuOQ2tgDdStaWn8j4h0XKKaKe5GDtfYqG8BTaWXvIuQiIUAWxUfKlMEaaJuKL8WcXOZgfWgFWii
8EJZplhABlWacuUpBuwA5bDc+Hc74HNjTkRBunwqYwfumDKNrQ4QNKo+8HA00nXdppG5LuopEA71
Y3PpCdiUQejmYTTINdH+wuGZG9hXHQBwsulFbSTJZej5JogAI5Cw1wmNspWOOQC2HnVTtT3SV51q
fjGhkutSY9/2zhx6PELdkifn/+e6GCwfHKZP00H4Pz7Mfrj/w8vDH6uxcfHk/vg4fbnMJmg6n+eD
ma+/+7enp6d5Is/nOfKezv9VmoEgVbd6yF8G3/xEGnaWv9lxfb46Zqf7ZzCyWkcm0jeP7LaY9OtW
/BCxzNRPzqyk7XmIbXwyi6Ef6/h+OLDDLQ6fn1E6stvtdOO6P73uHx8PEzve8lbhMl5aob8gswGe
1+lgFP9nMK2emZZvbE7l0ekSfjoxHezHSVZiHiclVRZJv/86n6RT0ruHh+lyWebLj03naOjYbpBH
9/3rblYG1/fz0c3Y/Qt+sMgOv5UM99lyn5/Ou+eA8j5On3aHd348GzH924XfbOD6D2AXZT45VVrp
fLP8P+6v0+t8FebrPu/ehR+03wwq2RnipZroEZe3jt4IfrekBEPE5s3uj26B/ERGmwvtuufL+e2P
Hgxfr9b05WF6836PV0lREvkfkIY51OyyBj0SFRPWR9HK+wHH7RmQdVdOYByY20rr6DNnHKwxKRCS
AAeyBiSM020bbWuBtjW5KRjoEOHUtpcTDDYy80nKKJN7oHpUrnr6D0paw52XnKnKZM0dRF0+Ostp
yo3fdTqEEzmejl59oO20pgMqLm5ppksuQF3a/CKI4mrjVN0fZ9kB683VSW69HGwRJgbM31A638bD
fdsLXgbJyLRDlJOcTbwc8xPQfVge/rg9A3Lzz6cTXq6RIp+UZC6qBHdLMAcYBWF/fL8kSZi9Qn42
GprONBv/j8fZV7iewGiDwB7ICpaACRngNWYUS35/zMBMw7nls0heZkt5PTmH5/S0eES8fNoea7IQ
ZDYqM6oWb/bbzcg786uTPc/v9e36teI/KmZMN6fL2/Swf9pPj1htLfS/W7GkPlnVB10KRQvOxY2f
iC+b3WxUZs9edpdVKi9ADjhFt6rxTgOVu9FLllPk/BBaA6NMhZmfxlIxyEQH6YYC18C0uQYGaBzd
FjmVAtGH0/ssOdPzrGg/AQEcUBTUduBWIifoaX++XPFWLezuVXwziZlv5enzcV7qchtgsCl64GYT
YApIDzr5hu1YEq8FdRyLOcI0Vu+SN6WGVamryWHMNBiTRveZylnS3d7CH6fPDR6ckmivHIMmeUYP
p7dZH4JtG4EQpH1vuntQqqkGmJfph6pEkkvruLK75exEUK6H3WxKUMBglQVWY1bRn/an98tlf3/Y
H5+hpGs7tgWUGL0Ye8bNv7n/T7vDBcW3AngQs6t9bVuUbdF4l/f7UA1TCwqG3BJ1ZZHyxh4IE/Fn
U99D6onMc5lmX+RwaIgDDFV2LXAYCgOWDg8o3rsBn8B1tuDazEORYwQamMPDbn2R6nVZ+nFw6jx5
A8tFftw/PS2WAuh4i7dt9/jYpgDliHeswfotybhbTOdmjIrpE4yOcuuYnp5cWeanShy99JT5QJQ6
m5zp8bI4zhAMMl3u0OQ6nmj256kBC+uHFqiKekdk2o04/agA1pzJX0ukZvUA4pDgGhvgGo+1kMjP
x9uy+Yo2iK8RnPiSu3o8XZ9mZ/IRRrRWNfrcIO+wXd/ABUP1lVmCj+QJlq3SnoeqWBFTDK6akRIA
lIy5JyZqQMmXV4STDMCzCJNxgbinBoAz6BglAgzK8fS6mxUUsCtI7EuZhwoIzgWp3t2Ja4RDWCMb
BP8DgI5tGY9Cyp/315fZxFREr2fVDxn2uQmpthx65RZIiUEArBDMncoxx0o2EEExVKPGi1UHP1js
irUDyblqNQNdW1T5IXBZK7gT66AtxtBuEcWROV6A28JcxrxLXlaReBiAZeXeY8WRMS0e8orWAXDD
4hlluAKYj2Vu4QbJAXCS3iAcuuZW3U/P+yPys00nWnYpAULVEZeXVG7tEXuR1kBsAZrCfQIXybb8
RJp05l2CmRNrnzq7xxN6jqILRN/oRjz+I1GGGTrmTm7luMLoMIxJXmYQjHsM+fnpCAFiFepe1fL+
pgb6eJ19huncdB9IY8GbIDHDyYBtM1W3WgBfwGC3+vP5dHxe9gd6ASaBKdInl2teQAiDa04Ah6z4
DlXkNjZeQmvNfxZHPNeSsMSrIsVEaeDLJvuMcxHGNsortozdxsz2NZWD8JYBeVEOzqgg3VYDuG1N
RHkO77+n8wm4UaItP9GCbpoegZI0eAO5CotSmotT3hC4mUoyc5P32z3NBxgUIIC8i/FH3qk6NBp7
vILDU8jBWZZYUZ5bS9PnfhqplgGOlkLIr1PATvk+nN6+ukkBJczN5QYlbwI35EdB9zasTnLufYpI
q8Cm7j4KFW1DhHombRQg7UluZGtcY/qxIal7fH+9nxXFUyUnZXWTD1GlhwnELq3zDDTN6o/b7xMi
D1w1At1ubGxOyak5MRwtjWiFG6Cj4oYaNvnIQPveJcc++TiADU8bhmgrfY0d0gDvaS4EchrGt/5z
f5jHAfqBYPmkLxuIgapEYOSIBrevB9MRwBS74HJXR+5lkyO1GisH+lymwxPweRDQsPoH85FVvAP9
Ib4LGEg26KBVDM+74zMiIHdAlp/rAIMxLBOMIZadYjk9QE15skoY6kL9dRBFWLTlrkboA7ldK8YK
27WN5gtYAFK35HmY5Ekjt2SUFR3bzBQVXQPii1FC8/+Kz4o2VTZTwuafme8KcDb7nrHYDBEbjET0
bk/LObb0QAn0fy7duV4KqtaCu9ExjuY2gg2+1un9enq6dzYJ8QMhkaINjNa2no9TQKT6ikh9kL1t
hAQuZClPUmEFdi0ixOdyd2cEPyowV0I/aaFEjCbfyCLyjJDregnOB3CHrfHkiHvISe1Y4km0Ks0c
MMtmVm+KWHAMxBaGZS7c9eU8AZGiOQIvU9a0OM4V3EiMTJ3OQse4XE4P+53HZ+qctA4UnNwaYmCE
Bxx4bpAIoDz7Wrweaohr5EYzio+GsdvCxAZC6FgS3Va/w+3KE6oNsIDkt4UcMK5H8t15IHib7wYu
pQCOxYplY+qbGblajIXw2eZCGjN+NJG55l9a85h9vYrq5vJeZ511qIa+A8gNk7C8gtX2mH0QvKb1
ylXUihKNqeZWFii9yJpy0zMVOgsN0OZj5oyJXOJIohZX72gu8syV+WcQI/aiseSjB/6T+mgUsUps
awxhgJuRiLeeI1dh3pqP5Usr6IMedCPcOd+tqutnN7VwgHdTYatul8li+Sgd2jP+eo12DmygAjn0
VdEil4qzxkUE82F3mS7T0XXs+YQcD804HmW6cfSPa6zjvoK1poQDmJnNa/CzkMmTh06vu/Of72/g
gktmy9v5kQ33UwMDSsWtmc5DkIk8XGW7D7SQbeQI9MiWyFmh2oyAZ0snCIp+raxClwMwIhLc8ayx
EoiZJBOiAKKfhzB2h5rZHduKZivB68AE1zG2nOdXZTx0RRjtQ74scGX73OPpeZ573ToZttyRjtbO
ROg14C0H+ZIA2EDYCrwcekvFYBJNVc/cCIPx1BWeryCpqo3Z02KkTV+xiwupuJqPNFUKjQ85jqeG
JO5tatP3svEtbGTewmbW6N8svvPPv4muPKpO5trIm9i3ENIcuXydTi1M/EhjRsQuV8Phwew6GCkt
DyJFVsZhkTr1NfBDiM0Q30cZ/X3WTFyNqk4+ll/TTeroFqeL8Cpa15hvkijTkb2+cmoTDTWkoTai
VYae4IZHWmlppYX0CB5KpqHSTcw3njN6OsFyq0jKpk2XYEJdPqF5p7ImUP/9+09/+313f5h+Cw+a
/RAuuWTWqFy327jGLisVWwf69fQ5DtKN7CBLXzQ3CBEGN8iyTaJnv15eUy9M4Zf7f84LWSag2SEW
1euHSG/SuCH+Mm9rfQVLk1y/giSDfgDXKG8ZwfAj0I1M7q8bIX4slGW/VhHqXHewu9lBTtDcjkVg
yf92euiO/LaV/E93I7f0ZeLg8FRMIhYm/ov3TC7fnQ6HII0dP4klW+OHSbeWTkKC3etVvoThVv4U
kD/VIjwaCI9IP2+zn//L6biKL38J1ZjE15kxnW7At3NUuAzAb58g4rO5Qt8cH15O52UT+UUIKzgZ
ym8hf4mWLkV+iC5TA9+8vR2mhp0QVnKapKDXBH8leiLVhPl2syNoLprcKp3d6EwnWKATyLEkzjCR
asnv5vJGlt+KIbtZ8WOjwaUW3KUO17IuU6vL0GVtLa7uGASvB/tR53Kkb25yx6/Z9NyaS2ZNAbOm
a0oN6FNlDJzGd9PhsAzDq8aFdb7MAYwiwSjCcCv59vT4tS6EYpTcYqh664F6q+nmgZdipSynG799
v16TIPILkB0rUWEfT+th8NK8tHTcKBYvzYq/RwOx6sSy7LwKAbqj1yK3KTcW2YA9o85IrgTjx5r/
5aU3Mf+xAJd+6fVc+Dq3Ahb4Yuwdzk9cghPvSrvuD8vwl355S6ag87e+rAC+rMimH+9bPHELTpwV
9PijwP2TW/cvbft/TzvXvbfB2MiRm8A3c8SyDMBv3/KWbMGJWLxI4AdShTsUHVgBhHZ7cum6/D59
uZL5I8tTjiO81MgOGKyhsmwNJHUYS8v2v6n53Roka2B+Oj3WhdRQ02IzlUyMAthwMfa5b1MWFuAu
lr2TsNngivJ+yfagwYkp1knM/Uwg67bmHwCJWZ4I26iIVc/Ut99qVlP96Hp21911TedQdnCUAuFm
B93sdQiwAsUGzMSrQDHPwEVddddKbqPONP/fpkMyU2ADl14chUP88fKjyzDV16B73rkhvhm4hsPm
GtpyiAGcM6J3GdhBAke3N9wmrEIMwm6rqk42EAASXmmfneZsHjgAyaIP9RhheXIVXSEDrpAsfR00
P1CAUnBBwY+vu+epYc16488zsg+wqqVn4mbuJ+/hIa+236gNdStsHRCXnkNpqM0Bt4XCPGjlwDml
K0hmy72n8nSCP94bUQnHBVD4ygzVqwICAmM5Md9YTeSgbkHCpGv++9cGsROse7m5rgpcV5tHkgMD
yvCiKwxr+3NgA8iAyqV/a/xIXA4wgqWveWEi3/7aovmLmGG8ggDY6CWEJhoCnK2vLcoaaAAaiEWM
c+vLmy0zCE4X/PK3/eXaAE+Jrg1YAAaAOqMbTABE2AO5CWW0XRpgdCS3d9+nx2n5OKmDEe4GHxuB
MuhYjbJFuEAYMhbRgnu//0Cf9Xaz8ZtlfLfLrjKYwMCq1Y0TJ4ETx5qlJXAHxzlIbiULNgZcCBrH
FCEDASRJ8ZKUQTXAiTfUfbJbdAtE2tqwCQ/qtgIVQhN2yfGNkgOM2MaO3lphELNKw4Jy+Y4BgZOS
G8JZwRaPVXFbd2N8wMGNrPr8fv+pPgspuzYNDnxIPufrZeC3lnSPJljhJnohaUNw/QTrlP2YSSLw
SZSqwT8gDqXJDlWKvkYQPpVD6OgCSOACCKi7NzkygKMQ+7dZ+pp0BvkpgjeS19Tys0OYn8AoCoH1
gTMjx5bsCACChuIAu9mlBpqkN11Fcw8gFiCO+Aa8yzF2oIaErAQjEqjBvhbJWIAciVxzbE13A1lE
jSXxjUYHiL2WUHPWF750MimMkGs9EDsMHReCZsAd0DfWVvQNoirYYvj6srv8Jb6bDgJYy67+b/vj
nw2O0sgKfR69DSB6MzWPB+TwlBk545vJngGyZyrugwCcAmVrs+9BgkTqqrMHEIDe4rCX0mwA6EmS
VJsdbKLpyI5NLv72cN6/tcRtZoQBbErSAfDWDroSginAlhoMC76TABgI4vL6wyYjHQJHCbC/Lv/M
gEMEsbMeK8j5AGRYmRbIGgAwxPXkXTZg9juW7ZdpUMDV20Agud8EopZeV9g4IwAvSXJxQ4JounlS
dJDEsIncAbFJjBXrPQINSm1v4vTEsAvYXsNmd/82PU/HlsBnYHksG/wQcCy3ntPAuPsgX0LPEWS+
LMh82SqUC8wA74P82Bo7q4FT4jkMDph6PRuFJiwYJB9JFLzBcWn6uQNKxHJ5L3KbgArn2Qar8QC3
YBibMFQgA8pysM+K4oHIidxCUi92a0UBAGA7zpHJCZ8Aga6nJAAxSg3iA0RNBEePkuX6gAz2IASX
iirpU6DahGJBYBQBDmz+vRSEA7e8kxwcvw2DOxAGs2eZMyIATZDPzm1zTCA7Ic1H8GmA81FwoBDs
bcQL8P5GxW3v4imCizoUYzUPDiDuX1+z0MDR17bVPR6Aezxwng5VcAqwTu3GTBpGoHogULmxzhhC
BjCEWNOU/zKIMkl62y1foZoEgHDqvlaToIDD2LMS/Jf9dHhswkfVqCrxag8+FsNHVBRwnPnimP/v
/XSdWoI+3uva0L6AciGhC5BqxMjWfZUbC0yeKXLXCPgC5m4thxvlmB8w+YKlYWeBUwegJ7bIiI6A
HHAzQKufjBWy+GKE+DVRcQDJoUG8vLX/hOsLBqH0p3LdGiidk1pwIV12IMCT7/k86P7akszv1cCZ
izwWQK4ka/gpkw+40yOLwf+jLZff645bRX47ACgi2MQgLaFChAxZcYcRk8B0FR6dBZCMaK82ASFJ
xzJaKbwLhHGsEdiBFy0tG1K57W8rgxODZl3QzUYAw2sFCxL8NF0bnFjT4RQt0U/gOAZW4f/YWj2m
2ExBxpFBJkM0gFbA/xWsfiSqAVmcrm/Di0HGhRqttIYIWQGLy9dw5X4kKoncDMHVEIL0oikSdgJW
KVB4KTmIIGc3AYyEeG3kp4P/DSqeuk0dsy2n2UCCz7D2gEaRwH+nSTZy5KfHr5CgWaPi9MCGbdmN
/W0qHGg/WeQQxFNGfFpWa94GKuCaa1bUqSMiEQeKFCD3zhbcOkKgeklbFkJBrQdGds8zdxTlYUxb
IQhIZ1gLgyTi0QI/ckvq4ahYQM3JvqkBAQDYOzboz50oxKlUH4kYAcFvS87sGZYu4Ndq0eoMANG0
G6D45niJbwXSjVuM7ka1oNuxYa0z1UIaeDR9Vw1TQOaJtFaArDeAhEjbomCAptN8m4j/nj9pkG7F
hgjUqAA4qh8rdekA7ZYDG6gRrhMwEGUoJhS0diBhPHD+23yN/no+vb+11PGrUs6vBOwCCEgWyVqP
pwfIOPmIOkHplrGvhCYa3D8eQ9uuvwfrH5tI8yDxqIeGkk9wjDwIl9s60CXE1tBEoAOklfAw6xrd
KrZLTU6/Arw3HrDJPXKwCXzxwg0BFxHPR7ZgeeM2gA2RxRgxhjbgMpqeu9ErdwVkoPvmKBvhLaOp
wCUDIBGqrpUEDfxH2421NglAnDdpR8po2N1PDRxsPShOOa85YKCVFMvE2qp2IIW0gMB1dyYV78Aa
9aPifvvvu9nZbOi3xbMYWmnXlA+TN9fJbzKw6PwkSt4qSDZSSlK+H2vwB7C/bQ0q33UClFP31VJa
UJGk+DKYnJ4DKB3DwFE6bhxlkG3tavxUAHkQHHrDjqMAJrCwVCXp3NHJDwIpFUJvc/ZK894CuGBy
43Lrkq1HCGTPhU9b6wKCFlqqkseDlOmHmooNlR42oM5ZErLwNhrNIkDEc+yqChbAX6o2exDwScuy
WzINCY7QsC3ptoA4Kk6oNQIyoD6skxxNNNewAAA1bJuKtrBB9Kwgr4cAUugbjg1b3YPCxlofJlSh
QrKd5L2ObWYMIPjlTEJ08FB5ieUggzXgB8GmllVzBhwj4pQy/dtAlKAs3xUB0E2GcqIhfAYqcTtc
g9bQ91Ok1TpmqBqLySIUlsm2mpIOBDW1XjQj8OY1z8ylfiwAUQfJaao8RwP8UFOk+oRdPL639DPq
OAB1iSYAdi/HJloDcH4Mz0lvbf+qih1oYwoAuApDrQmJBQqyqzHNUARiVVM1DfAwlK7Aoqirn1Et
mCK6u5ZthLKSiUDWfWC7neXMCXD3ra1IrVBAbPs2FjKgMxEuu7MYVvI+O0jX0egnhzKo3w3OYewB
SklcPQAwq4HTQZkWQ+UFogIRGmAxx7GV1gRiH76m+uY0QCDYCXgrCfkABDGD4PyHTa0FMAvScKe6
re8GgxDce6MhaAwCPNBxk/rQt54QKM/Wm8CehJQ/trT3KiYoAzUcqXTT1EMTtUfhC13W0wfwmu1Y
i56pNmCQLXv6Of8AxFCdbGQyI+S/t5XmHCjrYsYWyBq0CLNGsaWC1DFAFBgSxZYuNMU6QYZZ1PEh
wFwdRe1rAIkoO9TqxcFPi9pPIwoL4PBkVS6o0SPbMeeX1iYzqogzhuQdCE7k+IHsF9BiPU9tzMAI
5J+LmnsNIgyl2ZAORKFD19WSTSCyUz3rEOT6B7U4LaZogvYGSctBtxTIAvbStieIYZ0J4JTJHlYF
bYQHQAk8hW/xi4Ah6bqW7hoAoqeZhrzOL7dEwBT2goOxcmsK/PT2njugfaHtBu4S5SIJsJVOwaxh
nahlDftcy/cHwglFrX8EB8nlgAXANvu+crUHELPyRKfcpKIOmGkJ2ncPLb63gRjrtm0PQAXtoFit
CBy7fjS1iB3Qca2ttpAAi95StGUqZkPU/KFWBAWyrGqUMJHR8PzB9kUIpl4boBQ8/ynVOqOelaKl
7QwgD1nKfXLhnehUGesAIm82RiUp0p92by29W8aWsncAV1gr2e7qwBr2JIDbPG2z+s5Afrac3qxX
ELB61eeEAOtKjj0sYq2387fWwmYPJIgH9mbo2A7r4JwG0XGJ3N+uXw8NqXlD0i5uH3XPpq5Q8tA0
dvdCAJesaUvwsTRsj3DqvIzAeTGlU4x9RgD5lZjHDZn6hmADCMGj5lMioHxWsHnHPN4B5A5VQ5V7
0NROfohCDCxlN7TCB0Bp9bLSHxzcJLkBaAvQPNBcoqmMAlFCVBEgj+IHNO62VRSPIIKbN/QcqSVL
iACLQx/gypOnGWMS4MqmmSWGQPqxa+IuA15J33G8RcLmAPepq4F5BtynTvEFRMgC9qru9SD0t869
ANCf0i2pJdDew1KqqvJmrEeKBEAJvWx6/wp4gB27F1m0AGJHM+jG5keo6Q7fEmPDTAK2SbGZgew2
gESnHT7wRBtiv47jBzpiIS9hHEohQky9AhotCOHQFo6i6WVB1P4IPHO3aYcAbriqETUswNc6viAB
NEQZ+H699TIWORRrCMJvgiII3hHIPRoQrGvJ3eCtMwpUkqxlGDVAsstxfwBRLVh7rc/VCKB3WkFl
PS2DCb9BJGNsLfzvANbDd8LJOgOg/gZ5KxdSB/v389SCfJuWp1kBBFotPQGmR27eGKIluICaMAjb
3BAA2JxxaOsPDzwXaVhmTasbSCjqxccbCfYK7h6fRSrB4aDldXmg0LkT6D3Zc4TebTAC7FRfpJlH
NiCIhMz4kV5YYBdH3driC5gdaVu7I4CZ8M9dl5YE8qIjy5TcWlKkZNgsxXZJIGMzsA8Ob/s9IWC6
WCYZUGX0hGExzI1BApCsvpYcQs0hTK0PJvDv5dDVGpgDZKdnrWIWWgJfWrMLz0YAek0r+Lhvg8Dw
T63mfiQA2bYEh9uOtsCybZruDIaxD6BG+0MpbsSC7FTTiQKqtS4q1+BgAVPb1VIqqO2DHlvtNHJO
R5Yjn6X3UXe1IgeZVN2A2ifLqi3K/gPRMR8O0V6wQIjHoWUGICIdFXjFBnSI0ari24KoRPb49YqN
RwKiUME3zwCZtUGyT8snahsifXcwMbcxwCAa7rrGUBZBlqqrVGmgpLphC5Nz/jrgGFjdkmQEesSa
odKQXgBToPh80Yq2ATXEu9gLEAB+WthabwnE8aP9Xot4QA9+WtYciBHg67rSNpfoXsA7HhW3dbkN
BGGWFLUH3dBzcNqwLwkIlFWtMc97YPhlxwUzzuA8n3dvLy2RdVeqtnx0LBTYE0I2s6SB2981vgQK
fJftQ4qSqZlFFeB9Y5oX0YrGrvKaQw+KGKT5gBVCYGJnavoLOBGKL3akEDsw4R1bg5T3LgLnKVhf
NHMhwXFqzR1n1uYW3QnLVSCvVgDgdZbVJDnQCVL3inVns31EqQolWkjTIAVtLf+4PampQ9VgotTW
4PZ2A+TKDk1PtAOLrmusZ0Sy00WfNkI9QK/zbf3pRQJNPDuWt587Q2jrRFszVmBWhW3i+KEIXemq
XwIQAtm3FC6DoARADDRPBgJS+6HYGIQpfA4gJyuCALEvnkcUR9RSUbFvM4BEzyCGkoMREmsAjRrG
EnEhdDcinRBBax9CvHFRgTY3rnAP9G85weMJkiiKHHFuiTg0QNuUm3WWO0ECzalVKyKBSMaiq75w
A9xL08H+Qg09OIyosHYEyFGqoalZHTCBusydCGIPOqfKWgdp8LEc2TVn7b3Qgy695NjlGcsUeEDG
1l4WA06gYmWv6VkzKVST3UGkbFVFlYHNtgPbLxfUjg6qa3rJHLk7bB/ULYSCWC5spVpTD1nJt1Kg
KBywd6PmQtLs2oNIyBTjUgJjAhTNsm+qUp8TkbRqjGHUa8aallJuVN9nDGRMbdhOIBVUZymAlA7I
pm1BFbCV22wUcd3253khp/PXBhdajOx1BESLQbLICJVjVEg+Vl75AGkMa7gnkUuoKigZGE0TBR04
FLba/giAWsr0FVPWA2iuagdHQExSA9tokzreANq2Td2wUSMx29Vq5oDc0nTGppcIfV0UuB+GbTab
I1MI3re4JQN1JwEHXbMUEtL2FiRJ2oksqJ+8YKv4V2ALEXg67k6SyhmgD8ahpUu5RG0Eio/VBowX
8Qx7np4I4pHB8q+jIg5BPzT1UgIhO+HWuPhbFR1A0BFGyMbWF4hVyi8j6ySCOiHWHmoeQAypREvw
g1ooatlUqQX8KNtxtWJrRgI4giSE3JxiPQ0me8Ph8itqg0pTa23WBZi44rukZxUXYOtVU4tjVLO1
fciIOi2A5il1i/MNZJavs1wTiCAJpQz7kBWFzgF+z7+JS8MX8PpkP7DcYMReGDDMS1QGcLZ6zcXN
WcUc6gZdZJlGnYt0tWh9fAJQdHnhWdES0N2Br0zI0UWQeaFv1aRWvoHlCoReVNvegcSXNm1JfwBS
g1aFwBsZOpYQnLcBAEhHZzgHL+/MCWoTTTMLE+i7Qdb8XHACXdv7SqgMome7rP7Y2r9RjVzeMnP2
AW5hWOAjGwHkXGwbdIeOc2u7aHkAaJvZmaZXoJHiNao1H4/oL6JGowMqSA6aa/y8iCHQX52uFGn2
IMwVPSs9lx+Pj9OXBsy0H1pehkDtLIyE5PL6O8WWzzWtWgD4rH1bhwMA2Ns6BwZEibqDDXMa6CC8
NdiywAF4w2ccMzcApNn4ds03dwm4I6LmBVsAwovbx4bc19On+buL/2J/3F9/+AS0gkhvFmmbbejj
/vK2uz68hM8V/3mEj7TNlpB/LsDnJv16Mi355yP/uU2T9/fJ3n4uwK9bk689XIeHWYiuU33qXWnl
9GO0bTJ9nPzwfOISTNzWDw18bmzp15cL7D//bneBq4940WaIJHEaSJxIk093J197B9auS5+nXwa7
3nf5pyVhBRM3Q0lc0i8jSRtKB0aFxYDf1aVLQj9Gk1Z4u8Dv9rIuZUCz2K56znDVY/brRdXQg18n
UpZwUbpp6IKI0t32n/2+Oz9P9esx1mUcCKrt889VYe0D+FyWpp/OHGmW8ebM3f+bP3+bXZzTp+l8
2H31X8Y/3x3chtw9RuVRHNl7n/H2yDErvVpG2R8v193hsGNpH2EMm8ZIuGF5JneXh7MDIx/BcH0a
zoSSUzfe5dOz/8+vs0ex/mGe4fV8uuvM3fW/lv+Abp5nEoWL6sby7WzFGAPk+dyOd6/zf7ufo4S7
0/v1sD9O7DDRufDDOMRC9GGv5v/+7mnepPvdw593T6d5iQ/n3eWlfJieJSDXgVz0pMN2XXy0f+cW
9bfp+Hx9uZun97A/Pt9d/vU+Tf+e7iQ3teXNlNDnZC3S3R/devyId4/TZd6nr3e76/W8v3+/Tpc4
yy/cNJe32f2gqX/I5XVeql/mhZ/Q0jEzUNLXb+/3j/swnXlF56/scqKKcl/71tphg/zWXvbzRlxP
pyhVYQ3sOGOaRfJr0zjH93kpu8tlOnv5Zochi0ni/Xp63D99vQtC9Ha67N0Yd/fvz//F72iaj39q
WwxBgvyWhC3tBBLktC/CXVYRb2uYg9ND7r7dH04Pf/LSFys/N5uyTuHu/byfL9Wn3WH/yE5EkY0l
gJMbY9kJJ7jn6XVWAncPL/vDIz6q5e3gdVYW34lvjo9/PXx9e7m0XI6xJItuzFltv7RuG70NSQjI
BJ2u3D/OQjVLwaw0r/uHdS94iRiIaKXyjTjqlzvH5b/7vJ9n6Y8Y3jiRK5VgXOIJ+PkdT/Psns6n
1zAYmJQuaZMwKSfjj6f3OZh6OOzn/WKnY0pj+Hl8nqVcAinvk4A6ao/SzaJwPU+zHb7T7NAdmdXo
suxpVov2ZwUgchv9t51PrYhckGr2o++J/Rj8K9uF01b85Id8X2Sa/Hl6282G8M6ROy68Sl+eZPdD
iA9tbbxlYHZdbi1kRZL5kYTMDynctN3hevd8ePs67/OxaG6560/W7BvKiXFIG/fy53Q+uhE/ORvw
sDv4XeAVsCpJdTBrflm8DUnX03js23/pfn3eZ/ar3pYutZ+5/0unwT2yaR+dk2fV9uMefZx0gINl
VNizy7xD06PfdXbOxE3yxydXJ+l8Ddtb9Y9MyRaEWzqf09Ph9PluOhz2b5f9LJmfnr0QxK2cBe3Z
s4Qu4CZvlO6Q3Dg30ufT+fHufHo/urZQdy+zmF38hUBDSupiSt+D+qNXS/AGbCju6KqPLw4dQ9de
2Fz4iLmezfzz0bnP97yxF9B+nqen6TwdvadKTpfVgmPJjoa5eE+Mn4cq2Uq6Co1WkfSTy7aqdOj/
Ps0mMbiTs9fzPoGNlLbkO62S87K/zo71FYiJyu+zKG/lVLshPTEFw/poVnJs7yd3R95OziY87T8h
78jaoivnPUoXUZ9e3+Zo4fH3VYL5+IhcW5lf2+jbIquvRbakuDW7t7fp+Ej8l+up5r0YW/QkSdgC
TM+YGzGxVZkozLTpcJ3LKTqzCXpCQfzscJ5jHQVrssaSrN54rLOnCfyVnoarPsVFvJ3ZU3pysQZ/
X6hcpOhv9/j4oYjHEFfS5W2p0zTHpA8nPAll8o0Icu487PvXt5rJHYgf4R9Fi8jg9HrJt5C9Ghsb
aLfSMKD9M7k8b5X2HIa/VZ3ovqh53dktC9gfX6bzHqicQbDhXjhILAVEEvv1VvKKht/LPhsoniS9
lfvjnVuEAdqTqHC1nsfT6TzN2j+UKEQLNPsGb84eOdn8wgXjIld8JELxtwzui0lTcZicIVL9tJ+X
dHJW/vqVF2xbWsoi2DSGdo4zkHGyCFe0KTt1E9LcnZ/vd8AbIhfdY41Cb+VcIQlJM3CgWF+LYPng
TCg+7CyNJPiROs7M+gjp7m3+6/6CAvOeKi6i/hrRguXZovV8dTIF52n2L6dz8DUqx2uKMJrzwp1o
BG/V7cjzdHqdZo3y0LC0pbOwl93eIWxhd7zQu9FmsfE3gDf0HevCfa4gWL0sGliviKoROAFLxODz
q5LCX1+Pu1cCuoC4qqcIRyI8TF9aDYPhPOK7T/vp8/3py3zKPlYC5rkrTcGP8bp/DBp1nsr+6pUY
6zWZHBNQVNIrMzC2dBYAhq7BK3bsc3OdPPS/z/L0rQupLt+C1fS65Is+HKbd+W6O+nbXSw3w3aiQ
foNt7uZj/fp6er/MAn52aRHe1Vd9Phd7E20g+yDJHfNd/G++RjpVjuyp+livis8SvUGs7QIG+usS
gEAHdvCKYoPhDbeXFQCSRM34Z7TFMGxtPr8BovjL/oItiM3sSu//PY9Sw2yInXf0YkW88un1fnp8
nB5bXPKeRby9ZC0nwsvTkE/jw6gmv9NdLvVUHUVhk0jYhhLc6r/2Ri6D78F90blRuJV4ixx9yXvL
KCUGdJECeCTQboof0dYRTgA9F++0Tz4+vMz67dmdNu/ndTwQGGcwH/IT76WlQ3boV/RXlxTWGl3P
Pngluu7L2Fn1oAC6tfHq+49eDIBJazYJ4b2d2dA+ztrUyyevS0VuqHUDGgm87bE4JRfSeYqYF6Pp
OPuHGEYjwa03tTf5supUln6pfgjr7JQf4uB3+5vHf75f4kDBs7wAmUi60XlGNvK1Zgvr9KKbSNDQ
fKrZbiB/sTV4s3reHR5qsBjFTZKOfdk/v7grNnsPKdfLLybJjIOk4k2b3er5y9l43p+n3Z8eIgYb
q0DG4e18epvn8DU47m1QDokmiC9Sv3RAl0ng+0VdxsdXnf2QEri9smBoyWPdy8SAJexLajKBLi5n
9Oyh/buH0+F0Rpi5zi4YjSGfz7vHvburLaGGliVXJgctYvqOhyo61vlYjhyjFX1+L8L33uI4xTN7
wnNA6lWOo2FVbpmlMVxSiB/IdAAjKfL8pIoX+PEtQqjpKEMgX02wk2Sy71lnO9voCABCgSk5AgQv
gYga4bbINRFYnw4woDrT42os+AZwRn0Oc/aBbvW/1Hd3v/3PX+cfFv6zN68Azxcv/neiZ0b0pOmo
ILSOLL8wpc0IGo6g0giJqbc77l+dhM6rer3THNDgoQGbpuBwXBupne7Wex3M74n/PHol/vcTJX8+
jPd5Ox/n0Il1Z/30YzZj8/nr7vKnO1OML3qGmtnsYLiyXk24EV535zkO4n0+P8bCbnVPyJnV6Qto
q9/BrkdTUOkIvGM25FPwOCebOAwTsPkuFMVghGKQlkCdr69v02VW5pf9w/e//AR3UgoiSSQ62kxi
gJPo0zJSU8HlMN3fa4epsyksyGYQpr0rUuFDND+DhZeuM0Azuw1KwduQxJkCiXQGouMHkB0dQK4m
yAny5e5xd93Bz2cHyKTPU3SYLWCQaAF0AJv8gpedk4Tgfk98gtEvQZqSNGZzmOUAzEGTAYYc96yQ
9/zvD0QnhFdITUEOBjSEIdehS/nnsAsP+/PD7CrjSUiZ65XNpXYk0T8nnhoS2LMmn0WkZ+4PV3eh
4jrghRBpHSTZu4wQlDQeIYbTfoSE6uQ3QsMbIUoGZpnC8+79cqktIqkF4gVTCwOv5EhOoi+LYwdX
oER+p1RJsUEr1RloZIKGR3MYbf1OyQ7eqT6/Uwsnfj6F3XwpPDcDSbQYtcpHEFvNNB8DMJI9uVLJ
t17k4Pp+vne/DwYgasX52VbSS/103j1X1BKdf9pCF/a6M3hwYqj5358181BSrVEnnKP3B35fdSUh
yJWSgcbJlHbw4TTHyPMGnl2qrnIT+pJOyo0DHGBIfgYJGqlxUtA4Fe179vt2RL/fj7lxNDciOMLf
16X1586ihv4F+X0SzRNnFR6g7nJFll+BAFE8TJVrINIiPG6ib+aAvLRO2ZIyy2XAQBkYyrosnQHU
Ir3Nj9De3kI4/60iZOwqVKa9LmmCRQ4ipaDmahYdrdwoYLd/tCDyeTgdH2v6JLdr64vh1CRIFHrp
seSr5qEfNu19btrl7VnC+2DHkn/TQJz1X4+mrM+pPoUbaEQpYMn9VKgOyX3mTsD2UJ/1JX2WzwAq
RG2rJwAdkz63SfJWocFwSfX5JRia+a7h1/vSDcgleEQSbIpXqIWpGn6/qAujQXUEA1fEBbdg9o+T
FBIKIY39Ffpc1u8gjBEGpXMZzN3reRNerjWDQjz8lJcMWOWdA3HfsF8hO9GXdCGtGlToGIhX4Xky
Ilels2m5ulQ0tgskTpGaBN7hJkT2XmWMXpRuExUnCF/0+RSiaaPekYTeiS1GjLlFGaFFGZAsXPeH
WrgodX6QJhvg9XR+e6k56WkLfUVhySwKqFM6UVKq9ELBXZQbIKugUxRUqVbnTtrYzK4OwkwQpAQS
5066RQvoimHC63TdeRmavuxe36oHSYJuj0h2NzfSwEUQQfIDxlnklgniSGosRYsbrQJvo7C5s93R
nXw/7q+Xim6lgCRjXSXUrUaXkIP8LOEmjEVcdtZI3tF0BaAwYBsJHEk2MXdxRujijCVYl14mGO+o
ruys09/X8Pd1CU1sqKsKHl46QOerGt1aJRC+Tr/tk1MlPBop9FmfJrtGqvgWdXh/mIKPjkSQ4G9b
ZjusDAgr6Fn3JqoiaJYHklfoV95BLv8w1CuLX0NJQfj5LjcmfWn/4QUeN7+faQD/NxxsDkSAHONa
qFvIBipzJaoOqoUREo000w4uCmBXWb+2JQXWUlIQEjJdCS/KfUsY39Drn9giuf6Dyx+LWEFDYUcQ
f1vypxJ4/eqz0lPFQRddfgtE2cnH17iIuWxEGc5iFCXo6+I7ON697I6OHoVjLeKmE78kd2zgZTBF
/HLZzsvb9PB+2J1r/p3KRULfoD/QO6MBryqSfeEebIGbDDK5fH29Px1q8JEouWc38BG0yr0qbeQK
pdcwuNmsFv10GigYGCiMdRgXXsuhHndbKEokUJKqHLVa6Bj1spjyzi+UhRfKlDRrbtzgJlD0JzUJ
yu8TzKiYPs8VF9NCOGbtinB2vgtQksrsiRzRhiaGKAWSnYsW8u10+OrJ55VU51gEocIYMdzAAzAo
FnUzLXQzbUk33pA4YH7KFl3lDEqDKEYZDI0BjxOnSwXPFEVfIY93MBQlwVm2nGNfzTFa6C/2mwRV
YQANrxQB9wk7vVrwFLydDXhjy5odmyeJ4NDpqcY8UJuE/cYyPLyfL6eahSWYKqlYJC4jlAGdg+IF
0wIzIzTwZ7Qq5J8MZPbEtGW3CFp4W1QFN6eIU0yiNAeyg9C66qGUlNgoZcjGGnUJwVqlIFQlVo5R
IObHw+n4qQbqSpCpDMlyGDvq3NMqpTYG6CLQXGtq4bdxeCE6L0WVmdhDWaQBaNrE3DjCUzB9Kf6c
tZEL/I+718l3K6mcRNeX1Xpkrzzhzwfq7CUMakMdgUrNqpK72FJgF3xuVbyRuZvTwfswlraRxgwQ
EKV0rhREZiAaPsUNfcc2lwiG9ZvSbc6lyEDHomOznNE5giAYcdYdhBRRnNyvgFw2YWrbD0loBNC+
jbneLzXSyhZOL8QaBoYKdqyiGNrCAZJCd0dhb7NTmE1IYv9UYRrwN8/sr1w/kqAjmjj3qiAKQ8PN
BIPkA0A6ZT+U0pwNDRjC+scSaWVDhcR80FwBrQK48c6hFiXeNbcJAzYGKs9yqlstgvkeHaAWB7YG
NKhKl9ToYtHbsjrCgDn4nEplEmQR/v+Ggi7BmV5Z5gDGo4wj4VUQzoFH1U1zAWvQx0MV/YAO3kB5
MwSKy3YRagQ9lEzyxrWBNkVuiCMFElYHr7QypSlsXUwMLss8NVNy9SGAQksvuFgBptf05krokmsD
PX0rczixz7chvAVQA+PGUsxGzeMAzaMCec54pSB2ITYD6AL4AXED01ctrILnQB1E8jxQU81zAOrH
YpowvxA41zsUnYxN1QFGL3SNnow5gWOdzyegp0OSBBy7VcJLTSiFfoC+rZVrQD9kFdLFqWo5luzj
JuyFyeJR1VFl6Kj1tszzp+kmqNnHIhCZbwKcgVKAUuhxfRixUs5D+pwmrNwqakZelPzFjSBC60Jk
wfcgyOPe1ecF3pYpFgXSigtUDzeMRWg914nwLosc1s4RZYdKP5+ONXUwsLnzuAMQhxqKpTf5ZYai
ZFTJ6aZhE5y+lcUyLIrfQKui+1LUmoPJOOUpSmFXNgHIvqDM1L58FwXcwG25ibyhrkDUgHh5RJ/n
3AHM3dEl2GFDrNQwV9pl1NAYORIcEhok3dcTXDBuNEV2ckO3uWDTZc69KV0ACADqYmYpnN+fkc+J
zs/mUXvBmvbQmg6bBRTYXxZGjP2GPjFsqjWenuI1RjCsKoH5uUWCbERlS1h2rkph8C1ENanTQ++Q
wG8uzWZvi5vhOZKkEiEM5HoAytE2Wd6V+RuYCWhL2nwbLkF9SLn+Y9kgKKhPzFitzIVp/0HLEh8y
08gQSKSpIXWDo9ZgQF0kN1N7BoEDq0p5KSpFMClDSzDNzV18WuQQuVW2JEZ5mIWxE4WmEOoXYZcA
kuX2rUy7G+cSKmRV1KebaBnyVqxmXaJqd5NgEzqwh0ECMXBCghTXu13fYmiYjlck3uTIDfTqiBD7
K5Azyk5PT5fpWqPIy/IcQoLTtS+qbEJfLAzP8GR4ijTHLLeOTYyScMcNw+JvuKtKkAGRW7Tb8j/M
XeqqXo3CaL7kZ19rwhIWsElxm60axGbgtoQ0dM7xDen9N64N1wJZeI5pSFqXWyCF4D2205LZm7hu
HKdYp/AWZmgk6fuV/hc70tK5WWa5HjIjMAvBfhsDL//gjmt1uqyIH8qsQ3kex800bscCuzOsg5Fo
MjZ2ugtPj5OGU6WzC+P0aZwhoeduUkt7yuvp5N4oAwsTpYX9e5rjydDP7e7+/Trrst1b6OzLr0qK
fLfFOptlEtw6RJIWSlRy5+Q7flZ+eHmjQmakM/d5fFdpaZXm32RGA8m0AoLZpYGqA6g0AMHR3UKu
u+Pj7nA6TvXdINKR4mx6IrENWcORyGw+5AK87R7dGyVoLbokpOlQYrtiNEJfW8jlX++789S0knxn
nXBFSzlfNf/Fcv8IqSbW2QGMkbpQ5KEDP8fP+8d5ii+7I/NIAb2CZVDg8e52UmgsmgLxfxn40c5f
zl/RWHo7lg075u3prGpeL+khRN9PcClKXER9+e/m33U/w/S78+8CdOkRaBcT2HQB53mf919mK7w7
z74Iag/nH5Me0yPMtAv0MpU5rNk/74+edLU0Q4TzIq8xS5+Viona6fzg7E8a2HdUv4Cx9JjGInry
wYkH2axlhr7p4/HqH79MDyfC8QV5SNvfFlNe/IeHNp0q7So39Xlz4TzJg98+ZbuUSBN5SY8ZLDcQ
TC693K06/5ekaGJv+q91uUlviJOiJDeEE5Uk8nBhaSLOq9dJiNMWbUz00nwRDJoeqfcPaZF6I3/p
fAcw/6fsh4oaKwyYXot3zMZx3az5/y9uVcsw5OH7oDDkZmaLOvjA5EyXZNhVJVjNHIN/ZQNo/DjH
jdhulKEnenxcWekh7aDjUbkSPBIyrf6ub+O03x3vD+/nu+nxefrJdTl+fH877B/m3y9tgudpx6BW
+d/yf4klx9P3sRuKO6OfZosXkg8esnk7hXdy7+IsuNEXDN6NHjujx4zM9K2v3Yu9xO9e58mWN8EP
E6kbfhiKQH18QrGgyo0UXi6KvM7pRw9AXN7vz9PzPNAl6K1P0zeuLOf6qxudfSnBjzykOZKGrMvA
V/9oc9J/d1GdeXF1Mcb+CDuzh58gZ0U4qdNf49l/O589+3Fkdoc3Olat+jR9dzp+Oh0+TT8F03ec
nue1fpo8Qjwd/nHcxzad/5sdOeLk4XRseu3xZmzvpjzuP+0vJ36eseQxjNb5tu2xjf3z3cvkQf9w
yOwIEeYJI5DXi/ONirOZPu13cNNtUfaWc126JVMxmb1NdrQ+zY1obf4UPDD6f/jN6sj9Iu+ExHvl
Ivr5UoS29nNEcXq/sopAJuGiJSDv97/6C3F3/Xy6m56e/LObrDIhq3P/N5buQGhzHeSfXdhIznAg
u/7dUnPIS2NSOaSfxzKH9QnsMJnL3ax8KlPpiQCkKGsZMMjiP3w+b77H598cIfmX4z8uTjb2r3t3
iqX/lf+5JP+k5e5Gdlc9xYutyo9TZLM+OMlYVM7d+9sjMBEL/dENRR70/PgGBC/k2/jc5LdzLMb+
okh7oDZdMNJ7lfvLxTnBnDDGKN3vgNlwAe4evj4wD8aEbwW59M5ODMv+/eVwOj2WbCF/EmSswYMN
OltOw0uIYU59vp5Fgf/N6URf28G10Q83itxvTT7/zi0lqp3H6Wk3f3Tnus7yJtSUFEU+0GLXg/eD
doeoDA8IG1a4bsTnP5cvm0SDAjgvu8fT57vVi+DVnMg/X0Ds8+V6d5iu1/VJA/YsZV9Wb9ELmQ5P
89Y93p2uL0RC9kxkH3wDImXWA0JLF6Hw/s/d6ohGuQsKkJ8i8ZScGe4V8blC1YUrgpl9LXi69B55
LERnK03Cv1osNFw/lFXxjavqdv/OP1DKO5Um6XXaC3Ax7Eu/dXYupjyXrSU/Hb2eeD7vDsGa88ac
UxS5/dwffSVhmxmV5bsaBvQekH/csKI6ytIa5Gj35KVpjTnhUEsz281Q6eZ5e+Sd4todJGYysWOc
k+gWtEq55L3EfuslMh7xosvC9vO+mObczmhxDmUMNej2ruRk5sG8j+zw7qox1/F0Ar8CUylNUaFN
v8WWBN7EOF83uk/76ZE/YbINDiQSo9p4kg5UDp4kvxCTu8m2dBHiI18+K/N4enh3t5+XYYM07hKe
uTdfT/XBBsY7/cn155o15PPXO/dwxvvl7mF3AfveEV/VRVFy4zGvOpugXse0fH4DlzcB/Az96yxL
tnz6aXLPP38+nzwT8e0dbNmItmzB46JSeuSn0meyvfhhRX8hvErNWpONB7Sq//Pp7begQuqOsRlK
an+rOHi1QU2Q0eHpytt5rAFcPcA0PeNrBr2xGrbg7/IqhMReroffNn7bH5N7zt87YhNJhxIq2BXP
phO5Jlv85t/fz/fvB2fq/7jfPf5xmabHCxiFHpKTPdsVpOayu76fUeRC9OENY8TfJP8CGLujRCuS
92yyKQTGAj+BoST7l9P7+WH65vD2suNPQpVlHQIFAKMZOWuX+xbVaHgUOQYlbz3XNn9VbpHBUlxd
ecYq6JehZDvdhQ4ZsdqFJjsz+vw/A4DyF9jmETu9vtOjXw5veW0R0lslNP5pVv3s049BVnUeMW8s
v+QnoHIlL0piEWTigrT82OXjyA/iqsHpc0laFLgNaba+RoLW8N297B8fp6MLS67AeC+M0Bsdt50p
PwmCpKYHGdzP7vbuOTvivgIgmsKcJJVbBhbPbp/4UKTP3TezBcvudud5Tq/Tdf+wmlr/VDarLujs
wrOVGW7vEuq++54D7sEiyXGRZ8zDxI7zIf3u/Zp5z2I0w7+8GaYlGL/L+TS8l9UhBDeK+PpYXU3/
qfJgyfbzjlCah+dDZ8IbbEI17Fwo7atJG299j0Zg2zDu3TaYJhgMPxb1rnuS51kUkOIXlMOrqwJq
zUuAgIwaBpP4CeukBD8piURmeV04ICismujqOFnM47Mr6DKfTufUcZex5s2ayeJj1W0wx/m/5+NI
kXbOV9yrWzfQC1kIcviLR4xS53uYLNL6+/4A7mtf8tAjjOVzGfOfYqJ39zrVkAJq4EtnuSBQnma0
IIq8rh1z66E24vqXsMNf7+79G+D80WpkhdYQb/f25vRtS1A66qIb8h8kIAFqMvQtYfTmR/jRxiKG
FrYweG84N7F0u95esjDC9Po2K/RnXsxljj3bWzFfrWVF0slIzqVbwm0nU4/T9Hb4Oiuwi4vkK+ET
DXGDOypG3YJLAdffbNKz/fCfY+ytSaykuGjf3jyJ9YEY2cpynvNp+gUGYMvjAFSXLGzp2Sl6wI+Z
O5uhgylQg8iLai/0hVVfveA/3/5L3/OdGd4T2OPpuKw3ifOc3OQ/odAY4zrGhvqYjyHQGH2axwjG
yNx0fjhDljVsu1c93t2Mi2am0uooK+52bgZNSKyjeA6X6XpmFI1G6Uo77c/4Rh7AMFGc/e5Q99pN
Jqg90XVvzTtkRdPZoXXZXAojKLYV5iUo2ZHg7fL+9nY6X9EB6nVw/z4pt/H3p8evaI6KiJSvHUi0
Ofrasc/9+FRCcHLAiMM6oiencXIl0eLSGKQHqfdLogL4fHK0r+tu9jEuHxESTc6EdEm5mZ1FK0yC
Fh73KO3Y7Fld97vDvGGP591nNNoI5Gx7CdA4RNeQKqSyrjlPh2AlHDyLBk1SRopFsxRK6/xsuuXC
pYo9BSl/KFje/b4/fg3su1SBN/tP7z4hylYQOS/YLtGFb8XUJ7+4PJJAI3XrSGL0dWk9GEmikUQa
qe8jiSs8bj+byMAzDH9cqZbzUOVNdEegliqpIX88IgzxfDjdzxK3cxBobRydxum8pxyZ4Q/vl+vp
1X8UbpoXl6Ca7s5BN4UXpUuL9vSg5cXy8aYx3N+dgxBd5DVEkPOGOqLF/e4yzW4DM6xaXk1wwwpH
uxOWNBKJBIFY78eOERM4YYwVOXYH+np63D99XaG5BXbiRhLLk+pj3n3QPX4Q8q6Pp9fi/vuvY77D
f53VJBEC78P11ZRRG78UQyaQqEj/vETfPupJx3eIhS+KPbBRZrtCK+rdewjnQAL9tL/s7/eH/fUr
u71RlfmBknKNgf3l/X7eHhcSPRzePdXI7bsXr5VQ66DyVTBmvfLVc6rO7r+U3G7Kpdnz5iwe5428
xoPdL3z0/TH0u2Uzvh7mVSoXkzWCOqyv6L1cDuznkRS6bkNPCm7O85rn3Tg/HU6fGdfRb6XqShLi
Aqbd4a/ub7507vTgLAwbRSmSfQovHaxRwyzlv73f/zbHPMfnAPmw+2vHtL/keUx3eq688+5p9zDB
DVWLJ7SuRmDBSAT0qmS4GwckQ+aS0S9rDz9xw5UHgaTfiYGcLMm6hoKAX0I9wOoqvbhz/q8v3FDp
gMmbVKyW5NUiVSXegSNqMfbsf+IVIplFv8Ib6ywubBLaH+tSNui3Y0gc5flEQ+WsO9/rad6MOVQP
zR2Qdu7IUhJr7YurYb0Ldil1p+UGkTHk8oPI9W0Ur5gjWBDbp2GJlSbbGJksxaxOHX403+TI0gko
Ow+p+PE0cwMiAOfnF8WRF+de5To/crjfnwerRl5B2i6dE3n+3Yfr8134/XTdHaIOYJTIUBZ8L2Oz
neINwlAyCLOz93dX7xsLw35HNSUeYrBDSR/7kpLzNO/6/Kd0hT3NktWrRGQJSfHgzP4SjkVHDKuC
gQpreEssqcVN2mN2419m7/g5lNA4x4AT3s6W9uvkCYH/DuUuwUl0JcbsYfVkFOXvQLhJLjkVSban
96vju7FGoyeW3Duu/bgpRPPqeQqcYXgj1+Lt/PRmM/qoPJvwru/ZbTZE5B2oowmSc5hN6PToTfp8
Uven3fkxQm3g+NNcSNTsbwK8wGuZyGYVyd9a2nd5o8a6sbPcFB3H2ZK/X+6AdpS2J251epzkLR7B
/F+HXFfQScssvrC6pOtLumTV/HNwPUtwqK8CFbTBBI3E4Q9dyoIHNh/L7nzeff3FFxXy7pYo+Ush
zFpJD3d71weBtWRSUKF3G7u0cJjPJbQXuNxA6LzTJC3nwoWOFk+z9LmoFzjoZEJeciM1xHXmmd1p
jwwwVR/BP5CZxk19H4Nyckz72ZW98sVNihAINus4n04kxll9Wl+QB8gCfmeo35Ka9a7iRxnH2Mte
Hk3amPv5Rvk6Cl8U6enai1s17dBS+4Fo9gRVZFX/rsb8Gmhb4d3UzHPjL4vVXX4Y3Sqh1yXXHgvF
p0jq9AZg71T/yWl9ycqtJDbdgZayfK0P0+5PdieJViM7edm73svfff8XzgddHhva6CJHrnYNsP2z
WbGLdc0PXQsy1jmspv5Xd3q+qOOJtxKzjR9L8p44O/N3e470E6KusQQ7+Crx/ZfpcLl7fNuzH8sx
9xrNesDzTzuPLxqbTe2vYY3eKDikIdKy/R2M3h+2GbOMdCWfNuQXAwb6qxvNO7Z39+/39we2q4Of
nE26hWSik3a7TM/OEZ0egXojc/J8HV3CH3jIQZck7/N0/+e+ORxTUqe7468PiReupzWV9xzDZXZ7
CZSShkmhrQtieKusS651OJq1WnBWrA9/Ih5OOJW+FCLc358cIfLO8YrjW3DsHaJATnIfm9WUHxxo
KptL4QowOxPrkY3z3ew+nHfYH+xoKJSC8rKi5uh5QStvlktitK9zoLh/IAZ/jmSvHHUyBGhU/5Ci
mjm66oe+6/hN3yzHFt7C9Fb1d5bZ4hWoMCXD2tLJP3ye/FPyAqD7XZdIujuesqNnD1mZ7C7k7+O0
VNUFcrEsGqTwkuG/TwAaXfrRhVtAktLRL7l72YPJbxxJQ+GZE4VnAqp9fzkd3q+JH+aYBJEJw/tl
ouQKzHbu5/fX++ncYumK8h+hBX8HuJL4IKg9F4p7xz2Car6vAovbUHfGJN7yUuEVgFL3dzDMbDSL
MOnrKeDpn6ZotoOpS72PWBE2urSy9bW+2IyM99n7HMYO+pNkMUpl5X6rOTnutSkrhcW0uFsZO/pw
lo5iNqR/e8m/u5Ps2rpi9DlL3Q9fHqY3lsod5E3nSKNmKImd4H0r4lun8unoG4YN+F9eu1TiqoW6
v56RzFrCBSTt6XDaXTE81+migtmgE9HTckFEzQdY+5YtLpHhMHsFMHtZwgwXWeFxMtnbPLaPRPP9
0UVnsU8R+61RJU/zeFqCnFmpuUDc8UNASzpFuLQFnC36hX/OAeJskPgtkGKrWcJ0ovK97P/tpH76
4lD9/TWYJDAhkmUj3ZrRYIt9A4tMht63U1iSVD6hOyutiqisbLKNBQhI5ALhsipzyO9i0Ltroz4O
12KzCKZ4YqsxeCOphAqKszQeuzG8q/xeLrz8ilLsddhfZkNydc2c1wZC0a1+3R++8tiqGPOEk1jS
Nt86DyABF6E2wZtskLOxuVUZNueN92Ut/1z8soi7PU7X3YO7VKfZgTi/nuaVBjwa5o9UEVZaOYep
RRVrTSTnOyRGguAxMhpH9olQyWadWlPz9EYQ5tU2Agti4AM0XpRsLkqSlWjJizJ1JEjRcOhZGJqX
IgR9pAtKgVSILGcv4skTRVN0cQEh6piZ/6VPuXsQyqce3dZ674at+QgwuC7l6dy5u0s2ucsQSc04
ZBYklUJuasrte0N3du20eAJ48LXHYo787DhaLrn8P3/9fuFW81czmS4X/PaixhSpItEUdek90SjP
ODV45+noCU/e0Y3XqDIgHDx0S/wAAq2HJsihl6+7pvf7x/3d6/58Pp3Zy0DcPlIUtV6ny/X0lgUN
GHHtZVfSHoHQ/XDYXS4/u9NzIvk/u0NNlxkJ4xCSQODvaVfWGyEdd7+0pHEISPSCeM+y6zkEz8Ha
b7Tcm52P6ktEmP3r63tAJRJeAkKGvhTGfwAq5vEXnSPFCQUMwF94kcqDpaS/Ms/JKNK0HNwx9uPA
hxMk20M68sWEogvzHv4Eaaylw0fYY6c47JBlEC6+TaBXz48gE05ZD6TQNTSMvMa17yGAaUphUWqA
6olCfGKFeN2OqyOWl6VOXsUsJAOEXy31UGERJtV3udOLXAUCPV8RfKREX6SUraqiCh72ghpxWtHg
PLZZw1zd1fl+ckHE1wp/is5Fe77/sF1Y/TIOCiYoo3HYP9atwkCvddA1pbPyzokT4ofd28VHja+z
83o+uFKNC8iklmEQBw0kP8rfTcB9EaoIEwTwYlFgPPQle+JZkuZe1QSG4rd/LItDDPpPZy9Wu/fr
iffjCZhI/PhIzIsw0+y6/O5pJBXP2eS8DUMc3/t314mPKBAEHUgKpSQY28/mfLqiHKPqelGyeTe8
TUTbFKVzvu6vs3nBZfkBuduAxMNaJX0+HZY0t6tr/80L8O/sFSUhVuG5Ue9lz1IzB7U8JcIQkogM
V1SsCcTT2+5f7xMq2FakBKnEK/o8i3t8ibx2e7q+6IzGBuDB3PocDE89UyX0fFU24WR4BWOLdF6f
f72LRLx350Bc2FrmEHboEpTjMxCzf8NnIIqABM58e8MEEt5FSoZnwGKejLU5GTc9y+3NKiV0LHBs
xi7nDW5fEthtetp7+Tz62HP5sXlneN08FqN2f65f5qDAh2AXXjjSVnox1XWaGKSImVKOIzahdusI
NiMUyoJSUS9wJNgm7WvXvEjIUcfkyF18aZGXGkNJ8YETF5PwLraIoQ8f7VjRlY7HwT4xEvju4IzO
r5irQU6LNIPd2PqYmQhpgfA/AQsvhtKeX14mRyR2qpu/0YrjEQWt5N5sdO2rHypxe6d1CfAOoZs7
GHZTKTycI0aO5rG04A47sTpl0AqKwRbzPuEq1jIAskjy9ej/dP0mEbSgDRdjyYYv1KHV6a1yhvoN
GmLLT7j3d0+L4uTjmqG0zykjEfJy6wJ//o3Pzg0lF8E/pBCKVB7ez+elzYdbMIDjh1JeIcbSoVD/
gY9PhCpReoJvcHqNtP21vqLClx1k0Ut2gaoX4irTXZgiepFVsj36uvAl8eOrCpbGNfzt1kWrG0p5
ru4pnxViq2BrhEREoKM8W7HNw4Pchyw5z3C0JSiKa/bAiS/wA78iSn518Jweq5EVMUZEvkAREk8I
UiXdH7pr3x1Opzce+Bk5wPjuy9cKVjdbZ10SqgzpfXZnv4veUxvou9FxumSCYmxH30TgbyKBf7sh
vdSwOz68nBbEh/fTictA6xmZPFo9g5aW57g8JLhfG4Fv89sXHrfQ2+A8h0s9befukTxywgIYxSSU
RwDnTQ67zrMqZBkjiA/QrVomvDFcz9RYkgklkZrPoL67QpgA+u8vPsHiF8ujXdSlEeuLuxvNV1B6
Me0WcB+gAPstJJdnrrmWOCFfU6wMCQS4+NNhGnxTv5CY6EpptiXnB3koZdqbv2yXCLb7VCQGx02R
frcELt6u0B58bJxSJH4ugTVBYuoY7Xxz+2IVYH7wgWkJjtfkZmngqA0SUBuK0pwU/ZqTlTw/eyjx
sz/vj76z587VkbtcsVP2f76/AeVqSnsSN/inkz9umveGp26oLzuSHQ7h1Oyy+foWl5b3RuwT2GfC
s/Hv0wvCC/BNYX6okQP6UkkvvYWzbv7C30RdAkyXpFXwsuA90raU/rjlc6XqaN5G0LCDcLncuaTq
wv1sL6CDPgw9R7x3ORlSZMDTavuij0IYuoF2xCumYk2W+7k/lu5Rf8yK7Y8QCLJ5IVUkt60FgE9T
8AfqNYBdiWTUmMGvJ1DtNnPe53kE/yo1hoB66q2kxtf3O2LEfaKxQiIltSvEscuTn7V+7SHtKUr3
yj1UMl/OeZOur95WPZxPh4MHy+Z7fjcfyy4mK3gx7ztZ5NbRSvEaXlakcxbeMazUp9Hb78qthckJ
xE4CHD17Pn1fe7REW/wVFsX6HM938Wrg/fjn8fT5OIuu6xgMyhGL0EXWcH8hHVww60D2lE4RXNkh
9xOms3c9Q/HKQh3lPQfTzmBFyq5oknwzP6/xyAuXaxU0z7MniVnXP4e66v4l4hdU8j5QdUVrstd8
mSsm8GTj93Pw0EPtCV88XIzMihSzoGsqRa6CZurpW1Q8ROdiwAaUbiwR8Wd98TW8yLtqDoSX9dKW
oojtgx91PW2LCZbEsA55hWowOXsFm/4NismD1tOglIrkuUjJmoZ5hfNbm0HeTy5bOLu+PufLh065
no6ESl+V3g8CCFaScxdR1tk/HzRlssxnJCW7mPnX09YKyW78dVE1seD3eHK3EtCvZc6dTtStbREn
X5uiy3z9RGLEanNUmwTVAss7ytDRvRLIHhLBAIkR3lS37Pj4cKCgvm/3RxIgibPIa0PaYyIUs+u8
v0WleK6zxYyr0+gra/PLV38TUZJ/y0aIbBnyLBLvx6iS/WObnyQ4vt78ZKnQ4BugiJLyLtH9gFKc
Y65igWnI4Hu3NTo7/CGYUmxC+CALEpK9QsJ3HqFVyGpDByAl47H76uFrtXqczM9dFqFyv+KfPNAz
Ci5EiUQsf5bhtUAXRIZADLN5JNGNJMGRuF7nKQwAS9qMKrkloRjRG1PnCUYIce1Yi8OpWSEIkE9a
Y0PvByC+kRI02a23A/GMFZ71OwzlDPHyuO7yDhv7HIoibzpsprWY/Vw866/kBIyBxkO+4abOi/Mm
Pt2rdOkCX152b7OzHLtEplQV39BgLKZf1kxvhBD9I/d3X/jXcwMqJYtNBeierE/UVYK80RZl1MVm
n54fawTinuYfhtv2RUu+zBcIsO6oLPeVowjBWgzMowSKoxastaien817UWzWL9TefD6dH9f+dnzC
T5eU0eG0e1y6Hu3eru+oz8ggNxd8THBhfDE9uNP3h9MDqATKXA7fYTimlnyY7biuUfNUmYnjUCyY
9PF/8FtrlYHjWBKy0osJf929vu74XDqhY/drsfcaG1BEl8dvNJcHPVU2Qsmu2M3jOH2OVnh/8Q9f
12Dlgfbp25hzn/b0Tl30v120icK5ri/WrkX35kMt/oCWoHfUp6It07mxYnT6Ijq/BdR93Z2jYgNQ
3ZbaVfjdq3QC23b2K6NRr/svLqdeS173nSgZPd6x2rk6M357yqxAz36LjktMyZLIlTV7QwnZCjc2
oj+plOvBU3tAFCxLcchfSXqoHoiJ7PaqEW8V72cUPaAVWvOZA09sa2ibYo0tKewl/5AzGCs9i8pd
0lIfC5djWeEU/w/uEHkStynNLFJi6tmEQbEuLExXz1quiBd6P2768jBdfMDrKrlOD7wXV0TbvdtU
bUQ424uiloiHsbZ+YkkRxTx0ydp8X2HYWpKT9FXJS2rc9/mdL0/oSHw6g3oU0lLOQYMxtbvENbH2
Z03o8KVaPUdki41sHmOpjnsxzXmjruEXz2ajhT/knSbv7vjy7zhQHJepf1WdKArpQgRz9LaAJVWJ
YJaLTxd95d+c/TwdDrHndcXrn/X8hggbVpg6kqytLOeLPbHiNKvRorEmLt2ieVauxXn61/sc9z7y
Lp4qJfoyH8TVbzlYoFY1XHat8oJP8bjWct3zncV6qUuzKt2b312Whs+odPmliX1cImzoIhP393mP
dqCZsTTbuF4wrIJoPPjKLdmboiVc3Qznv94hB7Y3msMYouOH6MtmLDkc7uOX5K7UGvimFbg/WlMs
aTzsHCZYJepQxlYCb1zLsUNMu9TerQ74cZG3F2GCY3yDmfgpgNDUl5yLh+Wht8fEFV5wLh4eoUl4
kxJUyxFDm9kT35C8v1zKtfDhLPUCBp9iSX0Q5xt9vM7eMl+SVoQbFhLMV0ziWZ8p3viPftq+j1V0
jXmSqOCCo/M0B50Pv5EH7Vj3ocgNdliLp0N+nU3dFx5ukVyyhURGJHxZin5qIHTPNp5f/cbKBTSl
lm1RZR9jrmw1KY/V6s+xL01o+uRKCJxt4V0Sg/CxtwC7nN9egH9lKHobLlwxAo3ICb+phuGYeGFt
9hUJNOYwyXFtCHJNjyk9nM5OWTuztuezLGYbpW5bWnrf+SNNLUlA5kRTd4wRamgdsW3uMv7fN+ef
duc5bKvE7uWuTvEV2ffD4S7R0fn8QzEkWDtDxbq3CtQoi45UoQv2na/Of17aIGIG2ZAxiJ3Cja8q
vx/3D6dHb5v9i8iBHFvvEqLEpo+Q7hgimQQwvbQ11lPNs7OmhANuagf4jlWCIWUWWR8wI09zWLQX
dcYCC2kRrEN7+7GHSfjUsi63BdukKi5/Tp/58HosmXoCaCVsZH+sQRK2WP+4IM+BkBHClarKsZv+
ctFdTAo+WOPLPBro/yfyNts2jwp8na1TISgcIGUwhLZKJRimKeZNKSqeLP1fBVX60RTrdZ2NCunz
Wk2IzgtLIV0JkpxVzjRTpEA89LVp6O8oe1LYSV4DqVuBkL9cEs5315fdNd2Uy2oJKtnoYkFR2erz
t48i6MPHmzFjiJ1ycLu1HXM46sXZC80j6at7DY1BrChm4L68HoI29NWEPCdMlKY1uwAn9+ZZUKq4
pHccxhJsuWFyVEtRBiFLj8F4FsW8FEfImF3sBwD9FOm4/vGw6RH3RB+HYsS3wLawr9RgihXN27pk
Pi+ctXn1ExBFzsHuCFsfK0kjRNqo/jbD9sm9mwIybLQ4QKYM26pmW2sWelEO20r12TiAmn1gwfkd
a22QC1huups4mJrXor3irnxKNM9W0heq8G5VsdRrfVLDoQWz1/fseDWzUVgTSq5+jo13ZUmhhccc
SFMeJxd/Tl9jKz9WQ9Buh6nMh7bLqDXJ0KXeQ7PFi6z9BBezRRpJEtye92sT/bULjZ9GLC+qIul2
01HppqPkfGg+Y+kU2P3smfx5AW939LnHZLPyiENw3X19Fo+GU6RnuKkymndqOhz2b7NcOfLu435W
9xfUW9UOYwmzvH0NwUt9lChM5B6pl5oo5UVOQ72nI3Wdx8SBZNv78y1obWdRYVMDdcjQR4QIkp1b
oEKTXt4WifyJjTGr+Due7qanJ6e5HDySquN4CoYqoaypSsSnf1AFTt+hbESqofgIALCpCSLkR9yg
r7OyTGSuFQ2ipPfAIcmxUIJNmeqtHA7b5sy+sCSGYOENm6j4sM7ryaGRFNn/FawRixfne+b/7XUZ
BvATulLr6eCSukgBApYEl0gt1ze3wvVM/+b4+PcdXypFjDhRj/73XZVG0tkQqRTSMk9TOpzfBz2X
uI/Ax2Pehbtl+FO/D1H7i5Vx64XK30+PXT1qqJLs5YbbbDYBYq0TcE8rlFKhk2fRxbTM3r8BzD6y
Gzhbtoxv3GQxP6Q3TKkXQaHo0wAHk204mIjbmvdziTZ1UxAyY3iCzhNKjMUmIStfEjNsJHU60rw3
HQHck8N/21+uoFfXUKxhfN0d32dv6GvYSNCzmc1yyCL2Hh6qmsf0xfi+LSgPZZrSK3aJ6urggOAJ
sQSJYruS2dY5avjStSq+b+gZe7DzT09jcuPcFmGM3nYm8h7o7hh86mprIsMRm9qjfL4TMtlAIiKF
5o2NDRqyEkNv+sXame3jj2xZMRQDXb4St+l5BVkc1AlNTPbDjpe6mPghPISjaxzEF4LIYq1dw5MX
cxQxlLxsh33s41tq8+n7bM98dfhXDIQp9zlY9Yo7G16rlB4bAq1O+Er4sciwLbUH4dF1Wk8hfDHk
Zj6OccHDGf1QRHm9MITQotbHiTbMGLb0sGwI1Dl+kEW6falABR8O39Rx9RLmeGBxcVmfuQhQRs+/
qaBXdd3m4T4JuvHl78+x4j+WGx8txV+g98uoxf//nuQGQG+xFJOQ2SMLMe9/Anr1qpK9y0vBY4r2
YXcBcL4YS00oCAf0eKqxP4sdKwmCEHksrQDCUKKebDLG9bcPi6XyKdPnuaSe/AgzbbYoaKU7zbM+
iz38bsvZ+Tp2U3SOzgFOizU8PPxYfB9hvvafXJ1L9U1KK7vS5c0aJaFmWqrUJSW1o2t7tLMXpmTu
VjfsLnsu5Gl/WIzP4mrNxnBWMq/89SRC533cnoUtEVop8nYn3eZF6yVVVK+IkCVPz/+wp3E5jqkH
GkH1t5J6k9wVpPNk7GjPV33ZbixCP3Fb4WMRPSWzjoUr7Exq9QJvrCl52VuIEdRQp992xBxDat5O
RwK5ewEGxrwvPsl3et0fd/SRCnf5EdxLeBrO3VPd/xsw5va/+SA8I8o9xgrhsAbhcLHPd/klL8Wn
DGB9IUHaA+G91iCqiNYsOY0NLuL+8ffTt/NhpifXwQPRupR/r/d9qIPStpy3ipFInfk56CK5xQdE
7y5h5eVlRTp9C7dZkFHLvk7IYrXDQi+JOeqmd0nnSKvYZzh9HhfJdwDtS9pgw1yoPDTej8Wkntuk
mCrxdbDx1Qh2Lp0sqoYSK/tvs4bY8fUkxCd0TIjIasp4sbW39ORYIlOk1u1T/aG3jvZPSumVW1UH
3+OxukwLKb1SVL8Pqoz/8fV4/OJUsSrNDXRcuGih7f6Sl+IP3nIP3i9uxjmmVlLDgsrxDUVGmTuw
OYLPSwbm4MAjGk6vzH7J7gAbe49KFRPYm4i6oZ3hSFF0medbKiz9ecd0CaUm1zZ2DKlyjkauMj5V
j1A9eQE5bwoU+gcXUznv8qLqQrPl4XxV4usXXuLgW88M25dObNZD/Uuth/omqti+4YaimlEVwbSb
RxsUiD/1AN86WneAZwx2TEbEfe4bRYW7Ex5EZKmmY2kbAnEk3JXr5/0DSDVQhnI4hz5lieIbqafn
+avL3XXnMj7Xt8v0/nhaHkDg5axI3M/6oJ2f7/nK6nKTPfp6E3j3V2TP6vlaK1qfknc1D8t8+RM1
/tlynFRON17jak875jHhofQi1TZ9UH/7kc8jlGk7iaF7egrsihCSofxaESXiWQKaD6SGEj2Mpf3C
phV99rqlSW9FbRJBfPMgVXyyvPA2t9ODDdw3lbvEY62RoD/TOfZDBdy6TDq4aV7r7gEicZniw4kr
vWnWLWmFfG3g2KmSf5TyLuDJJkklfpN4i1f54c9av86O9uRPHclXP9Ff33vQB67fPr8n2hrLCB7y
K7rj684GXIvfUFEu/qO0JXfCPCpX7GtTevC77mqO5UZiKTQJzEOvm/jwZCwW9rPaQvHaoi/h7f8P
0OnYThUg1Lbki3qDVSnwno2VLjcmPb2/VRphzSFMn7+4UqRA+z9VS8qKrXFTc93r7nyt9NymKXra
Im/Lab00lN2Jzd1f2vDvzm4S8X2R+E+8g2JsqSoiudBJUF1hOAQJuiLd02vkpevR0umQz+WMiNC1
aIA6uqdL0WLZDPHGR5feg7hxYyVyY/tctarVmq69APi+2xTZ9xl+WRYWl8n9MuuzegswKYrYQuoQ
5A5rWVr1cTQ5DuXhPOnV645uvLvnz9rWmizOQ/D1TrpraLCV9eVPbyOAVlvM8xxOSa+Io+8KC/Ma
Y7mVZdzb3/ev03fxCbnjrtayy247pLE9BflyPlHSFSQLV7uYoi9WbG/r0Xfn3f3+4Q7XRRIb5GAE
BdvG8vzYXm4qdE3eIcNZlGdPdwPh2ciVf99FZcFjDz3n9HhbOl+mii3oJduwfXZw/+5YuccAhm4f
aeKruVXp2SwCgz4fXX/ZwDKqYqLFR6eivCyamPTj/On06IUa9sEaSuqdOnZkbF9YzXt5HdcWcV7q
5zmMczqSf37E9KV7HvJPS0ItPvfkVCBwfvuS+35DuAdAOOn04Mr3VLlpLmyqJ/uxZx7KTJmW69c3
8C6P3LzqozOv2QXHu/MZvCdkNy1O9JZvnJ5x/zzd787zcj6BFJ8ucandUj6f935T5mF9TdzL7kL7
wPGlCANRYaTaI3ZfSa0hF8uOnK/OyBJfcq35dHTA4EVPvhYE6PZi9Pf/wCF/rVQG9mU64k2zlXfw
FI0pGqbr/hDyc88+OnmZvuyeT/WGC9TdSvWWpJvWyT+qXGv+afviAyP378/aKCX47jPsqxUxG8X3
vxDgdb7F16vSOEaOfbnt8ppRmDz/DZa/iXI3ZP/+XxD9RUHwKEOxFtJV2Iduvygo6IsMF8Le8UmN
Ru7OWCz3cNa+krYdh2IH1VDhf/c6XXfepZtq78WwFFnHt9k44RVxH4ryFl3xNfMBqkuLTyCk6xIe
w+VvSbG9WKQjVoiIosiW8U7gb+/3v13PoGPq7Bl33KthN+2b+Sunyi8IrmjbT/NC/rLbH3gHQCr0
HnOsHNsv/KtHvrUKVeAOo1zfQl66pfIBUP6yTCRv/PP9+KePMPhAO4dSWvE2zauIroTNNLzXgmDW
Yg6LfzbkGXRIGIstXAkbMTVt5KOFIumJwcmXChDePxnK6aVFfpZClNC94f3o/863byAQrO8ZOJSp
3gvTGXG3B6lL70FzIQW/5z2TxMtrpkFsRSNgZzbGWikkTyTvionsl/3j2355JbmO10vaUq1zf9Gs
kQXtMsVYJEwmh93ffBc+1tkR810WHPr/OFulB95+aFN6vm9Tbbio07yBLGl8zNsXUyTZxTNbYwrA
EZ99GlsCm+MQPgcbiTHuDj7s3oDJoQrKOzGmtNyPoj2jLja5DVbw9P9r7V2bHDludOFfREfdLx9l
WfI6XsnS8Wi99ok4caKarO7mDpukWeRMtyL2v78F5AXIYgJZHJ+I3bE0doF5QeKOB4fTRXVBu6qU
zAGDYbmsVJPTqb0ehNXmpc0sVAot32GcstLilFE4G4yDQCOk1rJVCxhP6LOuH3I9O/RRgyZ8VvIZ
RHtvPdgE1iptXjQW66NFCxhJCnENvX0km2b5MunfL+X5oGF2zDI8iwWXfErudoSuUEhh357AzZNj
bWUUGhdChxDFwaG7yOhy5LCI2f6UL/Gmkm7t8qI2cNDytkujcBeaeZFJ8Q5qeMCGdI8X6PBG5J6H
Iob4t6hp0iCDenZtZW6sfFYwZ6u4yJlXq7fKrIkivX76+59/HmZWfDcTRZQZCUXd1HG0DOcjbIdZ
h+9m7QfQv7KrIE2M8EWtv51Skzb7Ptb5a6uRfMeRR25Trf+sE0w5yFf85Tq+/dGM0cK5GEcXyDhd
9oCQLIYyos1yQT26NYCViZNR3FcWAmP1rNCUmBq9R+qz7P3wg1i+MZmG5sW2xhYrpamHiRKRrinj
YOGo1N3ElzXIWF0ZhXVf5voe6cHmvhiVEcWNBM0qKDVMVqNMZD3SxycI26Dy28oWjTw+vPTfDgta
B0UJDEZlxtPtpe26slOGbnUBcGZZLQBX1TranGFWspzQGsztdT5RVGI8AcMfaTITwavJUUJaJyy5
7sLpAQjuIXdYtxIKuO2l/kAor9fL6bj/fUg2T5UFr+aAgK4bQWpA5t/Gy4uCdF/JwgpHl94ue9ms
iNpq1+Fpf9yN71afyDUHdVhV3kqzreWHHkUBwmKSWT/+avVsQj02TSnngJzMRwdHlvhRfBbfBYQT
iikzIWbFGjW8Mex2aPwqTZZlfKaFTVebUR+p/oWeI1hQJaHQ9A314qCyp1nsbOX2vjxab0Qu0tfX
0UiGFMp2POi4Gp3gy4sCTRDN5Qj7LhS8wbt6hi5QHLO4Pl0w3G0yJLIKqaJN0WDbmsm/WlvNYhR0
ezdCEwNeydEtUZ+SDRm7XUCdfa/4DkW9LA8Jj2M2zs+ztZ+YR97XMV1sanixNdOheYO/qzRPMjRC
yC1WbRD+C8awCW+dpfxQRfnOv2nZ8yS+80x6DGrctpEjUVGACYdCm8K8WIJLBYACibK6rqyk8STO
48Iptoh+t5mdzcuK4XQz95ahERGfegBW69PbWRaHUd8whNEp5RopPkYHPncdHB/T7FvgyIUbaIjE
VuoosD9/Nwah5aDAzjRltM2cplKaXrKLgfdZYuTLxlYegyqKhA7XxAmDAeF+ic8GN3tztnOZViJE
NXzumGlVrDhXYhTbmEpqe3FXitMB98fX8bK/qjG1Mm/y2K5MmoAiQehJK3iVZZZF0eRi5ZWprFsW
jTqLWNrpac0cy7+KVCazSpztYXg701x2MchTxKr1vc6ZHVU6Oosgr5UX9GV0CG4wouswyDbufPoh
PKet4DTTMYadnmTrMlEJn0xGBjwqmAODUBqySOtjAJiuroaje8rQYlH4GvOpgtGS1a2AwPuKNWpQ
onY8fKRBRbuuiQnUV4jbeJdfa/Jr4+2CzIrUSmT4NFebSTRD8tzMKrTY8VMsNg7/PkoXF1GZ8FgJ
4VpwaEqKIS5oCFafpVKFVFqzvK/77c6sCUEsNs+H4fP8Cqa47YbC3QWxC8uurptjMrk2zLxSVaNZ
mhAjNfQaTw9snjpfQS/X6NWeHvptNigB9rbd5Mtlv9MI5J5ADiyRVxktidN50ohUnggAMfVVnMSg
kSg9CTeiDa/M16V5Zpq2l/0ZAQ/QmxJCAzniX1izA46aBe1tk/w063tH5aKSsQ1dQGbRa297LNbS
6UM69tnYdCl+g4kuKAvcDIfza1QW5tgJZmWhaSQlNFH83o9sEUE7kIazNjElDRyeMQw9XAMUeAkF
s2YVBVtFTwllonC4YVP5Vl6FM32IBsPh4qoPpatFS5L31NOewGwsoN/NZGre94aJZpMD/zPL8phn
gTfV0Lti7nuWFfIXLUkKqpWbv7BVQ9Jnzd0P2QbGZ7vIJvYtYFPbpwvpIAgg97X9xVL4oLHxQMwf
tfBU7Qe5+EHjP7ASwn1Si4vK/CfQs9W6Y2jFDwr/QQkGdVmX2lnjslpaFqaem8J+Uomf9LQs+FXL
FJBtmzRmwG9L/y0iLHfJ9VV0znBHVfJiav8BGBZwaMYsmA0yJxiEBYIhVFS26hOEgovVOnvEflzG
1SV+bXkQvgYQ38Yz0pP8i7YhD3+x8NFhdZG2Zcx/UmvnaD+p6ZPaO/jzygblm5a+sSrR+FLWpEJU
i4M9lkpWSX6ceRFEEjWp4YpvCyvf27TUyOJyJr5B8wmZJFhMVBB3yVshLe8g31hYQhM0+HlZCquU
v2D7ImdPOztXClQEBq0gacxvsINo2P3Ip130wdHlnSY2zG/kd18YKDYffeTcVCpcmYWc3Gs/bT/J
4++lVj4p6JPMZHzwnqGSFnsNkoqvaOLXoBi1vpKgoKxh4LamtW0V3GRunyyi9Zklg4eUFoP2xQZP
H0M8JqnuCGxMlkk+gyr+8BXGqqNaHBGM06+rjb6VXOb8qg05P0u+rrKKc77ygpu7OwFOur2dv5t+
I70ia1wyBKC6pO0TlkPTkzkD99hY4zjL5TVWVdTmyuWLqkiSYfQuLaHLOrwd+0Uu32fVBT5j4Xbe
yb/B5BKFpLKsl38ji3JAnslf5CFTuy9k2Vc10S/ippzZRxfnZJkvqyLKl7n8GxU7KzNGIXc70S3t
anGRVpRjeVPyjdZl/PTk867b+IuTX3VNZwFsWjVJvqnrkG/KJN/UizutkndaVzE5oN1p3YVfpLVs
nccFrvzy6yzceW4uc7aXL4DjvVWtXpQ25HaYUJohYEfkGp1zP4VlhQpilnjvR3GoRm7LTIPOgMKl
xHkTf2iaodnHL0U+4jZ79Brb/E5UGvU7TTa28W47AqK+CDpytXffmcFvYCUMvJpYz4Hf5yykQYCN
NthzGc+HQYlE5BTNYGiuLi6MeSG5+sNQYNGHIug8pTC7LbC2Uw7ko6gowgMGllUjfiC3H1sj9MEh
DZfrqINJhy/jFZAL58XszDDpp2F+MnEDz2yroaWUKDaMpAGc6c0ELWIYbYI9wvhlmxeEGVsiySwP
L4qSlTBsgHBN/YvGpI5CsOKhqI7CSGFvnlnx9eOgHn1eS8G1d1dBJ3NwwYJqwYBV6qJPMHFVBzdf
ZmFMTfntLHaodyyTnOJuboieElgCVcfSyWY+mHGplayr2U1JPEg1k1AqOQVPWiRQskdFoB8mA326
7F3/jJmjgwBwYpueuV16FNDw39ocljkbJednFtOEL6oOy4uMpJlSZ1IQFbBnbBrA1N8A/7+MR0jP
p0ojzT31IcMVsad5HV60x1iEmyoXo1QS/Fqwt0xTl5ZpDDGjhJNS+j6k0frGpAMWIa9eTEbshsm9
nCaZL7vTEpRKpg5aP1nNoEE8SIneJVp2AceZsngXsZcRKgylLtxdxvWbR0DXtRyLtyMgnC+mBRDo
pHijBTD4WeDZ2WzavAGUgK7h8yymIrFTjDBUE1dcxUh462JTKsuvmGSvCIRz9W+XjNd5jzBww/55
VlPH29vTqGm+soq+fbQuzpcTYtknxEdWr5Lz4/uADccyHSbMMlacDTj/prTGFMPIwqek1wb1dba8
brhcHGPrx+lLlEMDhdohvgyX/XC8pg4kZ2dKIfpF9SG1WpI1JutgUhJY0+WGy4S2HL6ZC8YAFQWY
xxZnntt2OGytRagwLa0FfETbaPd0Qxtpx4oF5IvOwosuFi+mUH6cbtjixud30gtLPjYgE2+K5mS2
KFWjm2NIngBpB8xQlIQr5Cpqny/DCxa57XfmKWKlwMtmumyVqyG+wd9o3ChnszlsdJCr7sy2om8R
7T1LxRkHyjOqmD1QeNefdQUl2H9hYhXGg8SOFh859f/GSu7Ax4xtDDSwQ7Orl5EWImTGqVglXciU
rIGAlPjcaJusNnBXnio4pSIpa+abReEf1WJRMPPBlKbpu2OEuCaQ1tQra2IHVaNYKxdrcl2w+Dfg
pku0cguVgrSA1V1uc3noDkdbO/UmdVSGFMQ8QHvLlEp+6KwwTVqUq1tU1saOrMEIRrM8Mviny21m
LIjLiefl4i1EqBbOHsHvFNZyU40MqYaQduNr6pQ7ZOwOURQ3aiMkpHxfMX5C0LBG3VOt7Kla3hzj
cpiFge3UpyOW/zMmlW/OxhwNxRLr6peL49MCE0fep0QMf82KWMjZPqHlLPWaK+U1l2xNOe5SYYNc
Yc0q/pRTZ6+DDNtbqFLvB6aQOKtaHINpFtqzHUNhiGuOdqjlBDspr4fJGoj/zhterGexYVU2l1w6
mC3es8WLfo3WzzA0OnyJCxqoo/V1sIOBsgI3LDHOCq3yorOkuAtetKIgujz+oonUiuovc+1dipLp
dnCAguDgqceVlcml+fGD+tPp+xSl8Lwq5bzKJR/kCXmlrMu2z9wxlSRmakXMcCHPGgWXOlUq4rV6
lMuBnF6KtKBOWVCbsjwsGJRuVnH1wFAFok8mz5QnU8aNKmlnrbIzLpyMUl3B6IpllVUpBW/uzk32
hj74q2aqlUw+8IDzncDTFtUtFbP+ZhSjquOXWMfsPa6WlTXl7BJBy+R9LfGURoXdH4i/+U2vuD9F
N2RN3PYXPBuF3Qsu2MuY+Yl9FrDFJwOBsBuf57/ZKbKvDXdb3CkurnR65QUVqbVZDaicVNks5Uup
Wv7aUTGm4kDrROo8O6b7FX4pO6AeU9Ldne1jQT9tC44yucWeOXdQfa5T2qRihxZt6sztQ9bUKN9f
TfszEw3vOH2l2c7FKYNr0kWWdp3c8eolJ8exqeKiNN06YeqyTprHW8btRklnKNurspTOCFelnVSx
VKzl2vtc5QoU8ZXGN30ejoimpm6+zlI2k5Ucykso65Q54TY6fUit11aO3bn47aoNKoxSs/cO4dm8
it+uDAdkN8nlRo2W3ArNpJxaVsf3SgRD1BplaX3Kd+FhQE379nF/WHpUCqkqT+0uNFE0SzxbSg11
VYqlWVTCSUkbbBRSdcqoX0QCldhIy1VJHTsscPElCBer16qUIbd0fhRPqs9SCtxKBcXrKds1oTGn
NZTTaZqUouWElF01SbcncFq1t5v0zBV8f3vETTwSswjrpKaQW2JFKgICxNTl1MuomhRcnXcGsy+0
cEPbrTSNtCPuU8FHS0NhwTxfeqhtnI01f62Kq3SBaTRXhKch2DRCSSQqQaaOx/s7mqEqCh9FvLbs
5itsEc61DWpuaZYUQeyhKoGvpk65IvhPVmCbIZAysXRkbyEYtZBctzj4LvP90GEjNMBkAAjSy+w4
29EaiY7o2rj12MvMQJuxUG6YxclkECOhURNz9eNO6YvuiBbLtiPUiqnQwSUpBHpqzw60LpHAyd/b
Yfs62mZ+hVjpiWFau+K93h76ItUxbrjenA/V201QhmhWdP16Am/mOiCKmEIoJ0LUTGDHj9yXAsNA
iShLIDHje5uTrjyeFh2TrTPWTof2Fah/ixZnZ2VaBoPX+Iw4nWG9pNYjz86txIZk6mpeS6TOGD/0
iIjiMMteomc23c440UNr3jd2DzFp6SkC7i1uG0E/ptdxvGr3mdHauPLi56Z9XrHzX4Cxzf9j2NOE
M08+waP5cYB6V21XdFKsKcRfJg42dpepZPsNrYw9HHg5TCgwaEvs+rpd9qmxS5bf2LHDFZQdXaV/
jFp1mFlax06NRQWkpSEgqBFk2tqIag3vou6pGNUj01lMYBykNC/4NKi7ZY99UX5spCrWamyA8lWX
iJkEWGEJgWROkzGJ0BjT+7NX6urM0fdMNrNcalxgkIDUZATxhJ2c3a163rm2TCbXIOydW7mzeFm7
8cuswFe+rVJ9WysffMMUrQE2KWSFZNh4fAdoz/01JWu7OtRRpOmOp4Wwteh9YjWXEbstE7vYjpQt
XpkNfPoQC6zvXeFiUlc4h6kUVAGOhgG0LRgW8AWSwvMFaQstGU+ywhFJHJh3m9g8vTisa2uyMkYT
/tXR1agxRQ3Cq+zoKI0pqX1MvNzCW2nb7E7FOOR7huSlcQo7MA62pV+FtsSKsV6GQB8rFJmDflTe
HKNLhcjSveLwBHcZktFUZznbPMvz7C4wh33dK27zUBZ097LAQsNOGyiYPYzX8fCBI+FgdIUmH3om
H7D0mHjZwgKut5sYrQz/iNrRCLarSb6ebgGqLppsqX3mo/tqKZrhFboWYjYAFXdLl4p/NyFK4lPC
bWCqiTu5qITcAE/f8pM0Mroi8kiA3n+V3wPY7Kx/8s2nH/Bj9OXhXk6brN5cZSeO17iBWZtntk7X
wOVNWPO/ydv49FRDg9U5suJwxKGcMNiSVRslWsdKVlgPhEMB8QnXVqXBIiTUqGo7ntCp1dfACvMY
AC9iB5gdlNoB8MIdwujjB1BqP87CO6yVhV9hof46HT8DwzKQ7k4a6wtg+WqGVs52r549q01lg2Ps
7rEGK3F8LDRlSrWXP19oP89iq6wtgn1dqYfXx5gvHMqtfF2FWy8DtgNbMbF4lk5kSMd2bjGsPs/V
z+tw9c1y7416cXn4aPI7tlV/nCdsCR6Ff65unRduUId1KHeKTJU7RfhuqrCl5JwQfawcgp39ndxR
j5AVizPRx59ur/IPPTyGBezPwKFe6q+XpX95KIhmXyd4qIk9X/65Ljnb2DU66fMMCLDAR9rzj8oP
nCazgo1YKQpD92JPoNZ+m+W72dkhYPtsEW7cyJX5AhRGCoq/CIOelqBun9WaMAk0/8/hUwS21J8h
K6Jiw6cX4r9WmZikGNSM1Vn8Ieg0mBSm/sN7TtZ5qYppcSOMcRpLQhHWsZOw47PRdksw4v1NOPPq
L3n3VzKshuP2FRoPDYAvTn64/O23n+zf/3DcyRHSsg9dzoq2aKnOtP56Oo72X3/e73ZCesnQI8Mf
e2Cs6p7sTFSkdHv6hc21OVwvxkEWGuiRbM1iCyQbX4DkT7/9jVGUSRRVuLL8bqfB+QHZlVsmc51N
R9K27JBh09tmbjF1Br64+709/VWY7WG3zGBcO9qyW5kh8QMgxj+2qjpcVZRn6Pw+wTgeZZF9LOix
gq8TdCvGia03Qxebx8tZzYQsb0NIYAuK/J4v10OaasPWSQNexNNUX3PBWLEjXFvhwtdtmiUoCAXB
k3QTsa8XZYdFeG5N8oGsOri6Ci7YYrwIF7yeudvUdQhiIsGOZReVEuE1E3MnhQ5tHlsV23DzoVBc
f9lZLJykUF19rFU0so7bf0CGV2zXZJ/K2ip1J0V4iHWwqPA9K4tqVixqtdgqa1WB3guZ9Zzdh5xd
L3VoQpmU4WFVKd5Y94jzWKzr5ZHzLxbn38UW5uTAqkVVXVSMplVS6tVWWVQnSayiW25l1HILt+1l
/bp9t7F0+VLWz6QUWU+rgth020WelM5nFT0A1qevPIBVkq3JQgMy17Vs6iKLLnylRUIQ6TeZpYgJ
Kken2ogKZ+WLr8qUyjqe0Bu7nRUi9zI2GJhkMMmG7fb2dsPxhl9gfMlkERH8/ywah4bMgkNGKBFI
BafShAPHTfwFJ6BhmvvpQ6ZlY3dlTRMLjO9LJUg06Wm3hwGtwsRATHrYjvTSQtfU4cIwFJHXm/k+
hK4IXJPt9EW9AFcapFIc8g3WKgg5CqTSExUW07VUfj4ZOI7dzsAUFVHA+wabYBgd9IkXp21bH03x
lzu0SVlXTifeG9S9uyNqkkfUeCKY//P5F1fkRZeWi1RaW6VbhghZbimfx49PZ+giUjbTsPsuvUie
12HB5vwBP30I6DhmIUQGLr92U4jO43D9080MCI+nkfHzho6UIda5fZhhsPByn0YY+ypvht4CDwW/
7Q/sOAG7hHBYcHK5CM1nFkdXxRMjX17G440/rlw7H3rxiHYTVGSZAVLEyluZlQv2JCBYmvn6HYMe
xJZTyI+8ZBxcem/YHTeUZ1xnwTOOv4/KK6AdhZMt8Dmt4V43CB4PJTfQ+rAMdzd/Hd7G746779y/
//ZxHn/eTzPd7at80kXHbovVmodyww4sJAga5KzNdf8mb7m1SabSIlhVnhGG4wuMkiIxO77AoMKL
UEiExNo6IEYZU/PwcMwxUazkU2QbrrHCKeSIBSGNK2hFTHfac/PjoX0ckjpJxD3m9B4xTJxXxeJh
m/FdkFx0U1OV111rws7I3Sopd0liQj0YlYPdvR+FcUtiXGYTu1F9b6fd/vmDZAwCW+oihr0EA4Lq
EjG2GIedz+br656YDWYRGTNBfa1tSdsOK2bNtk9nMxzzISHShuxSSGKxUMRiEVMbkReFqaz5Sc0v
S3lSTYxBjtxMwMkysypLG2ktM2LADW2KpWb0izu/w9LGd1nNdnkdqlkjtv2yHjYgaacQZvYdmcM0
eXH5abwCf3wvloQaxmgF5Xa3S4dmi2vVGCPPYhapZWWYRvz34RDnYjsSW2GYkjFMBptPMYwug9vY
O5YszJ2slpnO6XOayB7IpixpNld1YHtX/dKam4w1p5T5GkFJeopVYsicq5hUXd6EpkIj2YfWUdHE
Zra4vEKUvYq6K8nuYIB0tCA3sdTw0k4XvF3Bjrxbujt3HPAkcwCzETno3xquN7Jb5fosXGWeuFA2
m1O+WGbMVLGL9TR/wr/4+bQb/0ssJDb3S8+A4fTFSNoLn5dq/klZZhFbZuC6Edn/9a/Nb8r76ui5
s5q3OwNn+jx+/ad40wVT1bwiDdL8y+vV32nHbBGWRgqDAJeXpwGxHuH80/67g3l1GrWJGElZmxRE
7KBg1mB46PbyHlhUF3VTnUKZBRvY3Z6urrCqinnzBOHqYJQpSLPOMKrJFcJVNnGeQCs6sTImKu+d
WCKFdvPBmL/mALylKGJ0G84rozYEfwrzg1phPXCri6yHmeERv3Wd61YKxh+Weyx8Do1OvlYKWSPr
TTOy2HuicL8JQmAxWSAtZH+/YC+8oVZaQehsv99Mn+Aux8ukvQF6mA0GfSRzWWaALg/1Z+xtl8m3
XYbuYhibcwPDERwdjeVS2VIm2I4Jp6JUtDsTXzm37yRzQ6GVVaG4z+Pv0cdxNZ5gNq0deMnm76ZZ
qmZW9qLtIham1R4MUcLekFZ8MLNIhshGSmx1RREK1IjpmvdJt5qsCYTZLVa6Ecr15YsgVb2SuzS/
vYkJiJReAwX126yglChqV8Y0+f3j7pXHTSeIQxN6+V0aMf9yUKQN82zYCIbQtHjEqqiF8AHbG45Y
Vnwtus4A3i1m/msCotCCQHYQu+H4d1kB8ufoq3ZDlk8aSfXiJSqC1Egr46KuuLtaUM+/xnqJ1yiO
VtLW0xXnWq6TPHUs7REzvMaj2IhlpCHTG5EGZRfvTwX7mWdK5RmCkv5+u/mkvV/aG7TItmGYElqu
sTsRSkmfD8LEEcNZfcw6lbVrobBBr6S/lvv76bD5+5fNfyhBga6JhbN24/N4uVjUroseEGO6mT+9
QCPP3L0+iFVpEs9LJxP0sCEyRURFfQzM/UzjdXu7QIcQ+hmJbE+vpaLUZ327npTrZLqnj/nwS8tG
iYGwjCazbKLJQy34ui7ePy8F0R3iQGXGOmKynYPP+OY55NYv+8G0841Pt5fELbC4DOuytkcVuhdy
UF2IyYQGc9K0qYghUKva0u7T4QP5Upi5YgRdv/QkulBomqzTCvuxYoRYf2O4lS65FXrBOL/IqvHx
8DxfyhmGQRy3Hyk3t6li0UVRVmoijmWN3XBhngCEhN+k+MP9qnCOe0+Gif0zm25vMj+z4/awLGJa
vFYeapZwZ/w7TYi3jgtLcv4drqTKhDwhyiBLQ94pkrxTBM+gXUhrI18xk63QyEJvv9ZU2r/+1+b6
W9qv7okmcGbTy0G9f8gXzh5qBAHhThmlq3LyMLvbJ+Ia2zfFESpj+RShdkApg+EubBZ0Di9DEFrF
CW0Mi+VSAZvzVtlYp7BDLGAWBMp0fdsytxafXiXavM/D4QBAJ5hfTBdINeksdFIQszeJUcfQ/kWt
8IPJY3wnPuymWEjPZqWDrCVXes1BNptLSoo6KilkFkmmAFq1JO3IAqhAa7zstwQIrPgPWUyiwmTN
g0/IrkgTs6oELOVt1DoOJW1atFED9j61aTObL3pqs4+lNu/feqtEJGhBEBJtKl2/OvsfsBGGizl8
Ud6yAkgO7ebNbAt6KIIvG5emUNK3m7fTMQg4qZO7DL2c1eTBjts6oimTpX1MQrBs3X0Zgju4NbUI
rFpw/semE58UNIv/pqUROpZGYKf2dvp9fzgMprI1SH/ujwg8DtPh5tuNOgEtxnSshdIthuCE1N4s
1O711aQVNYINI8hQKEOC85pOprJ6tl41ai1RMyZ0FaEWbraQqdVsbQySMqSG6XCRREEkIu6JJeFe
lUKn9HRwvADWBAb1toH7q1hSzOo1OBauihOrMojHXIo9SHfC4U2byw0xlBVxmYXiMnxhbrfpiGtT
CtHhRMBZK0/oH7BODz9tvvx98/ofKxI/fRh4iRkMWVKnslJJUPt51I904mWNRGFJLuAad9luXX5O
abrMr2nieezHa64a5vZDJC3PimUJDLBwsgCm5QFGJoru1Z8SHmHahSn28N6S2ba6jAXO5Xhgrmyq
i8UD77fUKVti/n/jO11M0JwpSMUNZelyhinq9uMqIG0YPqjkVfTlwleSMqNKeXUX12lhbJrn/NZE
AVjgJ5gWodfI/IeMQWSkTKMZLdip8kgvQrQQkNnG1o0IfArlJfNqG2yp8j7i0+l0GIfjykx1FvoR
tepNm2Lsp9msHS6X4cPN9JTzN2X2QGeIHLbMqnhkRKqd1jKLleoFRDnll6vW/tJlbUzDuTOEgxsu
lKOkgJRo3vIMHI9GhiItT4q0PGxl6BJ+il6y24WxjS6oDIK6Z/LtEiXU3KVgAN+SJ6ZE7VhgMczm
SjEO5bkX0WLYWZFhocy0eXMNDeK+6lh6HlFfncxgFQS7DQ5y1pRsx1Q/KzONxzYbhT/zWO229Ma1
YBk7b9ZMmOJ0mc/LZaZZ26EW62piB2VLOm1xxbLkD0Dkkq0MbamKbVZsJu6xiuVHxNyN7IgzM9BM
eiU4QYC/5rJhRORD9RG2BfOgIRpr44O4o6+X4XyGSJQ2FNLwPOvjAtVeEACz0GqTCIZEDVTT58QK
uRJ5D9bwZPws4dAvpytaP4ibbPCP5PPvRF5dBmUzhVGZkOmoMQlyn2AvXwyWsINbTG2UWc93BUHm
yNemilibgh2WkxSl74oozWPlxdF1wRNVltWGGaxKTcpRTFjMsAgC580Oy0H3GV1bt8T5IeGCAUM0
WfDK7H4IyRWdxCKNYpCxAFLn203THUuFuGkWKsa8S/NgvbsiHPMwU15EgnDJPi9WJswyb1xtujqF
nQYbahRmKSjMxfnXyvnXaj1WLL2kFROUauRzSU6lFE0uzXJsa2YP2kn01/nOADf4MpqtLi5W4d5C
KTddJq+UDptyWX9ZKzpdK3poNYc8SCYoblIeyltWa+JiY7z2cvbz91oGodPafkytHtp45+Giem/s
STIBub7xSnmSZSyZlvRFtrL9Uiy7dC26hT2203G3X6GUO+6jQz4sLzONwZQGHhbYABe9yLoV5QSy
Xq/Z/jDCmyWSm3IpTBXv+b4dLWg+hG5CM42HcqTOp6AIT4yur2pK59WUGUazBQFZKQKSdomBNykX
fEocPDMSgrkikhuo+PTMeon79MuKLSW5x+TXwlmCNzm/zf1WifIwg4XZrwvtTW4gtLWfbld88l8E
lH0jnHOt9JuhkKwr7+Dl1UGZ6aKvRDmnKtrCEZfyCjexMkymdQIBDRZx2CMoC+g25M1Ka3bRNlfE
1MbqHu+kkK5DIV2YNFAYlDXYNbOX+uMPv8LqfwLTxwUJLWLqBy4kDqOOFV/WawTLlIEuzUS/v12m
08WRA1oGa0OmVbZEi5WT4QL/tH9+nm0QXOJ8CpzsdLs8D3bKR+IXLI6bWW3rjx1/4Y8HFiLFmXbH
IrVga0oDOZbencn9beZyTusjQcmVLuHWafoILAyRZ3+97N+Q2T9dZyt1uBASxuRu6j11U7YPAPdO
0Gy490/nU/T2TWDqu+s/UrRtzBMPovTyMXIQl/Fft/1l3P04G4+3izRKq2Atmngkta8InGn+Nr4H
NHfvydOla2eFvLj1709v59NxJmUUyxhw7PA2W83X2y7FV6WtXoQfwPqImv/A8cvp8GX8eZhv7J1T
NwbOP1M8a98y3lsX8uyf5lv5hFb54uJmp1W/sYpzQ+vjBPBucVz5t91Z2RTiWiUegwYGGD/yw7u5
hySrtSGrsaO+l2JrxI4djhdh3h9/+PNwm6b9cPzj4RYwxnTd/Wn8srfBIhjiJp901wsS8udh+vyg
uHURd+RkgrhUGM0SNryWescWodIcRcZlBH/HluQDT7kvJOkWYeG78028j5bWzIZnaVrjYP/dNT9Z
dav8Bjt2FpZOHzs2QiUPnU6HIXDOxP8CaOP8WGycQmfnfnEeXm7+NPtm336H7JWwsY94BD8eTqdA
dT7DX2xO52G7v6ZUnx3EEiX8p/10Psy6HQj/PJyXj+X72Vw6jodPsx2H84YS59ywg2k4o3CFYmnv
Uuq0ZefB0t+6WN59JMUysygIPjIqlrepky2bLDzZOspYa0VPVgj6GN7A/I4iCg5LcxOas/RUc/CM
8oyJ399ul6fbbJdtl4udrjDf7LfZMk493Zo9XZZ/nsn/asCr+IItntX3ZuDZf+KwlYRpUdeMDXBH
xL+ny7h/Of6CY52+TaHWXRbK+3yF5eJtgCtgf5xTGrXKSKNiw26pXQBQBmfyR9gEBtgT4qiiC8ZO
df141rodXSdolDuZ+cBhM14Mif6MxTlLHhyvv2C1zm+n725Q7KqaAS4ilyJutMbeRW4UgkUXGLXM
FECXIZDH+Ddr+Lmuq1AZ+df4q+kv+XYF0kgHEBFtSVexDi16ehdcyaH1l3LimozZ14QiBDbPsNsP
hz/b6rfFxl1RHAPD08VnR8zFAI8l5jLlYObGEoTLQhARCwG3Vs43zO/q+Xn8+ZvvvububZsyAL2M
ZzZgQoQxMRn6HfE7XKU+XfHAvWEZMdzfk4Z7JhjuyvWb+rHk/efhfeWrpRbmz1NiqxNuLs5dVoOu
YlxmjwWQkJrpvtq/rUuBI37CDIXwqmdpkVh0UYTSooxLXUvPCN6/jVMygtLkoeHXr4/O/O+ky9xI
3ksyuGTeOdBLKY42E34kZmwmn0uWS8ot9DbcOaPDQbPKNFHBvICCG8X3ejh4hSltXIfarVNf4WV8
/mfyXS/iX/160+8KxR1/N31LiePI6doAxaLJFafIBN6/2/33bUpJpZbRDY9ZlsjPyTged/WDUMp/
TksOe52POE8tsshELvtkw1KxiPM+FZOo80qQPlx1GBabPq/yM1iQYKFB76y9ZMCr7gRTRAqhJY38
rA/jRoziL8/Ps855KF5bM1dT9dlCpbPaFGvKIPZJil3VDR95UjeUgiZWLclt0iLjTmBgkUV1TjIR
wAy85fWLDvfx9vbL9jp8SfvbLMUS+ns/HA778/RgCKNdCEEteGqiY4mz5BmgQC7p+jthJtXNQowK
4fSHLeeyaQS98uMPP58u59dZ5b18LKOO5/EypANidgg6ZS2qlWkRrl4Swb2Mef8NP5f/nL7RS3cN
+v41lLICn3XAP5KKuxcPOBb9X22A9ou4U5OKqqyIltUVC9WUHjkwEUxZ8y5qlspE/6RQIv9JgdXX
gl69887zpHdehesqmSp4/fZgBHMPwmBmzFp9XeOH1b0kqiKBxjWB/Iap6YXYTxqAlLhMxf5qMfYX
Ku61cfGaUURHphVevDHQ9CNwUwOE3MDsrtzbKuNh/LIqb8QkK5u6MNNGXfXNqa5WDPOFlt8qFmDB
U1bGl7IoLkmDog6PtZRS69CDZpuzEzfF32m/DFQrGbLd/st+SnttPOubhe7xvYGZts8zKUcWzWU4
rwoEtL7Osiemwvm7eZgmkUoBzg7O73B+HZIFASyS2PqiaKNZ9mEgNX0SVS7EezWN8kgCoxYjf3Ff
4/ekb5WJuVi+/bWKumae1UIEroqOJJ0ZVtUUrjeSj037GDkLjBDSSyzxcY5BRCZSx4tiriD4f/i3
0setHNBZUbjwz2QOvZasLSkJl/Rpu1IsWlCt4xPKo6RhTOeBUAClZCI9kqJfaAspd/No4qYTtMV3
0btKici6E7LS0UiZyYX9lha9TSlJmojhUSQNj07IL4n8tKo2o8sVLfmG/ZoPC7CqkJIfcd8zdT9N
/VA+KRnK5R5scC+LgIBbX4pg2VXCAlWj6DkdZhFD+2II/oC64fgyi7DRpFNSofhSLMKMeR4xGZ7y
O0uhJlWy6JO59qwRC6xki+ZpPySDA0UjFD6Jj+x1TSy+bntBDkZeGVD9XKZWmtNKsUm3WVujBEXE
qbIker6sHywVjXw4/8zCJkuTNyh9Xr3wkhU2MtBeJcLBgogpq7QSmPjOykmaXzwWkfT0H0lp92Il
ply2NAIAbqJeiUUScx4/XfpmQTYm5Z3lgmGni8ykbO80qy7y0nxkMvXeFiW53frQx3Q4ndNhDxak
rn1TSEKkzcbJcTxAtmaVS1yVuSTeZA5Z4WPWNcuO9L6fNW1Kh05myqAug8fN1MjahoR1UbM2LMqs
srRF9LlKWkRVKK4fSJ2O68rQK6YUGeKwaCWtOoymyYWIX6xC9SNZodqrBWIrrtBm/lNXKDUo3LcA
pfM9pRBEDWmttD1Lxl3oLbcJ+ZSMl1R5mNAIWUuKHCVt+JJpqWAM+NoytFUFN9xwDjzapWp5IBvD
q4IDlo06H9vkjTWlaLul6mD+mTS+a9EEuqO9KkTAJHwYQv7xh5/H2Rf+62n3IHvx4v02FIdSRYIF
lcCmhk+n22U7KivmvmJQQbGoq3HjeFlhjVZTU0pJVTFMP/y+f7uldShzRsNcdSSbfEk3GDIbuAxD
D3fZZKjMCArBU4nlVvQepS6iNDuwHrglxwpNF6YGKkU2D8+hVZPgSQeRB4iCCGckd5g0KdkLYIgs
yeKMdOFeJfKoajWhI5vKTjRC+Ut8zevqkvPmwfruv6X9Kpb2ZFAoqWT3uHsZEUQkFXrIQqu6VSLd
78lIdyYn5uNefJ7U3ZVQjPDnb+3O6L8tqJ2O6bFugWWS4/9BoL9igX6wOZtmZWzbOFep0HYRsEGT
J42uInlzhVBeo9R3p6sJJdNFfrUfyXqFvBW6CeLRzrRB1EkJHynKwnujUmGWRog1KM5XmXS+SjFW
JsIM/J6EGSjVEuaHrLa6F2ysmJhK6hWWjgzv57v7Xu9kV0sT6qh25bP0Tmuq2Y52jrPNyrX19jvz
385CDa25ZPF9IVqxQrg02s+ZEAriPapVoo/YdA0HpEB0WX9i38+vmZcgQRMxwa7sj88H6I6bn+Dr
/vrbOInIWNbr6fRcYzQvlIwss5Avw2WLVyQlpWWdwFC4U8dpoU62PY6WbtNCPXR3U/JdtsjlpiOD
ceZal1PdulKiIeadJGMfyzLffIXgTJZjsXoBDM7o1ZIpMAoHtxxrAhZjmmG7aKoaowuDm1oIzKJr
pjoRCqlRW8oyJXMKXYhnEKZxo63QX9ZUy5bM98nB/M3zdEeU89S/AdQgE/rh5fd3Sb65RXK/SYRY
ktU+pdQKEMEpSfbDS+HVuMJYVU/e1HoGRKyh/lhhSFdhfXanh1Vc7aeNrKTSjq0QeF+VdlylPotM
qClW8ZzSUZFKwq5ZV7G1LonM2pXDqHasjyEdeWqEuPa9/Xp2y1/Xr90IiFa//W18Xpa9JHGSOtHl
1u3DAIMrJXak2ss7xzZpyfdSaYnswT1kQfA2rhXO3ANtHby4bIEechc5Xt9yUIvBXSl4/M3ao2Yp
2rA0WTibj6SjG3ZQcmkhBVB9YCoV72yEwJTU87mKO4pGMdqlVNCXNV2ZJasiz4EJ87xdJTsX15iS
o91K1LZVteoiJIfeWZXM2jAnLMxE3xWr0/CDRDWEpLNj3ZmPgMFUuYjWEq+xSfJBFrpID9RB2DLU
VBq7E8pQJWSuXRLPiTWCh6W4y8rWdDAtk5rf/vPfkL1tsXAIGpVRV3VPNVIlW8TTTuJONHJXcrSC
L13izhB+FpUod9bHqjLWuhVso/83NYw1s0MW7cSxG1oYTKmrqoVIYiQHuK5qg0VRl01KUZ+HUDUT
x1xIuA0RX5h16qT84VIM5EhWwjdCNbJIcOhgfvegYVrWtdKvo3hZhIGVcrWk/l2tIMyg+6WqwAoh
oPG3b+vUbHrt/k7fFiViKC/L81UCttMayN26FYyMpbJNRiCrSkaRVItwpzVuCYcuLcP8sPqK/5l8
xa1glceChOs9iFb21aRn/A1Gfi9cngyetw41j9m3kC7MM7HMNWlwtJmEnRxHBSmSqCC55KvHOeFO
LKYYQs7tChm90Y5k1OKmUjA9bnq+pdP5Je9g78M+w1W4uCmnrJOKUFTwlUdPO2+kgrI722ddYKhe
lCSVCfZIRpNZTP3RcNbaCp22Uyrf0mft836ps5YCEBFxseqwGxYsWrpqcc/9v9a4qoWSGUq0cyTV
yCLfkqVwoP6R7GtrpLTQqmjnKoO+fRTfeF2glkm60O+Itb6mM+2FoPGitcHJeFNbSw0cSudz0pLi
qPUBw95FN9dJGy6EOyn68bgPnMuNiEp4aVkGkIovNaGEbzTsmkfaQ1h4DKMWhWQ8vCdth0bIZ/oB
xkFiX3NRKqEbKmLnr/Mr2dUv7V3J0E/W0VSZkC5YWuPJKEUlPp8Y5FcaQawUtOp3ERMu2WLcCgBf
SRc3HUth1mGorf/2YBa56aQOsrtyfDtFMsHKpSAelXK2dBGqjPqeGmzxj6RnXAmQl7Eo0irXOJMr
KIQ5A2G5RyqyWYouoojFBad+S8KHsf48UMVtLZUZYbbR/t0aT6vkacy74JRi+d0uK2fq1HmrzF/Q
jKn3R/H7pXCShgm6spKne6A1ZK3RzWp4QyQkMbb+nmyHkElKdWIrweAqBmCKuH3lCuZekZLshcE4
6Rqv31amc5pWNjPUKuy1Ze0sOBZasUuduc6lqTIhcZpOWq8+Eh7jvau8EON5KwqxufMbtoXGnd97
gIRUcKQWJtCki/ZWwf9yT7gLPR2lpoZAxVIyqvsGR2ptGpsh/oe1UEJteTrlXjwMR/I5WXVaFEJv
NcNVexRUrRGrDlemLFZWLtfFYhZPJ1l369561whYlQmDZFX6vi0U2ywBEJ1uM6+Yi4jjcet1COpp
lFzRgJaRodNY/bUY0Ym7mitaMenuQO22axHt7mACUp32ElBovIM2+agbKWQWyxquRA9pcwlzZ+mr
pKP1reCmyCmF1WqvbgSkqoTaS2q9JoxrdmJJQ3raSCsmF+4mUL6ldULJoujhK43cdnKmFYvfLnuN
UrAY5u+TLp+YZl0Vy0xGEVqxTSg23zN5tq2UAFEihOtgL74NwyrZLda0vaDRl07kI1i5EvS8Mrrk
v9a46xwMK0vimq87WD7kLQDYWkIYPopfmIVrXZse/t9Jg7cTR2YKvQRpxmXtnTkUkedZm9KHNk6R
0oldGKdY0+icbpmsV/hXrCt/XTt+981Zk0cKv/i8vsXs0HhXVJXsimqFRK4Cj7gGeq4pKzFgG7dF
03pRTBstw1ZOfgWRq1R+Jnu4J+5znnROFkZtu1zx4617rYjSLc+BfE+6qbXg6kXUehIIiCMJLEdV
ymbR+6PtmJ2AMabU/66r2CsFMLAll317/2Wbf4Ph46CrU157G15l+5AfYe2qlA+RiXHBlIPMAr0p
3/i+cQN+5fRlvDwfTl/xI/cvm9NxvoTjeIHfgfAJ/OYf5n++I12yGb4QeGRRH07sNIvmy9tpunKC
IKLeYcGbaXs5HQ5/eI+uvmQYNfATzNjwP/ExM8puNx7F35IXb03wGhuEc+oSfmD5MyPtnw6jun46
Ioxydne/8cytUuWsi3/zrHfj8wAk1dXmtFpCW1nxIy/HeRf4pFAbb3JlIy39BlWbqBxIa5epEp9g
IvKbV14qv9GHp9M8egXD7XpSjz8Lmf3hOzaPQf2JItxDFf7E+7/xnlr2nsBHtqr/G+6gUO6AXi2L
nvnfMALlW1bfhFy59m5XcGatrlik/Dobib+fjtfB8o38Aw07eBD5xdqfmP8H1/02+QMd7aDIEVSh
MDpk5jvPadP+91lNmX+cf2J/BK/tDzIjtjl7sKBg84Vimt288zB7Y1EauBR7srBnXFa24IV5GZfT
SYn2GioNUYGIYd4aOmYXIIngU/l7K+Hx5FGNxFehLKCjBUDnUN4bEjMv78/XzXE2g8ad8vtZ7BTg
Z4dpmi948zzsD7ObvDlDTf3MTy+jQqwkYuCBNmwlylcFfQUoiObhP31Aodx4AYNO2T19y0zm+0uc
rh8HjUzLDhGPwbiOW4zGKt+xDdd+6fboZ6N9tuYG5fKtSjCQZ94CtZ9/vcy+jnJqOX1L9v0sUGZ/
/nn+4c1t0hZeMbaFlcNUKSBgn439CP9583V8+rw3b9+nKmZOmF+o8jB6ehhowJv1Pd2e4U53890e
d+MF6tJdzdX+Tect9lx7/KN2rDr/3+hxEc2St6/7w27+DWV9fcB1lvEj65uuw3XF8pgcgK0XtlLB
LggImWsZjjMlzCqOHMtxZpOIBDUrZS8cZERuTU0Ii6B37YCGqGJNJMUPEf7i/xhB7Cym7ez9vYyz
ZTp+/ePpXSZDbM+MMOhGwljN5nbeDTPvCp8XGckcBNgxF+l5yotu6ec7eq34/426C2TW2d+R6fVF
KAOVU/n1dIELOwwQRpIJVjGCxvs1rJneI106S+hYEsmP+1CpmANGDt583V9fDdecZy9a3gKJF+Y5
iRJBpkN3hcBgfClY1WcOV/4+C9dRGjE1TJvDfrZHkJA3G+ivoAlsfr3T/HBn0wI8CjkOwNK/OQR2
Zj3uf+SEfhV+txvHs1Wnm/HtaZwN3Z05AfgBs41pczxtDsPHbDDNr3H/8jJeptkeVX67Csc6WSME
f3XzNDOvMYyArAlNmoC4QrHMY0EkccHa2tpYVYYxbOzBeOFN1re9T2WBrEzFWPrt/RL3b2/jbg8F
kKal2aQW/nUbLx/aiutYWO5b7kzll2jwPvUr2olQIAeeS55l37xuldcWQ1oLnTMi5DXi0YYFdBfc
D1h7H/5z/3wZ3lQmKWKxuW9+gup1lndhNPyt0xv+76EaGVX2uDOp/SgpuLbOFmCVNthOweu/z5oD
QnLyp7YRsQyL20FCb66n2YlL/XRHPx3GYc2HP4FgnIU3RH3/ch3f4j4+UrJcUrrj6IR5UgDw9ffZ
+TsY0mjCbLaXYVJWWRHtxVApe8I/HG9vULkI5lE06C/SbntGm8q/g0L+Sdl2Q59jjqBbLu0vx+v4
Ihi85vbpCtkL+AIRXW/q6efT5wsuyJPnc5fXk9eXFSGL9Evif73NT+oCrKJssqFNtr6QAy0/W7B+
AMNI3KE1/cqwbBMsKyjamk2Sy+x0bmqFAN2TYdVSOyRlIzltJKgu83Un+GZmLt9vNb6xXQclgraA
+53T3PJ7DAR5PTU7GIqszbINZcBs3UPO49P48t01JQp6uqIwO6k8skhGQmGk6FKXd1gqd0hn1oIr
0fYxcTWcz7MPlpJWTO5Refjz7fff0by1i5H30tL3Oaiw3D3bxW4qZTcd7QYeVksdkOZFyb9us7ML
kTFd0e9EwZpaf0c/Dg5yX0QOcn/cX/fDYVaR2kE2oWiuSAFhVUOa77rFi+J9oMC5uJbtYRzAB96t
W1VJ22O5ZlyVKTmxgxB2VrJGvAhzzUyptb6C+cX3K01//PhtePnrbJNsDqftcMB/mh/L7KsJKURD
tgqlmXn6pgokfXX0MZrX6XfKq5kURdjGnoRMd5FQVQjXIeEudsGrXm3ZBrqa98uCBFIeDD1XHIVu
A2YQ3Jtex3Hmr5m19hB8mK3A3Wi4Yr7IvaIJ+uwxoyQsWVTEJPEuM7edRAfz9PQ8u3i3425i8l1Z
Zxvqbyqxhu3b5RhPdT8NT4fRWMbwX/oERow4aj8nR8ugQNN8fJjN6uk8CGFY83lFn1tBph8iVDRY
kK30QUYtO0b7IUWbt4KY+k3t9zRKmoQkGtw1LxRXPstjCtOMclsn5lv6YYau70CWNgNufHMxMEsp
uUPPGAJpPZOpyU/pqUDRVp1FRXzCByAaLOHAapL1NfRZHpo37dLJmjXL7IrsIcT2nFpMkzPrDf4m
7yMKNGkEFiTKwR6086HMEg4qa7R0GWFhdGCGKqzFFBvVkYP1coZIJcVUVf3YZ9ENKLqIV/coL3eh
4soYv6xzS6sy3GhN0g+spcQpsY9p2uZ8GIXDwhykLJMRvYznwC/zFZCfMFXDZa9N3hxOww7NnPFy
OV024xcwMqI5UtO7nMU6GSyt7eF0HOdjutyOm2k8PMtkWP0jpKNcMs+QGaaPownUKQTagIAFoLxf
h0KhZ8FUODtOweMfY6hQOQ4KybCMoCVyGcf3cXtD906mwGK6lOiwFOZt4K083Z6eDmDgyWRYiVhm
srOBeNic321AHXTZu8KCBbMygopfRUGuscq6PO44frw9nQ4+SPadSzqJFnJP1gq7eQz77LWfr9rY
z+MTV78rG+Y1zf9vBNdgD2Nznd2E0/PzrB2fx9n2OGqRGxKhLJG3dOAaJeqSMR8K/pnaYEm4rIgE
UHwFW4eiwu4dSqmgAm9+i6+X03H/u7kWRfAxx4yalFFdT+MLOi+KwmZrgmEQLXHdy2FUTH36DjLs
tjV9eaaFoqVZEAI0dpWVNsn3dj6M72Cagr7GVr39836biNY0jDs7FCvmGG7TaC3cyzi7bduNT72D
hBhT8bZsEbKzxRe2edpXhyvqu4058LAqNRdrfpxFiwteoLuCXwqNYdh76H1FCZM0urGad6FF0lp+
u2DJD9yZDa4nTKu2i0WkfUGGsX4V1u1ZZCfzRzscrn8+fJxf4VA0mVAKhgez6tzRvp12ngO1911m
4YIEYwbCESlbpgh1gfcM0RcY3wG7EtSAqbxyPiLqLOW8qvDe+tjyrMQI9iyqhKoKRXssSDc7rqkI
HbNwqU7FZQ9A4PssQspYZ48t50MC0QH2bV4Qf5iF9t/GCedipqjWVcinbTwQPL6drx92mTOfnA4Q
ZVBlVs0eEtgOZVSG5op0opPDoV11dWeW//F0OozDURHkVczbvVOz479us8t0/dCeVCWcvhRWWnYj
/3g7buG/TMeZmphUvsvDJRIVVYztLi9PDjEg5eoyV39eRF8no3N3MI6KX1SGPmyK+KLFSiFMLBMC
KtmOAoTGhaENmpwrYnGr59nA3cCXLpakiO42DzWbERzPIwK2QHp2f8yVr7OYTtVOPt7PopxSHku2
Ojsi4bF3vXDEYRpN4cw6FjR2lvY6W7Mi2QIo5E0fDftD/SZI5z+O0CWgyeiFEZ/iR9ajp5xyG8QU
mrhd3ip2ec7SRJBY6dtwm4q3VQi62m0oZf+W0cSM1dDLk7VBb82YqYWgo3jArO1POWIWFux8XGJ6
2x82b+P19bSbROXetULgiWFe2A+31l742FzeFce/CRx/cMN899qkSYu6FpIBP51mAwUD2bOV8f1v
P+vF0EZ25TFGvg4vm+0ArsJ4nLABdGOrmMTabHNrvVBUQZny9FMt6yB2RP3k34vztY2Y+IZaiWXn
sMLgXWggL/KGm7OShCnysELkPgLr2xpkayKLXfrSKkwZhMzJ7DyWHJYWmRpNQFA+7ze7m0monoad
onYK4UGE6cvZBdMygmUfOl95jMoDkrnKg5KisozW9azwOYouDN13VJ9l7WYq4fvvaXO8SY115mWw
w6qMPDNeIhSHIkI+fsb+fXbTL6fP0ZgfBEvc3Gd4tKAgy9z5nUQBq0yuEA3aZFkhUXKgJabLHLvC
7yiZtdgUsrikjgiZP+4JPe8PB0tmEumURAcUYWGj65yOJZE6pJootfhHFT8knYyD1DVgRdgrHCeT
2JgbgmtWAn800sbEHTWMRBkncZxdsHh1PFJoGQVUrQLj6GQc7hGQ6TGL6RZymUB2MHLRx4806HqM
dtU5OBfXwhgGgptF00YZTzwS9gIwIwuKCwj8frI1jbAO/Af4m83r/n0/P4b9+ywus6z/w3ukUhLa
DvzoqMa6gEYYIQ0QJM+zgIVoBS7wPOzAC5eJuZRHE4S/hqfZtQYZBBWdu83utL2ZxmXszHsa4qxk
l1eKy9ue5lVNGL4CMbfJ8s2TQqj2hFi1CBJKt9saCg0tpSK3W9jc7BGt2l9BREFpFlZrunaEbzqz
ytNkhjJjC+qDAWCiw8wgldAgauj1tMYsvIOQzTqFzVpak3WQDPvbSn+khn0mmHqhxrT4PrGNwJUn
VxbCsPx3uA0pOila3e/UdM/NpuH288sFgndmocE9xQuSzVp7T5mhyXvK19eZ5surq8BH0q+3F0v2
XaZrq26QLjmeKl3o7Ewtt2RHW/uigG/ndXO6eXi6Ba2VHatp9bjuD0KHo6VVES0q9VT3TTyVPlW6
LQZ2yoWFSQ4K7cNmhR2tsAlXCH1d84GN40zm+qZxTUbXQHGJ1QLe0ChpHQT69LiANwdThpvqH5Gi
5ljoaFkgUGdYznabQr24KhAJFVvfompcXiC9KGwEztvuTgqY1Wnvh1id1etyEnLroaVAV89UqXpO
0CF72e+SsqgkzsQCzOpucV6qJVdZiKtkOlq7sYr2ieHZ7kF+ULmhplvoQp3/qCI0T6laLcAmTXbV
gXC1vvZjNo0hRFIaQbwYl+3fXqLz+qbbGYuIck3q1Ey2Ypy9DWTXH2GbAAV8gPg1Zh61Q2NPoQ2f
5BqdigU3rndV+RXG01TH+o1WlDlcEnXo9bNXYqubdqwh0ZTpgQMwr1FYIgkWTOHXj5lRhkYRqj1o
ajRBluv+c+gG4BxBzOoWUsCw7fJYXxB8+d1x+3q6lOKXbRVrPIEvf71Arv26Hyf5Z8N2JNs/Ch//
coSYirLgMoh4VO3iy09Q0qr8cB2UXNaxVSs/3sXiW/D1n8bt6WKT+OKJNWHMsPRfY/L7F8R/Qxr/
4WE+5KVkYcKCThDzpvIJsMJoLNFhJwAtWeoOWHgZ9UZD337/p+9++07+MGwwspF3YlD5Q5a2qny6
YZp9/sOPJ6H4zhx2+CG7aMPY8od1GKGlF/HD8/Ms6ZQX0YXNZuZ05peMPClfCMtbNcFKPZal+It9
mIypF5tUeLGUONk8I3mXXRUNxvvzUX6zvWMC6n6f8BM3SvoFqzYkQqxuyGX6fCRlsiFKrOZPEWIp
TSbDgo9lnmYZTVaFZT+OFK/LlFiXYg7GYg7pBNzSdrhcT384jkagf90fhaZ8m6zhY9cxxORLLI2y
Uz7NFt3yNno4IWLgfA6QIlM+p4pKFNA2Dn3Y70btR4sAQNl6Ak+361UrAi2jOJ3AgE8nLZNVxT7b
nt6eTup3bGQEMnBO6YhZzCLEqMl6KqU8llK0iBYKF26X8377WTuqkkp4sXDB6o7hCcyms7JrqrmF
vEpr83eBq2Ze3i+bHSbcP2Zn/jjKwE8VYTQxHPz5c1tM5qi4BnmZEEPxoxLIe0KwnIVZeD5Nqvtt
6FfhQvOwiN4egXUr5JyUIVYzYMAMi7DNcp9Ouw9mvsqrKdsYjJt3ZM5W9/roglsXwoqkVlfWIQ6g
eUjQMHQ4nL7abnponZrA2t7tL540gOnIayZsO4ZsDSgj2lq64CMbIKBrPT3HLli5xjZ2jW/z/2h/
PoyL85q0KyxiqJELvv8mRsvCFbrSmuAiEcJJbNewKyRC2A1RuRU+o1/geSTFDlURw61zKC/m8sHN
3B+H66geGXtCKE9yu6RgPcrJEANZAC4CIvOu2IIjleOpQ9hMs63jyfYD4s0hsI+5MI9M4X5JoRwF
FDXGiHbODHeQWtjiEkw5pDr248wlNjGKzfl1mDTwvLKJSZjUw/smho/iIpo0GLRnZYUQsyjZFHGs
QiNUbIj8a5yYxyAqAz564LrvT+p/XDWcsR9n223/HF8ORFksEFONqF3wR8er6cDU2n6G4MszZH9n
1X49vVyGs1AXjRQbomiA26xxcLtMEvICflf676C+Ms8M85hOucnioW9gXSIJawObn/ZWydvpeJK7
Q/GnW/oO23lcOdVwnI0i/fw6+rTC5JB9OcPs8k4f8nc17Xb+975z4HhQliJ/VfmvMEZmfut23G+x
l/h1ABQxSL6eVCgPPKuMFt5RNdT28nG+ngzj3J6uB5PQukwDPKfrz7OVKMVQa+PB2CZbsC/t8qbX
YVPUjfRRQx/lHbVSzR/VeSF95LydMsikDpfLLAoMQp7pBDDYTBIV17xf2qhYZo/z68zh/98Idt84
M/9N27Lzzcugine4vJiHPMufL/PDkcqwayNtHQHKaAyzebN92m6+Xk7Hl81nWMthmCaRCK2C97TN
Z1h2lbj0jD5q/Uevb8PWbnw4vJwus0h9kyhURXB1tpZoZpYJ+OXzdso3X/L/W2/2b2im/vfXzxsM
d8CGRHaoQpoZrWp8RzLKx1XYJG7lMfyuXQI0vswS5TaKR1nnsfu439PLeITathEvBxXPYRwgkLz5
fbyc5uubZfhoh8GLe2Xnh5J8/tPcwstW3CKtj8XbHb+MR3zAs4lm/tPkCm0iTGqOL2MnPu94psk2
bEmKeyFuYpFxEBynYTxvZiW9xwZE21cjHr/6HPK+WG5R3BWdE8tRIx+tkGSupw2+zhDdkBaSZsOS
sSHraZi//fwV+eVtOO7Pt4Pcn1Ebc4SLuCI4CSOkNvP5igfQx4QbXmp6/2UTXEPJTo8zvnh8bO2Z
Ihgm8Cq+gIKV5UGj8hWegj2MQXnVJOmxXbAKDnPWTqvZqghPteBXu3IxruC2DDJvIK1z8RRa4Y06
bjxf9l8Sl1LTpRiEPStpNqKWLYmFGDSmP/u1nFwzZqozM1m4ItOgEDVU08X0C4hzu+sV4pzEEvNr
SL3qb6jMYyryEfOgDM2DKjxB/5aOgLb7jiCwWE+uXWPNDqVpTPNpUvGKR1zHRNWd8F/J2Q2dF1q1
5ZJNtX3RUWEMrY3e1PKkxJvLYhYRCjAmdGzTnCbJ2jvcGEcnfbhV9KEvRLiFL5eha2Ib0e0R8XqY
pu9bhAO39SAr9tLHFDNTJZuvJyxWlq6XGcqFfwmC3SIeBokwViDmiKw5gqKOacUlX4iH0EmKHX4/
fYhFE/567kRwKf5iFpp7TfiLFkhGt6mKNhRCDXf1NpfZsz69aWK085wMq2F4FzEKCKEh06k8HTbt
K0oHZzTLhEpaEJ2kJSRYz533WOCzujMJSoNTZBDQbcJtZubt6Ta7b7aR3KH1S+Dqecng+Vl9HIzx
+zzxWj0FHBnpMDBpE2p0oFw2/hEhNinU+OgH/MOV47+Mf4XenB9ProXrjx9/2cmEGHY8poOt9t5D
6Ho4jqfbxKL+WIOngCybpXF4fy/W8OifLuPwOQw4yufOZgxQ5eQRu59+ef5VrF3Cj5smvLTWAbIW
f8iJE8xynkwfHbR1SD0nOWukYhY7I2Lw9bOsVGjksSafCA1tHVnY+9IsafjN5AqRKmwOr5ZEoFRo
B0QyhUgTEsnFlWhEyvBYS+lIKoVGkTgSR0M5EYY7zDRYhIayF9bkxNuSpvH6qxVBypMpwqEEbA9Q
BTo/ut1wHVY+HDacY/n+LrcDoNNvEN9cQTQ3dKrYaBR2KAD/OxyVV8im3GDtgdXpNttHlLSHzEYB
9B66aBZPkFWDOT2TIaGcLc2LwO6WNmena3QB5BVQG0yv81UptPjMlBpNDpe0ut4us3y8wBxWe9tY
qqksK49Nw4B+H7uxzdttgpL16/ySNvO97yF3MGvA69cTHp2mHOjcMY9RtVRRysoLFQK0T44tunwP
w5fTXlEtDRu/QCE7SXNuIEmtcGMvKzy3qMRy2KZyn8HaWpBvbNIcPiCDlXyuTXE3FwKSEf5R7cHD
uuy1E27Cx2WvH7KENi1o3JfERTd1zDYxAPfJFSzmqNhXMY233cmEpAEABhXBedD0PZ8WEhXAVk5g
hezX/e70VRMZ7FyAWm7JmQEUaWuNzathNePsrT9gsbHpViybd6/iEnzXkuEH/+gaHi84KuhwmjSU
GHPA9I5AmLnZQ9dZ6mwBot/kQ5L2ZxsbqsKfz+Hr8KExW5cgkLxbMspYpI7djekOOKK/qZmszJIu
evNnFdWYCg32hFtWU+eUpK8oU0iwx1ejUZctiGArh4TMZ2iUMS1wb4qlWIx2A6I7z+7ovA2Xlz10
Ax0Ow/zGNVrl3XN27Da8TfaTYWdAfvEv44lITJuaUD2aJMyw8rPVNqjH31xBMdJ4GnabG5QSHD5w
AhYCKcW5qsE2a2tD1sHrMAw1C+ObGaMFwYOXD4VK7anw3FC40fky5/UO0kw7Q6ij5cB1VFFCW8D8
PChUGk+FFb6uOXfzee8/R/s4t7LrCfxwE9zUTrSiHy+8eltuAf5diAkZKq2ngo+tcjPeVpOxLJQR
C9nmAsuRWC86X6+vEjqZzn+IIz4Pk2ufwF+7YJns/DfDAfohEiNginwxAqa16lkk7Du2VlEvw/HY
LmpDpgh+97rfnfcba+sSmq6xUubf3I1f9vMbOu/fBVaqKCyVQ0oS/yh9edzZ/ZDtqgOgpxvgAAzb
z/BqLK7oRi6lA4FBjR4IvZK7ikNO0s9EtCNalz8hUmd9hTXi59sRXOZoCLjZlgdhBZI/n2eIJM+X
MxzMGZnwk3hSLZ1UhkX8NasiM92egOIhWYZorHgSPDKNa723M00l2O3JrM2UM2yG7Wyb26TLxl2S
uOTc/14NNlxtI+tP5nRNqQegxVncMZsyxgkB6EuAFJquJxFWIGcQCZjdscmdr6/764iFN7ZeczZc
7Y+KpDoGsuGFCn2HJZK2lAzPRyTEEAYobG+H06XXwXfkAznX0wu4Xad5R/vZ6s5sjZ+0AoJ9YNcM
v4sYZThaew+Idptn6eX0nrXBN8aCn6yWyEgUCKoBe9cLOzkQncenw2n7ecVxMAQLst1jW9kHMk4i
R+geOVY+aOTK3QqCBI3BgDhDrpHlU29OxhLAJow6RmDtvbPdUTmTb7IzRdArXgJDUqmZbrnbE4pN
CLZKlPrwcIoYodnfweYOqT6vN1flMTsIJTOQ4Olt0bNklizUSz5wNAz1howw87GRmWkS7HApoigd
7mwLi4dC79M5f3jbV/s/vh5oFKeIIhebHQFfuoJ68csqHDVS+y9RG4mfNbEIM3y2mDKuwkjFWq74
opfElPWEaI65jd4FC7J5Lh3PNDo2I7omkQSftdTaQeD8TNMU6rtYta8nnnX1AcbgKpqropqLHMPF
NK7rfLjNvplxrZyZAPFR/GtR0jIAJG545e/5ZjWRvA8kWsH6FiGuYPa0fkll8HxtiyB7e2BqiFKo
KEJJbXjFLAGAQHBR69fC5H5rIMec2Wul0RPG0ckUVW2hyhkOC9subDGAf7TxMxvFw4CeN/xEu5HR
pkj7l9nxN+W6+E8OHVR5JwzuGJsaKptiNN8HAl0kwfDoMc7ScRJoQLrMtPHMRUINA6NjTRWGEI5F
Ph0mK9a3sxeoboxBakJGoGxqRsz2rjzvRcxBNqktN2FFF1c0FKDWQYZNZRNWMCZYdsFWDEvhlObp
Io7ZZMCFeYsPrq3q+9ZSZ4pYguDF4H+L+ZKVhjtIKtujg4gL2ENtg4ZfnXtktN+0ef3qpiiLLrgn
hYqwd4TsLFQ7lZ0TDP4bkW7h6fIEyNcYQVmsIl6fJ8QH2UcJJZZUhVu1Ih6MGHM7iPazEZtACn/N
qGIy/KPnHob6aUGf0j4Qa8rcmQiXUniLASs60Xqxlvw4ix+LUqT+eEO/jf1wtnzDBx+82NWIWHWC
wh9NFyvCPxCMb96HR0oWKZREIfPVCLbxyvjg6gLoCNmgHmuEqm+m8FK4QEMKa7IsJzEP2pASbzCj
U8QeHptq9G2AyEni77e0eMIEwnM7PZtYwKj5xoW3UZAL4F1ZJBkee/DT182NKMUchTeCzYaAJ7tW
IQixRe12OjrfFssua4WYFYDHkx84L1AlnmNw5lGa4i5zdvGImWOPbQTc3vTbadmTz+hzinLTriCo
49+SuB52UD2KRxsgNIg9pn6FTA7zLJzFcdEAnwjTKoei/rwp+Psys881ICUCr4GEbvi1WUZCFwOR
JgTWyu+JsK7CrQhUDKTqO5QZvHvbWKlupWLoWd7kup1xfOOqs8wpNpl3+Edz//PqRPrMh3CqwFu1
Z3HePSf20MZAzoxze7TdqocPLrwTMFkETWQTwhS+tCr9Loo5LcKYPH4phi0rCluCqV9bW39+aS5q
aXpl4eVjK6h5g4oVkJEvUwXZWgQnZPFWa2/apvL5F3QMsjJG0xriMMJCR/9rYpiHbC+pn2fobMwi
YFsadjuLwKxErkzSJMQ/sxvBqdl2Gx6Gq9xB+v/trO2MoVgVWEvhJiwdIdW2P/odqvtjEHYIX1j5
A9psh+3ruDEFK/Iy+juOTV65TGwBmmZ40pRhQNmNftUMBc/ogGK5lv3bi/w5Pb35WZT4Zx2M2SyT
zFYzcUTByeCGk9faxlDyfPjWj/xMLoYBvhl3y8JmmGdNhyITYKCU1FxhdrE/qhm2zHcIcChJJpkn
iPf+6zbabDOpGjHNVfhoPeagEBmrigFrbKbPaKWJZEpGxpt4hj+u6gjYnKyxqgsrrI0rrR1o4dUd
Lh1EbubGjcFJWBmuRfNyMs4XkxFNCGR+IcfTUY5O5t7HqLqg0thmBHEFmB+YH7+cEvRWJJ+KuNiH
bu/lZPAZiBtM6BjxtUxTssjzJBOrGJyRD7pqqAyFN1zcuL5MPApFrHvL0zFEwdnJBhLET/sA1Kho
l3AOiuFV+LRMOOabpXfMVuTP69ioz+VjQrNf4SfK0TP1uuQEeQ1sSqepx7fu/j3ajTHiUPIwY0qN
9VJmFsV5fW/krokLZp4KFmP0NK4YF2aDEj4LviIMnRek6fAhohHmRr4OBzs80Owb8JKvw+WqlDIE
8qzOfBHrbAJeNkuCCupU+IZ6d5UYC5tXYrKa8vfEj+AweX8J1cTkZuOaxIemPDrftA9tJOxpmiI1
tEmctB5lEjk1sBQNoZRxQ9yUaA6H/ctRjId0Xk6E4FMjDNIKTHF9Szl1xjDo2v3RyRhr29s1Ta9C
gKyje8qC+MriezXD1JHxmIXJLYv7YyqLDyecfMDwT6WzZivKqX0Fv7OJHV6ao82i73z7bpUFUtFS
e4HiKaMSEizU0K11/tna43Hu4bNW29GRWsmCnsnDOHwZH7j6gpaCQN+5TfHYuCDjyOAS5eMmTkIg
ZGeBHA1a02qOzEM67YIjE5uir1E0Vvx8p8tWc7o7stXDk3WfA5TvbMwA0oO4+p4IUE+CfAqbHfQX
CIqsI7suC+CfXYPaMaCY2Brr5evQJ66Xksd61PoJMxkIcZ7OW0eHAYOQCf5f7CcLqtKdUvVqlgNZ
8PJsuSq6I9cRnXREumhVqTYbJPKpkXxkhoT9cK3O78jrQbO0pSD63cGl+Jv4C6GnGi5l75SISKWN
7co+/NV3yaQQlTDcKzIjIiUiTbiSJpI6TQmMMiaYvUg9o5GgLyKnt8EwpG30xFHSWK4kNjG4/Yln
X0iEulB8FAk6pUSH2IRFvvduBJkYeenIvc4CpBnh7YgMxhp+sWbFKXL4ZfGRlPSVm47M4xwYW8Bc
mVhFQaY1m33irQ5jEp9uW+fQgjTXK1gpclJjWsLiZX0dn17MB/hP66LSnYeeWqgHQyORw+98Vzg+
/sbPSnNfy5mQzuMHVVmAeWw+nU354XB+HcRFM5mTG9TvyCP9FkeojNU2YAn6eHk6DUKjR+VED143
8qs1XX5nM96O44sBBPx9XtJufBcTc5RWDBDRXEAIHRX8bn/cXkxDwkGN3Zc+f71EnTTzjSXLDj4k
/MwaY+BVS+5XIk0JnxMQI6vWs4lapCF+2TCcS9ZzBpXk5jqxov0NpziKREq2bazJt+0B8DBQP/Ez
FakwyE6KR/9ubHXosBA/bGMwlFKJNcuSUfG/WnNe+noHuJ4Wh5tmrnPhxfvctih8dpEHcCswaPT7
X0QW7EkqYKIXRXDmnufn/dVQMAXsvoQ9FSHoPbJK5Ts9ax6UC9eHcbHdOM321W4QpEhP1lsRAON4
EWCD2aYtyTY/LOJmYoVoEx8hGFvsy+kaOG7GbBXXXMaqum0ptC/QDXo0jnbx4mJzVhqHf1SRg5i+
8SRY2TUqMgeDeuewBqciksvC2ls/BWtxqNifHDltsYiOanqbvqDWab7AgB/u/guRb1ldd4vGpe0m
vJzOwwvkYO2BPp3eXR3PYvaTdBY9YwWWiYHT4Mvbfcz73283JuUrngArJ64QpaZdWsDeocdz9X1G
Siy9J7982cRw/xCWuld8Ag1rSmDYrKZIbc9YU+f7msowSzjLspbX9sADbWOFpg+wYskqVSlirD7G
afVrvBu2yl+jyQCuvVciBTa5nbZgPx4m/1pmLX+6vgKc67y86ys0wYkXwh93g9WUFvv2iwtG4rs+
HakZ7eToi1vmrQwYLShYgo4iysGBiptm0oybBDGWwaXeSSbx1vPgOKtap3u6XVVqRUyzaaZj7zHZ
jDzB4JPIu86rTpX49BRoLAInxtPc7Z+fGeEpYVsUvIzbzEhWlPbaV8GWaEoCZUFwOE0PqevqrreC
LiIhkWvW/mVq7PgcYrtFJp7jihnAwKYbQLp/EffP2qs6rPju/o0fShgbtKkKrePctptMtyf3xk9b
IKNkixzkce5PpuUOiWuvvk3QfbXbbwfJyfC1uQhmRukr2OwNC3thdpObbI7BTRGrj4EsFpRonaAq
YTNcN7Mpuhm/YImPlzmy4VC7mAeGkcwwFrPHz+OHiXvIU5JrX8KPEG3oBBUsYQqNQTDZ2PQC2CMT
wR8Zui/+4SzZxfdeJJi9ilBw7Jha8g2ITMoV8GXaHkyQ3/0ibGhYV3n9vn7chOuAt1qHfw++Yfp8
GJgeN5vE8xGhBdk5Y67dxiUgTIXhYivhtGdBfb0FJhdtdvEJHFbUQ8+2tPbrZa8D91SeofOgysbk
TMbrXQvPyixfEcR7m9whRx2eTQ6cqu0KcV017bJpaaiSF0fXy+3tzExg84hFchk7NO+fO2Z+Oow4
WNHGYDBWeGTMrvYtY8iNzSxseuor9nV5LvULpUIylTyswCwcJJCNJU7lTi+DyCjNVi2LkpcrOZ5U
XkVarIqrK2xLlh2edHu7b/Cyfw0q4jqL48PmIiJCdAEcRCQMfwSQHpyUImJTuG68OjCmXIXYKgqE
SpF3PnN2vyPpe0Kl4DihNt7lK9zXrIQWgggqtXYewbtWztiyE+6OzMNHVkWIF0XHAvvLHGvilBig
CStEfN1fr/Pnm0cvvQ7WVKicox1ORnQqH3V8GU9v4/UCWNFnRmaY5vd3FUkRvAjzfW9Hbj8+uss2
5Cxb/7GM2N9V/GFPh8G4kGO9rWdcDNshOHMdLZcyIXYLY6QIntbrV+rU6+IUTVxXokK9uti44DpW
7qi4GIWYB2m9qsXcKtbmFgRJ5i/jjvLX11lGpnrMW3pcnTNx7ASR6FIR50SiVLG7QDVcKnchLoeN
MkSUmVZYjelCgfpfKWTcemsZvUPMJ2dxai7JrV1Dy9sE8bAStFTGZU2YbU72t/AGlGXlGaOEerKS
7s8yi0SJtWLWyLgZ7zMQYFKgHMMOR9YZpKJmTzOyB2+3J1mOFXjQqbQIrC0LLdSkVsuswKD1g753
qdREwL3ywiW3ZbFtUA5FsD9GqMKC8c1hktRA6CTrCEuGS9N74e1HUq1KbFb0hrEFOicIRrlg0lRh
3hWfqGfL1kqoJlRaahuiCUjEAPOY+J8N6sqdor1v8IQNBA2KvuLWzhUTadTUbkr1vmxFNhVn8q56
52pFDadFiX/UAjUTxk1QY42wEGAvbDUco5aITOU0OQmpUJX5/Yq2w/HLMBW71KKozRcxYBt5SeSc
TPLqWlpd7m1I/vDMHHZPHoBZIf33/AxPZhSDojkNd3GdxG4igAnkaD0HNNMFw1OtL7KM71N3n3Ma
0iIzGWd7+eypCxxBRu+uEtvEAID8mpJTOc0nqlnPnMtb+8KLoLkJ58IpZb95WISel8UKVYDtQfa9
Q0TedZ75OY+SXCHBUiMsRFWx3DHkmXi2eGaXpw+DRQnS9rjQDixCPpm+GFm+F+RLdwiuaF1MW55i
q9w39yklUZyTgsNiqCYcn+xjBuL3VRDEKPJYPZZdnYUle92DiwZpEBnDoyJvIw9Gg7oYBKvDhpJe
qtEH/+r0VVLp4C+4GZYOcqtnodjj+LKxRSGMiy1QApV9+8IERV5V9GYIgLYNAymYRselD9vteMCx
FDv2O3r9RuVzRHUR9DYREJyGQwPf11l4Fov1ER9o0oHixXVhdFqVxXtgUMwnDq2kJRVYD2Z9328p
6sZLqGiLbASE9WJeZprTGjLWLcRlkSqbVQAE5XAM/ASq4jasOfWcTqsw4efwvIbb1QKkmOozGzBS
ido0cB1CrPNCDeBYeX8FO3YvCGAhoF5msXyYRdjZ4oYz+aKX6OfUeYILM00sxlTydviKAyuJRO3D
KbMGZsITs3ZHm+bXDfucRHgdlnksBFcQT5JJ8eukGnKP8ri5f0/yPRTEroiZU/LSUhIckFstZJ6n
zdW1L/zzXzvzlDhMfo09E2Fwd1ZYmvm6qXur8lC8kOvkwwgIz8s2ZsF8ZG7Kw3tbdNulgvg56bzF
1S8u6dHn50z5YjFb83RDtDpzWBdIlrjcJCSJbA+J+TFgXnz57n8B5udyWfB3+pVV7Moo4cZOmEyP
lKFW+XwwMneLf9RhqDV5MowAAdy7sP7maXwdvuxPNx8f2U94XL56B/tBmS6WuT6np8NmwsdklQGJ
gtnwIXysLjLyhh0FYfDFnqZ8OUySIckl72FZIW3XV9erDF2FsjtoNfIXpeTCcWW0OwzpN2HnQpju
17MyFDhZGFkr7UpcDtO3uCmHxvLNjCPfKz3dqvc9M36v5gY+HhYIRSg5eUX7iu0zcUJFTryYxhYT
pdm2LkIbMWFrKBXzOUEb+21ZVKWTOXu00E63KxZLiqaCt5/lKyGhUXXY2NfzxpW00VHUgUHqMAOs
0oFJCeusPrJrWXPZQibLLNCEAsmela0WjJ4MVDPcFOuAbKkm80GnpZ29Rq/noVWchY/LC41/xznJ
y5jtIDkXXnUrXkZ7x8lKYwEsPWwuWBMyzKsoNuNhsEo6yCyJDfXkMCwIsaDGtMFwgdiyQBFSBnJt
EXTAqQ7h1BaRDYZXjgIHzAaKzYrhhZoFTLFQKfcoXQay7Drv2cZnXOs5/y/iV5d7zAvoQgH3yfUp
eFwiQ0H8PKfPMzNh1s6FhSkhJhZgCnt3l+GruA6CVas6M3QVU0fMu8RPXMhJbpDJSxINWRBWO45f
Q5gk57bK+E8lPessGAnn0Z9Ajur6piQHLuzvdiUHT+P16zgedbTgvCS/KAsCOhxZdwqRx9TQQElW
U3hODLP3etLj5CVZE1mAbcVb8iOdsuYdoGxgWYndaatfLYGmLaAIIj9hTawkvTZEl2iEzsd/Y8WE
h+L6kEN7wZTZJbqQSmpXYY4RW6dP82i973jpRIkFIy4jDOyCMWvW5k69sSLan3T3xvR+zbwkeyIL
gonBQ8cXqrAxNQvlTWtb+xyagwGnSO6GGpVYF621CJMfN7EuJ0qX2cjv0uZKdoB14XPPVKlRyMvL
Y688AJo0iijBgjmXhIjknN+jMFhUGuhof8aBVfKy6N6ZCRIhdlwhhLoYT9891xQnkijD/7eDWz1e
QBLDPC/JCM8sWFl/34/9sa6rEqj1rIcwo8kf1PIUZo/lrdUxFjVzEBNLKDP2usjqWozxSDIP6wRE
wNzclj9ub9TP69ounH34dHrXkHwr3yRZ2Bsr+ZCQ03Z7uE0YK8R6HcTMkS3i0ClpFUqyC0A0qDAM
E1lEAetRB5gdKJJhsYyK9dEvlvJ0uCnpDToXgku5HR8/4C4eio2sJXG+5HCA61U5p2YcLq5VTUm8
Vr6bFjN6BlGS3G6c1bViM+1dHJBUjcMmJ6wloPq7Xg2aU99OE8JSe6DM3X8PW+/ZTElyrh2jCZq7
72LfuxSOXO4xHRoj9sssRiklW3MPY9AEQYXpPBx/sYDb32PqSF5G4Qkw9MfFOkyoOb0nl0puAgSp
BTGmfcJJYKoCyAmhpQkGk3hm4JhZyXtkC22xIjNfudTUGtlxlr7QgtZ4h+6VXCldcAWT9eosgDNZ
2eyZ59TtZItbbcbybT+hAwkOl4Op9LbvA+ssyNEsUS7a7glr4J3MbMGHdk7X3QOX9g5WajkZzR2F
CXHJ9Eq6c3KF1P2v65DIc/KO0c/GRGW5LNz0s4AIZEMmR3dl0CLl4gCZFZuY6JM5XCZUxwjtxvEs
A7AhwxFHZKC0s+gKwj5rO0dVXktLayFLSXm2ajFa7uFbVtNbMbswp6aI5i5ynO7MyKlHsok06t5V
TLLFzTaDenpMe1FgbAkBdFx3cE14cHev6dukSMEUCMj4Npee0TeqqKJickrS4Jwn3fhlnS079b4J
wVS+8jyUToVuD1AAZZgkdyf3EGKhdRBTHYOF3j0rArSko+OJ2lDArxeZJTcWMnTUF+fGO+9UFyqn
7tsm6KtZKt71q6vo6CpEZ6rL+OHJplXJTp8BQtx1JZoKLBUZO/ftaY0Jvy6r1y7X/XBQE5U5oWk0
tgq0TQu7NUyWL/iijV+ifE6kO5lz58d1uK7S6RF1TLqngjqOqilZn1W5SzNnF3uOETE0Xffbzx/y
QhpNMDAGT6mEogsD+YX4lJ19sdMMjJKtq/fuR4ycRqSMKc9l3UXyrtgzaTqKD9LbfeDVsm21GE1b
qdBl5mZWTOOTA5INKi+MuXu2ncw7t9NdkYBi2VHpIlaetgh3kQd9YCEoFy5vjzVstidqkfOU9RKi
TlLPY452gzVFbXwSJ5xOFhkYGtBEJm68TF20Hh72b3vrgG9sOzChpJxOYgdbQx16TB2ZBo2Nxe2E
1PruJGAWN1QVXAemrU/mUhhNIlByAhipvktRwJfyBIaGsPTqwDFJ4PM3vrbPtygW0nEG5oyWDWsM
1KjrTyXY0OuAWiaYQyj2XzbBvRR5UIS6asCwVXJucxiWtPo3sj0Z774xyX63ml6yq4JMt89K4LBD
MCpnQxtlxfkk91OWHetbbai1jkMqTvP7k5O9sOmCPRA4OyvmzQUiuMpl/wIwQkdqxkqcYxv2eYpM
wuruE1jh1ny479K9A84SBUET9MNa7WOWs7uNZuplMCLGHJ34Ehg9nvvwKClpri2pRZeh7cZkk83w
rDgk1sqMCOTReJh4RrQgVhtrZy06THaTsBD71Zlw6jDKVajejvAOdqev8irpmZYlJXylot+GtFco
7QCMiLmgRh0qzbsNzcitAydZF3/iVbVRhtReiUiqDp8GGyNqfVa9BgvebB/K4Hy1zBK5u491eweN
49Zas3gyVn/6dkfx5TEep5JZmOe7QlGwk6ooLbhSQVR97H1oMgQjVglBwrri7RhGiRPuKr5Eml3M
xpBvU19hRW86yIRFYJwfY5GKdA84+m0d5KGDgbEH+VYKupUWZENr7SHnoVq+UhxVYAxBcEq6f8Wr
rNkDoNyBQ595OZ6guMIaxK7McDahf5dRyRoaoVbbRtZqycC2b0tJvjY+RQVU+ESeWdP/fkIEXPsy
0w+qDq/QpibVTYpbCxErrMCwxvXbcPnXbYShjG8KJ/BLxCqr+huUj8itoQGibpWX4ehl+w31rYc+
ynaaaF69astzsxWnd9VpJ0cpYLFpOe+CeUHHpdCib1GsrWyo/zLUTq7uWGfUNostZJUprZkQZRMa
BAUb+Ta+PWEloFRf1FAfpX0+eZY9KhF1A4fY2CGlgzp3YEGr32bLtEBJnmaAsJKApCmLR61m0Hii
sKhDRdLHm1MSPJH3MR8U3Ha7loSkr8K7r4LgQhIKrPH50dXalft3cpSlIcSy0GRSTls86Db0QHNq
5TKGrvhW25BlalnGiSSa2OnY8bC4BHxbaTuvoXvOM4Tty/qS94n7erq7VvD48J9JrP5mSBwt/lHy
BoZHp3cVRK7qMJVaLCBTOJY4q0ZDQHZVW3S+OJtQyuOlbeIkH5oVYDBrXDf/y3i0XQOJLvScxQJJ
rNg55yuOp2JAH1mBY3AK19Z9vY4Xi5fmhuGavwuC4BoSdE3F/OUCpUWhaJM9dur0OFxF2gSQGUDe
pmmLFDlUZk3APzJFEbszW4JuVqm1qRGBmu4aa83xjzq93S8yEGdOgJcFwibZsi+FHoy6FTGYagIo
wsJhzHklb0S0pmqSBeUC/l0hZ22+y7ADd+MF/lN6PjVBJZSLeQDKD0BfskiuYTeE/XdpZpfVa01g
PyWHnaZ4AiozQhIRHzlBVbD2TpqCct8I4BoDHfC0Oi8l91CjdRX0PtB3K2JweU0tFOGAZCv5V6yi
yBmSD6t6X3yPc+TVklh6HbVtoq+DyU2LFqJ1q2vjZ4RNsGs2R7BJWLlQLc+YdXAXMhXCtMkzU/62
pIMgHmIusqbmApuL8iOHcCdmGnZ6N8QxrD9QO1cFjoiuneX+76+dmSHyAeULVs58tdPhY3NHU15U
HwNwcjD2fkmYkQN2lNfDNpf7x6tuTqYVXZRLzeBaVlxdSYBGRYZ/NNqa9jofZAHaU9Hez2i15urz
/rrxQ9/lLRI9NvfpfmnJlgqyXRbiKP7i5A0SEbA/e+n+HEi0vBrCxYLYZ9vcNTavFdZlEUiSphSX
tH2FgsXTXsGjyhmxygckuThZJ/ppd3ws0t2aVChhUsGen5q75SQIFAwNjiKFVIKw/phJSuIMW+ni
GVy9vKs6tig/E94ZPek1NVHwMIMrIj8G38rh0aoYiBn2b21NA6gLRz196AnTvKCyny5SHoWo3QaV
Rpk3zJoNCX2AIta0NnkNeTjH3JAo00lM/P029vvJAe4ldRwyuIhi5W/SzG7G3nzBCqQ4EmD9jsVy
bOvxlJqzXtLUaobkYZk6UX1ZUA26O+8w3pOsjC6oNDYc9K4Lz4LKA8Ox924A9DE5X76k2dhuVqOE
Di8CvjXkqiNQetfdQ1O7SXoGxkZtk2eeP3GCFwkLrM7I38PjKuV8eCwoG6OCOlqMPxGVJphvv6Ty
uh8vw2XeLwRVdT5qPHBwHUDvxcjK+2OxbChLKuteJKKgPzceCTnMF8TIIBSpGCTk4TUw+myBmA+r
uZw4q1yT6158Q5YZWo+d0w21u5kR6m+3CSbegU8qwjVWbAKBKeaxGmNeDmBNYzvD6Xrang4EADCx
fwx8XVNHKkf+yoZ+Li9M9u//sDI5N/HgMaJ1z6AZ4GyLnBMd5mfw8Xa6aRQ6RgGRtFpOwRulyWBd
2TBU5ALRPUpOaX3Yr2xY4A7jdjwdMGFp6lGZoDETYDjCfuaCBU+YeW60MQH8583bOE3Di0KtZvZB
1lkGhsGKwwWs42kzXi6ni3bGDTtjg59hlrM7vZkQ5GwOTCPICAdofFQjUU3FxucUeEyV76VHDH+s
yodDmja78Xx9lUnVLKxl2jsCcDlfqozElBWxcJY5JOtc+q0p37LIJDb72tKwl/H63XY7X48VM79e
TmcI5Y/Tj6fLX+f1/N/DrFD+Jg8+MtRZ4KrBP2oLmvLyepj/347GtGBr2hwlQ65jR98ih65cLDzE
8QeYRQT/+hcl0lbx6T89noo/THsvONNIuw8WXTOudrtumQpJCij20Ejdu0FlMDhK+axackbuuX9m
zqfby4sbtovjM3B/O3kGSuYaHKvl677cjpC2x6/mfdLWFGI1G89i6jHs24T4I36CqvvLqNHIiEaG
UPYW2Gy8/jC/HxB6P4+7/aCRYPNqvIhwg38+XYfLTOOn07BTZ95kNZsPY0YPZIwKtC7dZuv9r8OX
/YvStmBI5ZEF2XIBd8Cfbmfwgsbd958+JQ7byEECP4IAep4BI/zP//z/UEsDBAoAAAAAALFmjkYA
AAAAAAAAAAAAAAAEABwAc3ZnL1VUCQADPXAtVXVwLVV1eAsAAQT1AQAABFAAAABQSwMECgAAAAAA
sWaORgAAAAAAAAAAAAAAAAsAHABzdmcvc3Ryb2tlL1VUCQADPXAtVXVwLVV1eAsAAQT1AQAABFAA
AABQSwMEFAACAAgAsWaORiBIoUh/AAAAjQAAACUAHABzdmcvc3Ryb2tlL3plcm8td2lkdGgtaGFu
Zy1zdGRlcnIudHh0VVQJAAM9cC1VPXAtVXV4CwABBPUBAAAEUAAAAA3IzQqCQBQG0H1P8b1A4qRB
DRGERptW1S5a3PKDhPGOXMf+nj6X5+x6gyvhFn5Z+KIA34PL8yzEhwTUY9efqA3tYuR1tXZlecNm
bxZt61EdqqiJn3RmOrbKWoanR6svCW2DZhLETL4ekhAoQ0JUgoEdNaEbp7gTGnX+o8Vs9gdQSwEC
HgMUAAIACAC7Zo5GT0os7pznAADZgAoADgAYAAAAAAABAAAApIEAAAAAYWNjZXNzX2xvZy50eHRV
VAUAA1JwLVV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADKZo5GFmt8zIwPAADdtQAADQAYAAAA
AAABAAAApIHk5wAAZXJyb3JfbG9nLnR4dFVUBQADbHAtVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoA
AAAAAIdmjkYAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQbf3AABmYXN0L1VUBQAD7m8tVXV4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAAAAAHpmjkYAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQfb3AABm
YXN0L2ltYWdlcy9VVAUAA9dvLVV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAB6Zo5GIY+9ODIA
AAAzAAAALAAYAAAAAAABAAAApIE8+AAAZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94
LXN0ZGVyci50eHRVVAUAA9dvLVV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACHZo5GAAAAAAAA
AAAAAAAADgAYAAAAAAAAABAA7UHU+AAAZmFzdC9vdmVyZmxvdy9VVAUAA+5vLVV1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACACHZo5G6v5GpOoAAAA2AQAANQAYAAAAAAABAAAApIEc+QAAZmFzdC9v
dmVyZmxvdy9ob3Jpem9udGFsLXNjcm9sbC1hZnRlci1iYWNrLWFjdHVhbC50eHRVVAUAA+5vLVV1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACHZo5GDIoFvV8BAABIAgAAMwAYAAAAAAABAAAApIF1
+gAAZmFzdC9vdmVyZmxvdy9ob3Jpem9udGFsLXNjcm9sbC1hZnRlci1iYWNrLWRpZmYudHh0VVQF
AAPuby1VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgACAAAAh2aORu5wIMIFAAAABQAAADcAGAAAAAAA
AQAAAKSBQfwAAGZhc3Qvb3ZlcmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXItYmFjay1leHBl
Y3RlZC50eHRVVAUAA+5vLVV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACHZo5GGKManygIAADq
GgAAOwAYAAAAAAABAAAApIG3/AAAZmFzdC9vdmVyZmxvdy9ob3Jpem9udGFsLXNjcm9sbC1hZnRl
ci1iYWNrLXByZXR0eS1kaWZmLmh0bWxVVAUAA+5vLVV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AACDZo5GAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UFUBQEAZmFzdC94c2wvVVQFAAPmby1VdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAg2aORnL9ZfKFAAAA6QAAACUAGAAAAAAAAQAAAKSBlwUB
AGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAUAA+VvLVV1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACACDZo5GiR8h/pcAAADAAwAAJwAYAAAAAAABAAAApIF7BgEAZmFzdC94
c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQFAAPlby1VdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAg2aORs+PZg5QAAAAoAAAACQAGAAAAAAAAQAAAKSBcwcBAGZhc3QveHNsL3hz
bHQtY29udGVudFR5cGUtc3RkZXJyLnR4dFVUBQAD5W8tVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIAINmjkaBSnetSwAAAKwAAAA0ABgAAAAAAAEAAACkgSEIAQBmYXN0L3hzbC94c2x0LXRyYW5z
Zm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAPmby1VdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAzmaORqirdat7AQAAjQIAABEAGAAAAAAAAQAAAKSB2ggBAGZ1bGxfcmVzdWx0
cy5qc29uVVQFAAN0cC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAkGaORgAAAAAAAAAAAAAA
AAUAGAAAAAAAAAAQAO1BoAoBAGh0dHAvVVQFAAP/by1VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAm2aORgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1B3woBAGh0dHAvdGVzdHMvVVQFAAMVcC1V
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAm2aORgAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1B
JAsBAGh0dHAvdGVzdHMvbWlzYy9VVAUAAxVwLVV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACb
Zo5GFTU1knoAAAC8AAAAKgAYAAAAAAABAAAApIFuCwEAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFk
LWltcG9ydC1zdGRlcnIudHh0VVQFAAMVcC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAkmaO
RgAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BTAwBAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQFAAMD
cC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAkGaORgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQ
AO1BmgwBAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQAD/28t
VXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAJBmjkZjqqxsggAAAKgAAABAABgAAAAAAAEAAACk
gf4MAQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dl
ZC1zdGRlcnIudHh0VVQFAAP/by1VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAkGaORmOqrGyC
AAAAqAAAAFIAGAAAAAAAAQAAAKSB+g0BAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAA/9v
LVV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACSZo5GYEtmEJEAAAD7AQAARQAYAAAAAAABAAAA
pIEIDwEAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0
eU9yaWdpbi1zdGRlcnIudHh0VVQFAAMDcC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAVGaO
RuqKfEJhBQAABQ8AAAoAGAAAAAAAAQAAAKSBGBABAGh0dHBkLmNvbmZVVAUAA49vLVV1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAAC9Zo5GAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UG9FQEAbWVk
aWEvVVQFAANVcC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAvWaORgAAAAAAAAAAAAAAAAwA
GAAAAAAAAAAQAO1B/RUBAG1lZGlhL3RyYWNrL1VUBQADVXAtVXV4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAL1mjkZplNGN8AAAAHcBAAAqABgAAAAAAAEAAACkgUMWAQBtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLXN0eWxlLWFjdHVhbC50eHRVVAUAA1VwLVV1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAC9Zo5GDX/4hJwBAAD+AgAAKAAYAAAAAAABAAAApIGXFwEAbWVkaWEvdHJhY2svdHJhY2st
aW4tYmFuZC1zdHlsZS1kaWZmLnR4dFVUBQADVXAtVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
AL1mjkYM+uTqNgEAADMCAAAsABgAAAAAAAEAAACkgZUZAQBtZWRpYS90cmFjay90cmFjay1pbi1i
YW5kLXN0eWxlLWV4cGVjdGVkLnR4dFVUBQADVXAtVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
AL1mjkYGcNfl0ggAANciAAAwABgAAAAAAAEAAACkgTEbAQBtZWRpYS90cmFjay90cmFjay1pbi1i
YW5kLXN0eWxlLXByZXR0eS1kaWZmLmh0bWxVVAUAA1VwLVV1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAACiZo5GAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UFtJAEAcGxhdGZvcm0vVVQFAAMgcC1V
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAomaORgAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1B
sCQBAHBsYXRmb3JtL21hYy9VVAUAAyBwLVV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACjZo5G
AAAAAAAAAAAAAAAAGwAYAAAAAAAAABAA7UH3JAEAcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
VVQFAAMhcC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAomaORu8qNljQAQAAnjIAAD8AGAAA
AAAAAQAAAKSBTCUBAHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8tYWN0dWFsLnR4dFVUBQADIHAtVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAKJm
jka+Mr+gpQIAAB5QAAA9ABgAAAAAAAEAAACkgZUnAQBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWRpZmYudHh0VVQFAAMgcC1VdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAomaORl8ZeWqvAQAAgh0AAEEAGAAAAAAAAQAAAKSBsSoBAHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0
VVQFAAMgcC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAo2aORvJ5/KQzDgAA3TABAEUAGAAA
AAAAAQAAAKSB2ywBAHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8tcHJldHR5LWRpZmYuaHRtbFVUBQADIXAtVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIAJtmjkZ83ESLXwIAAJUQAAArABgAAAAAAAEAAACkgY07AQBweXdlYnNvY2tldC53cy5sb2ct
MTRBcHIyMDE1LTEyNTA0MC1lcnIudHh0VVQFAAMWcC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAm2aORt5dn88IAQAAjwIAACsAGAAAAAAAAQAAAKSBUT4BAHB5d2Vic29ja2V0LndzLmxvZy0x
NEFwcjIwMTUtMTI1MDQwLW91dC50eHRVVAUAAxZwLVV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CADOZo5Gd0xIEqUmAADcpAAADAAYAAAAAAABAAAApIG+PwEAcmVzdWx0cy5odG1sVVQFAAN0cC1V
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAzWaORgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B
qWYBAHJldHJpZXMvVVQFAANycC1VdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAzWaORgAAAAAA
AAAAAAAAABEAGAAAAAAAAAAQAO1B62YBAHJldHJpZXMvcGxhdGZvcm0vVVQFAANycC1VdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgAAAAAAzWaORgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BNmcBAHJl
dHJpZXMvcGxhdGZvcm0vbWFjL1VUBQADcnAtVXV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAM1m
jkYAAAAAAAAAAAAAAAAjABgAAAAAAAAAEADtQYVnAQByZXRyaWVzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L1VUBQADcnAtVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAM1mjkbvKjZY0AEA
AJ4yAABHABgAAAAAAAEAAACkgeJnAQByZXRyaWVzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tYWN0dWFsLnR4dFVUBQADcnAtVXV4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIAM1mjkawhVtZqgIAAC5QAABFABgAAAAAAAEAAACkgTNqAQByZXRyaWVz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZGlm
Zi50eHRVVAUAA3JwLVV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADNZo5GXxl5aq8BAACCHQAA
SQAYAAAAAAABAAAApIFcbQEAcmV0cmllcy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dFVUBQADcnAtVXV4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAM1mjkbFniNyOA4AAOUwAQBNABgAAAAAAAEAAACkgY5vAQByZXRyaWVzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tcHJldHR5
LWRpZmYuaHRtbFVUBQADcnAtVXV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAM5mjkaz/UcJ08AG
ANH3JgAKABgAAAAAAAEAAACkgU1+AQBzdGF0cy5qc29uVVQFAAN0cC1VdXgLAAEE9QEAAARQAAAA
UEsBAh4DCgAAAAAAsWaORgAAAAAAAAAAAAAAAAQAGAAAAAAAAAAQAO1BZD8IAHN2Zy9VVAUAAz1w
LVV1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACxZo5GAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA
7UGiPwgAc3ZnL3N0cm9rZS9VVAUAAz1wLVV1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACxZo5G
IEihSH8AAACNAAAAJQAYAAAAAAABAAAApIHnPwgAc3ZnL3N0cm9rZS96ZXJvLXdpZHRoLWhhbmct
c3RkZXJyLnR4dFVUBQADPXAtVXV4CwABBPUBAAAEUAAAAFBLBQYAAAAANgA2ADEWAADFQAgAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250735</attachid>
            <date>2015-04-14 13:47:34 -0700</date>
            <delta_ts>2015-04-15 11:13:58 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>269993</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ1NGY4NDhkNGI0MWVjMDRkNDE1YTI2MWQ2YzAzM2EzNGI5ZWIyMTYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MTkKICAgIAogICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4
dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFu
ZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCiAgICAKICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFu
ZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBz
ZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUyMDQ2NWIuLjRk
MjEyMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wNC0xNCAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3gu
aHRtbDoKKwogMjAxNS0wNC0xMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvbnRlbnQgRmlsdGVyaW5nXSBTdXBwb3J0IG1vZGlmeWluZyByZXF1ZXN0IFVSTHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NjOWYyMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTUgQEAKK29uZSB0d28gdGhy
ZWUuIGZvdXIgZml2ZSBzaXguCisKK3NldmVuIGVpZ2h0IG5pbmUuCisKK1RoaXMgdGVzdHMgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBtb3Zlcy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25C
ZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlX
b3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24i
XSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0
aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjE3MTM0NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0
bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4K
KworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRp
dGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2
ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2Pgor
Cis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5n
ZSBub3RpZmljYXRpb25zIGZvciBtb3Zlcy4iKTsKKworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlID0gMjsKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kID0gMzsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmcgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSAyOworICAg
IHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IDM7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgPSA0OworCisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Q2hhcmFjdGVyID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkID0gMjsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lID0gMzsK
KyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSA9IDQ7CisgICAgdmFy
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoID0gNTsKKyAgICB2YXIgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCA9IDc7CisKKyAgICB2YXIgZ3JhbiA9IFsiY2hh
cmFjdGVyIiwgIndvcmQiLCAic2VudGVuY2UiLCAibGluZSIsICJwYXJhZ3JhcGgiLCAibGluZWJv
dW5kYXJ5IiwgInNlbnRlbmNlYm91bmRhcnkiLCAicGFyYWdyYXBoYm91bmRhcnkiLCAiZG9jdW1l
bnRib3VuZGFyeSJdOworICAgIHZhciB3ZWJBcmVhID0gMDsKKyAgICB2YXIgY291bnQgPSAwOwor
ICAgIHZhciByZXN1bHRzID0gW107CisgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICBmdW5j
dGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAg
ICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCIpIHsKKyAgICAg
ICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBpZiAodXNlckluZm8pCisgICAgICAgICAgICAg
ICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA9PSBncmFu
Lmxlbmd0aCAqIDQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJl
dmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5l
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVc
Il0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBh
cmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAg
ICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxp
dHkodHJ1ZSk7CisKKyAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJv
b3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9u
ID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7
CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAg
ICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAg
IHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAvLyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2Vz
LgorICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgcy5zZXRQ
b3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAg
ICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgICAg
ICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIsIGdyYW5baV0pOworICAgICAgICB9CisgICAg
ICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0
Ym94LCAwKTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5b
aV0pOworICAgICAgICB9CisgICAgfQorCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFy
aWEtdGV4dGJveC5odG1sCmluZGV4IGExZTg0M2UuLmY2ZDRkYTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2Vz
LWZvci1hcmlhLXRleHRib3guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwK
QEAgLTE3LDExICsxNywxMSBAQCBjb250ZW50IGluc2lkZQogCiAgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdHMgdGhhdCBBUklBIHJlbW92aW5nIGFuIGVsZW1lbnQgZnJvbSBhIGxpdmUgcmVnaW9u
IHNlbmRzIHRoZSBjb3JyZWN0IG5vdGlmaWNhdGlvbi4iKTsKIAotICAgIHZhciBheFRleHRib3gg
PSAwOworICAgIHZhciB3ZWJBcmVhID0gMDsKICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxs
YmFjayhub3RpZmljYXRpb24pIHsKICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1
ZUNoYW5nZWQiKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmlj
YXRpb25zIikuaW5uZXJIVE1MICs9ICJTdWNjZXNzZnVsbHkgcmVjZWl2ZWQgIiArIG5vdGlmaWNh
dGlvbiArICI8YnI+IjsKLSAgICAgICAgICAgYXhUZXh0Ym94LnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KTsKICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9
CiAgICAgICAgIGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZFRleHRDaGFuZ2Vk
IikgewpAQCAtMzUsNyArMzUsOSBAQCBjb250ZW50IGluc2lkZQogICAgICAgICB0ZXh0Ym94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKICAgICAgICAgdGV4dGJveC5mb2N1
cygpOwogCi0gICAgICAgIHZhciBheFRleHRib3ggPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5m
b2N1c2VkRWxlbWVudDsKKyAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAKICAg
ICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KICAgICAgICAgdmFyIHMgPSB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCk7CkBAIC00Niw5ICs0OCw2IEBAIGNvbnRlbnQgaW5zaWRlCiAKICAg
ICAgICAgLy8gVHJpZ2dlciB2YWx1ZSBjaGFuZ2UuCiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJoZWxsbyAiKTsKLQotICAgICAgICB2YXIgYWRkZWRO
b3RpZmljYXRpb24gPSBheFRleHRib3guYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0
aW9uQ2FsbGJhY2spOwotICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1
ZSIpOwogICAgIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFlYzM0Nzku
LjFkOGMwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDcwLDEwICsxNDcwLDE0IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NyZWF0
ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0aXZlLmNwcAog
ICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5MiwxMSArMTQ5
NiwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVs
ZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5j
cHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUxMiw2ICsxNTIwLDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1Rl
eHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAK
ICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5j
cHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY3N2Y4
OC4uMDhhZWUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMyBAQAorMjAxNS0wNC0xNCAgRG91
ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdp
dmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRh
aWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAg
IFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1
Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBz
IG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBj
b250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMg
aW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFs
eXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJp
bGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4
dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxz
byBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKwor
ICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6VGV4dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpw
YXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4
dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNl
dFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9B
WE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRl
eHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
XSk6CisgICAgICAgIChyZW1vdmVOb25KU09OVHlwZXNGcm9tQXJyYXkpOgorICAgICAgICAocmVt
b3ZlTm9uSlNPTlR5cGVzRnJvbURpY3Rpb25hcnkpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjp1c2Vy
SW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFw
cGx5SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKiBl
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9DdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAg
IChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6ZGVsZXRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0
aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXds
aW5lcyk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRp
dENvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjphcHBseUludGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUludGVudCk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0
aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGllZEVkaXRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0Fw
cGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVj
dGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3Jk
U2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0U2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpj
cmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAg
ICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRl
KToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6
Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRp
dGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVj
dGlvbkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVj
dGlvbik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCiAy
MDE1LTA0LTEwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29u
dGVudCBGaWx0ZXJpbmddIFN1cHBvcnQgbW9kaWZ5aW5nIHJlcXVlc3QgVVJMcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZGVjZGQ1My4u
Y2UxZDE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCkBAIC0xNDM5Myw2ICsxNDM5MywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NDQ5LDYgKzE0NDc3
LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1
ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdT
dWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XEVkaXRDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC0xNDczMCw2ICsxNDc4NiwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5j
cHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ4
MDAsNiArMTQ4ODQsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNTAyNCw2ICsxNTEzNiw2
MiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xV
bmxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CkBAIC0yMTA2OSwxMCArMjEyMzcsMTQgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0Q29tbWFuZC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkFsdGVybmF0aXZlLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xF
ZGl0QWN0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRD
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRpbmdC
ZWhhdmlvci5oIiAvPgpAQCAtMjEwOTksMTAgKzIxMjcxLDE0IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZl
bC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9u
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5k
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVX
aXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KQEAgLTIxMTIxLDYgKzIxMjk3
LDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJdGVyYXRvci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUZXh0SXRlcmF0b3JCZWhh
dmlvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21t
YW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5k
b1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29t
bWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9z
aXRpb24uaCIgLz4KQEAgLTIxNzgzLDQgKzIxOTYzLDQgQEAKICAgPEltcG9ydEdyb3VwIExhYmVs
PSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0
aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+
Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCmluZGV4IGJjMGE2NjYuLjNmNzQyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTM0MzgsNiAr
MzQzOCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5r
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNDUwLDYgKzM0NTYsMTIgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1MTMs
NiArMzUyNSwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8Rmls
dGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1MjgsNiArMzU0Niwx
MiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9u
LmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1NzYsNiArMzYwMCwxOCBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmNwcCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgpAQCAtMTA1NjksNiArMTA2MDUsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNTgxLDYgKzEw
NjIzLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNv
bW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgor
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0
QWN0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkBAIC0xMDY1OSw2ICsxMDcwNywxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDY3MSw2
ICsxMDcyNSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJl
ZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDcyNSw2ICsxMDc4NSwxOCBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmgiPgogICAgICAg
PEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbi5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmRvU3Rl
cC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpA
QCAtMTU0NjEsNCArMTU1MzMsNCBAQAogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVx3aW48L0ZpbHRl
cj4KICAgICA8L01BU00+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMDA4YzdkLi4yNTYxYzIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02
MzczLDEyICs2MzczLDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JT
dGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xs
U25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNG
MTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgz
MTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2
RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkND
MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9Owor
CQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9Owog
CQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFD
MjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2
REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0
aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyog
RW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9
OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0
NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0
NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTgg
LyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0Uw
MDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJ
CUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyog
QmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRU
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVC
M0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1
QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYy
NjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MjgsMTIgKzY0MzgsMjYgQEAK
IAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkg
LyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAg
Ki87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFG
MTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQw
NjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgy
MDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0
REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1
QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBG
NDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4
MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAx
NUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1h
Yy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNG
QjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAw
MDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZE
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9Owor
CQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0
MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBD
MCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQw
QjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFB
Q0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVD
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8q
IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFM
aXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsg
fTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURF
MEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0x
Mzk5Myw2ICsxNDAxNyw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxl
U2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAv
KiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2
NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyog
VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0MDA1LDggKzE0MDMxLDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBS
YW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0
M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMw
MDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9j
YWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9j
YWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4
REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEw
MzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0
b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0
dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDU2LDYg
KzE0MDkwLDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJ
bnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFG
MTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFB
Q0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAv
KiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhE
MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVB
MkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAv
KiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vy
c29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRp
bmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwpAQCAtMTQwNjYsOCArMTQxMDYsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0
IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1
QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2
RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0Eg
LyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMw
IC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUy
OTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcw
RkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0
YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRh
TGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTc2NzQsNiArMTc3MjIsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEg
LyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdF
NDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMw
N0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVG
QzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAor
CQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEg
LyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEw
MDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3NjgyLDYgKzE3
NzM0LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVy
bmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNv
bW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25D
b21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlB
QjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4
NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAq
LywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5o
ICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0x
NzcyOCw2ICsxNzc4NCwxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2Rp
ZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEg
LyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2
RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIw
MDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVE
MEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICov
LAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyog
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIx
MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJ
CTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAq
LywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5j
cHAgKi8sCkBAIC0xNzczOCw2ICsxNzc5OCwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2
RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlC
MzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5
QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1
NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywK
IAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc3Myw2ICsxNzgzNywxNCBAQAogCQkJ
CTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAog
CQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJ
CQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1
OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5
RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywK
KwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIx
MSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlC
MkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlE
NTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUz
QUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2NjgsNiArMjM3NDAsNyBA
QAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25V
dGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAv
KiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
NTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBl
bmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURC
Nzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERC
NTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApA
QCAtMjQ0NzAsNiArMjQ1NDMsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBE
T01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMy
ODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1
bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5
ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4
IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDc5
Myw2ICsyNDg2Nyw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkz
ODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEz
NjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRN
TElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1
ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3
NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUw
MjIsNiArMjUwOTcsNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlv
QnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNB
NTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRB
MTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywK
KwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNB
IC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFF
MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTAzMCw2ICsyNTEwNiw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8q
IEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0
OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlB
NzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkg
LyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcx
OTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4
RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI1MTQ5LDYgKzI1MjI2LDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNH
YWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8q
IEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFF
IC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlE
QTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVy
ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTkwLDYgKzI1NjY4LDcgQEAKIAkJCQlCQzYw
REEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5
RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1
MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxT
ZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIg
LyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0Qx
RTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3NzIs
NiArMjY4NTEsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJ
Q1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0
Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0
RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcw
MDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRl
ZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBU
ZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzND
NUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjUsNiArMjY5MDUs
NyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVD
b250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzEx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdy
aWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NDgsMTIgKzI3MDI5LDE0IEBACiAJCQkJMkQzRUY0
NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9j
YXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0Mg
LyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgz
MDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1l
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdl
YkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2
OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgx
N0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJk
VUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyog
V2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzEx
NzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAt
MjY5ODYsNiArMjcwNjksNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIx
MDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDND
RjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBX
ZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUw
MEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjc3MjcsNiArMjc4MTEsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVG
NCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Qz
RTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5n
UnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMy
M0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgwNCw2ICsyNzg4OSw3IEBACiAJ
CQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1v
dGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEw
IC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFC
NzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMg
LyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2
OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk0
MCw2ICsyODAyNiw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxN
b2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3
IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYw
QUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywK
KwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyog
RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFE
NkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
bW0gaW4gU291cmNlcyAqLywKQEAgLTI4MDg3LDYgKzI4MTc0LDcgQEAKIAkJCQk0NERBQjVCMTE1
QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9E
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREEx
QUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxl
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZF
Q29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODE5Nyw2
ICsyODI4NSw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZElt
YWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1NSAvKiBH
ZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0RjREREU2
MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NzAx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1IC8qIEdl
b21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQwMEE1QzEw
MDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIxNyw2ICsy
ODMwNiw3IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1MUYxMkQw
MDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5
NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBI
SURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5
OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxNTMw
QzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM5Niw2
ICsyODQ4Niw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJv
bHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBD
MDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIz
OTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1
NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1h
Z2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgy
QzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4
MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTMsNiArMjg5
NDQsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZv
cm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUxNUE2
MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
NTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJpb2Rp
Y1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4IC8q
IEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5RjAx
RDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjg4ODcsNiArMjg5NzksNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0MiAvKiBK
U1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRDE3
RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENTZXNzaW9u
RGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcxQUNCNzA4
MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENT
dGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUxMDA3RkY4
NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2NjIsNiAr
Mjk3NTUsNyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNN
b2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0NSAvKiBS
VENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEIxN0Qx
NENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAvKiBS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0RjEx
OUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODM5LDYgKzI5OTMzLDcgQEAKIAkJCQlG
RTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xL
ZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRp
Y05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVD
QiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM0Miw2ICszMDQzNyw3IEBA
CiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4gU291cmNl
cyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMuYyBpbiBT
b3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcubW0gaW4g
U291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5MTk5NjEy
MDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKaW5kZXggYTAwYjE1Yy4uZDM1YmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjks
NiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VB
Y2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90
aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9z
dFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlz
LCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsK
IH0KIApAQCAtNzQyLDYgKzc0MywyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlv
blBvc3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVu
dE9iamVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBv
c3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1
cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2
aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUg
ZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlm
aWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisg
ICAgZm9yIChjb25zdCBhdXRvJiBvYmplY3QgOiBub3RpZmljYXRpb25zKQorICAgICAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LmdldCgpLCBBWFRleHRF
ZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxlUG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRl
cmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwg
UG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NSwyMTggQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQog
ICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQs
IFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25vd24iKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAg
ICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6Iik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
OgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
ICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2VydCIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246Cisg
ICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBwcmludGYo
IlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHByaW50
ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChp
bnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAg
ICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBwcmludGYoIlBy
ZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3Jh
bnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToK
KyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAg
ICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgor
ICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAg
ICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAg
ICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAg
ICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgcHJpbnRmKCIt
U3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwordm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5vZGUsIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVu
a25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsKKworCisgICAg
c3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsKKyAgICAg
ICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dv
cmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBvYmotPm9ic2Vy
dmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBvc3ROb3Rp
ZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRD
aGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0oaW50ZW50
KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0VGV4dFNl
bGVjdGlvbkludGVudCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlm
ICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4dEVkaXRU
eXBlVW5rbm93bik7CisKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygp
OwogCi0gICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCiAgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3
b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKKyAgICAg
ICAgICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iaik7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxl
T2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKHR5cGUp
LCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRl
eHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChkZWxldGlv
blR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNlcnRpb25UeXBl
ID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5
cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiB8fCBp
bnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3RvcENhY2hpbmdD
b21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChvYmop
IHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgICAgICBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbihvYmopOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlwZSwgZGVs
ZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVj
YXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlw
ZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwg
aW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmVucXVldWVQ
YXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikK
K3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIGlm
ICghb2JzZXJ2YWJsZU9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHN0ZDo6Zmlu
ZChtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5iZWdpbigpLCBtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdC5lbmQoKSwgb2JzZXJ2YWJsZU9iamVjdCkgPT0gbV9wYXNzd29yZE5vdGlm
aWNhdGlvbnNUb1Bvc3QuZW5kKCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICB9CiB9CiAKIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUqIGZy
YW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEzMDEsMTUgQEAg
Ym9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEoKQorewor
ICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVj
dCgpKSB7CisgICAgICAgIGlmIChyb290T2JqZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
KCkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc+
KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRy
OworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIo
QVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li41OGIx
MzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksOTkgQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE5v
dGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVt
ZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkp
OwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRlZCwKLSAg
ICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7Cisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorICAgIH07
CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVVbmtu
b3duLAorICAgICAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0
ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAor
ICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0eXBpbmcKKyAgICAg
ICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAg
ICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgICAgICBBWFRleHRF
ZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKKyAgICB9OworCisgICAgLy8gU2ltcGxl
IHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlIGRlbGV0
aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0
aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpOworCisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAgICBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmcsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMKICAgICB9OwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlv
bihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOwor
ICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgICAgICBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMg
dGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFj
dGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGls
IGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBh
bGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3QgQVhUZXh0
U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7CisgICAgfTsK
KworICAgIHN0YXRpYyBBWFRleHRTZWxlY3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVVua25vd24pCisgICAgeworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9IEFYVGV4
dFNlbGVjdGlvbigpOworICAgICAgICBzZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0aW9uOwor
ICAgICAgICBzZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAgICAgcmV0
dXJuIHNlbGVjdGlvbjsKKyAgICB9CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAgdW5pb24g
eworICAgICAgICAgICAgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgICAgIEFY
VGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5jOworCisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBl
ID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlv
biA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAgICAgIDog
dHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgICAgICAg
ICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgICAgIDogdHlwZShBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgICAg
ICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQorICAgICAg
ICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRTZWxlY3Rp
b24oKSkKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7CisgICAgICAgICAgICBB
U1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUg
PT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAgfQorICAg
IH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbklu
dGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkp
OworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExv
YWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzMwNSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0
aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9k
ZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAg
ICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBp
bmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0
eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
ICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlv
bjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEluc2VydGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQor
ICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYK
KwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNj
ZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAg
LTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBu
KSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgor
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1l
bnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9i
amVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVu
ZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2ICszNjEsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1l
ciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bv
c3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIg
bV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lk
IHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxl
TWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2Rl
Kik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsz
NzMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNl
ZEltYWdlTWFwVUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0
QVhJRChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICB2b2lkIGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFY
QXR0cmlidXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDM0LDE2IEBAIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNv
bXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRD
aGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9Citp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRGT1JNKENP
Q09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0K
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0
KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjNk
NDVkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlu
cHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3Qq
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dv
cmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAg
aWYgKGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4g
Y29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0KKyAgICAK
KyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAg
ICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpp
c0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiAr
ODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlz
UHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNT
ZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC0yNjQ2LDQgKzI2NDYsMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2
ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7
CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtu
b3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBu
b2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCpl
bGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRG
aWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjJl
OTc3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBp
c0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCAyZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgs
MTQgKzE0ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAg
ICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5n
ZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENv
bnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3Jt
Q29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2Uo
cmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVu
Z3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOwor
ICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246
OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBvc2l0aW9u
KG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09m
ZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24gPSBW
aXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVuZGVyZXIt
PmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQsMTYgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlv
blJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkg
fHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBt
YWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHpl
cm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFy
dCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAg
ICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9u
KCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7
CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlv
bihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYy
Yzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJy
aWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZp
ZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVy
cmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29u
c3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNj
cm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVD
aGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIw
MC4uYWI3OTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
QVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
Tm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQor
eworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdl
ZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5k
ZXggYjMwMGU3Ny4uODg1MGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAogI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJl
Z2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVL
ZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5
bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lm
bmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFs
dWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRl
ZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lm
bmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFY
U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBj
YWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTU2LDggKzIwMCwxMzEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAg
ICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3Rp
ZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
KQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVz
ZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVd
OworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRj
aCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBz
d2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2Vs
ZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2Jq
LT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9u
LnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAg
ICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VB
dHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKyAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsKKyAgICBpZCB0YXJn
ZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKworICAgIC8vIFVzZWQgYnkgRFJUIHRv
IGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3RhcmdldCBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5n
ZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworICAgIFt1c2VySW5mbyByZWxlYXNl
XTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBv
c2l0aW9uKQogeworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAg
IE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdl
W05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25z
dCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0
cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3Ry
aW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDAp
CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsK
KyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJr
ZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlv
bl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3Rh
cnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3Jl
bGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
bikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAg
IGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tO
U011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRS
ZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFu
Z2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKyAgICBp
ZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CisgICAgTlNBY2Nlc3NpYmlsaXR5
UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0eVZhbHVl
Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworCisgICAgLy8gVXNlZCBieSBEUlQgdG8g
a25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbdGFyZ2V0IGFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZp
Y2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBl
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKwor
ICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5
ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5
XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAq
Y2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAg
W2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdl
ID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGlu
c2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdl
XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5n
ZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+
d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSB3cmFwcGVyOworICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBwZXIo
KTsKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRhcmdl
dCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisK
KyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVk
LgorICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2li
aWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworICAgIFt1
c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdF
dmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmpl
Y3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4uYzQ2NDhmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgVmlzaWJsZVBv
c2l0aW9uOwogLSAoaWQpYXR0YWNobWVudFZpZXc7CiAvLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVt
ZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCiAt
ICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZp
Y2F0aW9uTmFtZTsKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNT
dHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5m
bzsKIAogLSAoQ0dQYXRoUmVmKWNvbnZlcnRQYXRoVG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6UGF0
aCAmKXBhdGg7CiAtIChDR1BvaW50KWNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6
OkZsb2F0UG9pbnQgJilwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFz
ZS5tbQppbmRleCA1ZGRmYzNhLi5iZGRkNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLm1tCkBAIC0zODcsOSArMzg3LDU3IEBAIHN0YXRpYyBCT09MIGFjY2Vzc2li
aWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZQogeworICAgIGlm
IChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykKKyAgICAgICAgW3NlbGYg
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25OYW1lIHVzZXJJbmZv
Om5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICpyZW1vdmVOb25KU09OVHlwZXNGcm9tQXJyYXko
TlNBcnJheSAqYXJyYXkpCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJheSA9IFth
cnJheSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGlkeCA9IDA7IGlkeCA8IFtt
dXRhYmxlQXJyYXkgY291bnRdOyBpZHgrKykgeworICAgICAgICBpZCB2YWx1ZSA9IG11dGFibGVB
cnJheVtpZHhdOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFy
eSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRl
eDppZHggd2l0aE9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeSh2YWx1ZSld
OworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11d
KQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppZHggd2l0
aE9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tQXJyYXkodmFsdWUpXTsKKyAgICAgICAgZWxz
ZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUg
aXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZUFy
cmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aWR4XTsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxl
QXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpyZW1vdmVOb25K
U09OVHlwZXNGcm9tRGljdGlvbmFyeShOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAg
TlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0YWJsZURpY3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRh
YmxlQ29weV07CisgICAgW2RpY3Rpb25hcnkgZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Js
b2NrOl4oaWQga2V5LCBpZCB2YWx1ZSwgQk9PTCAqKQorICAgIHsKKyAgICAgICAgaWYgKFt2YWx1
ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFi
bGVEaWN0aW9uYXJ5W2tleV0gPSByZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeSh2YWx1
ZSk7CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNz
XV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gcmVtb3ZlTm9uSlNPTlR5
cGVzRnJvbUFycmF5KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZD
bGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIg
Y2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9y
S2V5OmtleV07CisgICAgfV07CisgICAgcmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVs
ZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNT
dHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5m
bworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewot
ICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5
V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIs
IG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9z
dE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlcklu
Zm86dXNlckluZm9dOworICAgICAgICBBU1NFUlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAg
IE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAg
ICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFX
aXRoSlNPTk9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeSh1c2VySW5mbykg
b3B0aW9uczpOU0pTT05Xcml0aW5nUHJldHR5UHJpbnRlZCBlcnJvcjpuaWxdOworICAgICAgICAg
ICAgaWYgKHVzZXJJbmZvRGF0YSkgeworICAgICAgICAgICAgICAgIE5TU3RyaW5nICp1c2VySW5m
b1N0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTp1c2VySW5mb0RhdGEgZW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOworICAgICAgICAgICAgICAgIGlmICh1c2VySW5m
b1N0cmluZykKKyAgICAgICAgICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1l
IiA6IG5vdGlmaWNhdGlvbk5hbWUsIEAidXNlckluZm8iIDogdXNlckluZm9TdHJpbmd9OworICAg
ICAgICAgICAgICAgIFt1c2VySW5mb1N0cmluZyByZWxlYXNlXTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBpZiAoIXVzZXJJbmZvKQorICAgICAgICAgICAgaW5mbyA9IEB7QCJu
b3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlvbk5hbWV9OworICAgICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlRO
b3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBA
CiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBv
c2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0
TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24m
KXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAK
aW5kZXggMWRlYjRkYi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxh
Y2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNs
dWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NiwxNSArNDgs
MjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0Vk
aXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9p
ZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVj
dENhY2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRD
aGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1
ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBj
b25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNp
ZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4i
KQorICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENo
YW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2Rl
LT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9u
IHBvc2l0aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2Rl
KSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNh
Y2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZp
c2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29t
bWFuZDo6ZG9BcHBseSgpCkBAIC02NCwxOCArNzQsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhU
ZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUo
KSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYg
KCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAg
IAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcg
dGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
LSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAg
IG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODgsNCArOTYsMTQgQEAg
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVu
ZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIEFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4
IGQ2NGIwNGUuLjQ5YzllYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ3
LDYgKzQ3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQo
SGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVy
cmlkZTsKKwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8
Tm9kZT4gbV9ub2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uMjVlYWI0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCkBAIC01OCw2ICs1OSw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tG
bG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTE2Miw2ICsx
NjUsMTMgQEAgdm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChI
YXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseUludGVudCgp
Cit7CisgICAgaWYgKG1fY29tbWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5k
c1ttX2NvbW1hbmRzLnNpemUoKS0xXS0+dW5hcHBseUludGVudCgpOworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworfQorCiB2b2lkIGFwcGx5Q29t
bWFuZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjb21tYW5kKQogewogICAgIGNv
bW1hbmQtPmFwcGx5KCk7CkBAIC0zMjAsOSArMzMwLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4g
aW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUzNyw0
NiBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24o
VmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29w
ZS5nZXQoKSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNj
b3BlLmdldCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRl
eHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0g
RWRpdEFjdGlvbkN1dCkKKyAgICAgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICByZXR1cm4gRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOwogfQogCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cit9CisKK1JlZjxEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQoreworICAgIHJldHVybiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRl
ZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRl
eHQsIGRlbGV0ZWRUZXh0KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFj
ZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQ
dHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAg
IFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gcmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVu
dFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQp
KTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUocmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQt
PmRlbGV0ZWRUZXh0KCkpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJl
cGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsx
NTYxLDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseUludGVudCgpCit7CisgICAgaWYgKG1fY29t
bWFuZHMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5kc1ttX2NvbW1hbmRzLnNpemUo
KS0xXS0+YXBwbHlJbnRlbnQoKTsKKyAgICByZXR1cm4gRWRpdENvbW1hbmQ6OmFwcGx5SW50ZW50
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi5lZGVlNDk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICsz
Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3Mg
U3R5bGVkRWxlbWVudDsKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHVuYXBwbHlJbnRlbnQo
KTsKKwogcHJpdmF0ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKQEAgLTg3LDYgKzkwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGlj
YXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29ycmVj
dGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0Qmxp
bmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZTsKIAogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jik7CkBA
IC0xMDMsMTUgKzEwNywxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1vdmVTdHlsZWRFbGVt
ZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9uKGJvb2wg
c21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwg
Ym9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gdHJ1
ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwogICAgIHZvaWQgZGVsZXRlU2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wg
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0
cnVlKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCk7CiAgICAgdm9pZCBpbnB1dFRleHQoY29uc3QgU3RyaW5nJiwgYm9v
bCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSk7CiAgICAgYm9vbCBpc1JlbW92YWJsZUJsb2Nr
KGNvbnN0IE5vZGUqKTsKICAgICB2b2lkIGluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKTsKICAgICB2b2lkIGluc2VydE5vZGVBdChQYXNz
UmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0VGFi
U3BhblBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBvc2l0aW9uJik7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKTsKICAgICB2b2lkIGluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1Jl
ZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
PSBEb05vdEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2b2lkIGluc2VydFBh
cmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2Us
IGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlKTsKICAgICB2b2lk
IGluc2VydExpbmVCcmVhaygpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRU
ZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIGluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgdm9pZCBtZXJnZUlkZW50aWNh
bEVsZW1lbnRzKFBhc3NSZWZQdHI8RWxlbWVudD4sIFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAg
IHZvaWQgcmViYWxhbmNlV2hpdGVzcGFjZSgpOwpAQCAtMTMwLDYgKzEzNyw4IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIG1vdmVSZW1haW5pbmdTaWJsaW5nc1RvTmV3UGFyZW50KE5vZGUqLCBOb2Rl
KiBwYXN0TGFzdE5vZGVUb01vdmUsIFBhc3NSZWZQdHI8RWxlbWVudD4gcHJwTmV3UGFyZW50KTsK
ICAgICB2b2lkIHVwZGF0ZVBvc2l0aW9uRm9yTm9kZVJlbW92YWxQcmVzZXJ2aW5nQ2hpbGRyZW4o
UG9zaXRpb24mLCBOb2RlJik7CiAgICAgdm9pZCBwcnVuZShQYXNzUmVmUHRyPE5vZGU+KTsKKyAg
ICB2aXJ0dWFsIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiByZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4
dCk7CiAgICAgUG9zaXRpb24gcmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudFRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZmRmOWJmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCBjb3VudCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMmZhNzcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZF9oCisjZGVmaW5lIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAi
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQor
Citwcm90ZWN0ZWQ6CisgICAgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFiNGU3MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKKyNpbmNsdWRlICJDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCisjaW5j
bHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCisg
ICAgOiBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5p
dGl6ZU1hcmt1cCkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworfQorCitF
ZGl0QWN0aW9uIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dAoreworICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDVjMzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisjZGVm
aW5lIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
ZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0
RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisKKyAgICB2aXJ0
dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDJlYTk2ZDUuLjg1NzE2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjksNiArMjksOCBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKIApAQCAtNDUsNiArNDcsMTEgQEAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAg
ICBBU1NFUlQobV9vZmZzZXQgKyBtX2NvdW50IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwogfQogCitT
dHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBw
bHkoKQogewogICAgIEFTU0VSVChtX25vZGUpOwpAQCAtNTYsMTAgKzYzLDEwIEBAIHZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgbV90ZXh0ID0gbV9ub2RlLT5z
dWJzdHJpbmdEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm47Ci0gICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1
YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERl
bGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YSht
X29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2b2lkIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEo
bV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4
dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNp
Zm5kZWYgTkRFQlVHCkBAIC04NCw0ICs5MSwxNCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRp
ZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEZWxldGU7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLjdhMzFjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw4ICs0MCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwogICAgIH0KIAorICAgIFN0cmluZyYgZGVs
ZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKwogcHJpdmF0ZToKLSAgICBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00OCw3ICs1Mywx
MCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5z
aWduZWQgbV9vZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9jb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDJiYmM2ZWQuLjQ5
ZjAwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmRvQXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVTZWxlY3Rpb25Db21t
YW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERlbGV0ZSBrZXksCi0g
ICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFuZCB0aGF0IHN1cHBs
aWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8gbWVudSBjb3JyZWN0
bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworICAgIHJl
dHVybiBFZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0
IHByZXNlcnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBG
b3IgZXhhbXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IGMxNzNkZjQuLjE5ZjlmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVkZSAiRGljdGF0aW9u
Q29tbWFuZC5oIgogCiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCIKLSNpbmNs
dWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5z
ZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBzaXplX3QgbGluCiB7
CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAg
ICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVu
Z3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9j
dW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCks
IERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7Cisg
ICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0lu
c2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3Vw
cGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OGM0MDAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjk4MzZhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
IDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjQxNWY3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAi
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJr
ZXJTdXBwbGllcikKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJr
ZXJTdXBwbGllcikKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOWNi
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQ
YXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUzMi4uNzlhYmE3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTEyNCw1ICsxMjUs
MjcgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
IHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KICAgICAgICAgbm9kZXMuYWRkKG5vZGUpOwog
fQogI2VuZGlmCisgICAgCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd247
Cit9CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhY2hl
LT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0
aW9uKTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uMDFhMDMwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFu
ZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgog
CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkg
PSAwOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBhcHBseUludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1
bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAgLTkwLDYgKzkzLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpID0gMDsK
ICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUoKSk7IH0KKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHVuYXBwbHlJbnRlbnQoKSB7IHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCh1bmFwcGx5RWRpdFR5cGUo
KSk7IH0KKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCkgOiBFZGl0Q29tbWFuZChkb2N1bWVudCkgeyB9CiAKQEAgLTk3LDYgKzEw
MywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSos
IEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKwog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdBbGxJbk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uNmRlMTNmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtMzIsMTAgKzMyLDE0IEBACiAjaW5jbHVk
ZSA8QnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8Q29tcG9zaXRlRWRpdENv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPENyZWF0ZUxpbmtDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cD4KICNpbmNsdWRlIDxEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEaWN0
YXRpb25BbHRlcm5hdGl2ZS5jcHA+CiAjaW5jbHVkZSA8RGljdGF0aW9uQ29tbWFuZC5jcHA+Cisj
aW5jbHVkZSA8RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVk
ZSA8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxFZGl0aW5nU3R5bGUuY3BwPgogI2luY2x1ZGUgPEVkaXRvci5jcHA+
CkBAIC01NCwxMSArNTgsMTUgQEAKICNpbmNsdWRlIDxNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcD4KICNpbmNs
dWRlIDxNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxSZW1vdmVGb3JtYXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2Rl
Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFJlbmRlcmVkUG9zaXRpb24uY3BwPgorI2luY2x1ZGUgPFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNs
dWRlIDxTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHA+CkBAIC03Nyw2ICs4NSwxMCBAQAogI2lu
Y2x1ZGUgPFRleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VGV4dEl0ZXJh
dG9yLmNwcD4KICNpbmNsdWRlIDxUeXBpbmdDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
PgorI2luY2x1ZGUgPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxVbmxpbmtDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxWaXNpYmxlUG9zaXRpb24u
Y3BwPgogI2luY2x1ZGUgPFZpc2libGVTZWxlY3Rpb24uY3BwPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCmluZGV4IDcxMGFhMzkuLmUyNDlkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5oIgor
I2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEYXRhVHJh
bnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAi
RGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKQEAgLTM3NCwxMiArMzc1LDE1IEBAIGJvb2wgRWRpdG9y
OjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9yOjpk
ZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgaWYgKGVkaXRpbmdB
Y3Rpb24gPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGVsc2UK
KyAgICAgICAgYXBwbHlDb21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkK
QEAgLTEwMDEsNyArMTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGluZyhQYXNzUmVm
UHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBjbGVhciB0aGUg
dHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8gdGhvc2UgdGhp
bmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkgPyBGcmFtZVNl
bGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmFwcGx5SW50ZW50KCkpOwogICAg
IGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRp
bmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVF
bGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAz
Miw3ICsxMDM2LDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhj
bWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJs
ZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0
YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsK
KyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21kLT51bmFwcGx5SW50ZW50KCkp
OwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0YXJ0aW5n
Um9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7
CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjY2LDcgKzEyNzAs
NyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIg
YWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAo
YWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRo
U21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAK
IHZvaWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBAQCB2b2lkIEVkaXRvcjo6
ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25v
cmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2Vs
ZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0
aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBp
cyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3
U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBo
YW4oKSkKQEAgLTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8v
IFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2
YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxl
Y3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0
aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwog
CiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlz
dWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAg
IC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0
aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzky
YmM0Ni4uZDZjNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhE
aXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJp
bmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxl
dGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZv
aWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0
ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2Fu
Y2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYs
IFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAg
ZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAg
ICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNTc0NTE3MC4uYjRjNzI1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOCw4ICsx
MzgsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9j
dW1lbnRFbGVtZW50KCkgY29uc3QKIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0
aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmlu
aXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgc2V0U2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVu
dCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25J
bnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3Qg
VmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVz
ZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNjksNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFzZSwg
Y29uc3QgUG9zaXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAgIG5l
d1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5ld1Nl
bGVjdGlvbi5zZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAgc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChz
aG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1
cyA/IDAgOiBEb05vdFNldEZvY3VzKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
QVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSkpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xs
ZXI6OnNldENhcmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAg
LTI1NCw3ICsyNTMsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3Vz
ZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxl
Y3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0
aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJz
b3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXND
YXJldCgpKQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cisg
ICAgfSBlbHNlCisgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9u
U2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlv
CiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5i
YXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rp
b25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBp
ZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAh
PSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJh
bWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWdu
LCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxl
Y3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJ
dCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZy
YW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2Vs
ZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxl
Y3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZy
YW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIg
b3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rp
bwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Ny
b2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxp
Z24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxh
eW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0
YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBm
cmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1Nl
bGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9u
VXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zNzksOCArMzg3LDcgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKIAogICAgICAgICByZXZlYWxTZWxl
Y3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KLQotICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiAKICAgICBpZiAoYXV0byogY2xpZW50ID0gbV9mcmFt
ZS0+ZWRpdG9yKCkuY2xpZW50KCkpCiAgICAgICAgIGNsaWVudC0+ZGlkQ2hhbmdlU2VsZWN0aW9u
QW5kVXBkYXRlTGF5b3V0KCk7CkBAIC0xMDIxLDcgKzEwMjgsODAgQEAgVmlzaWJsZVBvc2l0aW9u
IEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVs
YXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3Vu
ZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRleHRTZWxl
Y3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rp
b24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9
PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAg
ICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uT2ZTZWxlY3Rp
b24oKSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxpcCA9IHRydWU7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgewor
ICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVu
Y2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVu
dC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxh
cml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBj
YXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFy
aXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNl
IERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRj
aCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNh
c2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBj
YXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAg
IGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50
ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBo
Qm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9
IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewor
ICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAg
ICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
biA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmcgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAg
IGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0g
ZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2Rp
ZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsK
QEAgLTEwNzcsNiArMTE1NywxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVy
YXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBp
ZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9y
aWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlm
IChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAg
ICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlv
bkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5
KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4g
eFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rp
b24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgog
ICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNl
IGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MTAsOCArMTc5NSwxMCBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3Qu
Z2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkK
LSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlv
bihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIGF1dG8gaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsKSk7CisgICAgICAgIHNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0
RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlw
aW5nKQpAQCAtMjQyMyw3ICsyNTEwLDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNlbGVjdGlv
bjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBWaXMKIAogICAg
IFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9u
KCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51bGFy
aXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZy
YW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9uLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGRlZmF1bHRT
ZXRTZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNl
bGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0UG9zKGZyYW1lU2Vs
ZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9uIGVuZFBvcyhmcmFtZVNl
bGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uM2MzMTk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFtZVNlbGVjdGlv
bl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgKHVzZXJUcmln
Z2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDApOwogICAgIH0K
KyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfQogCiAgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gbnVsbHB0cik7
CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlk
YXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25I
YXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwg
U2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEN1cnNv
ckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxh
cml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBD
aGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3Rl
ZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIo
KTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0
aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rp
b25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7
CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3Jv
bGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBAIHByaXZhdGU6CiAgICAg
TGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24o
RVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwg
U2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAjZWxzZQotICAgIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlv
bkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQp
OwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBp
bmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLmFlYzQ3
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDExIEBA
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsK
IH0KIAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQor
eworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5z
ZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKQEAgLTY1LDkgKzcxLDkgQEAgdm9pZCBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiAKICAgICBtX25vZGUt
Pmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7Ci0KLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlF
ZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zm
c2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODIsMTAgKzg4LDEwIEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fbm9k
ZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0
KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0
aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTk3LDQgKzEwMywxNCBAQCB2b2lkIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBu
b2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmUzM2Y1N2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2Rl
ZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1w
cml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
ZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlk
ZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01MSw3ICs1NCwxMCBAQCBwcml2YXRlOgogI2lmbmRl
ZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2Rl
Kj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsK
KwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAg
U3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uOGQ1ZWMyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI2LDkg
KzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcs
OCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihk
b3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0
aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUo
KSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikp
OworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
QEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5v
ZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlv
bikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9O
KTsKIH0KQEAgLTgxLDQgKzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Omdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5z
ZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi44ZDljNjA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKICNkZWZp
bmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4
LDE2ICszOSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgor
cHJvdGVjdGVkOgogICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkg
b3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rl
c0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBw
bHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7
CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5i
ZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBA
IC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9
CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJv
dGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworICAgIEluc2Vy
dFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0
ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42MWFjYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCisgICAgOiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0
ZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
ZDA1NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKwor
I2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8
Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ3YTdmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxh
Y2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVQYXN0ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZhMzUyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsK
KworY2xhc3MgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5lMDE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0
ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzBmZGJk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
X2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgor
ICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjM1YWM3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCww
ICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0
ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisg
ICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBp
bmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwg
dGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQs
IHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVs
ZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdjNDI2OAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNp
bmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRl
bGV0ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlSW5zZXJ0OyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOyB9CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVk
VGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uMzBjNDdjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5o
IgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDU1NTdHls
ZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ0LDE0ICs0NSwyMCBAQAogI2luY2x1ZGUgIkhUTUxUaXRs
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJT
dHlsZS5oIgorI2luY2x1ZGUgIlBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKyNpbmNs
dWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAi
UmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgi
CisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRl
ICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNp
bmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAi
VGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5j
bHVkZSAibWFya3VwLmgiCkBAIC0xNDgyLDYgKzE0ODksMzAgQEAgdm9pZCBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6dXBkYXRlTm9kZXNJbnNlcnRlZChOb2RlICpub2RlKQogCiAgICAgbV9lbmRP
Zkluc2VydGVkQ29udGVudCA9IGxhc3RQb3NpdGlvbkluT3JBZnRlck5vZGUobm9kZS0+bGFzdERl
c2NlbmRhbnQoKSk7CiB9CisgICAgCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENo
aWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICBz
d2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAg
ICAgcmV0dXJuIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAg
Y2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVm
Q2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICB9Cit9CisK
K1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkK
K3sKKyAgICBzd2l0Y2ggKG1fZWRpdEFjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvblR5cGlu
ZzoKKyAgICAgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBj
YXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVs
ZXRlZFRleHQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBpbnNl
cnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAgICB9Cit9CiAKIC8vIER1cmluZyBzaW1wbGUgcGFz
dGVzLCB3aGVyZSB3ZSdyZSBqdXN0IHBhc3RpbmcgYSB0ZXh0IG5vZGUgaW50byBhIHJ1biBvZiB0
ZXh0LCB3ZSBpbnNlcnQgdGhlIHRleHQgbm9kZQogLy8gZGlyZWN0bHkgaW50byB0aGUgdGV4dCBu
b2RlIHRoYXQgaG9sZHMgdGhlIHNlbGVjdGlvbi4gIFRoaXMgaXMgbXVjaCBmYXN0ZXIgdGhhbiB0
aGUgZ2VuZXJhbGl6ZWQgY29kZSBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYuLmUyNmE5NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTExMSw2
ICsxMTEsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwZXJmb3JtVHJpdmlhbFJlcGxhY2UoY29u
c3QgUmVwbGFjZW1lbnRGcmFnbWVudCYpOwogCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+
IGluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9k
ZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOworCiAgICAgUG9zaXRpb24gbV9zdGFydE9mSW5zZXJ0ZWRDb250ZW50OwogICAg
IFBvc2l0aW9uIG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHls
ZT4gbV9pbnNlcnRpb25TdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQu
Y3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxl
VW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAg
dm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBz
ZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldp
dGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0
KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRD
b21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAg
IFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAg
ICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENv
bW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4
dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNDIyMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wMGJkMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiMjQ2
MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNl
cnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAg
OiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE3NDYx
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNp
bmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0
cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAx
YjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNs
dWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5k
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENv
bW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkK
K3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5zZXJ0
VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKworUmVmPEVkaXRD
b21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJl
dHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21t
YW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4
dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBz
ZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0g
UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4
dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwg
Ym9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5z
ZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMzBkZDUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisg
ICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQs
IGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YzJlMGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0
ZWRUZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2Vs
ZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9u
QXRrLmNwcAppbmRleCA3YzIxMzY1Li5lNjk1YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRp
YyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlP
YmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLjA3ZTJhNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00Nywx
MyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3Qo
Q0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1f
c2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3RO
dWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRp
b24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9i
amVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQp
OworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9z
ZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsK
ICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41YmZiNjQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hh
bmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJp
bmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBi
b29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0
SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdl
ZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNh
Y2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2Vk
LCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlu
bmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAg
ICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAg
ICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5k
ZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6
UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAg
ICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0NjA1MWM2Li5jNTI4OGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBz
ZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rp
b24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2Vs
ZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZp
c2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVj
dENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2Vs
ZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2MwN2ZlLi5iZmQxZmQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zNDEsNyArMzQxLDcg
QEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBm
aXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZWxlbWVudC5nZXQoKSk7CiAgICAgICAgIFZpc2li
bGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKHBvc2l0aW9uLCBwb3NpdGlvbiwgRE9XTlNUUkVBTSk7
CiAgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVj
dENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiAgICAgfQogCiAgICAgZWxlbWVudC0+Zm9jdXMoZmFsc2Us
IGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZjY1NDk4MS4uM2M5ODY0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTE0ICBEb3VnIFJ1
c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBj
aGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0
aGUgY29udGV4dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVk
IHZhbHVlIGFuZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgUmlj
aGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBB
WFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9y
ZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRl
bnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBw
YXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emlu
ZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5
IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJs
b2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZp
Y2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgt
W0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpd
KToKKwogMjAxNS0wNC0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVXBkYXRlIG15IGVtYWlsIGFkZHJlc3MgYW5kIGV4cGVydGlzZS4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5tbQppbmRleCBhZGE2ODdhLi43YjAxN2JhIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25I
YW5kbGVyLm1tCkBAIC0xMTIsMTYgKzExMiwyNyBAQAogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVu
dCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0aW9uIG9iamVjdF0pCiAgICAgICAg
IHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pTT05WYWx1ZSA9IG5vdGlmaWNhdGlv
bi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
anNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25OYW1lIGNyZWF0ZUpTU3RyaW5nUmVm
XSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVlTWFr
ZVN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc05vdGlmaWNhdGlvbi5nZXQoKSk7
CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gbmlsOworICAgIGlm
IChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZvSlNPTlZhbHVlIGNy
ZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBK
U1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzVXNl
ckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQp
IHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1c3QgZ2V0cyBvbmUgYXJn
dW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5j
dGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2Fs
bGJhY2ssIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDApOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQgYW5kIHRoZSBu
b3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8vIExpc3RlbmVyIGZvciBv
bmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAgICAg
ICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1bWVudHNbMF0gPSBub3Rp
ZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9IHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFt
ZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBh
cmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVy
IGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAg
ICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQoW21haW5GcmFt
ZSBnbG9iYWxDb250ZXh0XSwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbm90aWZpY2F0aW9uIG9i
amVjdF0pKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50
OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OwogICAg
ICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1f
bm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tCmluZGV4IDY1MWI1OTEuLjI4Y2EwM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjUsMTkgKzEyNSwzMCBAQAogICAg
IGlmIChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0
aW9uIG9iamVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pT
T05WYWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBXS0J1
bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShXVFI6Oklu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7CiAgICAgSlNDb250ZXh0
UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1l
KTsKIAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwg
W25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5v
dGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzTm90
aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1l
bnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNl
ckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09O
VmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwganNVc2Vy
SW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkg
ewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1
bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0
aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rp
b25DYWxsYmFjayksIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDApOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQgYW5k
IHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8vIExpc3RlbmVy
IGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8u
CiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1bWVudHNbMF0g
PSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9IHVzZXJJ
bmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29u
dGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxi
YWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGds
b2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNl
ckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVu
dHNbMF0gPSB0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkpKTsKICAgICAgICAgYXJndW1lbnRz
WzFdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1
c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9u
KGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25D
YWxsYmFjayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250736</attachid>
            <date>2015-04-14 14:01:35 -0700</date>
            <delta_ts>2015-04-15 13:57:26 -0700</delta_ts>
            <desc>tests</desc>
            <filename>0004-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>36156</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBmNjg1NzhhYmRiMjkwMjQwNWUxMmFmZGVkMWRiOTA4YzUwYjMxYzNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAxMDo0ODo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVGVzdHMKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAxMSArKwogLi4uL3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8t
ZXhwZWN0ZWQudHh0ICAgICAgICAgfCAgOTUgKysrKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwgICB8IDIxNyArKysrKysrKysrKysrKysrKysr
KysKIC4uLi9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgIHwg
IDExICstCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
ICB8ICAxMiArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaCAg
ICAgICAgfCAgIDEgKwogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0gICAgICAgfCAgNTIgKysrKy0KIC4uLi9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW0gICAgICAgIHwgIDE5ICstCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLm1tICAgICAgICB8ICAxOSArLQogOSBmaWxlcyBjaGFuZ2VkLCA0MTUgaW5zZXJ0
aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBl
Y3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTIwNDY1
Yi4uNzcxY2MyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA0LTA4ICBEb3VnIFJ1c3Nl
bGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFu
Z2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4IGZhaWxpbmcgdGVzdAorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vz
c2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFyaWEtdGV4dGJveC5odG1sOgor
CiAyMDE1LTA0LTEwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29udGVudCBGaWx0ZXJpbmddIFN1cHBvcnQgbW9kaWZ5aW5nIHJlcXVlc3QgVVJMcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNo
YW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2M5ZjIxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11
c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5NSBAQAorb25lIHR3byB0aHJlZS4gZm91
ciBmaXZlIHNpeC4KKworc2V2ZW4gZWlnaHQgbmluZS4KKworVGhpcyB0ZXN0cyBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgZm9yIG1vdmVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRl
bmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24i
XSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJd
IGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTcxMzQ1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAt
MCwwICsxLDIxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2
IHJvbGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10
cnVlPgorPHA+b25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC48L3A+Cis8cD5zZXZlbiBlaWdo
dCBuaW5lLjwvcD4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKzxzY3Jp
cHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlm
aWNhdGlvbnMgZm9yIG1vdmVzLiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQgPSAzOworCisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA9
IDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA9IDI7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzID0gMzsKKyAgICB2YXIgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCA9IDQ7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlDaGFyYWN0ZXIgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQg
PSAyOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgPSAzOworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlID0gNDsKKyAgICB2YXIgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggPSA1OworICAgIHZhciBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50ID0gNzsKKworICAgIHZhciBncmFuID0gWyJjaGFyYWN0ZXIi
LCAid29yZCIsICJzZW50ZW5jZSIsICJsaW5lIiwgInBhcmFncmFwaCIsICJsaW5lYm91bmRhcnki
LCAic2VudGVuY2Vib3VuZGFyeSIsICJwYXJhZ3JhcGhib3VuZGFyeSIsICJkb2N1bWVudGJvdW5k
YXJ5Il07CisgICAgdmFyIHdlYkFyZWEgPSAwOworICAgIHZhciBjb3VudCA9IDA7CisgICAgdmFy
IHJlc3VsdHMgPSBbXTsKKyAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgIGZ1bmN0aW9uIG5v
dGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlckluZm8pIHsKKyAgICAgICAgaWYg
KG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZFRleHRDaGFuZ2VkIikgeworICAgICAgICAgICAg
Y291bnQrKzsKKyAgICAgICAgICAgIGlmICh1c2VySW5mbykKKyAgICAgICAgICAgICAgICByZXN1
bHRzLnB1c2godXNlckluZm8pOworICAgICAgICAgICAgaWYgKGNvdW50ID09IGdyYW4ubGVuZ3Ro
ICogNCkgeworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBo
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVc
Il0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAy
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAg
ICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIp
IHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAg
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVl
KTsKKworICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1l
bnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJB
cmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAg
ICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAgICB0ZXh0
Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKKyAgICAgICAgdGV4dGJv
eC5mb2N1cygpOworCisgICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCisgICAg
ICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOworICAgICAgICBzLnNldFBvc2l0aW9u
KHRleHRib3gsIDApOworICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAgICAgICAg
IHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgICAgIHMubW9k
aWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9y
ICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDAp
OworICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbltpXSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
dmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0Ym94Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tdmFsdWUtY2hhbmdlcy1mb3ItYXJpYS10ZXh0
Ym94Lmh0bWwKaW5kZXggYTFlODQzZS4uZjZkNGRhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLXZhbHVlLWNoYW5nZXMtZm9yLWFy
aWEtdGV4dGJveC5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L3NlbGVjdGlvbi12YWx1ZS1jaGFuZ2VzLWZvci1hcmlhLXRleHRib3guaHRtbApAQCAtMTcs
MTEgKzE3LDExIEBAIGNvbnRlbnQgaW5zaWRlCiAKICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IEFSSUEgcmVtb3ZpbmcgYW4gZWxlbWVudCBmcm9tIGEgbGl2ZSByZWdpb24gc2VuZHMg
dGhlIGNvcnJlY3Qgbm90aWZpY2F0aW9uLiIpOwogCi0gICAgdmFyIGF4VGV4dGJveCA9IDA7Cisg
ICAgdmFyIHdlYkFyZWEgPSAwOwogICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5v
dGlmaWNhdGlvbikgewogICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdl
ZCIpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbnMi
KS5pbm5lckhUTUwgKz0gIlN1Y2Nlc3NmdWxseSByZWNlaXZlZCAiICsgbm90aWZpY2F0aW9uICsg
Ijxicj4iOwotICAgICAgICAgICBheFRleHRib3gucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KTsKKyAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwogICAg
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KICAgICAg
ICAgZWxzZSBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CkBA
IC0zNSw3ICszNSw5IEBAIGNvbnRlbnQgaW5zaWRlCiAgICAgICAgIHRleHRib3ggPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwogICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CiAK
LSAgICAgICAgdmFyIGF4VGV4dGJveCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OworICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVs
ZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3
ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAg
ICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKIAogICAgICAgICAv
LyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgogICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKQEAgLTQ2LDkgKzQ4LDYgQEAgY29udGVudCBpbnNpZGUKIAogICAgICAgICAv
LyBUcmlnZ2VyIHZhbHVlIGNoYW5nZS4KICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIklu
c2VydFRleHQiLCBmYWxzZSwgImhlbGxvICIpOwotCi0gICAgICAgIHZhciBhZGRlZE5vdGlmaWNh
dGlvbiA9IGF4VGV4dGJveC5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxs
YmFjayk7Ci0gICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CiAg
ICAgfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDYwNTIzYTguLjg4NTBlNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQpAQCAtMjQzLDEwICsyNDMsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCoKICAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSBvYmotPndyYXBwZXIoKTsK
ICAgICBpZCB0YXJnZXQgPSByb290V2ViQXJlYSgpLT53cmFwcGVyKCk7CiAgICAgTlNBY2Nlc3Np
YmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh0YXJnZXQsIE5TQWNjZXNzaWJpbGl0
eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKLSAgICBbdXNlcklu
Zm8gcmVsZWFzZV07CiAKICAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0
aW9ucyBhcmUgcG9zdGVkLgotICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNh
dGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uXTsKKyAg
ICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5
U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisgICAg
W3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiBzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFj
ZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCkBAIC0yOTIsMTAgKzI5MiwxMCBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KgogICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
RWxlbWVudF0gPSB3cmFwcGVyOwogICAgIGlkIHRhcmdldCA9IHJvb3RXZWJBcmVhKCktPndyYXBw
ZXIoKTsKICAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHRh
cmdldCwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7
Ci0gICAgW3VzZXJJbmZvIHJlbGVhc2VdOwogCiAgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3
aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
XTsKKyAgICBbdGFyZ2V0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3Np
YmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICBb
dXNlckluZm8gcmVsZWFzZV07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhU
ZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRl
eHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAgLTMyMSwxMCArMzIxLDEwIEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqCiAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CiAgICAgaWQgdGFyZ2V0ID0gcm9vdFdlYkFyZWEoKS0+
d3JhcHBlcigpOwogICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlcklu
Zm8odGFyZ2V0LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJ
bmZvKTsKLSAgICBbdXNlckluZm8gcmVsZWFzZV07CiAKICAgICAvLyBVc2VkIGJ5IERSVCB0byBr
bm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgotICAgIFt0YXJnZXQgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmlj
YXRpb25dOworICAgIFt0YXJnZXQgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0Fj
Y2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOwor
ICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxv
YWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJh
bWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4uYzQ2NDhmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgVmlz
aWJsZVBvc2l0aW9uOwogLSAoaWQpYXR0YWNobWVudFZpZXc7CiAvLyBVc2VkIHRvIGluZm9ybSBh
biBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBE
UlQuCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICop
bm90aWZpY2F0aW9uTmFtZTsKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlv
bjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1
c2VySW5mbzsKIAogLSAoQ0dQYXRoUmVmKWNvbnZlcnRQYXRoVG9TY3JlZW5TcGFjZTooV2ViQ29y
ZTo6UGF0aCAmKXBhdGg7CiAtIChDR1BvaW50KWNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6KFdl
YkNvcmU6OkZsb2F0UG9pbnQgJilwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5tbQppbmRleCA1ZGRmYzNhLi5iZGRkNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0zODcsOSArMzg3LDU3IEBAIHN0YXRpYyBCT09MIGFj
Y2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogCiAtICh2b2lkKWFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZQogewor
ICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykKKyAgICAgICAg
W3NlbGYgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25OYW1lIHVz
ZXJJbmZvOm5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICpyZW1vdmVOb25KU09OVHlwZXNGcm9t
QXJyYXkoTlNBcnJheSAqYXJyYXkpCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJh
eSA9IFthcnJheSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGlkeCA9IDA7IGlk
eCA8IFttdXRhYmxlQXJyYXkgY291bnRdOyBpZHgrKykgeworICAgICAgICBpZCB2YWx1ZSA9IG11
dGFibGVBcnJheVtpZHhdOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGlj
dGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0
QXRJbmRleDppZHggd2l0aE9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeSh2
YWx1ZSldOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBj
bGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDpp
ZHggd2l0aE9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tQXJyYXkodmFsdWUpXTsKKyAgICAg
ICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBb
dmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0
YWJsZUFycmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aWR4XTsKKyAgICB9CisgICAgcmV0dXJuIFtt
dXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpyZW1v
dmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeShOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7
CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0YWJsZURpY3Rpb25hcnkgPSBbZGljdGlvbmFy
eSBtdXRhYmxlQ29weV07CisgICAgW2RpY3Rpb25hcnkgZW51bWVyYXRlS2V5c0FuZE9iamVjdHNV
c2luZ0Jsb2NrOl4oaWQga2V5LCBpZCB2YWx1ZSwgQk9PTCAqKQorICAgIHsKKyAgICAgICAgaWYg
KFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAg
IG11dGFibGVEaWN0aW9uYXJ5W2tleV0gPSByZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFy
eSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5
IGNsYXNzXV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gcmVtb3ZlTm9u
SlNPTlR5cGVzRnJvbUFycmF5KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNO
dW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2Jq
ZWN0Rm9yS2V5OmtleV07CisgICAgfV07CisgICAgcmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBh
dXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlv
bjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1
c2VySW5mbworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9u
cykgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9u
TmFtZSIsIG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYg
dXNlckluZm86dXNlckluZm9dOworICAgICAgICBBU1NFUlQobm90aWZpY2F0aW9uTmFtZSk7Cisg
ICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7
CisgICAgICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9u
IGRhdGFXaXRoSlNPTk9iamVjdDpyZW1vdmVOb25KU09OVHlwZXNGcm9tRGljdGlvbmFyeSh1c2Vy
SW5mbykgb3B0aW9uczpOU0pTT05Xcml0aW5nUHJldHR5UHJpbnRlZCBlcnJvcjpuaWxdOworICAg
ICAgICAgICAgaWYgKHVzZXJJbmZvRGF0YSkgeworICAgICAgICAgICAgICAgIE5TU3RyaW5nICp1
c2VySW5mb1N0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTp1c2VySW5mb0Rh
dGEgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOworICAgICAgICAgICAgICAgIGlmICh1
c2VySW5mb1N0cmluZykKKyAgICAgICAgICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRp
b25OYW1lIiA6IG5vdGlmaWNhdGlvbk5hbWUsIEAidXNlckluZm8iIDogdXNlckluZm9TdHJpbmd9
OworICAgICAgICAgICAgICAgIFt1c2VySW5mb1N0cmluZyByZWxlYXNlXTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIXVzZXJJbmZvKQorICAgICAgICAgICAgaW5mbyA9
IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlvbk5hbWV9OworICAgICAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAi
QVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLjdiMDE3YmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KQEAgLTExMiwxNiArMTEyLDI3IEBACiAgICAgaWYgKG1fcGxhdGZv
cm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90
aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNT
dHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpT
VmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90aWZpY2F0aW9u
LmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7
CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9KU09O
VmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVBcmd1
bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0
XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3Jt
RWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRz
IG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVu
Y3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBh
bmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVu
ZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5m
by4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1sw
XSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNl
ckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihb
bWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ss
IDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwg
bGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZv
LgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBd
ID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChb
bWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmlj
YXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1l
QXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1l
bnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250
ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDAp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwxOSArMTI1LDMw
IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtu
b3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVz
ZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwog
ICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1l
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsKICAgICBK
U0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dCht
YWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9u
KEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFs
dWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4
dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9KU09OVmFs
dWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsK
KyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFsdWUoQWRv
cHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAgICB1c2Vy
SW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0
LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1F
bGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMg
b25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2Fs
bEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRp
b25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxl
bWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8g
TGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1
c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3Vt
ZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFd
ID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5j
dGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0
aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAg
IC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1l
IGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAg
IGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwogICAgICAgICBh
cmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50
c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFz
RnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25G
dW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9Ci0tIAoyLjMu
MiAoQXBwbGUgR2l0LTU1KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250825</attachid>
            <date>2015-04-15 11:13:58 -0700</date>
            <delta_ts>2015-04-16 19:31:34 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>269281</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDVhZDA3ZTQ1ZmQ4NTk5NGM0NTA3NTY4NmEwMTNhZjg3OTA3NzE0OGUKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MTkKICAgIAogICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4
dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFu
ZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCiAgICAKICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFu
ZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBz
ZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBjZDU3NGYuLmQ4
N2MyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wNC0xNSAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTE1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIHN0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjYzlmMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZp
dmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyBmb3IgbW92ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
biJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Nl
bGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xNzEzNDU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAg
KzEsMjE3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgcm9s
ZT0idGV4dGJveCIgdGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxlPXRydWU+
Cis8cD5vbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4LjwvcD4KKzxwPnNldmVuIGVpZ2h0IG5p
bmUuPC9wPgorPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworPHNjcmlwdD4K
KworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyBmb3IgbW92ZXMuIik7CisKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSA9IDI7CisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCA9IDM7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nID0gMTsK
KyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kID0gMjsKKyAgICB2YXIgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgPSAzOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0ID0gNDsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciA9IDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCA9IDI7
CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IDM7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSA0OworICAgIHZhciBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IDU7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQgPSA3OworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3
b3JkIiwgInNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJz
ZW50ZW5jZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnki
XTsKKyAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVz
dWx0cyA9IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZp
Y2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90
aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3Vu
dCsrOworICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMu
cHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0
KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJ
bmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRl
eCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0g
MjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewor
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOwor
CisgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEu
YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBz
aG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3gg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZv
Y3VzKCk7CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAg
dmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4
dGJveCwgMCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5t
b2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZh
ciBpIGluIGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7Cisg
ICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAg
ICAgfQorICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggMjkwYjMzMS4uNGMzYTI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE0NjgsMTAgKzE0NjgsMTQgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJl
YWtCbG9ja3F1b3RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAogICAgIGVkaXRpbmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGlj
dGF0aW9uQWx0ZXJuYXRpdmUuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAor
ICAgIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdENv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCiAgICAgZWRpdGluZy9FZGl0
b3IuY3BwCkBAIC0xNDkwLDExICsxNDk0LDE1IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBl
ZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvTW9k
aWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcAogICAgIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCisgICAgZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorICAg
IGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZUZv
cm1hdENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRp
bmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQuY3BwCkBAIC0xNTEwLDYgKzE1MTgsMTAgQEAgc2V0KFdlYkNvcmVf
U09VUkNFUwogICAgIGVkaXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAogICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGlu
Zy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9VbmxpbmtDb21tYW5kLmNwcAogICAgIGVk
aXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBjNDg5NDNhLi5jOTljNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjIzIEBACisyMDE1LTA0LTE1ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IEVkaXRD
b21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vzc2liaWxpdHkg
bmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBn
aXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25k
aW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNt
IHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNj
ZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisg
ICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2Yg
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFw
cHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2Vi
IGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMg
b24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpBWE9iamVjdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpz
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlv
bik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0
Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50
UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZp
ZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZp
ZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1t
OgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpdKToKKyAgICAgICAgKGFycmF5UmVtb3ZpbmdOb25KU09O
VHlwZXMpOgorICAgICAgICAoZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAg
ICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0
ZWROb3RpZmljYXRpb246dXNlckluZm86XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBw
bHkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6
CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1h
bmRDb21wb3NpdGlvbjo6dW5hcHBseUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Np
dGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5O
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdy
YXBocyk6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAg
ICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAq
IGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1w
bGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVF
ZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVk
aXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmFw
cGx5SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5
SW50ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHA6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBs
aWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8pOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24pOgorICAgICAgICAq
IGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAg
ICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVk
aXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcv
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAg
ICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXds
aW5lcyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29y
ZTo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBw
bHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRr
L0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0
aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAg
KiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtl
eWJvYXJkU2VsZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRP
cmRlcik6CisKIDIwMTUtMDQtMTQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIGNyZWF0aW5nIHNlbmQgcmlnaHRzIGZyb20gc2hhcmVkIG1lbW9y
eSBtb3JlIHJvYnVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKaW5kZXggZDA3N2EwMi4uYTJjMWM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNDM2Niw2ICsxNDM2NiwzNCBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENv
bXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KQEAgLTE0NDIyLDYgKzE0NDUwLDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDcwMyw2ICsxNDc1OSwzNCBAQAog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJl
bW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ3NzMsNiArMTQ4NTcsMzQgQEAKICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+
CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNw
YW5Db21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC0xNDk5Nyw2ICsxNTEwOSw2MiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMTA0MSwxMCArMjEyMDksMTQgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVM
aW5rQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkFsdGVybmF0
aXZlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNv
bW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0QWN0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEVkaXRpbmdCZWhhdmlvci5oIiAvPgpAQCAtMjEwNzEsMTAgKzIxMjQz
LDE0IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1lcmdlSWRlbnRpY2Fs
RWxlbWVudHNDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVt
b3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQu
aCIgLz4KQEAgLTIxMDkzLDYgKzIxMjY5LDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFRleHRJdGVyYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xUZXh0SXRlcmF0b3JCZWhhdmlvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9zaXRpb24uaCIgLz4KQEAgLTIxNzU1LDQgKzIxOTM1LDQg
QEAKICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0
IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdl
dHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGU0NDYwODcuLjU0ZWNiMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKQEAgLTM0MzgsNiArMzQzOCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNDUwLDYg
KzM0NTYsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9u
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xE
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTM1MTMsNiArMzUyNSwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlD
b21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KQEAgLTM1MjgsNiArMzU0NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1
NzYsNiArMzYwMCwxOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBp
bmdDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTA1NjYsNiArMTA2MDIs
MTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1h
bmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KQEAgLTEwNTc4LDYgKzEwNjIwLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0QWN0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDY1Niw2ICsxMDcwNCwxMiBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIj4K
ICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NT
UHJvcGVydHlDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkBAIC0xMDY2OCw2ICsxMDcyMiwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0x
MDcyMiw2ICsxMDc4MiwxOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbi5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTU0NTUsNCArMTU1MjcsNCBAQAogICAgICAgPEZp
bHRlcj5wbGF0Zm9ybVx3aW48L0ZpbHRlcj4KICAgICA8L01BU00+CiAgIDwvSXRlbUdyb3VwPgot
PC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1
MTEwZTBiLi5jMjAyOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc0LDEyICs2Mzc0LDIyIEBACiAJCUY0Nzg3NTU1MTk5
ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4
NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4
QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0
eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNu
YXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAg
Ki87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9Owog
CQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVG
RjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJB
RDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAv
KiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgz
MDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQg
LyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBD
ODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQg
LyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4
MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1
MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVC
M0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsK
QEAgLTY0MjksMTIgKzY0MzksMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVS
TElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9OwogCQlG
NTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYy
NjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2
OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICov
OyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFD
QTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFB
Q0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNG
QjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAy
N0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsg
fTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlD
OTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsg
fTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1
RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovOyB9Owor
CQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25N
ZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07
CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0
RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFB
Q0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1
MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjEx
IC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIx
QUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcw
MDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVD
MDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNB
N0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhU
TUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8q
IERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxp
c3RFbGVtZW50LmggKi87IH07CkBAIC0xMzk5NCw2ICsxNDAxOCw4IEBACiAJCUY0Nzg3NTUzMTk5
ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyog
U3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9s
bFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5
NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUv
U3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkND
MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMw
MEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA2LDggKzE0MDMyLDE2IEBACiAJCUY1MjNE
MzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0
NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBF
bXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1w
dHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNC
MDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJB
ODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8q
IEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJh
c2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdC
MTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE0MDU3LDYgKzE0MDkxLDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQw
MDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFC
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQx
MjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0
MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0Ex
NDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwNjcsOCArMTQxMDcsMTYgQEAKIAkJ
RjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlD
OTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8q
IFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAv
KiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJC
MTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZG
Q0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1l
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2NzksNiArMTc3MjcsMTAgQEAKIAkJCQk5
MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJ
CQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAog
CQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAor
CQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5
RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5
MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICov
LAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAqLywKQEAgLTE3Njg3LDYgKzE3NzM5LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAw
RTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhG
RjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4
RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZD
QzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAor
CQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcg
LyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkx
MDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4
MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8q
IEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzczMyw2ICsxNzc4OSwxMCBAQAogCQkJCUM2RDc0QUQz
MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5
MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAog
CQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICov
LAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAv
KiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0
REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1v
dmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0Yg
LyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc0Myw2ICsxNzgwMywxMCBAQAog
CQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJl
ZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVy
ZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1
MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyog
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEw
MEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJB
MDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0x
Nzc3OCw2ICsxNzg0MiwxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0
SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBU
eXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlw
aW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUy
OTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyog
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJC
MTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJ
CUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3Rl
cC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNw
cCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICov
LApAQCAtMjM2NzEsNiArMjM3NDMsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAv
KiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAw
RDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRB
NEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3
MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hl
R3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0NzIsNiArMjQ1NDUsNyBAQAogCQkJCTMxMDYw
Mzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRl
clZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJG
NjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVF
MUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNT
U0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkND
QzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNDc5NSw2ICsyNDg2OSw3IEBACiAJCQkJQTE5RDkzNEIxQUEx
MUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5
QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjUwMjQsNiArMjUwOTksNyBAQAogCQkJCUZERjdFOUM0MTNB
QzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9D
b250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyog
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVu
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1
ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAzMiw2ICsyNTEwOCw3IEBACiAJCQkJQkU4
RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVy
cm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTUxLDYgKzI1MjI4LDcgQEAKIAkJCQlGREExNUVB
QzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4
RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAv
KiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAw
RDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgz
MjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTkz
LDYgKzI1NjcxLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAw
NzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBB
OEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBp
biBIZWFkZXJzICovLApAQCAtMjY3NzQsNiArMjY4NTMsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZD
MUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNF
MEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICov
LAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBF
RjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNE
QTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJz
ICovLApAQCAtMjY4MjcsNiArMjY5MDcsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2
MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcw
MDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIx
ODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQg
LyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVB
MDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5
NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NTAsMTIg
KzI3MDMxLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRp
c2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJG
MEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdl
YkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5
MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlE
REExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1
bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4
NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAx
RTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQw
Mzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRy
YXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5ODgsNiArMjcwNzEsNyBAQAogCQkJCTZFNEU5MUFG
MTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRl
eHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8q
IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDND
Rjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZv
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xE
ZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3MjcsNiArMjc4MTEsNyBAQAogCQkJ
CTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRU
ZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYx
RjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1
Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdl
R2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAw
MDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZD
RkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yNzgwNCw2ICsyNzg4OSw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBB
NUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQw
RTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1
OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yNzk0MCw2ICsyODAyNiw3IEBACiAJCQkJODVFQ0JFRjYwQUE3
NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVs
ZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYz
MkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxl
bWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBE
T01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MDg3LDYgKzI4
MTc0LDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3Bl
bkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJD
MCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRF
MTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgw
RTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThC
OEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0FFMzM1RjExQUNCMDlFMjAwRTQwMUVGIC8qIFdoZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI4MTk4LDYgKzI4Mjg2LDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2
MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcy
MEIwQTAxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3
QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2
MjUyRTE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI4MjE4LDYgKzI4MzA3LDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUz
MDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgz
RTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFB
OUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE3OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTI4Mzk3LDYgKzI4NDg3LDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZC
OUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIz
REMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0yODg1NCw2ICsyODk0NSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAw
QkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAx
MUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5n
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUy
MTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0I3MEQ2QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRl
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg4OCw2ICsyODk4MCw3IEBACiAJCQkJMDc5
NjlEQkIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1
ODgwMEFCREQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4
NDIgLyogSlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMx
MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yOTY2Myw2ICsyOTc1Niw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0
RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcz
Nzk0REQxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcz
QkUzNTAxN0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VF
MDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
Mjk4NDAsNiArMjk5MzQsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxU
cmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBD
QzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUz
MUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5
QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYy
RTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTMwMzQzLDYgKzMwNDM4LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYg
LyogV0tHcmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERB
NjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4
MzAwREE2M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2
RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1h
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBX
b3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi5kMzViYjlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwg
MjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmpl
Y3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3Vt
ZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9i
amVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIwIEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAg
Y2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBB
WE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0
b3AoKTsKKworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRl
bmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNh
biBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRp
b24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQg
dGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG9iamVjdCA6IG5v
dGlmaWNhdGlvbnMpCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmplY3QuZ2V0KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3Np
dGlvbigpKTsKKyNlbmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZp
Y2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlv
biwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwx
NiArODY1LDIxOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2Vk
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwg
QVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAK
LXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9k
ZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KQorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChj
b25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50
ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAg
ICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6Iik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAg
ICAgcHJpbnRmKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50ZigiRXh0ZW5kOjoiKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hh
bmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAg
cHJpbnRmKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVsZXRlIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAg
ICAgIHByaW50ZigiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50ZigiRGljdGF0aW9uSW5z
ZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICAgICAgICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIHByaW50
ZigiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVBhc3RlOgorICAgICAgICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAg
IHByaW50ZigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBwcmludGYoIkJl
Z2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBwcmludGYoIkVuZDo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
czoKKyAgICAgICAgICAgIHByaW50ZigiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAg
IHByaW50ZigiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgcHJpbnRmKCJE
aXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHN3
aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkgeworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246CisgICAgICAgICAgICAgICAgcHJpbnRm
KCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIHByaW50
ZigiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBwcmludGYo
IldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAgICAgICAgICAgIHByaW50ZigiTGluZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIHByaW50ZigiU2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYXJhZ3Jh
cGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFnZSIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIHByaW50ZigiRG9jdW1lbnQiKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJBbGwiKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVu
dC5zeW5jKQorICAgICAgICBwcmludGYoIi1TeW5jIik7CisgICAgcHJpbnRmKCJcbiIpOworfQor
I2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50
ID0gaW50ZW50OworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24oTm9kZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFub2RlKQogICAg
ICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoaW50ZW50LnR5cGUg
PT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0
U2VsZWN0aW9uSW50ZW50OworCisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmli
dXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9k
ZSk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8
fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0
aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9i
amVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQp
OworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24p
OworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKwogICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmln
aHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShu
b2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENo
YW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqKSB7
CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICAgICAgZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFu
Z2VOb3RpZmljYXRpb24ob2JqKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4
dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlv
bik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0
ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVw
cmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4
dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0
RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICBy
ZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7
CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5z
ZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQ
YXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3Jk
RmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKKyAgICAgICAg
ICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iaik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2Jq
ZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRp
b24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4
dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFu
Z2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5k
ZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQoreworICAgIGlmICghb2JqKQorICAgICAgICByZXR1
cm47CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0gb2JqLT5v
YnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoc3RkOjpmaW5kKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0
LmJlZ2luKCksIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmVuZCgpLCBvYnNlcnZhYmxl
T2JqZWN0KSA9PSBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSkgeworICAgICAg
ICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9iamVjdCk7
CisgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNo
b3QoMC4wMjUpOworICAgIH0KIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdF
dmVudE5vdGlmaWNhdGlvbihGcmFtZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVu
dCkKQEAgLTEwODQsNiArMTMwMSwxNSBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5v
ZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVj
dENhY2hlOjpyb290V2ViQXJlYSgpCit7CisgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QgKnJv
b3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKHJvb3RPYmplY3Qt
PmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2Fz
dDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndlYkFyZWFPYmplY3QoKTsK
KyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVy
OjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1f
Y2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oCmluZGV4IGJmYTkyNzcuLjU4YjEzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4OSw5OSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlv
biwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91
c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERv
Y3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0
VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0g
ICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAgIGVudW0g
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5r
bm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0RWRpdFR5cGUgewor
ICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0
LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAv
LyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8g
SW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8vIERlbGV0
ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0
ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0
IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cwogICAgIH07CiAKLSAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlMaW5lLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eURvY3VtZW50LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBB
bGwgZ3JhbnVsYXJpdHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hv
bGUgZG9jdW1lbnQgYXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNv
bWUgb3RoZXIgZ3JhbnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3Vt
ZW50IHdpbGwgbm90IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24uCisg
ICAgfTsKKworICAgIHN0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgICAgICBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSBncmFudWxhcml0eTsKKyAgICB9OworCisgICAgc3RhdGljIEFYVGV4dFNlbGVjdGlvbiBU
ZXh0U2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFu
dWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICB7CisgICAg
ICAgIGF1dG8gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCk7CisgICAgICAgIHNlbGVjdGlv
bi5kaXJlY3Rpb24gPSBkaXJlY3Rpb247CisgICAgICAgIHNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IGdyYW51bGFyaXR5OworICAgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0KKworICAgIHN0
cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSB0eXBlOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxlY3Rpb24g
c2VsZWN0aW9uOworICAgICAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgICAgICB9
OworICAgICAgICBib29sIHN5bmM7CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3du
LCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJvb2wgc3lu
YyA9IGZhbHNlKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVj
dGlvbihzZWxlY3Rpb24pCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeyB9CisK
KyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQor
ICAgICAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICAg
ICAsIGNoYW5nZShjaGFuZ2UpCisgICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAgICAgIHsg
fQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSB0eXBlLCBib29sIHN5bmMpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAg
ICwgc2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMp
CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQpOworICAgICAgICB9CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lk
IHNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisg
ICAgdm9pZCBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0g
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hhbmdlCisg
ICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExv
YWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMzA1LDM1
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVG
b2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9j
dXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsK
KyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAg
ZW51bSBBWFRleHRDaGFuZ2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhU
ZXh0RGVsZXRlZCwKKyAgICB9OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHREZWxldGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVVbmtub3duOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5z
ZXJ0ZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7
CiAgICAgdm9pZCB0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBs
YWJlbENoYW5nZWQoRWxlbWVudCopOwpAQCAtMjI5LDYgKzM0NCw4IEBAIHByb3RlY3RlZDoKICAg
ICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNv
bnRhaW5zKG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdl
YkFyZWEoKTsKKyAgICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFY
SUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8
UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzM2
MSwxMSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAg
IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNh
dGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCk7CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVy
OworICAgIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25zVG9Qb3N0OworICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJG
aXJlZCgpOworCiAgICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhh
bmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2Vs
ZWN0ZWQoTm9kZSopOwpAQCAtMjUxLDYgKzM3MywxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVt
ZW50Kik7CiAgICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKwor
ICAgIHZvaWQgZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCopOworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0
aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4
ICs0MzQsMTYgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBk
YXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqKSB7
IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29u
c3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYp
IHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikg
eyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCiBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKSB7IH0KKyNlbmRpZgogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwg
UG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwg
UG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlv
bihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAKaW5kZXggZDhkMjZkZS4uM2Q0NWQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1
Miw2ICs1NTIsMjcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZp
ZWxkKCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsK
IH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3
b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBu
b2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBpZiAoSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9J
bnB1dEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmll
bGQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Kj4odGhpcyk7CisgICAgfQorICAgIAorICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9k
ZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxl
bWVudCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlICpjYWNoZSA9IGF4T2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1l
bnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJvb2wg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7CiAgICAgTm9k
ZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJmLi5kNTNhOTNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc05h
dGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUGFz
c3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA1
YTI3ZWE4Li5hN2E5OTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2NDYsNCArMjY0NiwyNCBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goYm9v
bCBvbikKIH0KICNlbmRpZgogCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgp
OworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChh
cmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbnVsbHB0cjsKKyAg
ICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBp
ZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgaW5wdXRFbGVt
ZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCk7CisgICAgfQorICAgIGlm
ICghaW5wdXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJu
IGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uMmU5Nzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29u
c3Q7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250
YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJl
YVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjZlZmFhYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwxOCBAQCBQbGFpblRleHRSYW5nZSBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lk
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBs
YWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7
CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAg
ICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250
cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0
Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5n
ZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1f
cmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9k
ZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0
SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0aW9uKG5v
ZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAg
ICBQb3NpdGlvbiBwb3MyID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5n
dGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2libGVTZWxl
Y3Rpb24gdmlzaWJsZVNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9zMiwgRE9X
TlNUUkVBTSk7CisgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24odmlzaWJsZVNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxl
bmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
LCB0cnVlKSk7CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25z
dApAQCAtMTk2MCwxMyArMTk2NCwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAg
IGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1
bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBv
c2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uu
c3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50
ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmln
Z2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAg
ICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcuaAppbmRleCBjNjJjNzUzLi4wYzQ2NGJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCkBA
IC00Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U2Nyb2xs
VmlldygpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRU
eXBlLCBBWE9iamVjdENhY2hlKikgb3ZlcnJpZGU7CiAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyopOwogICAgIApAQCAtNzEsNyArNzMsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRP
YmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlP
YmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB3ZWJBcmVhT2JqZWN0
KCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKiBhZGRDaGlsZFNjcm9sbGJhcihTY3Jv
bGxiYXIqKTsKICAgICB2b2lkIHJlbW92ZUNoaWxkU2Nyb2xsYmFyKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2Jq
ZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVj
dENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi5hYjc5MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDcg
Kzk1LDE2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAot
dm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iaiwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KQoreworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li5mNDViYTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0K
QEAgLTQ0LDYgKzQ0LDUwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVh
dGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rp
b25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRp
dFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
cyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUg
QCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFy
dE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hh
bmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRp
ZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBl
eGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMjAwLDE1MSBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9i
aiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7CisgICAg
aWYgKGludGVudC50eXBlICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKGlu
dGVudC50eXBlKTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2UgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rp
b24pIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQ6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAg
ICAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxh
cml0eV0gPSBAKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgaWYg
KGlkIHRleHRNYXJrZXJSYW5nZSA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFuZ2VGcm9t
VmlzaWJsZVBvc2l0aW9uczpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRpb246c2Vs
ZWN0aW9uLnZpc2libGVFbmQoKV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFuZ2U7Cisg
ICAgfQorCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworCisgICAgTlNB
Y2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVy
KCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJ
bmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUg
cG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlm
aWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uIHVz
ZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25X
aXRoVXNlckluZm8ob2JqLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93
IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFtvYmotPndyYXBwZXIoKSBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENo
YW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcgKnRleHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7
CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICghbGVuZ3Ro
KQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNoYW5nZSA9
IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAgc3RhdGlj
IGNvbnN0IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYgKGxlbmd0
aCA+IHRydW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBz
dWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAobGVuZ3Ro
ID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV0gPSB0
ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAoaWQgdGV4
dE1hcmtlciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOnBv
c2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5nZSBh
dXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRp
dFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBv
c2l0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOwor
CisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5sZW5ndGgo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8g
PSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107CisgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0g
dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBvc2l0aW9u
KSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBA
W2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOwor
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7CisKKyAg
ICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndy
YXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5m
byk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBv
c3RlZC4KKyAgICBbd2ViQXJlYS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmlj
YXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVz
ZXJJbmZvXTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlcklu
Zm8ob2JqLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlv
biwgdXNlckluZm8pOworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRp
b25zIGFyZSBwb3N0ZWQuCisgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJ
bmZvOnVzZXJJbmZvXTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFv
YmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZv
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0g
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNE
aWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwg
ZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBh
ZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVw
bGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0
LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBb
Y2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkp
CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdy
YXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEo
KTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2Vi
QXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24s
IHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9u
cyBhcmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNl
ckluZm86dXNlckluZm9dOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldp
dGhVc2VySW5mbyhvYmotPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90
aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5v
dGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRp
b24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2
b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGlu
Z0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2
YzM1Li5jNDY0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApA
QCAtNTgsNiArNTgsNyBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAtIChpZClhdHRhY2htZW50
VmlldzsKIC8vIFVzZWQgdG8gaW5mb3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlvbiBp
cyBwb3N0ZWQgZm9yIGl0LiBVc2VkIGJ5IERSVC4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUg
dXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVy
dFBhdGhUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29u
dmVydFBvaW50VG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLjYzN2U5
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4Nyw5
ICszODcsNTkgQEAgc3RhdGljIEJPT0wgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNh
dGlvbnM7CiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJp
bmcgKilub3RpZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBv
c3ROb3RpZmljYXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZp
Y2F0aW9uOm5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGljIE5TQXJy
YXkgKmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7CisgICAgQVNT
RVJUKFthcnJheSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5TTXV0YWJs
ZUFycmF5ICptdXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZvciAoTlNV
SW50ZWdlciBpZHggPSAwOyBpZHggPCBbbXV0YWJsZUFycmF5IGNvdW50XTsgaWR4KyspIHsKKyAg
ICAgICAgaWQgdmFsdWUgPSBtdXRhYmxlQXJyYXlbaWR4XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxl
QXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aWR4IHdpdGhPYmplY3Q6ZGljdGlvbmFyeVJlbW92
aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxh
Y2VPYmplY3RBdEluZGV4OmlkeCB3aXRoT2JqZWN0OmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMo
dmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJp
bmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisg
ICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aWR4XTsKKyAgICB9
CisgICAgcmV0dXJuIFttdXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitzdGF0aWMgTlNE
aWN0aW9uYXJ5ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNEaWN0aW9uYXJ5ICpk
aWN0aW9uYXJ5KQoreworICAgIEFTU0VSVChbZGljdGlvbmFyeSBpc0tpbmRPZkNsYXNzOltOU0Rp
Y3Rpb25hcnkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0YWJsZURpY3Rp
b25hcnkgPSBbZGljdGlvbmFyeSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1N0cmluZyAqa2V5
IGluIGRpY3Rpb25hcnkpIHsKKyAgICAgICAgaWQgdmFsdWUgPSBkaWN0aW9uYXJ5W2tleV07Cisg
ICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisg
ICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gZGljdGlvbmFyeVJlbW92aW5nTm9u
SlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6
W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0gPSBh
cnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVt
b3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZURpY3Rpb25h
cnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmlj
YXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5
ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNh
dGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkg
ZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1lLCBAIm5vdGlmaWNh
dGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpz
ZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5vdGlmaWNhdGlvbk5hbWUp
OworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAgICAgIGlmICh1c2VySW5m
bykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBbTlNKU09OU2VyaWFsaXph
dGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHVz
ZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVycm9yOm5pbF07CisgICAg
ICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKnVz
ZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnVzZXJJbmZvRGF0
YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAgICAgICAgICAgaWYgKHVz
ZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlmaWNhdGlv
bk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1c2VySW5mb1N0cmluZ307
CisgICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2VdOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIGlmICghaW5mbykKKyAgICAgICAgICAgIGluZm8gPSBAe0Ai
bm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lfTsKKyAgICAgICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpAIkFYRFJU
Tm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzppbmZvXTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBA
QAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNp
YmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQ
b3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4
dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
Jil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
CmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBs
YWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlv
bi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4
LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENv
bnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNF
ZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZv
aWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0
Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFs
dWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25z
aWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxu
IikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRD
aGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9k
ZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlv
biBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9k
ZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBj
YWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBW
aXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwg
SUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
bV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBl
KCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlm
ICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5n
IHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
Ci0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAg
ICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBA
IHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+
JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBl
bmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRl
eCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBh
c3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFp
bmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00
Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5k
KEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRy
PE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjI1ZWFiNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2Nr
Rmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3Vt
ZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0xNjIsNiAr
MTY1LDEzIEBAIHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQo
SGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlJbnRlbnQo
KQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFu
ZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPnVuYXBwbHlJbnRlbnQoKTsKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogdm9pZCBhcHBseUNv
bW1hbmQoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsKICAgICBj
b21tYW5kLT5hcHBseSgpOwpAQCAtMzIwLDkgKzMzMCwxNCBAQCBib29sIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRy
PE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICByZXR1cm4gSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVm
UHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwg
cmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9CiAKIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+
IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtNTIyLDIzICs1Mzcs
NDYgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYg
dGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCwgc2Nv
cGUuZ2V0KCkpLCB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4ICsgbGVuZ3RoLCBz
Y29wZS5nZXQoKSkpKTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKwogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgaWYgKCF0
ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCkpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICBpZiAoZWRpdGluZ0FjdGlvbigpID09
IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgcmV0dXJuIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIAogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworfQorCitSZWY8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0
ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRU
ZXh0LCBkZWxldGVkVGV4dCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxh
Y2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVm
UHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAg
ICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IHJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1l
bnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0
KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKHJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0LCBkZWxldGVDb21tYW5k
LT5kZWxldGVkVGV4dCgpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpy
ZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE1MjMsNCAr
MTU2MSwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVt
ZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dChiclRhZywgZmFsc2UpOwogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQoKQoreworICAgIGlmIChtX2Nv
bW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXpl
KCktMV0tPmFwcGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEVkaXRDb21tYW5kOjphcHBseUludGVu
dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uZWRlZTQ5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiAr
MzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNz
IFN0eWxlZEVsZW1lbnQ7CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgdmly
dHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCB1bmFwcGx5SW50ZW50
KCk7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCkBAIC04Nyw2ICs5MCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRp
Y2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJl
Y3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJs
aW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3ZlcnJpZGU7CiAKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpA
QCAtMTAzLDE1ICsxMDcsMTggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVkRWxl
bWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihib29s
IHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUs
IGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRy
dWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29s
IG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9v
bCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0g
dHJ1ZSk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0KGNvbnN0IFN0cmluZyYsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJvb2wgaXNSZW1vdmFibGVCbG9j
ayhjb25zdCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2Rl
PiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAgICAgdm9pZCBpbnNlcnROb2RlQXQoUGFz
c1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydE5vZGVBdFRh
YlNwYW5Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOworICAgIHZp
cnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSk7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
ID0gRG9Ob3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNl
LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSk7CiAgICAgdm9p
ZCBpbnNlcnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0
VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIHZvaWQgbWVyZ2VJZGVudGlj
YWxFbGVtZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAg
ICB2b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2ICsxMzcsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05ld1BhcmVudChOb2RlKiwgTm9k
ZSogcGFzdExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IHBycE5ld1BhcmVudCk7
CiAgICAgdm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVSZW1vdmFsUHJlc2VydmluZ0NoaWxkcmVu
KFBvc2l0aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFzc1JlZlB0cjxOb2RlPik7Cisg
ICAgdmlydHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gcmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsK
KyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRl
eHQpOwogICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmZkZjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgY291bnQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjJmYTc3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUg
IkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0K
KworcHJvdGVjdGVkOgorICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xYjRlNzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Ym9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxh
Y2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQor
ICAgIDogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2Fu
aXRpemVNYXJrdXApCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIEN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKwor
RWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1YzMzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorI2Rl
ZmluZSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kIDogcHVibGljIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JT
cGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
KGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFy
dERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJrdXApOworCisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cAppbmRleCAyZWE5NmQ1Li44NTcxNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxl
ZGl0aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3LDExIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAg
ICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKIH0KIAor
U3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAg
cmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU2LDEwICs2MywxMCBAQCB2b2lkIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+
c3Vic3RyaW5nRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0
dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRE
ZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9u
KFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEo
bV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzgwLDggQEAgdm9pZCBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRh
KG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAg
ICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3Rl
eHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAj
aWZuZGVmIE5ERUJVRwpAQCAtODQsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5k
aWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li43YTMxYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCArNDAsMTIg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKICAgICB9CiAKKyAgICBTdHJpbmcmIGRl
bGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKIHByaXZhdGU6Ci0gICAg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyArNTMs
MTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVz
SW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBs
eUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVu
c2lnbmVkIG1fb2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40
OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0
aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAot
ICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBw
bGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVj
dGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICBy
ZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24n
dCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAg
Rm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNw
cAppbmRleCBjMTczZGY0Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uQ29tbWFuZC5jcHAKQEAgLTI3LDExICsyNywxMSBAQAogI2luY2x1ZGUgIkRpY3RhdGlv
bkNvbW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgiCi0jaW5j
bHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omlu
c2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgog
ewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwog
ICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxl
bmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRv
Y3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgp
LCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwor
ICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9J
bnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1
cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODhjNDAwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVEaWN0YXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5ODM2YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFy
a2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFy
a2VyU3VwcGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4
dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzlj
YjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUg
Ikluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdp
dGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
UGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjc5YWJhNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0xMjQsNSArMTI1
LDI3IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2Rl
KiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAgIG5vZGVzLmFkZChub2RlKTsK
IH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3du
OworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNo
ZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3Np
dGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLjAxYTAzMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1h
bmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIK
IApAQCAtNTksNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
ID0gMDsKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgYXBwbHlJbnRlbnQoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9j
dW1lbnQmKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CkBAIC05MCw2ICs5Myw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSA9IDA7
CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudChhcHBseUVkaXRUeXBlKCkpOyB9CisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCB1bmFwcGx5SW50ZW50KCkgeyByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQodW5hcHBseUVkaXRUeXBl
KCkpOyB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsgfQogCkBAIC05Nyw2ICsx
MDMsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
LCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisK
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nQWxsSW5PbmUuY3BwCmluZGV4IGRjM2FlMzMuLjZkZTEzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKQEAgLTMyLDEwICszMiwxNCBAQAogI2luY2x1
ZGUgPEJyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPENvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxDcmVhdGVMaW5rQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8Q3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGlj
dGF0aW9uQWx0ZXJuYXRpdmUuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkNvbW1hbmQuY3BwPgor
I2luY2x1ZGUgPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1
ZGUgPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxFZGl0Q29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8RWRpdGluZ1N0eWxlLmNwcD4KICNpbmNsdWRlIDxFZGl0b3IuY3Bw
PgpAQCAtNTQsMTEgKzU4LDE1IEBACiAjaW5jbHVkZSA8TWVyZ2VJZGVudGljYWxFbGVtZW50c0Nv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA+CiAjaW5j
bHVkZSA8TW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHA+
CiAjaW5jbHVkZSA8UmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9k
ZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KKyNpbmNsdWRlIDxSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5j
bHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwPgpAQCAtNzcsNiArODUsMTAgQEAKICNp
bmNsdWRlIDxUZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFRleHRJdGVy
YXRvci5jcHA+CiAjaW5jbHVkZSA8VHlwaW5nQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNw
cD4KKyNpbmNsdWRlIDxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+
CiAjaW5jbHVkZSA8VW5saW5rQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VmlzaWJsZVBvc2l0aW9u
LmNwcD4KICNpbmNsdWRlIDxWaXNpYmxlU2VsZWN0aW9uLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAppbmRleCA3MTBhYTM5Li5lMjQ5ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJDb21wb3NpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIK
KyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRy
YW5zZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUg
IkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwxNSBAQCBib29sIEVkaXRv
cjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0
R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChlZGl0aW5n
QWN0aW9uID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxl
Y3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBlbHNl
CisgICAgICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUo
ZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgp
CkBAIC0xMDAxLDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1Jl
ZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhl
IHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRo
aW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxl
Y3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVT
ZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0
ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0
ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUludGVudCgpKTsKICAg
ICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0
aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxl
RWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEw
MzIsNyArMTAzNiw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8
RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJvbHMo
Y21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFi
bGVFbGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21kLT5z
dGFydGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3
U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSk7
CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxl
Y3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUludGVudCgp
KTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY21kLT5zdGFydGlu
Z1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkp
OwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcw
LDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVy
IGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYg
KGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERl
bGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0
aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQog
CiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6
OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0
Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdu
b3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNl
bGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24g
aXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5l
d1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3Jw
aGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAv
LyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRE
T01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIg
dmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2Vs
ZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVj
dGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxk
Q2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsK
IAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZp
c3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAg
ICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAo
dGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5
MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRo
RGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxS
aW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVs
ZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2
b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZh
dGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENh
bmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcm
LCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAg
IGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAg
ICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDU3NDUxNzAuLmI0YzcyNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCAr
MTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRv
Y3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25z
dCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vy
c29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVj
dGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZp
bml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxl
bnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9u
SW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVV
c2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0xNzAsNyArMTY5LDcgQEAgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mIGJhc2Us
IGNvbnN0IFBvc2l0aW8KICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAgICBu
ZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlkYXRpb24oYmFzZSwgZXh0ZW50KTsKICAgICBuZXdT
ZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25hbChzZWxlY3Rpb25IYXNEaXJlY3Rpb24pOwotICAgIHNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAo
c2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cykpOworICAgIHNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9j
dXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUs
IEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9s
bGVyOjpzZXRDYXJldFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCkBA
IC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91
c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2Vs
ZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVj
dGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vy
c29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlz
Q2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOwor
ICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25P
cHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0
eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rp
bwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24u
YmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0
aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAg
aWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQg
IT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZy
YW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGln
biwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8g
SXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBG
cmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNl
bGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2Vs
ZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBm
cmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFy
IG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0
aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9u
cyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNj
cm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFs
aWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDksNyBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5s
YXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBz
dGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYg
ZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNT
ZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12
b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlv
blVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzc5LDggKzM4Nyw3IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAKICAgICAgICAgcmV2ZWFsU2Vs
ZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9Ci0KLSAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IG1fZnJh
bWUtPmVkaXRvcigpLmNsaWVudCgpKQogICAgICAgICBjbGllbnQtPmRpZENoYW5nZVNlbGVjdGlv
bkFuZFVwZGF0ZUxheW91dCgpOwpAQCAtMTAyMSw3ICsxMDI4LDgwIEBAIFZpc2libGVQb3NpdGlv
biBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51
bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91
bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2Vs
ZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0
aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIg
PT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBl
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAg
ICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0
aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9Cisg
ICAgfSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsK
KyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRl
bmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBo
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0
Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBj
YXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAg
ICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vu
dGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFw
aEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkg
PSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsK
KyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAg
ICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rp
b24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAg
ICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9
IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9k
aWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7
CkBAIC0xMDc3LDYgKzExNTcsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRl
cmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAg
aWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBv
cmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBp
ZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7Cisg
ICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rp
b25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0
eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFu
IHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0
aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4K
ICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVz
ZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzEwLDggKzE3OTUsMTAgQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2Vs
ZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290
LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikp
Ci0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVj
dEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2Vs
ZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5
cGluZykKQEAgLTI0MjMsNyArMjUxMCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rp
b246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAg
ICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlv
bigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxh
cml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBm
cmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVT
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNl
bGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVT
ZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjNjMzE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rp
b25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2lu
Y2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJp
Z2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9
CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAg
IFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIp
OwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxp
ZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9u
SGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVs
YXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMg
PSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25P
blNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0g
Q2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0
ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFy
KCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3Np
dGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigp
OwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAg
IExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9u
KEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24s
IFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rp
b25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVk
KTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlw
aW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdlLi5hZWM0
NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBAIC01MCw2ICs1MSwxMSBA
QCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVCghbV90ZXh0LmlzRW1wdHkoKSk7
CiB9CiAKK1N0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkK
K3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCku
c2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5ICs3MSw5IEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgfQogCiAgICAgbV9ub2Rl
LT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwotCi0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOwor
ICAgIAorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEwICs4OCwxMCBAQCB2b2lk
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX25v
ZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAg
IC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4
dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAg
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBs
eUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9v
ZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5n
dGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC05Nyw0ICsxMDMsMTQgQEAgdm9pZCBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYg
bm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAzMTBiYmIzLi5lMzNmNTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKICNk
ZWZpbmUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzksOSArNDAsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAgIH0KIAot
cHJpdmF0ZToKKyAgICBTdHJpbmcmIGluc2VydGVkVGV4dCgpOworcHJvdGVjdGVkOgogICAgIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJp
ZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNTEsNyArNTQsMTAgQEAgcHJpdmF0ZToKICNpZm5k
ZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAg
IFN0cmluZyBtX3RleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGQxNmI1ZDYuLjhkNWVjMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0yNiw5
ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU3
LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAg
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5n
ZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBl
KCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBw
bHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9y
ZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9z
aXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9u
KGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRp
b24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CkBAIC04MSw0ICs4NywxNCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uOGQ5YzYwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAjZGVm
aW5lIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
OCwxNiArMzksMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJpdmF0ZToK
K3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCitwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgp
IG92ZXJyaWRlOwogICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9k
ZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2RlPiBtX2luc2VydENoaWxk
OwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4u
YmZhMTgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApA
QCAtNTksMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CiAgICAg
fQogCi1wcml2YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKK3By
b3RlY3RlZDoKICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYg
dGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICBJbnNl
cnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9pZCBkZWxl
dGVDaGFyYWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNjFhY2FiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxk
LCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFz
dGU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MWQwNTU5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisK
KyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwg
UGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRy
PE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0N2E3ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBs
YWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlUGFzdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU2YTM1Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7
CisKK2NsYXNzIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZTAxN2I4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
dGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQodGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKwordm9pZCBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMwZmRi
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoK
KyAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zNWFjN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQorICAgICwgbV9kZWxldGVkVGV4dChkZWxl
dGVkVGV4dCkKK3sKK30KKwordm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQor
ICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlw
aW5nOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb246Cisg
ICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUs
IHRleHQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0
LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90
aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBtX2Rl
bGV0ZWRUZXh0LCByZXBsYWNlQXBwbHlFZGl0VHlwZSgpLCB0ZXh0LCBwb3NpdGlvbik7CisgICAg
ICAgIGJyZWFrOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YzQyNjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBk
ZWxldGVkVGV4dCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydDsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyZXBsYWNlQXBwbHlFZGl0VHlwZSgpKTsgfQor
Citwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworCisgICAgU3RyaW5nIG1fZGVsZXRl
ZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGZiMzg4MGMuLjMwYzQ3Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQu
aCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCkBAIC00NCwxNCArNDUsMjAgQEAKICNpbmNsdWRlICJIVE1MVGl0
bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVy
U3R5bGUuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisjaW5j
bHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJl
bmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVkZSAiU21hcnRSZXBsYWNlLmgiCiAj
aW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2lu
Y2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTQ4Miw2ICsxNDg5LDMwIEBAIHZvaWQgUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OnVwZGF0ZU5vZGVzSW5zZXJ0ZWQoTm9kZSAqbm9kZSkKIAogICAgIG1fZW5k
T2ZJbnNlcnRlZENvbnRlbnQgPSBsYXN0UG9zaXRpb25Jbk9yQWZ0ZXJOb2RlKG5vZGUtPmxhc3RE
ZXNjZW5kYW50KCkpOwogfQorICAgIAorUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRD
aGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7CisgICAg
c3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAg
ICAgIHJldHVybiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENo
aWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAg
IGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgfQorfQor
CitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQp
Cit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBp
bmc6CisgICAgICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAg
Y2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRl
bGV0ZWRUZXh0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgaW5z
ZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgfQorfQogCiAvLyBEdXJpbmcgc2ltcGxlIHBh
c3Rlcywgd2hlcmUgd2UncmUganVzdCBwYXN0aW5nIGEgdGV4dCBub2RlIGludG8gYSBydW4gb2Yg
dGV4dCwgd2UgaW5zZXJ0IHRoZSB0ZXh0IG5vZGUKIC8vIGRpcmVjdGx5IGludG8gdGhlIHRleHQg
bm9kZSB0aGF0IGhvbGRzIHRoZSBzZWxlY3Rpb24uICBUaGlzIGlzIG11Y2ggZmFzdGVyIHRoYW4g
dGhlIGdlbmVyYWxpemVkIGNvZGUgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi5lMjZhOTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0xMTEs
NiArMTExLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGVyZm9ybVRyaXZpYWxSZXBsYWNlKGNv
bnN0IFJlcGxhY2VtZW50RnJhZ21lbnQmKTsKIAorICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5k
PiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5v
ZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKKwogICAgIFBvc2l0aW9uIG1fc3RhcnRPZkluc2VydGVkQ29udGVudDsKICAg
ICBQb3NpdGlvbiBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFJlZlB0cjxFZGl0aW5nU3R5
bGU+IG1faW5zZXJ0aW9uU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5k
LmNwcAppbmRleCA5MzI5Y2RmLi44YzBmYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nQ29tbWFuZC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJNYXRoTUxFbGVtZW50
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5o
IgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJs
ZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtMzczLDcgKzM3NCw3IEBA
IHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0KQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5X
aXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4
dCkKIHsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKKyAg
ICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKICAgICAg
ICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRD
b21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRl
eHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CiAKICAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTQyMjEzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sK
KyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDBiZDE0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjI0
NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAg
IDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNzQ2
MTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwg
UGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2YXRlOgorICAg
IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQ
dHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
MWIxNjY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5j
bHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICAKK1R5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNl
cnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSkKKyAgICA6IEluc2VydFRleHRD
b21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUp
Cit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK1JlZjxFZGl0
Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICBy
ZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ5M2I1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRl
eHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydFRleHRDb21t
YW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9
IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRl
eHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYs
IGJvb2wsIFJlYmFsYW5jZVR5cGUpOworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjMwZGQ1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
ICAgIDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
LCBkZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlw
aW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmMyZTBmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3Mg
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxl
dGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNl
bGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uZTY5NWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0
aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5
T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4wN2UyYTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcs
MTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0
KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmICht
X3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90
TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0
aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhP
YmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50
KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1f
c2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7
CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uNWJmYjY0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0No
YW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3Ry
aW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAg
Ym9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4
dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5n
ZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBj
YWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdl
ZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBp
bm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAg
ICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQog
ICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVu
ZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1l
bnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9zaXRpb246
OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAog
ICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOThhNWQzOS4uY2FhYWEyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE4NCw3ICszMTg0LDcgQEAgc3RhdGljIHZvaWQg
c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNl
bGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2
aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cyhVc2VyVHJpZ2dlcmVkKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmpl
Y3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzKSkpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNl
bGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdmZS4uYmZkMWZkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzQxLDcgKzM0MSw3
IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXliCiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0g
Zmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNp
YmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0p
OwogICAgICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCi0gICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cyhVc2VyVHJpZ2dlcmVkKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmpl
Y3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzKSkpOwogICAgIH0KIAogICAgIGVsZW1lbnQtPmZvY3VzKGZhbHNl
LCBkaXJlY3Rpb24pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGJlMWRiM2UuLmUyYWE4NTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0xNSAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUg
dGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxl
ZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJp
Y2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2Ug
QVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1v
cmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250
ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4g
cGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXpp
bmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0
eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmlj
YXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBm
b3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBi
bG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxl
ci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlm
aWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAo
LVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6
XSk6CisKIDIwMTUtMDQtMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2luXSBEUlQgZG9lcyBub3Qgc2VlbSB0byByZXNldCB0aGUgJ1VzZXNQYWdlQ2FjaGUn
IHNldHRpbmcgYmV0d2VlbiB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4
N2EuLjdiMDE3YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTExMiwxNiArMTEyLDI3
IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtu
b3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVz
ZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlm
aWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29u
dGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhd
KSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVl
KEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAg
dXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21h
aW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAg
fQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Ig
b25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1l
LgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5h
bWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVu
ZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50
cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNh
dGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07
CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAg
ICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNh
dGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0
aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsK
ICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNb
MV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVz
ZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24o
W21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNr
LCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25I
YW5kbGVyLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
bW0KQEAgLTEyNSwxOSArMTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1f
cGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJ
bmZvW0AidXNlckluZm8iXTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tC
dW5kbGVQYWdlR2V0TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBh
Z2UoKS0+cGFnZSgpKTsKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVH
ZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0
cmluZ1JlZl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNW
YWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFs
dWVSZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZv
SlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpz
VXNlckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmlu
Z1JlZl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VG
cm9tSlNPTlN0cmluZyhjb250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9
CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBv
bmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUu
Ci0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09i
amVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwg
bGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFy
Z3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5v
dGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsK
KyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAg
ICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVm
PihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1l
bnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpn
ZXRQdHIoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBv
YmplY3RdKSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1l
bnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAg
ICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVj
dFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAw
KTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250854</attachid>
            <date>2015-04-15 13:55:38 -0700</date>
            <delta_ts>2015-04-16 19:38:17 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>62666</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBiOWU4ZGE3YTA5NDI3MzQwMmQ0MTJiZWRkZWE4OTBjOTMwMDUzNjUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKysKIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICAgIHwgIDg2ICsrKysrKysr
KysrKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgICAg
ICB8ICA3MSArKysrKysrKysrLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcCAgICAgIHwgIDIxICsrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggICAgICAgIHwgICAxICsKIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgIHwgIDIwICsrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAyICsKIC4uLi9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggICAgICAgIHwgICAzICstCiAuLi4vV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tICB8ICAgNiArLQogLi4uL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSAgfCAxMjQgKysrKysrKysr
KysrKysrKysrKystCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgg
ICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmNwcCAgICAgICB8ICAzMCArKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oICAgICAgICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAgICAgfCAgIDMgKwogLi4uL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgICAgICAgfCAgIDYgKwogLi4uL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgIDQgKwogLi4uL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAgfCAgIDUgKwogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggfCAgIDEgKwogLi4uL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgfCAgMzEgKysrLS0tCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgOCArLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAgfCAgIDUgKy0K
IC4uLi9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIHwgICA1
ICsKIC4uLi9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgIHwg
ICAyICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwICAgICAgICAgICAg
IHwgIDIzICsrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCAgICAgICAg
ICAgICAgIHwgICA1ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCAgICAgICAg
ICAgICAgICAgIHwgIDE3ICstLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCAgICAg
ICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgIHwgIDMxICsrKy0tLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIHwgIDM0ICsrKy0tLQogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICAgfCAgIDkgKy0KIC4uLi9lZGl0
aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICAgICAgIHwgICA1ICsKIC4uLi9X
ZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIHwgICAyICsKIC4u
Li9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICAgIHwgICA1ICsK
IC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICAgIHwgICAy
ICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgIHwg
ICA1ICsKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggICAg
IHwgICA0ICstCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAgICB8ICAyNSArKysrKwogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAgICAgfCAgIDUgKy0KIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwICAgIHwgICA1ICsKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCAgICAgIHwgICAzICsKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCAgICAgIHwgICA1ICsKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmggICAgICAgIHwgICAyICsKIC4uLi9UeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgICAgIHwgICA1ICsKIC4uLi9UeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIHwgIDEyICstCiA0NiBmaWxlcyBjaGFu
Z2VkLCA1NjMgaW5zZXJ0aW9ucygrKSwgMTAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBk
YWIzNmM5Li41MjMxYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0zLDYgKzMsMTMgQEAKICAgICAgICAgQVg6
IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKIAorICAgICAgICBSaWNoZXIgYWNjZXNz
aWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRU
eXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxl
IGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBp
bXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZv
cm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRl
bmNlIG9mIGNoYW5nZXMuCisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBh
cHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkK
KwogICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0
IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5k
IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gVGhpcyBjb21taXQgaXMgYWxsIGluZnJh
c3RydWN0dXJlIGFuZCBkb2Vzbid0IGNvbnRhaW4gYW55IGFjY2Vzc2liaWxpdHkgc3BlY2lmaWMg
Y2hhbmdlcy4KIAogMjAxNS0wNC0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uYTM5ZWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjksNiArMTI5
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3Np
YmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0
aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhP
YmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApA
QCAtNzQyLDYgKzc0MywyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBEUlQsIHBvc3Rpbmcg
bm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhl
ciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisg
ICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJ
bnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlv
bnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9y
IChjb25zdCBhdXRvJiBvYmplY3QgOiBub3RpZmljYXRpb25zKQorICAgICAgICBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LmdldCgpLCBBWFRleHRFZGl0VHlw
ZUluc2VydCwgIiAiLCBWaXNpYmxlUG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBB
WE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5
cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NSw3MCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9z
dE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0
T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
IHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBB
WFRleHRFZGl0VHlwZVVua25vd24pOworCisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0
dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRl
KG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChvYmopIHsKKyAgICAgICAgaWYg
KG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVs
ZCgpKSB7CisgICAgICAgICAgICBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlv
bihvYmopOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG9iaiA9IG9i
ai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCisg
ICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JF
ZGl0VHlwZSh0eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGlu
Z09mZnNldCgpLCB0ZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgZGVs
ZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNl
cnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBB
U1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGVsZXRlKTsKKyAgICBBU1NFUlQo
aW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUluc2VydCB8fCBpbnNlcnRpb25UeXBlID09
IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVE
aWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVBhc3RlKTsKIAogICAg
IHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxlZ2F0
ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBn
ZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBpZiAob2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+
aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICAgICAgZW5xdWV1ZVBhc3N3
b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisK
KyAgICBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBkZWxldGlv
blR5cGUsIGRlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRlZFRleHQsIHBvc2l0aW9u
KTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRl
eHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRUZXh0KTsKKyAgICBub2RlVGV4
dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGlu
c2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5n
T2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hl
OjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmopCit7CisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9ic2VydmFibGVPYmplY3QgPSBvYmotPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICBpZiAoIW9ic2VydmFibGVPYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChzdGQ6OmZpbmQobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYmVnaW4oKSwgbV9wYXNz
d29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuZW5kKCksIG9ic2VydmFibGVPYmplY3QpID09IG1fcGFz
c3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmVuZCgpKSB7CisgICAgICAgIG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25zVG9Qb3N0LmFwcGVuZChvYnNlcnZhYmxlT2JqZWN0KTsKKyAgICAgICAgaWYgKCFt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdCgwLjAyNSk7CisgICAg
fQogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9u
KEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsx
MTUzLDE1IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJB
cmVhKCkKK3sKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU9iamVjdCAqcm9vdE9iamVjdCA9IHRoaXMt
PnJvb3RPYmplY3QoKSkgeworICAgICAgICBpZiAocm9vdE9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgpOworICAgIH0KKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRlQ2Fj
aGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggYmZh
OTI3Ny4uMTU3NDdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OSwxMiArMTg5LDI1IEBAIHB1YmxpYzoKICAgICB2
b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0g
VGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogICAgIHZvaWQg
cG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlm
aWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5j
aHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAgQVhUZXh0SW5z
ZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgZW51bSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAorICAgICAgICBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CisgICAgfTsKKworICAgIGVudW0gQVhUZXh0RWRpdFR5
cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dEVkaXRU
eXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVHlw
aW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlv
biwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8v
IERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZp
YSBQYXN0ZQogICAgIH07CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5v
ZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAg
Ly8gU2ltcGxlIHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAg
ICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRU
eXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5
cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9h
ZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMjMxLDM0IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRp
b24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2Rl
KiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRl
eHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAgICAgICBBWFRleHRJ
bnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAgIGlubGluZSBBWFRl
eHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlIHR5cGUpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1
dDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlSW5zZXJ0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
UGFzdGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9p
ZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9pZCB0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5nZWQoRWxlbWVudCopOwpAQCAtMjI5LDYgKzI2
OSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJu
IG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKyAgICAKICAgICBEb2N1bWVudCYgbV9kb2N1
bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9v
YmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RN
YXBwaW5nOwpAQCAtMjQ0LDYgKzI4NiwxMSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbm90aWZp
Y2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2
b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisKKyAgICBUaW1lciBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9i
amVjdD4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0OworICAgIHZvaWQgcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAgdm9pZCBoYW5kbGVNZW51T3BlbmVk
KE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKICAgICB2
b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpAQCAtMjUxLDYgKzI5OCwxMCBAQCBw
cml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBV
SUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vz
c2liaWxpdHlPYmplY3QqKTsKKworICAgIHZvaWQgZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VO
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVD
YWNoZUVuYWJsZXIKQEAgLTMwOCw4ICszNTksMTQgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdu
b3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2Vu
ZGlmCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJl
bmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlm
aWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBk
OGQyNmRlLi4zZDQ1ZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAg
IHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmls
aXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFp
bmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2Rl
KCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChI
VE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7
CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAg
ICB9CisgICAgCisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCkp
IHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkgeworICAgICAg
ICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUgKmNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+
bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLmQ1M2E5M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgK
QEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2wo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmE3YTk5NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtMjY0Niw0ICsyNjQ2LDI0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVj
dDo6c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQogI2VuZGlm
CiAKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
KSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRl
KCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBudWxscHRyOworICAgIGlmIChFbGVtZW50KiBl
bGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRF
bGVtZW50PigqZWxlbWVudCkpCisgICAgICAgICAgICBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50PihlbGVtZW50KTsKKyAgICB9CisgICAgaWYgKCFpbnB1dEVsZW1lbnQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5p
c1Bhc3N3b3JkRmllbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAz
NTg2ZjJhLi4yZTk3NzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2
ZVRleHRDb250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFy
ZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYgKzQzLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7CiAgICAg
dmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2JqZWN0
Q2FjaGUqKSBvdmVycmlkZTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmpl
Y3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Nyb2xs
VmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhpc3Rz
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJl
YU9iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RD
aGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQogICAgIEFj
Y2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0K
aW5kZXggMTE5ZTBiMDAuLjRlMjZiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtOTUsNyArOTUsMTEgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJpbmddOwogfQogCi12b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpCit7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIzMDBlNzcuLjU0MjIxMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNDIgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2
ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVkIgogI2VuZGlm
CiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleQorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRp
cmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIEAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmls
aXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlmCisKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVuZ3RoIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIgQCJBWFRleHRD
aGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1l
bnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUgQ29jb2Eg
Y2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTE1Niw4ICsxOTIsOTQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAg
ICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3Rp
ZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYpCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRD
aGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcgKnRleHQgPSAoTlNTdHJpbmcgKilz
dHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICgh
bGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNo
YW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsK
KyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAg
c3RhdGljIGNvbnN0IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYg
KGxlbmd0aCA+IHRydW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBb
dGV4dCBzdWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAo
bGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZV0gPSB0ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAo
aWQgdGV4dE1hcmtlciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0
aW9uOnBvc2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2No
YW5nZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhU
ZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJl
YSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5s
ZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNl
ckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107
CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBA
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hh
bmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBv
c2l0aW9uKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
c10gPSBAW2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFw
cGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFy
ZWEtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1
c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbd2ViQXJlYS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJ
bmZvOnVzZXJJbmZvXTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8ob2JqLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3Rp
ZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
IHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQogeworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVz
ZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRd
OworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0g
QChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFu
Z2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBp
ZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hh
bmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0
ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOwor
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsK
KyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFw
cGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50
XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdl
YkFyZWEoKTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlcklu
Zm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmlj
YXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZp
Y2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRp
b24gdXNlckluZm86dXNlckluZm9dOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyhvYmotPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFu
Z2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3
aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNz
aWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwog
fQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQg
bG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXgg
MzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5o
CkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1h
cmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilz
dGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9z
aXRpb247CistIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3Jl
OjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmRlNmRiZi4uNjcxZDFiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDEyICsyNiwxMiBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00OCwxNyArNDgsMjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NF
UlQobV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkp
OwogfQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhO
b2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCAgY29uc3QgU3Ry
aW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSB0eXBlKQogeworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYg
KCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKKyAgICBjb25zdCBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERv
bid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCiAgICAgaWYgKHRleHQgPT0g
IlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5v
ZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5v
ZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjgs
MTYgKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9w
YXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAg
ICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX25vZGUtPm5vZGVWYWx1ZSgpLCAwKTsKKyAgICBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAg
ICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fbm9kZS0+bm9kZVZh
bHVlKCksIDApOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9k
ZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JF
X0VYQ0VQVElPTik7CiB9CkBAIC05MCw0ICs5NiwxNCBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5k
OjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2Vy
dDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6
OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZWRmNjgxYi4uNDljOWVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtNDcsNiArNDcs
OSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxOb2RlPiBt
X25vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcAppbmRleCAzMWY1MTc4Li5hZmVkMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQXBwbHlTdHlsZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKQEAgLTU0Miw2ICs1NDMsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZgogCiBS
ZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCkKIHsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25DdXQpCisgICAg
ICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCk7CiAgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggYmNmZDI0YS4u
ZmRmOWJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzUsNCArMzYsOSBAQCBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZQogewogfQog
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVDdXQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXgg
NGRmNTc5MS4uYmYyZmE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM5LDYgKzM5LDEwIEBAIHB1YmxpYzoK
IAogcHJvdGVjdGVkOgogICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMTYzYzkyMi4uMWI0ZTcw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCkBAIC00Miw0ICs0Miw5IEBAIFJlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyCiAg
ICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGNvdW50KTsKIH0KIAorRWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpl
ZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCA5Y2JlMTU3Li4xZDA1YzMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApA
QCAtNDEsNiArNDEsNyBAQCBwcml2YXRlOgogICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
RG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUs
IGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6
ZU1hcmt1cCk7CiAKICAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1OTdmNDljLi44NTcx
NjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTUyLDE1ICs1Miw2IEBAIFN0cmluZyYgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQogICAgIHJldHVybiBtX3RleHQ7CiB9CiAKLSNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpCi12b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQot
ewotICAgIGlmIChub2RlICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
Ci0gICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOwotfQotI2VuZGlmCi0KIHZv
aWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1f
bm9kZSk7CkBAIC03MiwxMSArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZzZXQs
IG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBh
Y3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV90ZXh0
LCBtX29mZnNldCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9u
b2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0
aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZz
ZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTkwLDkgKzgwLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zm
c2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOwotI2VuZGlmCisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQp
KSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xMDIsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9k
ZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCA0ZTQ3Y2Y5Li43YTMxYzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAt
NDUsOSArNDUsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJp
bmcmLCB1bnNpZ25lZCk7Ci0jZW5kaWYKIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9B
cHBseSgpIG92ZXJyaWRlOwpAQCAtNTYsNyArNTMsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRF
QlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikg
b3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAg
ICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIHVuc2ln
bmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2
LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlv
biBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAv
LyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUg
dXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhl
cmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBz
bwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAg
ICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0K
IAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxl
IHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcAppbmRleCA3NWY2MWIwLi5mODhjNDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKQEAgLTM3LDQgKzM3LDkgQEAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHQKIHsKIH0KIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCmluZGV4IGZlNTQ1MTAuLmYyOTgzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCkBAIC0zOSw2ICszOSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmlu
ZGV4IDhmNTY1MzIuLjc5YWJhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
Y3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRp
dENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21w
b3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRp
dG9yLmgiCkBAIC0xMjQsNSArMTI1LDI3IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5v
ZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAg
ICAgIG5vZGVzLmFkZChub2RlKTsKIH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjph
cHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihu
b2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLmY1
Yjg2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNpZm5kZWYgRWRpdENvbW1hbmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUg
IlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtOTcsNiArOTgsMTAgQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2Vu
ZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBw
bHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBjNDc3MWJkLi4wYjBjMTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNzUsMjAgKzM3NSwxNSBAQCBib29sIEVkaXRv
cjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0
R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwotfQotCi12b2lkIEVkaXRv
cjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlRm9yQ3V0KGJvb2wgc21hcnREZWxldGUp
Ci17Ci0gICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUo
ZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0
QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBs
eUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNt
YXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTI3NSw3ICsx
MjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAg
aWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZUZvckN1dChjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25D
dXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5k
ZXggOTM5ODI2NC4uNjZkYjAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyAr
MTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0
ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wg
a2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21h
cnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwog
ICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NTIsNyArNDUyLDYgQEAg
cHJpdmF0ZToKIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBk
ZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGVGb3JDdXQoYm9vbCk7CiAgICAgYm9vbCBjYW5E
ZWxldGVSYW5nZShSYW5nZSopIGNvbnN0OwogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlV2l0aFBh
c3RlYm9hcmQoUGFzdGVib2FyZCYpOwogICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0
ZWJvYXJkKFBhc3RlYm9hcmQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDlmMDkwMjcuLmFlYzQ3NTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcApAQCAtNTYsMTUgKzU2LDYgQEAgU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjppbnNlcnRlZFRleHQoKQogICAgIHJldHVybiBtX3RleHQ7CiB9CiAKLSNpZiBIQVZFKEFDQ0VT
U0lCSUxJVFkpCi12b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5n
ZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQotewotICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5n
ZSwgb2Zmc2V0LCB0ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1l
KCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC04MSw5ICs3Miw4IEBAIHZv
aWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmlu
c2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgCi0jaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4dCwgbV9v
ZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5n
ZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbiht
X25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTgsMTEgKzg4
LDEwIEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAg
ICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAg
Ci0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBi
ZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQs
IG1fdGV4dCwgbV9vZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0
aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURh
dGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC0x
MTQsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsK
K30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXgg
NWNhMmQ5Ni4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQ0LDEwICs0NCw2IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCi0jaWYgSEFWRShBQ0NF
U1NJQklMSVRZKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlLCBjb25zdCBTdHJpbmcmLCB1
bnNpZ25lZCk7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTU4
LDcgKzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsK
ICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCAwY2I4
YWRjLi44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDksMTUgKzUwLDYgQEAgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0
Q2hpbGQsIFAKICAgICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5oYXNFZGl0YWJs
ZVN0eWxlKCkgfHwgIW1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKSk7CiB9CiAK
LSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi12b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hl
OjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNl
dCkKLXsKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAg
ICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlv
bihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50
ID0gbV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpOwpAQCAtNjcsOSArNTksMTAgQEAgdm9pZCBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9y
ZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9O
KTsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIDApOwotI2VuZGlmCisgICAgaWYgKEFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24g
cG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25j
YXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQ
b3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBt
X2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7Cisg
ICAgfQogfQogCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAt
NzcsMTAgKzcwLDExIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CiAgICAgaWYgKCFpc0VkaXRhYmxlTm9kZSgqbV9pbnNlcnRDaGlsZCkpCiAgICAgICAgIHJldHVy
bjsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dERlbGV0ZWQsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKLSNlbmRpZgorICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihk
b3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0
aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlw
ZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9u
KSk7CisgICAgfQogCiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04p
OwogfQpAQCAtOTMsNCArODcsMTQgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNl
cnQ7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IDM3NWQwOTkuLjhkOWM2MDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAg
LTQyLDEwICs0Miw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OwogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQpOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJp
ZGU7CkBAIC01Myw3ICs0OSwxMCBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNl
bmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBh
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2Rl
PiBtX2luc2VydENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBhYzBjM2NiLi42MWFjYWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKQEAgLTM1LDQgKzM1LDkgQEAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2UKIHsKIH0K
IAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlUGFzdGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZTczYWY3Yy4uMWQwNTU5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAppbmRleCAzNDA3YjQzLi5jNDdhN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKQEAgLTM1LDQgKzM1LDkgQEAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXMKIHsKIH0KIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IGE0Y2Y0MWUuLjhlNmEzNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC00MSw2ICs0MSw4IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKaW5kZXggODk4YjAxNy4uZTAxN2I4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNCArMzYs
OCBAQCBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZQogewogfQogCit2b2lkIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaAppbmRleCBkZmQ4ZTNlLi5kMzBmZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0y
Niw3ICsyNiw2IEBACiAjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
ICNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogCi0jaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDIsNiArNDEsOSBAQCBwdWJsaWM6CiAKIHByb3Rl
Y3RlZDoKICAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApp
bmRleCA4N2E2MmY4Li4zNWFjN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKQEAgLTM3LDQgKzM4LDI4IEBAIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRlCiB7CiB9CiAKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAg
aWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydCwg
bV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYWNoZS0+cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSwgdGV4dCwgcG9z
aXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCBkOWZmNWJlLi40NjkxNTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKICNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAog
Ci0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsNyArNDIsMTEgQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsK
IAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5
RWRpdFR5cGUoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsg
fQorCiBwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworCiAgICAgU3RyaW5nIG1fZGVs
ZXRlZFRleHQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAzYmZiOTdkLi4zZTQyMjEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTM3LDQgKzM3LDkgQEAgVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQKIHsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IGI0MDc0OTguLjAwYmQxNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCkBAIC0zNiw4ICszNiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCkpOwogICAgIH0KKwogcHJpdmF0ZToKICAgICBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApp
bmRleCAzMGE0ZGNmLi43YjI0NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBA
QCBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbgogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgKaW5kZXggYzQ0MjE5MS4uODE3NDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtNDAs
NiArNDAsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDdhYzNj
YTMuLjMwZGQ1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0
ICszNSw5IEBAIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpy
ZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlVHlwaW5nOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjNmZjNhMi4uOTZjMmUwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaApAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIG92
ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi41
YmZiNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wg
dGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsK
KyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0
KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAg
IGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lm
IEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4
dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAg
ICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFs
dWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAg
ICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgo
J1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdl
ZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNh
Y2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAg
ICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKLS0g
CjIuMy4yIChBcHBsZSBHaXQtNTUpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250856</attachid>
            <date>2015-04-15 13:56:51 -0700</date>
            <delta_ts>2015-04-17 14:48:01 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>45540</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBhMWNiMWE1NjUxZDI5YjA2ZjVhMzk5OTg4MmRhMzMzMWY2ZjJkMDY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAxNDggKysrKysr
KysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaCAgICAgICB8ICA3OSArKysrKysrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgICAgfCAgMTcgKystCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tICB8ICAgNSArCiAuLi4vV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8ICA2NSArKysrKysrKysKIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgIDE0ICsrCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggICAgICB8ICAgMyArCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggICAgICAgICAgICAgICB8ICAgNiAr
CiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgICAgICAgICAgICAgICAgICB8ICAg
OCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCAgICAgICAgICAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwICAgICAg
ICAgIHwgMTE1ICsrKysrKysrKysrKysrLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaCAgICAgICAgICAgIHwgIDE3ICsrLQogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAgfCAgIDEgKwogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwICAgICAgICAgICAgfCAgIDIgKy0KIDE4IGZp
bGVzIGNoYW5nZWQsIDQ2MiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNTIzMWI5My4uYzk3YzFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDEzIEBACiAgICAg
ICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CiAKKyAgICAgICAgUmljaGVy
IGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2Ug
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxh
Y2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlh
YmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxl
Y3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBm
aWVsZHMuCisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+
CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKwogICAgICAg
ICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9k
dWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBw
cyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIg
Y29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2Vz
IGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5h
bHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCiAKIDIwMTUtMDQtMTQgIERvdWcgUnVzc2Vs
bCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMzllYjQ0Li5kMzViYjlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTg2NSw2ICs4NjUs
MTU0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVj
dGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAorI2lmbmRl
ZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5r
bm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3Zl
OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3du
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0
ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5z
ZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAg
ICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAg
ICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
OgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAg
ICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93
bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQ6CisgICAgICAgICAgICBwcmludGYoIkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAg
IHByaW50ZigiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoi
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50
LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25Vbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSkgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVVua25vd246CisgICAgICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lOgorICAgICAgICAgICAgICAgIHByaW50ZigiTGluZSIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlOgorICAgICAgICAgICAgICAgIHByaW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQ
YXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYWdlOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3Vt
ZW50OgorICAgICAgICAgICAgICAgIHByaW50ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6
CisgICAgICAgICAgICAgICAgcHJpbnRmKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAg
ICBwcmludGYoIi1TeW5jIik7CisgICAgcHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50
OworCisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAg
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9i
aikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFp
bmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iaiA9
IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisg
ICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNl
bGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9Q
QVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAg
ICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24p
CiB7CiAgICAgaWYgKCFub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaAppbmRleCAxNTc0N2FiLi41OGIxMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTkxLDcgKzE5MSw5IEBAIHB1YmxpYzoK
IAogICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKICAgICAgICAgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlVW5rbm93biwKLSAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorICAg
ICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQKICAgICB9OwogCiAgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CkBAIC0yMDksNiAr
MjExLDc4IEBAIHB1YmxpYzoKICAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQogICAg
IHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5
cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlw
ZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJik7CiAKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7CisgICAg
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRGlzY29udGlndW91cworICAgIH07CisKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duLAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Us
CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoLAorICAgICAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxs
IC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5nIHRo
ZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rpb24g
Ynkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hvbGUg
ZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5vdGlmaWNhdGlv
bi4KKyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgICAgIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5IGdyYW51bGFyaXR5OworICAgIH07CisKKyAgICBzdGF0aWMgQVhUZXh0U2VsZWN0
aW9uIFRleHRTZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
IGdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duKQorICAgIHsK
KyAgICAgICAgYXV0byBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKTsKKyAgICAgICAgc2Vs
ZWN0aW9uLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKKyAgICAgICAgc2VsZWN0aW9uLmdyYW51bGFy
aXR5ID0gZ3JhbnVsYXJpdHk7CisgICAgICAgIHJldHVybiBzZWxlY3Rpb247CisgICAgfQorCisg
ICAgc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVj
dGlvbiBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAg
ICAgIH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVu
a25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9v
bCBzeW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwg
c2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7
IH0KKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFu
Z2UpCisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAg
ICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAg
ICAgeyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAg
ICAgICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMo
c3luYykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAg
IHZvaWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlm
CisKKyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFu
Z2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisKICAgICBlbnVt
IEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKICAgICAgICAgQVhM
b2FkaW5nUmVsb2FkZWQsCkBAIC0yMzIsNiArMzA2LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9k
ZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9p
ZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7
CiAgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKICAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKICNlbHNlCkBAIC0zNTksOSArNDM0LDExIEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBF
bGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9y
ZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVT
Y3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQogI2lmIFBMQVRGT1JNKENPQ09B
KQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikgeyB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5
Ni4uNmVmYWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE4IEBA
IFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJh
bmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRU
ZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2
ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhP
YmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsK
ICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNh
c3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50
KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCBy
YW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZyYW1l
KCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9k
ZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAotICAg
ICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246
OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBQb3NpdGlvbiBw
b3MxID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3IpOworICAgIFBvc2l0aW9uIHBvczIgPSBQb3NpdGlvbihub2RlLCByYW5nZS5z
dGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7
CisgICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlv
bihwb3MxLCBwb3MyLCBET1dOU1RSRUFNKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbih2aXNpYmxlU2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OnVybCgpIGNvbnN0CkBAIC0xOTYwLDEzICsxOTY0LDE2IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBW
aXNpYmxlUG9zCiB7CiAgICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24g
YW5kIHRlbGwgdGhlIGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhl
biBtb3ZlIHRvIHRoYXQgcG9zaXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5k
KQorICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNl
dFRleHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1
ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5n
ZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNp
YmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQs
IHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2Vs
ZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggNGUyNmI2Ny4uYWI3OTM0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hl
SU9TLm1tCkBAIC05NSw2ICs5NSwxMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtv
YmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlv
blN0cmluZ107CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDU0MjIxMDMuLmY0NWJhMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQpAQCAtNDgsNiArNDgsMTAgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
Q2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKICNlbmRpZgogCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCiAjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KICNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKICNl
bmRpZgpAQCAtODAsNiArODQsMTAgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlIgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhp
cyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTE5Miw2ICsyMDAsNjMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFw
cGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwog
fQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICgh
b2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAg
ICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRl
bnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tl
eV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5n
ZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUp
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAg
ICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAg
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChp
bnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgp
KSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4
dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgp
IGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4
dE1hcmtlclJhbmdlOworICAgIH0KKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVy
KCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9
IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFy
ZWEoKTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
d2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90
aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5v
dGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbd2ViQXJlYS0+d3JhcHBlcigpIGFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdl
ZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQ
b3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxp
dHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNl
ZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2Jq
LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxp
dHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKwor
ICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwogc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5T
U3RyaW5nICopc3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAppbmRleCBhZmVkMmI5Li4yNWVhYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMTY1LDYgKzE2NSwxMyBA
QCB2b2lkIEVkaXRDb21tYW5kQ29tcG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8
Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5SW50ZW50KCkKK3sKKyAg
ICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzW21fY29t
bWFuZHMuc2l6ZSgpLTFdLT51bmFwcGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBh
c3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+
YXBwbHkoKTsKQEAgLTE1NTQsNCArMTU2MSwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0
ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQogCitBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlJbnRl
bnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29t
bWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmFwcGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEVk
aXRDb21tYW5kOjphcHBseUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggZjhk
ZjlkOS4uZWRlZTQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgdW5hcHBseUludGVudCgpOwor
CiBwcml2YXRlOgogICAgIEVkaXRDb21tYW5kQ29tcG9zaXRpb24oRG9jdW1lbnQmLCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzdGFydGluZ1NlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgZW5kaW5nU2VsZWN0aW9uLCBFZGl0QWN0aW9uKTsKIApAQCAtODgsNiArOTAsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9y
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9u
SW5kaWNhdG9yKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2lu
ZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCBmNWI4NmMzLi4wMWEwMzA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIHsgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAg
ICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsK
QEAgLTkxLDYgKzkzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29t
bWFuZChIYXNoU2V0PE5vZGUqPiYpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsg
cmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5
cGUoKSk7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IHVuYXBwbHlJbnRlbnQoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCh1bmFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJvdGVjdGVkOgogICAgIGV4cGxp
Y2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkgOiBFZGl0Q29tbWFuZChk
b2N1bWVudCkgeyB9CiAKQEAgLTEwMiw2ICsxMDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKTsKIAorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21t
YW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAppbmRleCAwYjBjMTBiLi5lMjQ5ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCkBAIC0xMDA1LDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmco
UGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xl
YXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRo
b3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8g
RnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUludGVudCgp
KTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24t
PnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVk
aXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsK
QEAgLTEwMzYsNyArMTAzNiw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NS
ZWZQdHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29u
dHJvbHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290
RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24o
Y21kLT5zdGFydGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1h
bmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoKSk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJh
bWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUlu
dGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY21kLT5z
dGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVt
ZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMjg1NCw3
ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQo
KQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNt
aXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9u
LCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRp
dG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
bmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
LCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAg
Ly8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRo
ZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwg
bmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODY2LDcgKzI4NjYsNyBAQCB2b2lk
IEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNv
bWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0
aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENo
YW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0g
ICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0
aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25z
IGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3Np
dGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyBy
ZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCmluZGV4IDY2ZGIwMjAuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaApAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3Np
dGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAg
dm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwog
Ci0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7
CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywg
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lm
aWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5
KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCmluZGV4IDU3NDUxNzAuLmI0YzcyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVT
ZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAK
IHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywg
RVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikK
IHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQo
KSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0Rp
cmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJp
Z2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5k
ZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1f
c2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVz
ZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAog
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2Vy
ZWQpCkBAIC0xNzAsNyArMTY5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRW
YWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW8KICAgICBWaXNp
YmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZh
bGlkYXRpb24oYmFzZSwgZXh0ZW50KTsKICAgICBuZXdTZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25h
bChzZWxlY3Rpb25IYXNEaXJlY3Rpb24pOwotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9O
b3RTZXRGb2N1cykpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyks
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxl
Y3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91
cykpKTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpzZXRDYXJldFBvc2l0aW9uKGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8
fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGlu
dGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRl
eHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91cykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRl
bnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJl
U2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxh
cml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2li
bHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFs
aWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3
ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRp
bmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3
U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAg
ICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25E
b2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9
IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkg
ewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAg
ICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBn
cmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmlu
ZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBt
b2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50
SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxp
ZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0
cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAs
NyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0
aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBT
ZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5n
QXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpbwog
ICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rp
b25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcg
QEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAg
ICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMzc5LDggKzM4Nyw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVh
bFNlbGVjdGlvbigpCiAKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFs
RXh0ZW50KTsKICAgICB9Ci0KLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQp
OwogCiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpKQog
ICAgICAgICBjbGllbnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpOwpAQCAt
MTAyMSw3ICsxMDI4LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5
TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBp
c0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3Jh
bnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5k
YXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9u
IGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBi
b29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgewor
ICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAg
ICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVu
dC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51
bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdy
YW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3Jk
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91
bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAg
Y2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAg
ICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6Cisg
ICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJp
dHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNl
IExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9j
dW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0
OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAg
ICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAg
ICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9Cisj
ZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc3LDYgKzExNTcsMTEgQEAg
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25E
aXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9
PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQor
ICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbklu
dGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNv
bWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2
aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNh
dmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQg
cG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxk
IGJlCkBAIC0xNzEwLDggKzE3OTUsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxs
KCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246
OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hv
dWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZl
bnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAg
ICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhP
YmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0K
IH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2Us
IEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUxMCw3
IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWlu
aW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5l
eHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rp
b24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0
eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7
CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFy
dCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5k
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUu
LjNjMzE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVj
dGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0
eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAg
LTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlw
aW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlv
biB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGlu
ZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0
aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24m
LCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3Vs
ZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxh
cml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRT
ZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0
eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBC
QVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7Cisg
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQg
dXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rp
b25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRT
ZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpA
QCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlv
blBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4
dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0
U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0K
ICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5z
aWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBp
bmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0
aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkK
K2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggNDY5MTUzOC4uNzdjNDI2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtNDMsNiArNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkp
OyB9CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uZTY5
NWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9u
QXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXND
aGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAot
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlm
ICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25N
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpp
bmRleCA5YmRlZTFjLi4wN2UyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
Yy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3Qg
YWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8g
IVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVs
bCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAg
ICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVw
cmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRD
aGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRl
ZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA5OGE1ZDM5Li5jYWFhYTIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTg0LDcgKzMxODQsNyBA
QCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBz
ZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBzZWxlY3Rpb24u
c2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhh
bmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50
KiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2Mw
N2ZlLi5iZmQxZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBA
IC0zNDEsNyArMzQxLDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9j
dW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICAgICAgUG9zaXRp
b24gcG9zaXRpb24gPSBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZWxlbWVudC5nZXQoKSk7
CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKHBvc2l0aW9uLCBwb3NpdGlv
biwgRE9XTlNUUkVBTSk7CiAgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiAgICAgfQogCiAgICAgZWxlbWVu
dC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7Ci0tIAoyLjMuMiAoQXBwbGUgR2l0LTU1KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250857</attachid>
            <date>2015-04-15 13:57:26 -0700</date>
            <delta_ts>2015-04-16 19:38:42 -0700</delta_ts>
            <desc>tests</desc>
            <filename>0004-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>31506</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSBmZGRhN2M2OTE3YTY5ZTIzZTFmNjQ5ZTAzMDcyMGY0MzRlMDdmZjk4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAxMDo0ODo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVGVzdHMKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgNyArCiAuLi4vc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1l
eHBlY3RlZC50eHQgICAgICAgICB8ICA5NSArKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L3Nl
bGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbCAgIHwgMjE3ICsrKysrKysrKysrKysrKysrKysr
KwogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaCAgICAgICAgfCAg
IDEgKwogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0gICAgICAg
fCAgNTQgKysrKy0KIC4uLi9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0g
ICAgICAgIHwgIDE5ICstCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tICAgICAgICB8ICAxOSArLQogNyBmaWxlcyBjaGFuZ2VkLCA0MDIgaW5zZXJ0aW9ucygrKSwg
MTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGNkNTc0Zi4uZjhjYzBj
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEwIEBACisyMDE1LTA0LTE0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1
c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQyNzE5CisKKyAgICAgICAgVGVzdHMKKwogMjAxNS0wNC0xNSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9yZWFkYWJsZS1zdHJlYW0uaHRtbCBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zY2M5ZjIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw5NSBAQAorb25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC4KKwor
c2V2ZW4gZWlnaHQgbmluZS4KKworVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNh
dGlvbnMgZm9yIG1vdmVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBh
ZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJd
IGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3Jh
cGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJd
IGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0
bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTcx
MzQ1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDIxNyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IHJvbGU9InRleHRib3gi
IHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVlPgorPHA+b25lIHR3
byB0aHJlZS4gZm91ciBmaXZlIHNpeC48L3A+Cis8cD5zZXZlbiBlaWdodCBuaW5lLjwvcD4KKzwv
ZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMgZm9yIG1v
dmVzLiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAy
OworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSAzOworCisg
ICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA9IDE7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA9IDI7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzID0gMzsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dCA9IDQ7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAx
OworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSAyOworICAgIHZhciBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgPSAzOworICAgIHZhciBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlID0gNDsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGggPSA1OworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURv
Y3VtZW50ID0gNzsKKworICAgIHZhciBncmFuID0gWyJjaGFyYWN0ZXIiLCAid29yZCIsICJzZW50
ZW5jZSIsICJsaW5lIiwgInBhcmFncmFwaCIsICJsaW5lYm91bmRhcnkiLCAic2VudGVuY2Vib3Vu
ZGFyeSIsICJwYXJhZ3JhcGhib3VuZGFyeSIsICJkb2N1bWVudGJvdW5kYXJ5Il07CisgICAgdmFy
IHdlYkFyZWEgPSAwOworICAgIHZhciBjb3VudCA9IDA7CisgICAgdmFyIHJlc3VsdHMgPSBbXTsK
KyAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxi
YWNrKG5vdGlmaWNhdGlvbiwgdXNlckluZm8pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9
PSAiQVhTZWxlY3RlZFRleHRDaGFuZ2VkIikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAg
ICAgICAgIGlmICh1c2VySW5mbykKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlcklu
Zm8pOworICAgICAgICAgICAgaWYgKGNvdW50ID09IGdyYW4ubGVuZ3RoICogNCkgeworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdv
cmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsK
KworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwi
XSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBo
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJ
bmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAy
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgd2ViQXJl
YS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgICAgIHdpbmRvdy50
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICB3
ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4
KDApOworICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNh
dGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAgc2hvdWxkQmUoImFk
ZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKKyAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisg
ICAgICAgIC8vIFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCisgICAgICAgIHZhciBzID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOworICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOwor
ICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3Zl
IiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJh
Y2t3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSBpbiBncmFu
KSB7CisgICAgICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAg
cy5tb2RpZnkoImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgIH0KKyAgICB9
CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5oCmluZGV4IDVlMDZjMzUuLmM0NjQ4ZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFZpc2li
bGVQb3NpdGlvbjsKIC0gKGlkKWF0dGFjaG1lbnRWaWV3OwogLy8gVXNlZCB0byBpbmZvcm0gYW4g
ZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgRFJU
LgogLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5v
dGlmaWNhdGlvbk5hbWU7CistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNl
ckluZm87CiAKIC0gKENHUGF0aFJlZiljb252ZXJ0UGF0aFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6
OlBhdGggJilwYXRoOwogLSAoQ0dQb2ludCljb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOihXZWJD
b3JlOjpGbG9hdFBvaW50ICYpcG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UubW0KaW5kZXggNWRkZmMzYS4uNjM3ZTkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbQpAQCAtMzg3LDkgKzM4Nyw1OSBAQCBzdGF0aWMgQk9PTCBhY2Nl
c3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczsKIAogLSAodm9pZClhY2Nlc3NpYmls
aXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUKIHsKKyAg
ICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpCisgICAgICAgIFtz
ZWxmIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uTmFtZSB1c2Vy
SW5mbzpuaWxdOworfQorCitzdGF0aWMgTlNBcnJheSAqYXJyYXlSZW1vdmluZ05vbkpTT05UeXBl
cyhOU0FycmF5ICphcnJheSkKK3sKKyAgICBBU1NFUlQoW2FycmF5IGlzS2luZE9mQ2xhc3M6W05T
QXJyYXkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJheSA9IFthcnJh
eSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGlkeCA9IDA7IGlkeCA8IFttdXRh
YmxlQXJyYXkgY291bnRdOyBpZHgrKykgeworICAgICAgICBpZCB2YWx1ZSA9IG11dGFibGVBcnJh
eVtpZHhdOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBj
bGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDpp
ZHggd2l0aE9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAg
ICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAg
ICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aWR4IHdpdGhPYmpl
Y3Q6YXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNlIGlmICgh
KFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVt
b3ZlT2JqZWN0QXRJbmRleDppZHhdOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVBcnJheSBh
dXRvcmVsZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnlSZW1vdmlu
Z05vbkpTT05UeXBlcyhOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAgQVNTRVJUKFtk
aWN0aW9uYXJ5IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11dGFibGVD
b3B5XTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgeworICAgICAgICBp
ZCB2YWx1ZSA9IGRpY3Rpb25hcnlba2V5XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNs
YXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5
W2tleV0gPSBkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOworICAgICAgICBl
bHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICAg
ICAgbXV0YWJsZURpY3Rpb25hcnlba2V5XSA9IGFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFs
dWUpOworICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBj
bGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAg
ICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAgICB9
CisgICAgcmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZv
aWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRp
b25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChhY2Nl
c3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rpb25h
cnkqIHVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlz
Om5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6
QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOworICAg
ICAgICBBU1NFUlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5m
byA9IG5pbDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEgKnVz
ZXJJbmZvRGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpkaWN0
aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldyaXRp
bmdPcHRpb25zKTAgZXJyb3I6bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEpIHsK
KyAgICAgICAgICAgICAgICBOU1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5nIGFs
bG9jXSBpbml0V2l0aERhdGE6dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXTsKKyAgICAgICAgICAgICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAgICAg
ICAgICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lLCBA
InVzZXJJbmZvIiA6IHVzZXJJbmZvU3RyaW5nfTsKKyAgICAgICAgICAgICAgICBbdXNlckluZm9T
dHJpbmcgcmVsZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFp
bmZvKQorICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNh
dGlvbk5hbWV9OworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVz
ZXJJbmZvOmluZm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFk
YTY4N2EuLjdiMDE3YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTExMiwxNiArMTEy
LDI3IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9
IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcg
KnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsK
KwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25v
dGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlm
aWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFs
Q29udGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZv
SlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5n
dGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZh
bHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAg
ICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmco
W21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7Cisg
ICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBm
b3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBu
YW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29u
dGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlv
bk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlz
dGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3Vt
ZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlm
aWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
Ml07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAg
ICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAg
SlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlm
aWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZp
Y2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1sz
XTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpT
QWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVu
dHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9
IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxi
YWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAz
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0KQEAgLTEyNSwxOSArMTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYm
IG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVz
ZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0g
V0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LnBhZ2UoKS0+cGFnZSgpKTsKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJh
bWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVK
U1N0cmluZ1JlZl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0g
SlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpT
VmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJ
bmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0
cmluZ1JlZl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1h
a2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAg
ICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZv
ciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5h
bWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxK
U09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlm
aWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9i
YWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFz
IGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhl
IG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAg
ICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0
UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDAp
OworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVs
ZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RG
OjpnZXRQdHIoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlv
biBvYmplY3RdKSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJn
dW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7
CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09i
amVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRz
LCAwKTsKICAgICB9CiB9Ci0tIAoyLjMuMiAoQXBwbGUgR2l0LTU1KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250989</attachid>
            <date>2015-04-16 19:31:34 -0700</date>
            <delta_ts>2015-04-16 19:36:14 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>269603</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDBhNDg4ODdiYWU4Y2I0NTViODQyOWE4NGUyNTczNjhiMTczMWVhMDkKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MTkKICAgIAogICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4
dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFu
ZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCiAgICAKICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFu
ZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBz
ZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBjZDU3NGYuLmQ4
N2MyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wNC0xNSAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTE1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIHN0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjYzlmMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZp
dmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyBmb3IgbW92ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
biJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3Nl
bGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yNTc1MzdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAg
KzEsMjE3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgcm9s
ZT0idGV4dGJveCIgdGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxlPXRydWU+
Cis8cD5vbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4LjwvcD4KKzxwPnNldmVuIGVpZ2h0IG5p
bmUuPC9wPgorPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworPHNjcmlwdD4K
KworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyB1c2VyIGluZm8gZGF0YS4iKTsKKworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlID0gMjsKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSArIDE7CisKKyAgICB2
YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nID0gMTsKKyAgICB2YXIgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
ICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgPSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0ID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgKyAxOworCisgICAgdmFy
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyID0gMTsKKyAgICB2YXIgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFy
YWN0ZXIgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgPSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVNlbnRlbmNlID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lICsgMTsK
KyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggPSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlEb2N1bWVudCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoICsg
MjsKKworICAgIHZhciBncmFuID0gWyJjaGFyYWN0ZXIiLCAid29yZCIsICJzZW50ZW5jZSIsICJs
aW5lIiwgInBhcmFncmFwaCIsICJsaW5lYm91bmRhcnkiLCAic2VudGVuY2Vib3VuZGFyeSIsICJw
YXJhZ3JhcGhib3VuZGFyeSIsICJkb2N1bWVudGJvdW5kYXJ5Il07CisgICAgdmFyIHdlYkFyZWEg
PSAwOworICAgIHZhciBjb3VudCA9IDA7CisgICAgdmFyIHJlc3VsdHMgPSBbXTsKKyAgICB2YXIg
cmVzdWx0SW5kZXggPSAwOworICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlm
aWNhdGlvbiwgdXNlckluZm8pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxl
Y3RlZFRleHRDaGFuZ2VkIikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGlm
ICh1c2VySW5mbykKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAg
ICAgICAgICAgaWYgKGNvdW50ID09IGdyYW4ubGVuZ3RoICogNCkgeworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsr
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVc
Il0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsr
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlE
b2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVy
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAy
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVO
b3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
ICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICB3ZWJBcmVhID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAg
ICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3Rl
bmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZp
Y2F0aW9uIiwgInRydWUiKTsKKworICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRleHRib3giKTsKKyAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgIC8v
IFRyaWdnZXIgc2VsZWN0aW9uIGNoYW5nZXMuCisgICAgICAgIHZhciBzID0gd2luZG93LmdldFNl
bGVjdGlvbigpOworICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICBm
b3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndh
cmQiLCBncmFuW2ldKTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwg
Z3JhbltpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAg
ICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAgcy5tb2RpZnko
ImV4dGVuZCIsICJmb3J3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgIH0KKyAgICB9CisKKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDI5MGIz
MzEuLjRjM2EyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNDY4LDEwICsxNDY4LDE0IEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0Ny
ZWF0ZUxpbmtDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAg
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0aXZlLmNw
cAogICAgIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTQ5MCwxMSAr
MTQ5NCwxNSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNh
bEVsZW1lbnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZl
bC5jcHAKICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24u
Y3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAg
ICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNw
cApAQCAtMTUxMCw2ICsxNTE4LDEwIEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5n
L1RleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVyYXRvci5j
cHAKICAgICBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAK
KyAgICBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAog
ICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQb3NpdGlv
bi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ4
OTQzYS4uYzk5YzRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMyBAQAorMjAxNS0wNC0xNSAg
RG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVy
IHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRv
IGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBk
ZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAg
ICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5k
IHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBh
cHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdl
YiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5n
ZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBh
bmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNz
aWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29u
dGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4g
QWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4K
KworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVk
VGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9B
WE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKC1bV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRp
b246XSk6CisgICAgICAgIChhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAgKGRp
Y3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOnVzZXJJ
bmZvOl0pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLmg6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBw
bHlJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgor
ICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQp
OgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRl
ZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9B
cHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBw
bHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9u
KToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6Cisg
ICAgICAgICogZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6RGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAg
KiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpp
bnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydFRleHRD
b21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVkaXRpbmcvRWRp
dENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlF
ZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjphcHBseUludGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUludGVudCk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGllZEVkaXRpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNo
YW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoK
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Up
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246OlRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2Vs
ZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9u
Q29udGFpbmluZ0NhcmV0U2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVj
dGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAg
ICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmg6Cisg
ICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5
cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAqIGVk
aXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAg
IChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRl
eHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9UeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAg
ICAqIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbik6Cisg
ICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9j
dXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCiAyMDE1LTA0LTE0
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBj
cmVhdGluZyBzZW5kIHJpZ2h0cyBmcm9tIHNoYXJlZCBtZW1vcnkgbW9yZSByb2J1c3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGQwNzdh
MDIuLmEyYzFjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagpAQCAtMTQzNjYsNiArMTQzNjYsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDQyMiw2ICsx
NDQ1MCwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxl
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xFZGl0Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgpAQCAtMTQ3MDMsNiArMTQ3NTksMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dp
bkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdT
dWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
U3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2Vf
V2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAg
LTE0NzczLDYgKzE0ODU3LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ5OTcsNiArMTUx
MDksNjIgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1
ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgpAQCAtMjEwNDEsMTAgKzIxMjA5LDE0IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmgiIC8+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcRWRpdEFjdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xF
ZGl0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0
aW5nQmVoYXZpb3IuaCIgLz4KQEAgLTIxMDcxLDEwICsyMTI0MywxNCBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb2RpZnlTZWxlY3Rpb25MaXN0
TGV2ZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW92ZVNlbGVj
dGlvbkNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2RlQ29t
bWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgiIC8+CkBAIC0yMTA5Myw2ICsy
MTI2OSwxMCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUZXh0SXRlcmF0
b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVGV4dEl0ZXJhdG9y
QmVoYXZpb3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
Q29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiIC8+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFVuZG9TdGVwLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlu
a0NvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVmlzaWJs
ZVBvc2l0aW9uLmgiIC8+CkBAIC0yMTc1NSw0ICsyMTkzNSw0IEBACiAgIDxJbXBvcnRHcm91cCBM
YWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0
c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlvbnNcbWFzbS50YXJnZXRzIiAvPgogICA8L0ltcG9ydEdy
b3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwppbmRleCBlNDQ2MDg3Li41NGVjYjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNDM4
LDYgKzM0MzgsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRl
TGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzQ1MCw2ICszNDU2LDEyIEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuY3BwIj4KICAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21w
aWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFuZC5jcHAi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0z
NTEzLDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW92
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAiPgogICAgICAg
PEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNTI4LDYgKzM1
NDYsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3Np
dGlvbi5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNTc2LDYgKzM2MDAsMTggQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xVbmxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwNTY2LDYgKzEwNjAyLDEyIEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmgiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIj4KKyAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDU3OCw2
ICsxMDYyMCwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25Db21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RWRpdEFjdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgpAQCAtMTA2NTYsNiArMTA3MDQsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oIj4K
ICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2
NjgsNiArMTA3MjIsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVu
ZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA3MjIsNiArMTA3ODIsMTggQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5oIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydFRleHRD
b21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW4uaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5k
b1N0ZXAuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KQEAgLTE1NDU1LDQgKzE1NTI3LDQgQEAKICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cd2luPC9G
aWx0ZXI+CiAgICAgPC9NQVNNPgogICA8L0l0ZW1Hcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTExMGUwYi4uYzIwMjljOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNjM3NCwxMiArNjM3NCwyMiBAQAogCQlGNDc4NzU1NTE5OTgzQUZGMDAyNEEyODcgLyogU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDc4NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUubW0gKi87IH07CiAJCUY0N0E1RTNFMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNj
cm9sbFNuYXBQb2ludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDdB
NUUzRjE5NUI4RTQ4MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNBMTk1QjhDOEEw
MDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovOyB9OworCQlGNTA2M0MxQzFB
Qjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjNDMUIxQUI3
NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsg
fTsKKwkJRjUwNjNDMUQxQUI3NTZEODAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwICovOyB9OwogCQlGNTA2NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsg
fTsKIAkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNjE1N0Y1MkRD
MDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJRjUxM0EzRUExNUZGNDg0MTAw
MTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsgfTsKIAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2
IC8qIEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAq
LzsgfTsKKwkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwICovOyB9OworCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU0M0Q2MDExQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwICovOyB9OworCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaCAqLzsgfTsKIAkJRjU0NEY3ODgxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJ
CUY1NDRGNzg5MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYz
M0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi87IH07CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NTI4REE2MUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEw
MzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9
OworCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5
IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0
VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJ
CUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAw
M0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi87IH07CkBAIC02NDI5LDEyICs2NDM5LDI2
IEBACiAJCUY1NUIzRERFMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFBMTI1MUYxMkQw
MDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEREYxMjUxRjEyRDAwM0VG
MjY5IC8qIFdlZWtJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUu
Y3BwICovOyB9OwogCQlGNTVCM0RFMDEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUMx
MjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCAqLzsgfTsKKwkJRjU1RDBCRDcxQUNC
NzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1RDBCRDUxQUNCNzA4MjAw
OTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTVE
MEJEODFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1RDBCRDYxQUNC
NzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKKwkJ
RjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTc0REVEQjFBQ0EyRjQ3MDA1OTgyRTQgLyogUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU4NzJBNzQx
QUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTcyMUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi87IH07CisJCUY1ODcy
QTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzMxQUI3NUEy
QjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggKi87IH07CiAJCUY1OTcz
REUwMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTczRERFMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2Nh
bGVNYWMuaCAqLzsgfTsKIAkJRjU5NzNERTExNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OTczRERG
MTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gKi87IH07CiAJCUY1OUM5NUZGMTI1NUIy
M0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1OUM5NjAwMTI1NUIy
M0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAv
KiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLzsgfTsKKwkJRjU5RkE0NkMxQUNDQjNDMDAw
NjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkExQUNDQjNDMDAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTlG
QTQ2RDFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkIx
QUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLzsg
fTsKKwkJRjU5RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZB
NDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi87IH07
CisJCUY1OUZBNDcxMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkYx
QUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi87IH07CiAJCUY1
QTE1NDI3MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNTEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovOyB9OwogCQlGNUExNTQyODEyNzk1MzRE
MDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI2MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0
aW9uTWVzc2FnZS5oICovOyB9OworCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5
NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1
Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKKwkJRjVBNTI5NjExQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBU
eXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CiAJCUY1QzA0MURBMEZGQ0E3Q0UwMDgzOUQ0
QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxp
c3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQxREIwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50Lmgg
Ki87IH07CiAJCUY1QzA0MUUzMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMw
NDFERTBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9OwpA
QCAtMTM5OTQsNiArMTQwMTgsOCBAQAogCQlGNDc4NzU1MzE5OTgzQUZGMDAyNEEyODcgLyogU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHlsZVNjcm9sbFNu
YXBQb2ludHMuY3BwOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0
eWxlU2Nyb2xsU25hcFBvaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBT
dHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgcGF0aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRy
b2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRC
IC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNDAwNiw4ICsxNDAzMiwxNiBAQAogCQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0Eg
LyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QzMDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJh
bmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0Iw
QzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9y
bUxvY2FsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9y
bUxvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQx
QUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgx
QUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQw
MDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyog
QnV0dG9uSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEJ1dHRvbklucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1
Nyw2ICsxNDA5MSwxMiBAQAogCQlGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRU
eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTElucHV0VHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyog
V2Vla0lucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWVrSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEQUMx
MjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2Vla0lucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBC
RDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVEODFBQ0EyMjhEMDA1OTgy
RTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDkxQUNB
MjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTg3MkE3MjFB
Qjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0
NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjU4Nzg0RjAwMkRFMzc1OTAxRUE0MTIyIC8qIEN1cnNvck1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEN1cnNvck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUY1ODc4NTRDMDJERTM3NTkwMUVBNDEyMiAvKiBXZWJDb3JlRnJhbWVW
aWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvcmVGcmFtZVZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5n
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKQEAgLTE0MDY3LDggKzE0MTA3LDE2IEBACiAJCUY1OTczRERGMTVDRkIyMDMwMDI3
RjgwNCAvKiBMb2NhbGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBMb2NhbGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZE
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjU5RkE0NkExQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5
RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkYxQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2Fn
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QTE1NDI2MTI3OTUzNEQwMEQw
QjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWYWxpZGF0aW9uTWVzc2FnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0
MUQ3MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRN
TERhdGFMaXN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
RGF0YUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ5
MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE3Njc5LDYgKzE3NzI3LDEwIEBACiAJCQkJOTMzMDlEOEUwOTlFNjQ5MTAwNTZF
NTgxIC8qIENvbXBvc2l0ZUVkaXRDb21tYW5kLmggKi8sCiAJCQkJRDBCMDU1NjcwOUM2NzAwMTAw
MzA3RTQzIC8qIENyZWF0ZUxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMEIwNTU2NjA5QzY3MDAx
MDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuaCAqLywKKwkJCQlGNTQzRDVGQjFBQ0IwOURB
MDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU0
M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LywKKwkJCQlGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgKi8sCisJCQkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ4RjA5OUU2NDkxMDA1NkU1ODEgLyogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTAwOTlFNjQ5MTAwNTZF
NTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MTA5OUU2
NDkxMDA1NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzY4Nyw2
ICsxNzczOSwxMCBAQAogCQkJCUNFQ0FERkMzMTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25B
bHRlcm5hdGl2ZS5oICovLAogCQkJCUNFQ0FERkM0MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRp
b25Db21tYW5kLmNwcCAqLywKIAkJCQlDRUNBREZDNTE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0
aW9uQ29tbWFuZC5oICovLAorCQkJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTA2M0MxQjFBQjc1NkND
MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJ
CUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5j
cHAgKi8sCisJCQkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTMwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRBY3Rp
b24uaCAqLywKIAkJCQk5MzMwOUQ5NDA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuY3Bw
ICovLAogCQkJCTkzMzA5RDk1MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5oICovLApA
QCAtMTc3MzMsNiArMTc3ODksMTAgQEAKIAkJCQlDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyog
TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8sCiAJCQkJOTMzMDlEQUMwOTlFNjQ5MTAwNTZF
NTgxIC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURBRDA5OUU2NDkx
MDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLywKKwkJCQlGNTVEMEJENTFBQ0I3
MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJ
RjU1RDBCRDYxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCAqLywKKwkJCQlGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU3NERFRDkxQUNBMjI4RDAwNTk4MkU0
IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQk5MzMw
OURCMTA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCAqLywK
IAkJCQk5MzMwOURCMjA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5k
LmggKi8sCiAJCQkJRDA2QzBEOEUwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1h
bmQuY3BwICovLApAQCAtMTc3NDMsNiArMTc4MDMsMTAgQEAKIAkJCQk5MzMwOURCODA5OUU2NDkx
MDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCAqLywKIAkJ
CQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5jcHAgKi8sCiAJ
CQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uaCAqLywKKwkJ
CQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdB
RCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhE
QTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCQTA5OUU2NDkxMDA1NkU1ODEgLyog
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc3NzgsNiArMTc4NDIsMTQgQEAK
IAkJCQk5MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAq
LywKIAkJCQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8s
CiAJCQkJOTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJ
CQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgKi8sCisJCQkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEg
LyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTYwMUFD
Q0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJ
CUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU5RkE0NkYxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21t
YW5kLmggKi8sCisJCQkJRjVBNTI5NUIxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk1QzFBQ0NFOEUwMDA1
MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJ
CQk5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAqLywKIAkJCQlEMDg2RkU5
NzA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJRDA4NkZFOTYw
OUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuaCAqLywKQEAgLTIzNjcxLDYgKzIzNzQz
LDcgQEAKIAkJCQk2QzU2OENCMTE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEZBRjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0
aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTRGNjU3MjFBQTk5N0YxMDBFMzhD
REQgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURENzA5OUU2NDkyMDA1NkU1ODEgLyog
QXBwZW5kTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJEMERCNTVDREMw
MDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJC
RjBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZUdyb3VwLmggaW4gSGVhZGVycyAq
LywKQEAgLTI0NDcyLDYgKzI0NTQ1LDcgQEAKIAkJCQkzMTA2MDM3OTE0MzI4MUNEMDBBQkY0QkEg
LyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDYwMzdC
MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZUludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJh
bWVSdWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyog
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxNkZFMDdGMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGVJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODAwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNT
U0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDgyMEU2Q0NDMjgwMEJG
NjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAt
MjQ3OTUsNiArMjQ4NjksNyBAQAogCQkJCUExOUQ5MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3
b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdEMkIw
QTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0OUIxMjM3MEE0QjAwMEM2MTYxIC8q
IEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERTYwOTlFNjQ5MjAw
NTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RTQw
OTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTI1MDI0LDYgKzI1MDk5LDcgQEAKIAkJCQlGREY3RTlDNDEzQUMyMURCMDBBNTFFQUMgLyogSlNB
dWRpb0J1ZmZlckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBMDEyQjAzRUUx
MDAzQTU4M0EgLyogSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEQTE1RUE2MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUE4MTJCMDNFRTEwMDNB
NTgzQSAvKiBKU0F1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEx
NUVBRTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0xpc3RlbmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGREExNUVCMDEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb05vZGUuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjUwMzIsNiArMjUxMDgsNyBAQAogCQkJCUJFOEVGMDQzMTcxQzhGRjkwMDlCNDhD
MyAvKiBKU0F1ZGlvVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOEVGMDQ1MTcxQzhGRjkw
MDlCNDhDMyAvKiBKU0F1ZGlvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NkZCOUZG
OTE5QTczRTNBMDA0MjA1NjIgLyogSlNBdXRvY29tcGxldGVFcnJvckV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTlGQTQ2RDFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMjRGMDAwQzI2NDQ3QTAwOUUy
MzQ5IC8qIEpTQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDYzNDgxMDdBOTM2NjAw
ODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkE0NDU0
RTg5OEYyRkMxNjhCQzM4QzEgLyogSlNCZWZvcmVVbmxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTE1MSw2ICsyNTIyOCw3IEBACiAJCQkJRkRBMTVFQUMxMkIwM0VFMTAwM0E1ODNBIC8q
IEpTR2Fpbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOEY1MDAyMTk0Q0FDM0EwMDgxQkFB
RSAvKiBKU0dhbWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxOEY1MDA0MTk0Q0FDM0EwMDgx
QkFBRSAvKiBKU0dhbWVwYWRCdXR0b24uaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NDNENUZFMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRTgwREE2NDBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkU4MERBNjYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvcG9zaXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGREE3QzFGMTg4MzIyRkMwMEM5NTRCNSAvKiBKU0dl
c3R1cmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTU5Myw2ICsyNTY3MSw3IEBACiAJCQkJ
QkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNERkQ0OTYwRTMwNTky
RjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcwQThEMTk0NzAwMjI5NDdEIC8qIEpT
WE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3NjJDNzQwQTA3NEYyNjAwOTg5
RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEQjRBMEQy
QTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI2
Nzc0LDYgKzI2ODUzLDcgQEAKIAkJCQlCMkMzREEzQzBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENv
ZGVjSUNVLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEzRTBEMDA2QzFEMDBFRjZGMjYgLyog
VGV4dENvZGVjTGF0aW4xLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5QTBEMDBBNURGMDAz
MDA3NEQgLyogVGV4dENvZGVjTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTc0REVEQjFBQ0Ey
RjQ3MDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNDAwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1Vz
ZXJEZWZpbmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MjBEMDA2QzFEMDBFRjZGMjYg
LyogVGV4dENvZGVjVVRGMTYuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDNDQjgyMTJGMjVFNTEw
MDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODI3LDYgKzI2
OTA3LDcgQEAKIAkJCQkxODVCQ0YyOTBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QTE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGNzJCRjBCMTg3RkQ0NUMwMDA5QkNCMyAvKiBU
aWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZB
NDcxMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0FBM0E2QTQxOTRCNUMyMjAwMUNCRDI0IC8qIFRpbGVDb3ZlcmFnZU1hcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGODlBNDIxNTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFj
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FBM0E2OUMxOTRBNjRFNzAwMUNCRDI0IC8qIFRp
bGVHcmlkLmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTUwLDEyICsyNzAzMSwxNCBAQAogCQkJCTJE
M0VGNDQ4MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJB
dXRvY2FwaXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJE
MTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJEM0VGNDRBMTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QTgwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVG
cmFtZVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAv
KiBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RDNjlERDYxNjMyMDI2QzAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1M0Q5MTExMTQzMTBDQzAw
MEQ4MTdFIC8qIFdlYkNvcmVKU0NsaWVudERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUy
OTYyMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVLZXli
b2FyZFVJTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0
IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzREOUJBNzBC
OEMxMTc1MDA3QjQyQTkgLyogV2ViQ29yZU5TU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTg4LDYgKzI3MDcxLDcgQEAKIAkJCQk2RTRFOTFBRjEwRjdGQjMxMDBBMjc3OUMgLyog
V2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGNkYxRUUxMjdG
NzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
MUQzQ0Y4MzE0QkQwQTMwMDBGRTk5NzAgLyogV2ViR0xDb250ZXh0R3JvdXAuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMUQzQ0Y4NTE0QkQwQTMwMDBGRTk5NzAg
LyogV2ViR0xDb250ZXh0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGNjE0NEY4
MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTBFRTBERjgxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI3NzI3LDYgKzI3ODExLDcgQEAKIAkJCQk2Rjk5NUEzOTFBNzA4MzM3MDBB
NzM1RjQgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNEM0UyNTIzMTgwNDZCQ0QwMEUyN0Y1NiAvKiBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZCRjg5MDQ1MTY5RTlGMUYwMDUyRDg2RSAvKiBDU1NHcm91
cGluZ1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjVBNTI5NjExQUNDRUE3MDAwNTEyQjEx
IC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDMjNFNzZDMERBRTg4QTkwMDlGREM5MSAvKiBDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzOTNFNUZGMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNl
dFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0ZFMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NJbWFnZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc4MDQsNiArMjc4ODksNyBA
QAogCQkJCTMxRkIxQTU4MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIxQTVBMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZp
Y2VNb3Rpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIxQTVDMTIwQTVEMDYwMERD
MDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTg3MkE3
NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzE0MDM3OUUxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTkzMDlBMTExMUY0QUU1ODAwMjUw
NjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyNjkzOTcyNjFBNEE1RkJEMDBFODM0OUQgLyogTkZBLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
Mjc5NDAsNiArMjgwMjYsNyBAQAogCQkJCTg1RUNCRUY2MEFBNzYyNjkwMDU0NEYwQiAvKiBET01I
VE1MTW9kRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REY4MTJDMEFBNzc4NzIwMDQ4
NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0
RDE2MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjU0M0Q1RkQxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODVGMzJBRUYwQUE2M0I4NzAwRkYzMTg0
IC8qIERPTUhUTUxPcHRHcm91cEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTQwNzU2
QzBBRDZDQkY5MDA2MjBDNTcgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQk4NURGMkY5QzBBQTNDQUU1MDBBRDY0QzUgLyogRE9NSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODA4Nyw2ICsyODE3NCw3IEBACiAJCQkJNDREQUI1
QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1QzQzMDRCMDE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVy
ZUxPRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NzI4Njk0RTE0Rjg4ODI1MDBGNDg0REMgLyog
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NzRE
RURBMUFDQTJFQjAwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAvKiBG
RUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhBMEUxREUyRDYwMDdGMjQ4MSAv
KiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBRTMzNUYxMUFDQjA5RTIw
MEU0MDFFRiAvKiBXaGVlbEV2ZW50VGVzdFRyaWdnZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODE5OCw2ICsyODI4Niw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVy
YXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1
NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5
RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1
IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQw
MEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODIx
OCw2ICsyODMwNyw3IEBACiAJCQkJQjJBMDE1QUEwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNz
VHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8q
IEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREJGMTI1
MUYxMkQwMDNFRjI2OSAvKiBIaWRkZW5JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1
QyAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0Uw
MDE5QzE5OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5
NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODM5Nyw2ICsyODQ4Nyw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBE
NkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1
QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkg
LyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3
RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdC
MEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTQs
NiArMjg5NDUsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1h
bmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBK
U1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4
OUUxNUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQ
ZXJpb2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4
NDY4IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MTg5RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjg4ODgsNiArMjg5ODAsNyBAQAogCQkJCTA3OTY5REJCMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2
OURCRDE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0QwN0IxNDE4MzQxNTg4MDBBQkREM0MgLyogSlNSVENT
ZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1RDBCRDcx
QUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDc5NjlEQkYxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNDYWxs
YmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMTE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENTdGF0c1JlcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURDMzE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2
NjMsNiArMjk3NTYsNyBAQAogCQkJCTA3Mzc5NEZEMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3Rp
ZmllcnNNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEREMTlFRTJDNTIwMEU1QTA0
NSAvKiBSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5
MEIxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQz
MSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcz
Nzk0RjExOUVFMzdCQjAwRTVBMDQ1IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2suY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MEMxN0QxNENFRTAwNDIwQUExIC8qIFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5ODQwLDYgKzI5OTM0LDcgQEAK
IAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hp
bmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNR
TFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAv
KiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0
b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8q
IFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcw
MEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDM0Myw2ICszMDQz
OCw3IEBACiAJCQkJQTE0ODMyQzAxODdGNjU2NjAwREE2M0E2IC8qIFdLR3JhcGhpY3MubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBMTQ4MzJDMjE4N0Y2NUM3MDBEQTYzQTYgLyogV0tVdGlsaXRpZXMu
YyBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkM1MTg3RjY2ODMwMERBNjNBNiAvKiBXS1ZpZXcu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0
aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzk5
MTk5NjEyMDBEREY0MDBFQTA0MUMgLyogV09GRkZpbGVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGMzgyMDg5NjE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uZDM1YmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xMjksNiArMTI5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRl
cmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2Fj
aGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAs
IG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVy
KCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCkKIHsKIH0KIApAQCAtNzQyLDYgKzc0MywyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlm
aWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmot
PnBhcmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dv
cmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiBE
UlQsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBx
dWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVk
IGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBh
dCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRv
IG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Qp
OworCisgICAgZm9yIChjb25zdCBhdXRvJiBvYmplY3QgOiBub3RpZmljYXRpb25zKQorICAgICAg
ICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LmdldCgpLCBB
WFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxlUG9zaXRpb24oKSk7CisjZW5kaWYKK30K
ICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRh
cmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04NTAsMTYgKzg2NSwyMTggQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRl
cmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNo
YW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0
Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRF
QlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBwcmludGYoIlVua25vd24i
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Ogor
ICAgICAgICBwcmludGYoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIHByaW50ZigiTW92ZTo6Iik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kOgorICAgICAgICBwcmludGYoIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6Cisg
ICAgICAgICAgICBwcmludGYoIkRlbGV0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgICAgICBwcmludGYoIkluc2VydCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRp
b246CisgICAgICAgICAgICBwcmludGYoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBw
cmludGYoIlR5cGluZ0luc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgICAgICBwcmludGYoIkN1dCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAg
IHByaW50ZigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBwcmludGYoIlVua25vd246OiIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgcHJpbnRmKCJCZWdpbm5pbmc6OiIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgor
ICAgICAgICAgICAgcHJpbnRmKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBwcmlu
dGYoIlByZXZpb3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBwcmludGYoIk5leHQ6OiIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RGlzY29udGlndW91czoKKyAgICAgICAgICAgIHByaW50ZigiRGlzY29udGlndW91czo6Iik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
VW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rp
b24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIHByaW50ZigiVW5rbm93biIpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUNoYXJhY3RlcjoKKyAgICAgICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlciIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJXb3JkIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZToKKyAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFn
ZToKKyAgICAgICAgICAgICAgICBwcmludGYoIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoK
KyAgICAgICAgICAgICAgICBwcmludGYoIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAg
ICAgICAgICAgICAgIHByaW50ZigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgcHJp
bnRmKCItU3luYyIpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUgKm5v
ZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNlbGVjdGlvbkludGVudDsKKwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmopIHsK
KyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0NvbnRhaW5lZEJ5
UGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqLCBpbnRlbnQsIHNlbGVjdGlvbik7CisjZWxzZQorICAgIHBv
c3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3Rl
ZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBVTlVTRURfUEFSQU0o
aW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRpZgorCisgICAgc2V0
VGV4dFNlbGVjdGlvbkludGVudCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4
dEVkaXRUeXBlVW5rbm93bik7CisKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmli
dXRlcygpOwogCi0gICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCiAgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5p
c1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsK
KyAgICAgICAgICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iaik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNl
cnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iaiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZUZvckVkaXRUeXBl
KHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0
KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5
cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5
cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBv
c2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChk
ZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNlcnRp
b25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0
RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3RhdGlv
biB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3RvcENh
Y2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlm
IChvYmopIHsKKyAgICAgICAgaWYgKG9iai0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqLT5pc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpKSB7CisgICAgICAgICAgICBlbnF1ZXVlUGFzc3dvcmRW
YWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmopOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAg
IHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGRlbGV0aW9uVHlw
ZSwgZGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOwor
I2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENo
YW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCku
ZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0
aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmVu
cXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOwor
ICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHN0
ZDo6ZmluZChtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5iZWdpbigpLCBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSwgb2JzZXJ2YWJsZU9iamVjdCkgPT0gbV9wYXNzd29y
ZE5vdGlmaWNhdGlvbnNUb1Bvc3QuZW5kKCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNh
dGlvbnNUb1Bvc3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFz
c3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KDAuMDI1KTsKKyAgICB9CiB9
CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJh
bWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEzMDEs
MTUgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEo
KQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0ICpyb290T2JqZWN0ID0gdGhpcy0+cm9v
dE9iamVjdCgpKSB7CisgICAgICAgIGlmIChyb290T2JqZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXc+KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7CisgICAgfQorICAgIHJldHVybiBu
dWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVu
YWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3
Li41OGIxMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAy
MDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTg5LDEyICsxODksOTkgQEAgcHVibGljOgogICAgIHZvaWQg
cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJn
ZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0
aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9u
b3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRl
ZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICBlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgICAgIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUsCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAor
ICAgIH07CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICAgICAgQVhUZXh0RWRpdFR5
cGVVbmtub3duLAorICAgICAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0
IGRlbGV0ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGlu
c2VydAorICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0eXBpbmcK
KyAgICAgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9u
CisgICAgICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgICAgICBB
WFRleHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKKyAgICB9OworCisgICAgLy8g
U2ltcGxlIHRleHQgdmFsdWUgY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CisgICAgLy8gQ29tcG91bmQgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2
b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBl
IGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUg
aW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworCisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgICAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAgICAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmcsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXMKICAgICB9OwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYpOworICAgIGVudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Q2hhcmFjdGVyLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdv
cmQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFnZSwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJl
c2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2lu
Z2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5
IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQg
aW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorICAgIH07CisKKyAgICBzdHJ1Y3Qg
QVhUZXh0U2VsZWN0aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVj
dGlvbjsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7Cisg
ICAgfTsKKworICAgIHN0YXRpYyBBWFRleHRTZWxlY3Rpb24gVGV4dFNlbGVjdGlvbihBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5r
bm93biwgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVVua25vd24pCisgICAgeworICAgICAgICBhdXRvIHNlbGVjdGlvbiA9
IEFYVGV4dFNlbGVjdGlvbigpOworICAgICAgICBzZWxlY3Rpb24uZGlyZWN0aW9uID0gZGlyZWN0
aW9uOworICAgICAgICBzZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBncmFudWxhcml0eTsKKyAgICAg
ICAgcmV0dXJuIHNlbGVjdGlvbjsKKyAgICB9CisKKyAgICBzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsKKyAgICAgICAg
dW5pb24geworICAgICAgICAgICAgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAg
ICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICAgICAgfTsKKyAgICAgICAgYm9vbCBzeW5j
OworCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0aW9uIHNl
bGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpLCBib29sIHN5bmMgPSBmYWxzZSkKKyAgICAgICAg
ICAgIDogdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAg
ICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgICAgIDogdHlwZShB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQor
ICAgICAgICAgICAgLCBzeW5jKGZhbHNlKQorICAgICAgICB7IH0KKworICAgICAgICBBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBzeW5jKQor
ICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihBWFRleHRT
ZWxlY3Rpb24oKSkKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7CisgICAgICAg
ICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8
IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kKTsKKyAgICAgICAg
fQorICAgIH07CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVj
dGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCkpOworCisgICAgLy8gU2VsZWN0aW9uIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAg
ICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjE4LDcgKzMwNSwzNSBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90
aWZpY2F0aW9uKTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5n
ZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZv
aWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJl
cGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsK
KyAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsK
KyAgICBpbmxpbmUgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0
VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6Cisg
ICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbjoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEluc2VydGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICB9Cisg
ICAgfQorICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7Cisj
ZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5n
ZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQq
KTsKQEAgLTIyOSw2ICszNDQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShO
b2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2
YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAg
RG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+
IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAgLTI0NCw2ICszNjEsMTEgQEAgcHJpdmF0ZToKICAg
ICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlv
bnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAg
VGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAg
ICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQg
aGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRl
ZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1
MSw2ICszNzMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCog
Zm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFY
SUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICB2b2lkIGVucXVldWVQYXNz
d29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAg
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNs
YXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArNDM0LDE2IEBAIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
OjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikg
eyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2lmIFBMQVRG
T1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJl
cGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYK
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBl
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVy
T2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0
aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2
ZGUuLjNkNDVkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0
dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlP
YmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5n
UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsK
KyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJ
bnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAg
ICAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICBy
ZXR1cm4gY29uc3RfY2FzdDxBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCo+KHRoaXMpOworICAgIH0K
KyAgICAKKyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgewor
ICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKSB7CisgICAgICAgICAg
ICBpZiAoQVhPYmplY3RDYWNoZSAqY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2Rl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uZDUzYTkzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAt
ODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRP
ckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Ns
aWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uYTdhOTk0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
ZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAor
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNv
bnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAh
PSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG51bGxwdHI7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1l
bnQgPSBub2RlLT5zaGFkb3dIb3N0KCkpIHsKKyAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1l
bnQ+KCplbGVtZW50KSkKKyAgICAgICAgICAgIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICBpZiAoIWlucHV0RWxlbWVudCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFz
c3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZm
MmEuLjJlOTc3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
Ym9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQo
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4
dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Nl
YXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgp
IGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCAyZDkyOTk2Li42ZWZhYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAg
LTE0ODgsMTQgKzE0ODgsMTggQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2Up
CiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0
VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYg
dGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRl
eHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9u
UmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0g
ICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFu
Z2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVB
TSkpOworICAgIFBvc2l0aW9uIHBvczEgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9z
aXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7CisgICAgUG9zaXRpb24gcG9zMiA9IFBv
c2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rp
b24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvczEsIHBvczIsIERPV05TVFJFQU0pOworICAgIG1fcmVu
ZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHZpc2libGVTZWxlY3Rpb24s
IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPiAwID8gQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogfQogCiBVUkwg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjQs
MTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQ
b3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNO
dWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAg
ICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBp
dCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5n
ZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkg
eworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisg
ICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2Vs
ZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAg
ZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNl
bGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5k
ZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSop
IG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNv
bnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNj
cm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25z
dCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJp
bGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCBy
ZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAx
MTllMGIwMC4uYWI3OTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw3ICs5NSwxNiBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0
Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKwordm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0KaW5kZXggYjMwMGU3Ny4uZjQ1YmEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MCBAQAog
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFY
TGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0
U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5n
ZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRp
dFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5
cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1
ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUi
CisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hh
bmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYK
KworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0
ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0
ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKwogLy8gVGhlIHNpbXBsZSBD
b2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTU2LDggKzIwMCwxNTEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlm
aWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpt
YWNOb3RpZmljYXRpb25dOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uKQogeworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOwor
CisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjVdOworICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAg
IHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAg
ICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlm
ICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2Ug
PSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2Vs
ZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCld
KQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2Vy
UmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKworICAgIGlmIChpZCB3
cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3Rp
ZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBi
eSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbd2ViQXJl
YS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmls
aXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisK
KyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3Jh
cHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1
c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlm
aWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uIHVz
ZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKworc3RhdGlj
IE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAg
IE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVu
Z3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25h
cnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0
eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRy
dW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChsZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3Ro
KSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhd
ID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDp0cnVu
Y2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxlbmd0aCA+IDApCisgICAgICAgIGNoYW5n
ZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRp
b24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqLT53cmFw
cGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAg
ICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4
dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAo
IW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJp
bGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5n
ZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYg
KGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9z
dE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNzaWJp
bGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFVzZWQgYnkg
RFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3dlYkFyZWEt
PndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0
eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAgICBOU0Fj
Y2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBO
U0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAv
LyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAg
IFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAg
ICBbdXNlckluZm8gcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBB
WFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAg
ICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47
CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlv
bmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0g
dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGRlbGV0aW9uVHlwZSwgZGVsZXRl
ZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAg
ICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisK
KyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBOU0FjY2Vzc2li
aWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNB
Y2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8g
VXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBb
d2ViQXJlYS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nl
c3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKwor
ICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFw
cGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0
ZWQuCisgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZv
XTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpm
cmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4uYzQ2NDhmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU4LDYgKzU4LDcgQEAgY2xh
c3MgVmlzaWJsZVBvc2l0aW9uOwogLSAoaWQpYXR0YWNobWVudFZpZXc7CiAvLyBVc2VkIHRvIGlu
Zm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNl
ZCBieSBEUlQuCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3Ry
aW5nICopbm90aWZpY2F0aW9uTmFtZTsKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlm
aWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25h
cnkgKil1c2VySW5mbzsKIAogLSAoQ0dQYXRoUmVmKWNvbnZlcnRQYXRoVG9TY3JlZW5TcGFjZToo
V2ViQ29yZTo6UGF0aCAmKXBhdGg7CiAtIChDR1BvaW50KWNvbnZlcnRQb2ludFRvU2NyZWVuU3Bh
Y2U6KFdlYkNvcmU6OkZsb2F0UG9pbnQgJilwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQmFzZS5tbQppbmRleCA1ZGRmYzNhLi42MzdlOTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0zODcsOSArMzg3LDU5IEBAIHN0YXRpYyBC
T09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogCiAtICh2b2lkKWFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFt
ZQogeworICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykKKyAg
ICAgICAgW3NlbGYgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25O
YW1lIHVzZXJJbmZvOm5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICphcnJheVJlbW92aW5nTm9u
SlNPTlR5cGVzKE5TQXJyYXkgKmFycmF5KQoreworICAgIEFTU0VSVChbYXJyYXkgaXNLaW5kT2ZD
bGFzczpbTlNBcnJheSBjbGFzc11dKTsKKyAgICBOU011dGFibGVBcnJheSAqbXV0YWJsZUFycmF5
ID0gW2FycmF5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TVUludGVnZXIgaWR4ID0gMDsgaWR4
IDwgW211dGFibGVBcnJheSBjb3VudF07IGlkeCsrKSB7CisgICAgICAgIGlkIHZhbHVlID0gbXV0
YWJsZUFycmF5W2lkeF07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0
aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RB
dEluZGV4OmlkeCB3aXRoT2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1
ZSldOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFz
c11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppZHgg
d2l0aE9iamVjdDphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVs
c2UgaWYgKCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3ZhbHVl
IGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pKQorICAgICAgICAgICAgW211dGFibGVB
cnJheSByZW1vdmVPYmplY3RBdEluZGV4OmlkeF07CisgICAgfQorICAgIHJldHVybiBbbXV0YWJs
ZUFycmF5IGF1dG9yZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqZGljdGlvbmFy
eVJlbW92aW5nTm9uSlNPTlR5cGVzKE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKK3sKKyAgICBB
U1NFUlQoW2RpY3Rpb25hcnkgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pOwor
ICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKm11dGFibGVEaWN0aW9uYXJ5ID0gW2RpY3Rpb25hcnkg
bXV0YWJsZUNvcHldOworICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBkaWN0aW9uYXJ5KSB7Cisg
ICAgICAgIGlkIHZhbHVlID0gZGljdGlvbmFyeVtrZXldOworICAgICAgICBpZiAoW3ZhbHVlIGlz
S2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgbXV0YWJsZURp
Y3Rpb25hcnlba2V5XSA9IGRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSk7Cisg
ICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisg
ICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gYXJyYXlSZW1vdmluZ05vbkpTT05U
eXBlcyh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
U3RyaW5nIGNsYXNzXV0gfHwgW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0p
KQorICAgICAgICAgICAgW211dGFibGVEaWN0aW9uYXJ5IHJlbW92ZU9iamVjdEZvcktleTprZXld
OworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVEaWN0aW9uYXJ5IGF1dG9yZWxlYXNlXTsKK30K
KworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5v
dGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvCit7CiAgICAg
aWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zKSB7Ci0gICAgICAgIE5T
RGljdGlvbmFyeSogdXNlckluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0
c0FuZEtleXM6bm90aWZpY2F0aW9uTmFtZSwgQCJub3RpZmljYXRpb25OYW1lIiwgbmlsXTsKLSAg
ICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0
aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzp1c2VySW5m
b107CisgICAgICAgIEFTU0VSVChub3RpZmljYXRpb25OYW1lKTsKKyAgICAgICAgTlNEaWN0aW9u
YXJ5ICppbmZvID0gbmlsOworICAgICAgICBpZiAodXNlckluZm8pIHsKKyAgICAgICAgICAgIE5T
RGF0YSAqdXNlckluZm9EYXRhID0gW05TSlNPTlNlcmlhbGl6YXRpb24gZGF0YVdpdGhKU09OT2Jq
ZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh1c2VySW5mbykgb3B0aW9uczooTlNK
U09OV3JpdGluZ09wdGlvbnMpMCBlcnJvcjpuaWxdOworICAgICAgICAgICAgaWYgKHVzZXJJbmZv
RGF0YSkgeworICAgICAgICAgICAgICAgIE5TU3RyaW5nICp1c2VySW5mb1N0cmluZyA9IFtbTlNT
dHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTp1c2VySW5mb0RhdGEgZW5jb2Rpbmc6TlNVVEY4U3Ry
aW5nRW5jb2RpbmddOworICAgICAgICAgICAgICAgIGlmICh1c2VySW5mb1N0cmluZykKKyAgICAg
ICAgICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlv
bk5hbWUsIEAidXNlckluZm8iIDogdXNlckluZm9TdHJpbmd9OworICAgICAgICAgICAgICAgIFt1
c2VySW5mb1N0cmluZyByZWxlYXNlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBpZiAoIWluZm8pCisgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlmaWNhdGlvbk5hbWUiIDog
bm90aWZpY2F0aW9uTmFtZX07CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0
OnNlbGYgdXNlckluZm86aW5mb107CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi45MjIyOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVyZmFjZSBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooV2ViQ29y
ZTo6VmlzaWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFdlYkNvcmU6OlZp
c2libGVQb3NpdGlvbillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9z
aXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVu
ZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAxZGViNGRiLi42NzFk
MWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApA
QCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwZW5k
Tm9kZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5k
ZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDE1ICs0OCwyMyBAQCBBcHBlbmROb2RlQ29t
bWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFt
X3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5n
ZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsK
LSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IFN0cmluZyB0ZXh0ID0g
bm9kZS0+bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0
aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYgKHRleHQgPT0g
IlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5v
ZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUp
OworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0
Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNyZWF0ZUxlZ2Fj
eUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0
aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAg
LTY0LDE4ICs3NCwxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAg
IG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwog
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAg
IHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBl
bmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0
YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRv
IG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0
Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1f
bm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdO
T1JFX0VYQ0VQVElPTik7CiB9CkBAIC04OCw0ICs5NiwxNCBAQCB2b2lkIEFwcGVuZE5vZGVDb21t
YW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYK
IAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUlu
c2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQXBwZW5kTm9kZUNvbW1h
bmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlRGVsZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4uNDljOWVhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzgsNyAr
MzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAg
ICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+LCBQYXNzUmVmUHRy
PE5vZGU+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDcsNiArNDcsOSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92
ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRy
PENvbnRhaW5lck5vZGU+IG1fcGFyZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRl
eCA4NDYxZWU3Li4yNWVhYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFwcGVuZE5v
ZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQXBwbHlTdHlsZUNvbW1hbmQuaCIKICNpbmNsdWRlICJC
cmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAg
LTU4LDYgKzU5LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1
ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhT
cGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5j
bHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDYgKzE2NSwxMyBAQCB2b2lkIEVkaXRD
b21tYW5kQ29tcG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5SW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21t
YW5kcy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgp
LTFdLT51bmFwcGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCk7Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NSZWZQdHI8Q29t
cG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBwbHkoKTsKQEAg
LTMyMCw5ICszMzAsMTQgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVC
bG9jayhjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUmVmPEVkaXRD
b21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCit7CisgICAgcmV0dXJuIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVh
dGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUo
UGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1Jl
ZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTUyMiwyMyArNTM3LDQ2IEBAIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5z
ZXJ0ZWRUZXh0CiAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZp
c2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXgsIHNjb3BlLmdldCgpKSwgdmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCArIGxlbmd0aCwgc2NvcGUuZ2V0KCkpKSk7CiB9CiAK
K1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAg
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKK30KKwor
UmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
Y291bnQpCit7CisgICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQorICAg
ICAgICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgY291bnQpOworICAgIHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgY291bnQpKTsKK30KKworUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAg
cmV0dXJuIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOwog
fQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNzUmVm
UHRyPFRleHQ+IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBycE5v
ZGUpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSByZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShkZWxldGVDb21tYW5kKTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0g
ICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSkpOwog
fQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dElu
Tm9kZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xNTIzLDQgKzE1NjEsMTEgQEAgUGFzc1JlZlB0
cjxFbGVtZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0K
IAorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmFwcGx5SW50ZW50KCkKK3sKKyAgICBpZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAg
ICAgIHJldHVybiBtX2NvbW1hbmRzW21fY29tbWFuZHMuc2l6ZSgpLTFdLT5hcHBseUludGVudCgp
OworICAgIHJldHVybiBFZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oCmluZGV4IGMyYjQ4OWQuLmVkZWU0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOwogY2xhc3MgRWRp
dGluZ1N0eWxlOwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAt
NTksNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5k
KEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgdW5hcHBseUludGVudCgpOworCiBwcml2YXRlOgogICAg
IEVkaXRDb21tYW5kQ29tcG9zaXRpb24oRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzdGFydGluZ1NlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0
aW9uLCBFZGl0QWN0aW9uKTsKIApAQCAtODcsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGJvb2wp
OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGlj
aXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKQEAgLTEwMywxNSArMTA3LDE4IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50Pik7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFy
a3VwID0gdHJ1ZSk7CiAgICAgdm9pZCBkZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOworICAgIHZpcnR1YWwg
UmVmPEVkaXRDb21tYW5kPiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHRGcm9t
Tm9kZShQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsK
ICAgICB2b2lkIGlucHV0VGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdEluc2VydGVkVGV4
dCA9IGZhbHNlKTsKICAgICBib29sIGlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSopOwogICAg
IHZvaWQgaW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4g
cmVmQ2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0
IFBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnROb2RlQXRUYWJTcGFuUG9zaXRpb24oUGFzc1Jl
ZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gaW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5z
ZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxk
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSA9IERvTm90QXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOwogICAgIHZvaWQgaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJv
b2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0
b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpOwogICAgIHZvaWQgaW5zZXJ0TGluZUJyZWFrKCk7
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5z
ZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KTsKICAgICB2b2lkIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMoUGFzc1JlZlB0
cjxFbGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0
ZXNwYWNlKCk7CkBAIC0xMzAsNiArMTM3LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbW92ZVJl
bWFpbmluZ1NpYmxpbmdzVG9OZXdQYXJlbnQoTm9kZSosIE5vZGUqIHBhc3RMYXN0Tm9kZVRvTW92
ZSwgUGFzc1JlZlB0cjxFbGVtZW50PiBwcnBOZXdQYXJlbnQpOwogICAgIHZvaWQgdXBkYXRlUG9z
aXRpb25Gb3JOb2RlUmVtb3ZhbFByZXNlcnZpbmdDaGlsZHJlbihQb3NpdGlvbiYsIE5vZGUmKTsK
ICAgICB2b2lkIHBydW5lKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgUmVmPERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAgdmlydHVhbCBSZWY8RWRp
dENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJl
cGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBQb3NpdGlvbiBy
ZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFj
ZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGY5YmYxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hl
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDog
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQoreworfQorCitB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGVDdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYyZmE3NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0ZTcwMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBy
ZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVk
aXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1
YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
c21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwg
Ym9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFs
c2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxl
dGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5k
PiBkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1
bnNpZ25lZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24o
KSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uODU3
MTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2
ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCAr
IG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisK
IHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJU
KG1fbm9kZSk7CkBAIC01NiwxMCArNjMsMTAgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKICAgICBtX3RleHQgPSBtX25vZGUtPnN1YnN0cmluZ0RhdGEobV9vZmZz
ZXQsIG1fY291bnQsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwog
ICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0
ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1f
dGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBw
bHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1f
b2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBl
Yyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKQEAgLTg0
LDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30K
KworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5
MWYwNS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQwLDEyIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CiAgICAgfQogCisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90
ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgdW5zaWduZWQpOworCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZu
ZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworCiAgICAgUmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAg
ICB1bnNpZ25lZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYs
MTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVk
aXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7
Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdo
ZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBj
YXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rp
b24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBp
bmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxl
dGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGlu
ZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uMTlm
OWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBA
IC0yNywxMSArMjcsMTEgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNs
dWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgotI2luY2x1ZGUgIkluc2VydFRleHRDb21t
YW5kLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTUs
NyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5l
d2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0
aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9u
QWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0lu
TGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0lu
c2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3Vw
cGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4
dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5l
U3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVy
bmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVu
ZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4YzQwMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
Cit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOTgzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisj
ZGVmaW5lIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1Jl
ZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDog
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQor
CitSZWY8RWRpdENvbW1hbmQ+IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBtYXJrZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dElu
c2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGlu
c2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi43OWFiYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTI0LDUgKzEyNSwyNyBAQCB2b2lkIFNpbXBsZUVk
aXRDb21tYW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0
PE5vZGUqPiYgbgogICAgICAgICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1w
bGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVF
ZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBp
ZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApp
bmRleCAwM2U2YzM3Li4wMWEwMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENv
bW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rp
b24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgeyBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsgfTsKKwogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAgICAgRWRpdENv
bW1hbmQoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpOwpAQCAtOTAsNiArOTMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JikgPSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkg
b3ZlcnJpZGUgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
YXBwbHlFZGl0VHlwZSgpKTsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgdW5hcHBseUludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KHVuYXBwbHlFZGl0VHlwZSgpKTsgfQorCiBwcm90ZWN0ZWQ6
CiAgICAgZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVk
aXRDb21tYW5kKGRvY3VtZW50KSB7IH0KIApAQCAtOTcsNiArMTAzLDExIEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIGFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsK
ICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBs
eUVkaXRUeXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1
bmFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKworCiBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbElu
T25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAppbmRl
eCBkYzNhZTMzLi42ZGUxM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxs
SW5PbmUuY3BwCkBAIC0zMiwxMCArMzIsMTQgQEAKICNpbmNsdWRlIDxCcmVha0Jsb2NrcXVvdGVD
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxDb21wb3NpdGVFZGl0Q29tbWFuZC5jcHA+CiAjaW5jbHVk
ZSA8Q3JlYXRlTGlua0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkFsdGVybmF0aXZlLmNw
cD4KICNpbmNsdWRlIDxEaWN0YXRpb25Db21tYW5kLmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVk
aXRpbmdTdHlsZS5jcHA+CiAjaW5jbHVkZSA8RWRpdG9yLmNwcD4KQEAgLTU0LDExICs1OCwxNSBA
QAogI2luY2x1ZGUgPE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcD4KICNpbmNsdWRl
IDxNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwPgogI2luY2x1ZGUgPE1vdmVTZWxlY3Rpb25D
b21tYW5kLmNwcD4KKyNpbmNsdWRlIDxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4K
KyNpbmNsdWRlIDxQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNp
bmNsdWRlIDxSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUZv
cm1hdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNs
dWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8
UmVuZGVyZWRQb3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVk
ZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1
dGVDb21tYW5kLmNwcD4KQEAgLTc3LDYgKzg1LDEwIEBACiAjaW5jbHVkZSA8VGV4dEluc2VydGlv
bkJhc2VDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3IuY3BwPgogI2luY2x1ZGUg
PFR5cGluZ0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcD4K
KyNpbmNsdWRlIDxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFVubGlua0Nv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPFZpc2libGVQb3NpdGlvbi5jcHA+CiAjaW5jbHVkZSA8Vmlz
aWJsZVNlbGVjdGlvbi5jcHA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEz
OS4uMzQ3MDVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVu
dC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUg
IkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2
ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rp
b24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERl
bGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhT
bWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7
CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9u
Q3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNv
bW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVs
ZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAwMSw3ICsxMDA1LDcg
QEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENv
bW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0
aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5l
Y2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
ID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25U
cmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rp
b24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIGNtZC0+YXBwbHlJbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNv
bnRlbnRDaGFuZ2VkRXZlbnRzKGNvbXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1l
bnQoKSwgY29tcG9zaXRpb24tPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1
cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMDMyLDcgKzEwMzYsNyBAQCB2b2lk
IEVkaXRvcjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRp
b24+IGNtZCkKICAgICBub3RpZnlUZXh0RnJvbUNvbnRyb2xzKGNtZC0+c3RhcnRpbmdSb290RWRp
dGFibGVFbGVtZW50KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAg
IFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKGNtZC0+c3RhcnRpbmdTZWxlY3Rpb24oKSk7
Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxl
Y3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkpOworICAgIGNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpLCBjbWQtPnVuYXBwbHlJbnRlbnQoKSk7CiAgICAgZGlzcGF0Y2hFZGl0
YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50
KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRv
clVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjYsNyArMTI3MCw3IEBAIHZvaWQgRWRpdG9yOjpw
ZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRX
cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9u
KQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JE
ZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFy
dENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3Rl
KCkKQEAgLTI4NTAsNyArMjg1NCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBh
bmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3Mo
UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVk
aXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlv
bnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRv
bid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5p
c09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg2Miw3ICsy
ODY2LDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxl
bS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5n
ZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxl
Y3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNl
bGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Q
b3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRp
bmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVj
dGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hl
biB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQg
YnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li5kNmM1ZTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25E
aXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0Fj
dGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNp
ZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFi
bGVTdHlsZXMoKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU2V0Q29t
cG9zaXRpb25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9Owog
ICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9zaXRpb25Nb2Rl
KTsKIAotICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlv
bnMpOworICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlv
bnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBlbnVtIEVkaXRvckFjdGlvblNw
ZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFjdGlvbiB9OwogICAgIHZvaWQgcGVyZm9ybUN1dE9y
Q29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcAppbmRleCA1NzQ1MTcwLi5iNGM3MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTM4LDggKzEzOCw3IEBAIEVsZW1lbnQqIEZy
YW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25z
dAogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZw
b3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxp
Z24pCiB7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFs
ZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24u
aXNEaXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNl
clRyaWdnZXJlZCksIGFsaWduKTsKKyAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihw
b3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgp
LCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cyh1c2VyVHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9
CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJh
c2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJp
Z2dlcmVkKQpAQCAtMTcwLDcgKzE2OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRo
b3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAg
VmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhv
dXRWYWxpZGF0aW9uKGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0
aW9uYWwoc2VsZWN0aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6
IERvTm90U2V0Rm9jdXMpKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9j
dXMpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0
U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXMpKSk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlv
bihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1MywxNiBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rp
b24gfHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1
cm47CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IGdyYW51bGFyaXR5KTsKKyAgICAKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKKyAgICAgICAgaWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAg
ICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWE9iamVjdENhY2hl
OjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
aW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBv
c3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0y
NzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQq
IG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7
CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0
aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFt
ZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50
KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAg
ICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGln
biwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBk
dXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVTZWxlY3Rpb24gaGFzIGJl
ZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RGcmFtZUVsZW1lbnRJblBh
cmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyBubyBsb25nZXIg
dmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUgaXMgYWJvdXQgdG8gYmUg
ZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIgc2VsZWN0aW9uLgpAQCAt
MzIwLDcgKzMyOCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
biwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQog
ICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0
aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2
OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAg
ICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQpCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJl
dHVybjsKQEAgLTM3OSw4ICszODcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oKQogCiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJl
dmVhbEV4dGVudCk7CiAgICAgfQotCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50
ZW50KTsKIAogICAgIGlmIChhdXRvKiBjbGllbnQgPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQo
KSkKICAgICAgICAgY2xpZW50LT5kaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsK
QEAgLTEwMjEsNyArMTAyOCw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1v
ZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJv
b2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJu
IGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhC
b3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKwor
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJh
dGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQoreworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cisg
ICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpB
bHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkp
IHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAg
ICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBp
bnRlbnQudHlwZSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJH
cmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlv
bi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAg
IGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGlu
ZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRh
cnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgewor
ICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6
CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5
OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51
bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAg
Y2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNl
IERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25S
aWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkK
KyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6
CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAg
ICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0IDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50Owor
fQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRl
ciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3Nyw2ICsxMTU3LDEx
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0
ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9u
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rp
b25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAv
LyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJv
d05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBz
byBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNU
QVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3
b3VsZCBiZQpAQCAtMTcxMCw4ICsxNzk1LDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVj
dEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0
aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYg
KHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVj
dEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsK
KyAgICAgICAgYXV0byBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQs
IEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlBbGwpKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAg
ICB9CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJh
bmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yNDIzLDcgKzI1
MTAsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29u
dGFpbmluZ0NhcmV0U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24gPSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rp
b24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVs
YXJpdHkoKSk7CisgICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgp
LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5
KCkpOwogCiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCku
c3RhcnQoKSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigp
LmVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRl
MjhlLi4zYzMxOTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVT
ZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRp
bmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0Lmgi
CkBAIC0xMzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9z
ZVR5cGluZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxl
Y3Rpb24gfCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBp
bmxpbmUgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNl
bGVjdGlvbkludGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBleHBs
aWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRyKTsKIApAQCAtMTQ0LDcgKzE1MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0
aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBz
aG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25z
ID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3Jh
bnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZh
dWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNv
ck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZm
aW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0
QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3OCw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVO
RCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigp
OworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2
b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2Vs
ZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwg
U2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5
KTsKQEAgLTI5OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJl
Y3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAog
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24s
IFRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0
aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVs
dFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkludGVudCkg
eyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25J
c0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0LDcg
QEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8
RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uYWVjNDc1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgpAQCAtNTAsNiArNTEsMTEgQEAgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2kKICAgICBBU1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwogfQogCitTdHJpbmcmIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4
dDsKK30KKwogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAg
ICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRF
Y2hvRW5hYmxlZCgpOwpAQCAtNjUsOSArNzEsOSBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNl
dCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwg
VmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC04MiwxMCArODgsMTAgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxl
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0
aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
IGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQs
IFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9u
b2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJ
T04pOwogfQpAQCAtOTcsNCArMTAzLDE0IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAK
K0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKaW5kZXggMzEwYmJiMy4uZTMzZjU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVk
aXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5n
JiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElP
UykKQEAgLTUxLDcgKzU0LDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1
YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2Vu
ZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAgUmVmUHRyPFRleHQ+
IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICBTdHJpbmcgbV90ZXh0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApp
bmRleCBkMTZiNWQ2Li44ZDVlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw4ICs1OSwxMCBAQCB2b2lkIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVm
b3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJ
T04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAw
LCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxU
ZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5z
ZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2Vy
dENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5u
b2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lk
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzEsMTAgQEAg
dm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcg
dGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwg
MCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8
VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2lu
c2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNl
cnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxk
LT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAg
bV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtODEsNCArODcs
MTQgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjp1bmFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0
ZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjhkOWM2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENv
bW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMTYgKzM5LDIwIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
Y2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNz
UmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNp
Zm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8
Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJp
ZGU7CisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4g
bV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3No
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTU5LDEwICs1OSwxMSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRv
Y3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAotcHJpdmF0ZToKLQotICAg
IEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0
VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4
dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1l
bnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFu
Y2VUeXBlKTsKKworcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWNhYmIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6UGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMDU1OTIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVm
aW5lIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hp
bGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxk
VG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jNDdhN2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAg
IDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBk
ZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUoKQor
eworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNmEzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNl
QXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTdi
ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQs
IG9mZnNldCwgY291bnQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMGZkYmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNk
ZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFRleHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBv
ZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsK
KworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzVhYzdiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3Zv
aWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
K3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAg
IHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVV
bmtub3duOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
Y2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxl
dGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0Ogor
ICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgcmVwbGFjZUFw
cGx5RWRpdFR5cGUoKSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2M0MjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0Owor
CitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9
CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisK
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVk
aXRUeXBlKCkgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7IH0K
KyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5
SW50ZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQocmVwbGFjZUFwcGx5RWRpdFR5cGUoKSk7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiQnJlYWtC
bG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNp
bmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpA
QCAtNDQsMTQgKzQ1LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgogI2luY2x1
ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAi
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVk
ZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVy
dGllcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNp
bmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVu
aXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAg
LTE0ODIsNiArMTQ4OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1cGRhdGVO
b2Rlc0luc2VydGVkKE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50ID0g
bGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsKIH0KKyAg
ICAKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9k
ZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9u
KSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0
ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21tYW5kPiBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5z
ZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRjaCAobV9l
ZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4g
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3Rl
OgorICAgICAgICByZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRl
eHQpOworICAgIH0KK30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdlJ3JlIGp1
c3QgcGFzdGluZyBhIHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2VydCB0aGUg
dGV4dCBub2RlCiAvLyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xkcyB0aGUg
c2VsZWN0aW9uLiAgVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXplZCBjb2Rl
IGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmgKaW5kZXggZDg3YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHByaXZhdGU6
CiAKICAgICBib29sIHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVudEZyYWdt
ZW50Jik7CiAKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21t
YW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICBQ
b3NpdGlvbiBtX3N0YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9lbmRPZklu
c2VydGVkQ29udGVudDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlvblN0eWxl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4u
OGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00
MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
ckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6
Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkK
IAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0
IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVmUHRyPElu
c2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1
bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2VydFRleHRD
b21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRpb25UeXBl
ID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVh
ZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNl
QWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwg
ZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2U0MjIxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYmQx
NDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJs
aWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpOworCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVk
aXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyNDYwNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRy
PE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6IEluc2VydE5vZGVCZWZvcmVD
b21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTc0NjEzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5l
IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hp
bGRUb0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGls
ZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTY2NQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VU
eXBlIHJlYmFsYW5jZVR5cGUpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4
dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKQoreworfQorCitSZWY8RWRpdENv
bW1hbmQ+IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCit7CisgICAgcmV0dXJuIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgcmV0dXJuIFR5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRl
eHQsIGRlbGV0ZWRUZXh0KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjc0OTNiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydFRleHRD
b21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAi
SW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9
IGZhbHNlLCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5k
VHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFR5cGluZ0luc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRl
eHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJhbGFuY2VUeXBl
KTsKKworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGRkNTMxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTZjMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisK
KyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwor
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSByZXBsYWNlQXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCmluZGV4IDdjMjEz
NjUuLmU2OTVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1l
U2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNl
bGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgbWF5YmVFbWl0VGV4
dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0KQog
fQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsK
ICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2Vs
ZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25N
YWMubW0KaW5kZXggOWJkZWUxYy4uMDdlMmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMg
Q0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2Vu
ZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5p
c05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hl
KCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFy
dCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0
ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNo
ZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRl
cHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIuLjViZmI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0
OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNU
ZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5u
ZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0g
aW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9
IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVy
VGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExB
VEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsK
ICAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRp
b24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQ
YXJlbnQpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRl
eHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRz
V2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4
dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09D
T0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVj
dENhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZp
b3VzVmFsdWUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5j
aG9yKSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZh
bHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CmluZGV4IDk4YTVkMzkuLmNhYWFhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTMxODQsNyArMzE4NCw3IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNl
bGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdn
ZXJlZCkpOworICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rp
b24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykp
KTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFt
ZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDc3YzA3ZmUuLmJmZDFmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTM0MSw3ICszNDEsNyBAQCBib29sIEZvY3VzQ29udHJv
bGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgS2V5YgogICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVm
b3JlTm9kZShlbGVtZW50LmdldCgpKTsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb24ocG9zaXRpb24sIHBvc2l0aW9uLCBET1dOU1RSRUFNKTsKICAgICAgICAgaWYgKGZyYW1l
LnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAg
ICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAg
ICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rp
b24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykp
KTsKICAgICB9CiAKICAgICBlbGVtZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZTFkYjNlLi5l
MmFhODU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDQtMTUgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBh
cHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNj
ZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlv
biBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2
YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQg
Zm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQg
YSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRz
IGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNo
YW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBu
b3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBv
dmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0
aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rp
b24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorCiAyMDE1LTA0LTE1ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRFJUIGRvZXMg
bm90IHNlZW0gdG8gcmVzZXQgdGhlICdVc2VzUGFnZUNhY2hlJyBzZXR0aW5nIGJldHdlZW4gdGVz
dHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCBhZGE2ODdhLi43YjAxN2JhIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMTIsMTYgKzExMiwyNyBAQAogICAgIGlmIChtX3BsYXRm
b3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0aW9uIG9iamVjdF0p
CiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pTT05WYWx1ZSA9IG5v
dGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25OYW1lIGNyZWF0ZUpT
U3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBK
U1ZhbHVlTWFrZVN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc05vdGlmaWNhdGlv
bi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gbmls
OworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZvSlNP
TlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVlQXJn
dW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIGpzVXNlckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAobV9wbGF0Zm9y
bUVsZW1lbnQpIHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1c3QgZ2V0
cyBvbmUgYXJndW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1
bmN0aW9uQ2FsbGJhY2ssIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDApOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQg
YW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8vIExpc3Rl
bmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlcklu
Zm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1bWVudHNb
MF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9IHVz
ZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24o
W21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNr
LCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFs
IGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5m
by4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50c1sw
XSA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQo
W21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbm90aWZp
Y2F0aW9uIG9iamVjdF0pKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFt
ZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3Vt
ZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29u
dGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAw
KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLm1tCmluZGV4IDY1MWI1OTEuLjI4Y2EwM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjUsMTkgKzEyNSwz
MCBAQAogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBb
bm90aWZpY2F0aW9uIG9iamVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1
c2VySW5mb0pTT05WYWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisK
ICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFt
ZShXVFI6OkluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7CiAgICAg
SlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQo
bWFpbkZyYW1lKTsKIAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlv
bihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1Zh
bHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRl
eHQsIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZh
bHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7
CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFk
b3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNl
ckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4
dCwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3Jt
RWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRz
IG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0
aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDAp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVs
ZW1lbnQgYW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8v
IExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQg
dXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1
bWVudHNbMF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sx
XSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVu
Y3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5j
dGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFt
ZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAgICAg
ICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkpKTsKICAgICAgICAg
YXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVu
dHNbMl0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxB
c0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9u
RnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250991</attachid>
            <date>2015-04-16 19:36:14 -0700</date>
            <delta_ts>2015-04-17 14:51:10 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>269608</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDdjYmRkMmVlMjBhZDM4ZjVhZWYzNWY3NDJiZDhmNjk0MDJjYTMxOGEKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MTkKICAgIAogICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4
dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFu
ZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCiAgICAKICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFu
ZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBz
ZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBjZDU3NGYuLmQ4
N2MyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wNC0xNSAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTE1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIHN0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZp
dmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rlcgor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHki
XSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVu
Y2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJd
IGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24i
XSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBp
cyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNo
YW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAg
LTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRp
diByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9
dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2ZW4gZWln
aHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCis8c2Ny
aXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBub3Rp
ZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlICsgMTsKKwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOworICAgIHZhciBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmcgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyArIDE7CisKKyAg
ICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOworICAgIHZhciBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUNoYXJhY3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUg
KyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3Jh
cGggKyAyOworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwgInNlbnRlbmNl
IiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5jZWJvdW5kYXJ5
IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAgICB2YXIgd2Vi
QXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9IFtdOworICAg
IHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9uQ2FsbGJhY2so
bm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJB
WFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAg
ICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7
CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7CisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRl
eCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
QmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFy
YWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3ZWJBcmVhLnJl
bW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgIHdlYkFy
ZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7
CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9u
TGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWRO
b3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAg
ICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMgPSB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAg
ICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAi
Zm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dh
cmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsK
KyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICBzLm1v
ZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgIH0KKwor
PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MjkwYjMzMS4uNGMzYTI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0NjgsMTAgKzE0Njgs
MTQgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRp
dmUuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwCiAgICAg
ZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCiAgICAgZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xNDkw
LDExICsxNDk0LDE1IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL01lcmdlSWRl
bnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlz
dExldmVsLmNwcAogICAgIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVuZGVyZWRQb3Np
dGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAg
ZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1h
bmQuY3BwCkBAIC0xNTEwLDYgKzE1MTgsMTAgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVk
aXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcAogICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcAorICAgIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9VbmxpbmtDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVBv
c2l0aW9uLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBjNDg5NDNhLi5jOTljNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIzIEBACisyMDE1LTA0
LTE1ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBy
aWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNz
ZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBt
b3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCisK
KyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
biBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0
ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUg
Y2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3
YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBh
Y2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJs
ZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0
aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmll
bGRzLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlv
bi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2hvd0lu
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9u
SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZp
ZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlm
aWNhdGlvbjpdKToKKyAgICAgICAgKGFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAgICAg
ICAoZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAgKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
dXNlckluZm86XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6
dW5hcHBseUludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21O
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAg
ICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgICogZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpk
ZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVz
KToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmFwcGx5SW50ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5SW50ZW50KToKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
OjpzZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OndvcmRTZWxl
Y3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Up
OgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAg
ICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAo
V2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjphcHBseUVkaXRUeXBl
KToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgor
ICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAg
ICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6aW5z
ZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAq
IGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJD
b3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlwZSk6Cisg
ICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9u
QXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNl
bGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9u
KToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6CisKIDIwMTUt
MDQtMTQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBN
YWtlIGNyZWF0aW5nIHNlbmQgcmlnaHRzIGZyb20gc2hhcmVkIG1lbW9yeSBtb3JlIHJvYnVzdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXgg
ZDA3N2EwMi4uYTJjMWM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCkBAIC0xNDM2Niw2ICsxNDM2NiwzNCBAQAogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0NDIy
LDYgKzE0NDUwLDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDcwMyw2ICsxNDc1OSwzNCBAQAogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgpAQCAtMTQ3NzMsNiArMTQ4NTcsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+
CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDk5Nyw2
ICsxNTEwOSw2MiBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFz
ZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQ
cm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxl
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xVbmxpbmtDb21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CkBAIC0yMTA0MSwxMCArMjEyMDksMTQgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0Q29tbWFuZC5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5oIiAv
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkFsdGVybmF0aXZlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xFZGl0QWN0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXEVkaXRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XEVkaXRpbmdCZWhhdmlvci5oIiAvPgpAQCAtMjEwNzEsMTAgKzIxMjQzLDE0IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5k
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vZGlmeVNlbGVjdGlv
bkxpc3RMZXZlbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3Zl
U2VsZWN0aW9uQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlD
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5v
ZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KQEAgLTIxMDkz
LDYgKzIxMjY5LDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJ
dGVyYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUZXh0SXRl
cmF0b3JCZWhhdmlvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
VW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xW
aXNpYmxlUG9zaXRpb24uaCIgLz4KQEAgLTIxNzU1LDQgKzIxOTM1LDQgQEAKICAgPEltcG9ydEdy
b3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNU
YXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNtLnRhcmdldHMiIC8+CiAgIDwvSW1w
b3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9q
ZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCmluZGV4IGU0NDYwODcuLjU0ZWNiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAg
LTM0MzgsNiArMzQzOCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xD
cmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNDUwLDYgKzM0NTYsMTIgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5jcHAiPgog
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21w
aWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21tYW5k
LmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
QEAgLTM1MTMsNiArMzUyNSwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1Mjgs
NiArMzU0NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJl
ZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1NzYsNiArMzYwMCwxOCBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmNwcCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTA1NjYsNiArMTA2MDIsMTIgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEw
NTc4LDYgKzEwNjIwLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xFZGl0QWN0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkBAIC0xMDY1Niw2ICsxMDcwNCwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5k
LmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBA
IC0xMDY2OCw2ICsxMDcyMiwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZW5kZXJlZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9G
aWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDcyMiw2ICsxMDc4Miwx
OCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmgi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbi5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xVbmRvU3RlcC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgpAQCAtMTU0NTUsNCArMTU1MjcsNCBAQAogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVx3
aW48L0ZpbHRlcj4KICAgICA8L01BU00+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MTEwZTBiLi5jMjAyOWM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC02Mzc0LDEyICs2Mzc0LDIyIEBACiAJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAv
KiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFw
QW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0
eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVC
OEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CisJCUY1MDYz
QzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0Mx
QjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAv
KiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuY3Bw
ICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovOyB9OwogCQlGNTEzQTNFQTE1RkY0
ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAv
KiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1
OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMu
Y3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsg
fTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4
MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3
QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhE
QTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAg
Ki87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0
SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VU
ZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsg
fTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFG
MTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTY0MjksMTIgKzY0
MzksMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEQUExMjUx
RjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RERjEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0
VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRU
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVC
M0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9OworCQlGNTVEMEJE
NzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3
MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi87IH07CisJ
CUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJE
NjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovOyB9
OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAv
KiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQg
LyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTg3
MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3
NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFB
Qjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJ
RjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREUxNUNGQjIwMzAwMjdGODA0IC8q
IExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxl
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5
NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYx
MjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAw
NjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAx
MjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYy
M0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oICovOyB9OworCQlGNTlGQTQ2QzFBQ0NC
M0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0Mw
MDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJ
CUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlG
QTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAq
LzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlG
QTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsK
IAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUz
NEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi87IH07CiAJCUY1QTE1NDI4MTI3
OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUyOTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEg
LyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlG
NUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjEx
IC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAw
ODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyog
SFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1l
bnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlz
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggKi87
IH07CkBAIC0xMzk5NCw2ICsxNDAxOCw4IEBACiAJCUY0Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAv
KiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFw
UG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Ny
b2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAg
LyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRoID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFw
UG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MDYzQzFBMUFCNzU2Q0Mw
MDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRp
b25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtQ29udHJvbGxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3Jt
Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJv
bGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAx
NTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0MDA2LDggKzE0MDMyLDE2IEBACiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2
MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDMwNDAyREU0NDc2MDE4NjM1Q0EgLyog
UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8q
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENjAw
MUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBs
YXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBs
YXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcx
NUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUy
OERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUy
OERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUy
OERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRU
eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2
OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE0MDU3LDYgKzE0MDkxLDEyIEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJ
bnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2
OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVC
M0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ4MUFDQTIyOEQw
MDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTc0REVE
OTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcy
QTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVG
cmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNl
dHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwpAQCAtMTQwNjcsOCArMTQxMDcsMTYgQEAKIAkJRjU5NzNEREYxNUNGQjIw
MzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5
Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAw
NjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBF
MDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNz
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhbGlkYXRpb25N
ZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0
RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAv
KiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVD
MDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTc2NzksNiArMTc3MjcsMTAgQEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkx
MDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3
MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1NTY2MDlD
NjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZCMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAv
KiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkx
MDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkx
MDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3
Njg3LDYgKzE3NzM5LDEwIEBACiAJCQkJQ0VDQURGQzMxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3Rh
dGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURGQzQxNTM3NzhGRjAwRTM3MDY4IC8qIERp
Y3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FERkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBE
aWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1MDYzQzFCMUFC
NzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8s
CisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRp
dEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFu
ZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmgg
Ki8sCkBAIC0xNzczMyw2ICsxNzc4OSwxMCBAQAogCQkJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1
MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJCQk5MzMwOURBQzA5OUU2NDkx
MDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REFEMDk5
RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovLAorCQkJCUY1NUQwQkQ1
MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1
OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJ
CTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3Bw
ICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0
Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc0Myw2ICsxNzgwMywxMCBAQAogCQkJCTkzMzA5REI4MDk5
RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICov
LAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAq
LywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICov
LAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlG
NTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4
MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0xNzc3OCw2ICsxNzg0Miwx
NCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlv
ci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5oICov
LAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUx
MkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5
NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8s
CisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4
RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICov
LAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJCUQw
ODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlEMDg2
RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2NzEsNiAr
MjM3NDMsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVy
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBB
bmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3RjEw
MEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4
MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1
NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
OEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQ0NzIsNiArMjQ1NDUsNyBAQAogCQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFC
RjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEw
NjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVlSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NL
ZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIx
MSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZUlu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MDBFNkNDQzI4MDBCRjYwODggLyog
RE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwODIwRTZDQ0My
ODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNDc5NSw2ICsyNDg2OSw3IEBACiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8q
IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVB
N0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYx
NjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURFNjA5OUU2
NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEz
NjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjUwMjQsNiArMjUwOTksNyBAQAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAv
KiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUEwMTJC
MDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Db250ZXh0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTgxMkIwM0VF
MTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNTAzMiw2ICsyNTEwOCw3IEBACiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAw
OUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFD
OEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2
RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9jb21wbGV0ZUVycm9yRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEYwMDBDMjY0NDdB
MDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5
MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZG
QTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI1MTUxLDYgKzI1MjI4LDcgQEAKIAkJCQlGREExNUVBQzEyQjAzRUUxMDAzQTU4
M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAw
ODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4RjUwMDQxOTRDQUMz
QTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1
RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9w
b3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQTdDMUYxODgzMjJGQzAwQzk1NEI1IC8q
IEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTkzLDYgKzI1NjcxLDcgQEAK
IAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBF
MzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0Qg
LyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2
MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERC
NEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApA
QCAtMjY3NzQsNiArMjY4NTMsNyBAQAogCQkJCUIyQzNEQTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBU
ZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYy
NiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzlBMEQwMEE1
REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NzRERURC
MUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENv
ZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVG
NkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0M0NCODIxMkYy
NUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBpbiBIZWFkZXJzICovLApAQCAtMjY4Mjcs
NiArMjY5MDcsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1l
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxl
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0Iz
IC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdl
TWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGls
ZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQg
LyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NTAsMTIgKzI3MDMxLDE0IEBACiAJ
CQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJE
ZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVBN0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8q
IFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3
MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDYw
MjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlBODA4MjQ1RTU5MDAxRTlBQkMgLyogV2Vi
Q29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNjlEREExNjM3MUZENDAwN0Mz
OERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5n
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTExNDMx
MENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29y
ZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBB
RjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5
QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjY5ODgsNiArMjcwNzEsNyBAQAogCQkJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5
QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y2RjFF
RTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRHcm91cC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZF
OTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2
MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBp
biBIZWFkZXJzICovLApAQCAtMjc3MjcsNiArMjc4MTEsNyBAQAogCQkJCTZGOTk1QTM5MUE3MDgz
MzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkwNDUxNjlFOUYxRjAwNTJEODZFIC8qIENT
U0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1
MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8qIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0lt
YWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgwNCw2ICsyNzg4
OSw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8q
IERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQw
NjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1
ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4
MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yNzk0MCw2ICsyODAyNiw3IEBACiAJCQkJODVFQ0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8q
IERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjgxMkMwQUE3Nzg3
MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxPTGlzdEVsZW1lbnQubW0gaW4gU291
cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBG
RjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFENjRDNSAvKiBET01IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4MDg3LDYgKzI4MTc0LDcgQEAKIAkJCQk0
NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJU
ZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODRE
QyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgx
IC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0Yy
NDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FFMzM1RjExQUNC
MDlFMjAwRTQwMUVGIC8qIFdoZWVsRXZlbnRUZXN0VHJpZ2dlci5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI4MTk4LDYgKzI4Mjg2LDcgQEAKIAkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyog
R2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMEIwQTAxNEQzMzIzNTAw
NjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NDZB
RjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0
aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI2MjUyRTE4REUxQjE1MDBB
MDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZD
ODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTI4MjE4LDYgKzI4MzA3LDcgQEAKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNFMEUgLyogR3Jh
cGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVD
QzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNE
QkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RjMxOTVCOTUwMzAw
MUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3OUNFMzYxOTVD
QUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTI4Mzk3LDYgKzI4NDg3LDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3QTEgLyog
SW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Nzk3
OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYxMkQwMDNF
RjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1ODI1NTBF
ODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3
NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODg1NCw2ICsyODk0NSw3IEBACiAJCQkJRTUxQTgxREYxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVy
Zm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEE5QTU4NzAxMUU4NEMzNjAwOEFDRkQx
IC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDND
ODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERUE2MjQ2MTUyMTAyRkMwMDQ3OURGMCAv
KiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2QjA5RUIwQzdD
MDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yODg4OCw2ICsyODk4MCw3IEBACiAJCQkJMDc5NjlEQkIxN0QxNDE1MTAw
N0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3QjE0MTgzNDE1ODgwMEFCREQzQyAvKiBK
U1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTVE
MEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0
c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMxMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REMzMTdE
MTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTY2Myw2ICsyOTc1Niw3IEBACiAJCQkJMDczNzk0RkQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJU
Q05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczNzk0REQxOUVFMkM1MjAw
RTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
NzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDczQkUzNTAxN0QxODFBNjAw
MkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQzE3RDE0Q0VFMDA0MjBBQTEgLyogUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk4NDAsNiArMjk5MzQs
NyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRl
TWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIg
LyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZC
Nzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERB
OTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdl
bmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIy
QTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUx
NTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwMzQzLDYg
KzMwNDM4LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2MDBEQTYzQTYgLyogV0tHcmFwaGljcy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3RjY1QzcwMERBNjNBNiAvKiBXS1V0aWxp
dGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQzUxODdGNjY4MzAwREE2M0E2IC8qIFdL
Vmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYzQzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZGRmlsZUZvcm1hdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi5kMzViYjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNl
ckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmpl
Y3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQog
ICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3Rp
ZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0
VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2Vk
KG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
YXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8v
IEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0
ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhw
ZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVh
cmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAg
IGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1Rv
UG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG9iamVjdCA6IG5vdGlmaWNhdGlvbnMpCisg
ICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QuZ2V0
KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRp
ZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBw
b3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY1LDIxOCBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxk
cmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdl
IHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRl
ZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIHByaW50ZigiVW5r
bm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgIHByaW50ZigiRWRpdDo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgcHJpbnRmKCJNb3Zl
OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQ6CisgICAgICAgIHByaW50ZigiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgcHJpbnRmKCJVbmtub3du
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0
ZToKKyAgICAgICAgICAgIHByaW50ZigiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIHByaW50ZigiSW5z
ZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbjoKKyAgICAgICAgICAgIHByaW50ZigiRGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAg
ICAgIHByaW50ZigiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIHByaW50ZigiQ3V0Iik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAg
ICAgICAgcHJpbnRmKCJQYXN0ZSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
OgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAg
ICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgIHByaW50ZigiVW5rbm93
bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBwcmludGYoIkJlZ2lubmluZzo6Iik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQ6CisgICAgICAgICAgICBwcmludGYoIkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAg
IHByaW50ZigiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHByaW50ZigiTmV4dDo6
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgcHJpbnRmKCJEaXNjb250aWd1b3VzOjoi
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50
LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25Vbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZzoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSkgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVVua25vd246CisgICAgICAgICAgICAgICAgcHJpbnRmKCJVbmtub3duIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIHByaW50ZigiQ2hhcmFjdGVyIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBwcmludGYoIldvcmQiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lOgorICAgICAgICAgICAgICAgIHByaW50ZigiTGluZSIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlOgorICAgICAgICAgICAgICAgIHByaW50ZigiU2VudGVuY2UiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQ
YXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgcHJpbnRmKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYWdlOgorICAgICAgICAgICAgICAgIHByaW50ZigiUGFnZSIpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3Vt
ZW50OgorICAgICAgICAgICAgICAgIHByaW50ZigiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6
CisgICAgICAgICAgICAgICAgcHJpbnRmKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAg
ICBwcmludGYoIi1TeW5jIik7CisgICAgcHJpbnRmKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQpCit7CisgICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSAqbm9kZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50
OworCisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAg
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9i
aikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFp
bmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iaiA9
IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisg
ICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNl
bGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9Q
QVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAg
ICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24p
Cit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0g
QVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RB
dHRyaWJ1dGVzKCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KICAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0
ZXh0KTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChv
YmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
KSkgeworICAgICAgICAgICAgZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24o
b2JqKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAg
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRp
dFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdP
ZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0
aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0
aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGlu
c2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBB
WFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGlj
dGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBz
dG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmot
PmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKKyAgICAgICAgICAgIGVucXVldWVQYXNz
d29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iaik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQor
CisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVsZXRp
b25UeXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlv
bik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0
ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxl
bnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShp
bnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGlu
Z09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqKQoreworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0
KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoc3RkOjpmaW5kKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmJlZ2luKCksIG1fcGFz
c3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmVuZCgpLCBvYnNlcnZhYmxlT2JqZWN0KSA9PSBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSkgeworICAgICAgICBtX3Bhc3N3b3JkTm90
aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlmICgh
bV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAg
bV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAg
IH0KIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlv
bihGcmFtZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiAr
MTMwMSwxNSBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2Vi
QXJlYSgpCit7CisgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QgKnJvb3RPYmplY3QgPSB0aGlz
LT5yb290T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndlYkFyZWFPYmplY3QoKTsKKyAgICB9CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNh
Y2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJm
YTkyNzcuLjU4YjEzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIw
MTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4OSw5OSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9
IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lk
IHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3Rp
ZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3lu
Y2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dElu
c2VydGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0RWRpdFR5cGUgeworICAgICAgICBBWFRleHRF
ZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmlj
IHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRl
eHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5
cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0
YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAg
ICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQorICAgIH07CisKKyAg
ICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQor
ICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRp
dFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0
VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CisKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7Cisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICAg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRGlzY29udGlndW91cwogICAgIH07CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJik7CisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSB7CisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICAgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgICAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgICAgICBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYWdlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50LAor
ICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBBbGwgZ3JhbnVsYXJpdHkg
cmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hvbGUgZG9jdW1lbnQgYXMg
YSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNvbWUgb3RoZXIgZ3JhbnVs
YXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3VtZW50IHdpbGwgbm90IHJl
c3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24uCisgICAgfTsKKworICAgIHN0
cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uOworICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0
eTsKKyAgICB9OworCisgICAgc3RhdGljIEFYVGV4dFNlbGVjdGlvbiBUZXh0U2VsZWN0aW9uKEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25Vbmtub3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eSA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICB7CisgICAgICAgIGF1dG8gc2VsZWN0
aW9uID0gQVhUZXh0U2VsZWN0aW9uKCk7CisgICAgICAgIHNlbGVjdGlvbi5kaXJlY3Rpb24gPSBk
aXJlY3Rpb247CisgICAgICAgIHNlbGVjdGlvbi5ncmFudWxhcml0eSA9IGdyYW51bGFyaXR5Owor
ICAgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0KKworICAgIHN0cnVjdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAg
ICAgICB1bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uOworICAg
ICAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgICAgICB9OworICAgICAgICBib29s
IHN5bmM7CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rp
b24gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJvb2wgc3luYyA9IGZhbHNlKQorICAg
ICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAsIHNlbGVjdGlvbihzZWxlY3Rpb24p
CisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAgeyB9CisKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQorICAgICAgICAgICAgOiB0
eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICAgICAsIGNoYW5nZShjaGFu
Z2UpCisgICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAgICAgIHsgfQorCisgICAgICAgIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIHN5
bmMpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2VsZWN0aW9uKEFY
VGV4dFNlbGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5jKHN5bmMpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAg
ICAgICB9CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0
U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hhbmdlCisgICAgdm9pZCBwb3N0VGV4
dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAg
ICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyArMzA1LDM1IEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0g
ICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRleHRDaGFu
Z2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAg
ICB9OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4
dEVkaXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0
ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RD
YWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3du
OgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAg
IH0KKyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9pZCB0ZXh0
Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5nZWQoRWxl
bWVudCopOwpAQCAtMjI5LDYgKzM0NCw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9kZUlu
VXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9CiAK
IHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKyAgICAK
ICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nl
c3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0Kiwg
QVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzM2MSwxMSBAQCBwcml2YXRl
OgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBh
aXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZp
Y2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisK
KyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZlY3RvcjxS
ZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0
OworICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAg
dm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25D
cmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpA
QCAtMjUxLDYgKzM3MywxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAg
ICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIHZvaWQgZW5xdWV1
ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCopOwor
CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogfTsK
IAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4ICs0MzQsMTYgQEAgaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcq
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQot
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lu
bGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24o
Tm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjaWYg
UExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNl
bmRpZgogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9z
dFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihS
ZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3Rp
ZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXgg
ZDhkMjZkZS4uM2Q0NWQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsMjcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAg
ICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9k
ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAo
SFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkg
eworICAgICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4odGhpcyk7Cisg
ICAgfQorICAgIAorICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgp
KSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpIHsKKyAgICAg
ICAgICAgIGlmIChBWE9iamVjdENhY2hlICpjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworICAgICAgICB9
CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMt
Pm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJmLi5kNTNhOTNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFn
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9s
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRG
aWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA1YTI3ZWE4Li5hN2E5OTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKQEAgLTI2NDYsNCArMjY0NiwyNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goYm9vbCBvbikKIH0KICNlbmRp
ZgogCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxk
KCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9k
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0
ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbnVsbHB0cjsKKyAgICBpZiAoRWxlbWVudCog
ZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0
RWxlbWVudD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8
SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCk7CisgICAgfQorICAgIGlmICghaW5wdXRFbGVtZW50
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+
aXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXgg
MzU4NmYyYS4uMmU5Nzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRp
dmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNXZWJB
cmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjZlZmFhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cApAQCAtMTQ4OCwxNCArMTQ4OCwxOCBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJiBy
YW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7CisgICAgICAgIGlmIChB
WE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hl
LT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJl
cikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRTZWxl
Y3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUo
KTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNp
YmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQg
KyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dO
U1RSRUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0
LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKTsKKyAgICBQb3NpdGlvbiBwb3My
ID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQ
b3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNl
bGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9zMiwgRE9XTlNUUkVBTSk7CisgICAg
bV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24odmlzaWJsZVNlbGVj
dGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiB9CiAK
IFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwxMyAr
MTk2NCwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlz
aWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFy
dC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAK
KwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQu
IGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYg
KHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2Uu
ZW5kKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUo
KSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAgIH0K
ICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNp
YmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRlcmVy
LT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aAppbmRleCBjNjJjNzUzLi4wYzQ2NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCkBAIC00Myw2ICs0Myw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpOwogICAgIHZp
cnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlLCBBWE9iamVjdENh
Y2hlKikgb3ZlcnJpZGU7CiAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0
KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcoU2Nyb2xsVmlldyopOwogICAgIApAQCAtNzEsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygp
IGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFP
YmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0Q2hp
bGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB3ZWJBcmVhT2JqZWN0KCk7IH0KICAgICBBY2Nl
c3NpYmlsaXR5U2Nyb2xsYmFyKiBhZGRDaGlsZFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2
b2lkIHJlbW92ZUNoaWxkU2Nyb2xsYmFyKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmlu
ZGV4IDExOWUwYjAwLi5hYjc5MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDcgKzk1LDE2IEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0
ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgQVhTZWxlY3Rl
ZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENh
Y2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbQppbmRleCBiMzAwZTc3Li5mNDViYTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUw
IEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9u
IEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
Q2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmls
aXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRF
ZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5n
ZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VW
YWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxl
bmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRl
eHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0
cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0
cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCiAvLyBUaGUgc2lt
cGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMjAwLDE1MSBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
Tm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
aiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24pCiB7CisgICAgaWYgKCFvYmopCisgICAgICAgIG9iaiA9IHJvb3RXZWJBcmVh
KCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5zeW5jKQorICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7CisgICAgaWYgKGludGVudC50eXBl
ICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAgICAgdXNlckluZm9bTlNB
Y2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKGludGVudC50eXBlKTsKKyAg
ICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKTsKKyAg
ICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eV0gPSBAKGludGVu
dC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXJS
YW5nZSA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9u
czpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRpb246c2VsZWN0aW9uLnZpc2libGVF
bmQoKV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRN
YXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFuZ2U7CisgICAgfQorCisgICAgaWYg
KGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9z
dE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBV
c2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt3
ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vz
c2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZv
XTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2Jq
LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRp
b24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0
aW9ucyBhcmUgcG9zdGVkLgorICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVk
Tm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRp
b24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworfQorCitz
dGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7
CisgICAgTlNTdHJpbmcgKnRleHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAgTlNVSW50ZWdl
ciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICghbGVuZ3RoKQorICAgICAgICByZXR1
cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNoYW5nZSA9IFtbTlNNdXRhYmxlRGlj
dGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2VbTlNBY2Nlc3Np
YmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAgc3RhdGljIGNvbnN0IE5TVUludGVn
ZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYgKGxlbmd0aCA+IHRydW5jYXRpb25M
ZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxl
bmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4
OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkKKyAgICAgICAg
Y2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV0gPSB0ZXh0OworICAgIGlmIChw
b3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlciA9IFtvYmot
PndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOnBvc2l0aW9uXSkKKyAgICAg
ICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcl0g
PSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAg
IGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmop
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107CisgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50
Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgdXNl
ckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBAW2NoYW5nZV07CisKKyAg
ICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworCisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBOU0FjY2Vzc2liaWxp
dHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNBY2Nl
c3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNl
ZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbd2Vi
QXJlYS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3Np
YmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAg
IE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVy
KCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQu
CisgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNB
Y2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsK
KworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRl
eHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRU
ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQor
ICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJl
dHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgZGVsZXRpb25UeXBlLCBk
ZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdl
XTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VE
aWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisg
ICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNl
XTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKworICAgIE5TQWNj
ZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigp
LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAg
ICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgor
ICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpO
U0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9d
OworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmot
PndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2Vy
SW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJl
IHBvc3RlZC4KKyAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNh
dGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNl
ckluZm9dOworCisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5jNDY0OGY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTgsNiArNTgsNyBA
QCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAtIChpZClhdHRhY2htZW50VmlldzsKIC8vIFVzZWQg
dG8gaW5mb3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0
LiBVc2VkIGJ5IERSVC4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjoo
TlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVk
Tm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGlj
dGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNw
YWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3Jl
ZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLjYzN2U5MDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4Nyw5ICszODcsNTkgQEAgc3Rh
dGljIEJPT0wgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM7CiAKIC0gKHZv
aWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRp
b25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25z
KQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNh
dGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGljIE5TQXJyYXkgKmFycmF5UmVtb3Zp
bmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7CisgICAgQVNTRVJUKFthcnJheSBpc0tp
bmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5TTXV0YWJsZUFycmF5ICptdXRhYmxl
QXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZvciAoTlNVSW50ZWdlciBpZHggPSAw
OyBpZHggPCBbbXV0YWJsZUFycmF5IGNvdW50XTsgaWR4KyspIHsKKyAgICAgICAgaWQgdmFsdWUg
PSBtdXRhYmxlQXJyYXlbaWR4XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltO
U0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9i
amVjdEF0SW5kZXg6aWR4IHdpdGhPYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVz
KHZhbHVlKV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5
IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4
OmlkeCB3aXRoT2JqZWN0OmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAg
ICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBb
dmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0
YWJsZUFycmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aWR4XTsKKyAgICB9CisgICAgcmV0dXJuIFtt
dXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpkaWN0
aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQorewor
ICAgIEFTU0VSVChbZGljdGlvbmFyeSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3Nd
XSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0YWJsZURpY3Rpb25hcnkgPSBbZGljdGlv
bmFyeSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIGRpY3Rpb25hcnkp
IHsKKyAgICAgICAgaWQgdmFsdWUgPSBkaWN0aW9uYXJ5W2tleV07CisgICAgICAgIGlmIChbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBtdXRh
YmxlRGljdGlvbmFyeVtrZXldID0gZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVl
KTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3Nd
XSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0gPSBhcnJheVJlbW92aW5nTm9u
SlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xh
c3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5
OmtleV07CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZURpY3Rpb25hcnkgYXV0b3JlbGVhc2Vd
OworfQorCistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5n
ICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KK3sK
ICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpIHsKLSAgICAg
ICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhP
YmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxd
OwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3Rp
ZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOnVz
ZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5vdGlmaWNhdGlvbk5hbWUpOworICAgICAgICBOU0Rp
Y3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAgICAgIGlmICh1c2VySW5mbykgeworICAgICAgICAg
ICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBkYXRhV2l0aEpT
T05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHVzZXJJbmZvKSBvcHRpb25z
OihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVycm9yOm5pbF07CisgICAgICAgICAgICBpZiAodXNl
ckluZm9EYXRhKSB7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKnVzZXJJbmZvU3RyaW5nID0g
W1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnVzZXJJbmZvRGF0YSBlbmNvZGluZzpOU1VU
RjhTdHJpbmdFbmNvZGluZ107CisgICAgICAgICAgICAgICAgaWYgKHVzZXJJbmZvU3RyaW5nKQor
ICAgICAgICAgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlmaWNhdGlvbk5hbWUiIDogbm90aWZp
Y2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1c2VySW5mb1N0cmluZ307CisgICAgICAgICAgICAg
ICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2VdOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIGlmICghaW5mbykKKyAgICAgICAgICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFt
ZSIgOiBub3RpZmljYXRpb25OYW1lfTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBv
YmplY3Q6c2VsZiB1c2VySW5mbzppbmZvXTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNl
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihX
ZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29y
ZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2li
bGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOwor
CiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIu
LjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJB
cHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUg
IlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRp
bmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsMTUgKzQ4LDIzIEBAIEFwcGVuZE5v
ZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBh
cmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkg
fHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5n
TGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBl
KQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAo
IW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgU3RyaW5nIHRl
eHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtz
IGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4
dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVW
YWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlz
PFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRl
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24o
cG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQog
CiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAg
ICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBB
WE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lk
IEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhh
c0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5l
ZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRB
WFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92
ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2LDE0IEBAIHZvaWQgQXBwZW5kTm9k
ZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNl
bmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBBcHBlbmROb2Rl
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi40OWM5
ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0z
OCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4p
OworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4sIFBhc3NS
ZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC00Nyw2ICs0Nyw5IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBS
ZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CmluZGV4IDg0NjFlZTcuLjI1ZWFiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXBw
ZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1
ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisj
aW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIK
ICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0xNjIsNiArMTY1LDEzIEBAIHZvaWQg
RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
IG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlJbnRlbnQoKQoreworICAgIGlmICht
X2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5z
aXplKCktMV0tPnVuYXBwbHlJbnRlbnQoKTsKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogdm9pZCBhcHBseUNvbW1hbmQoUGFzc1JlZlB0
cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsKICAgICBjb21tYW5kLT5hcHBseSgp
OwpAQCAtMzIwLDkgKzMzMCwxNCBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92
YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitSZWY8
RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxk
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICByZXR1cm4gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJl
Zm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNo
aWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtNTIyLDIzICs1MzcsNDYgQEAgdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQKICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rp
b24odmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRleCwgc2NvcGUuZ2V0KCkpLCB2aXNp
YmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4ICsgbGVuZ3RoLCBzY29wZS5nZXQoKSkpKTsK
IH0KIAorUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkK
LSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwor
fQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKK3sKKyAgICBpZiAoZWRpdGluZ0FjdGlvbigpID09IEVkaXRBY3Rpb25DdXQp
CisgICAgICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9k
ZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgcmV0dXJuIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCBjb3VudCkpOworfQorCitSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4g
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sK
KyAgICByZXR1cm4gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4
dCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBh
c3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwg
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUo
cHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IHJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHko
KSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgp
KSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlU2VsZWN0ZWRU
ZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE1MjMsNCArMTU2MSwxMSBAQCBQYXNz
UmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBk
b2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2Up
OwogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkK
KyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmFwcGx5SW50
ZW50KCk7CisgICAgcmV0dXJuIEVkaXRDb21tYW5kOjphcHBseUludGVudCgpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uZWRlZTQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFz
cyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7
CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCB1bmFwcGx5SW50ZW50KCk7CisKIHByaXZhdGU6
CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdT
ZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCkBAIC04Nyw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3Io
Ym9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBl
eHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpAQCAtMTAzLDE1ICsxMDcs
MTggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVtb3ZlU3R5bGVkRWxlbWVudChQYXNzUmVmUHRy
PEVsZW1lbnQ+KTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihib29sIHNtYXJ0RGVsZXRlID0g
ZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9
IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wgc2FuaXRp
emVNYXJrdXAgPSB0cnVlKTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0
ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVj
aWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSk7CisgICAgdmly
dHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4
dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc2VsZWN0SW5zZXJ0
ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJvb2wgaXNSZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKik7
CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCk7CiAgICAgdm9pZCBpbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiwg
Y29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydE5vZGVBdFRhYlNwYW5Qb3NpdGlvbihQ
YXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOworICAgIHZpcnR1YWwgUmVmPEVkaXRD
b21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVm
UHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9p
ZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4gcmVm
Q2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlID0gRG9Ob3RBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSk7CiAgICAgdm9pZCBpbnNlcnRMaW5lQnJl
YWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBpbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpOwogICAgIHZvaWQgbWVyZ2VJZGVudGljYWxFbGVtZW50cyhQYXNz
UmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIHJlYmFsYW5j
ZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2ICsxMzcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBt
b3ZlUmVtYWluaW5nU2libGluZ3NUb05ld1BhcmVudChOb2RlKiwgTm9kZSogcGFzdExhc3ROb2Rl
VG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IHBycE5ld1BhcmVudCk7CiAgICAgdm9pZCB1cGRh
dGVQb3NpdGlvbkZvck5vZGVSZW1vdmFsUHJlc2VydmluZ0NoaWxkcmVuKFBvc2l0aW9uJiwgTm9k
ZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgdmlydHVhbCBSZWY8
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gcmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIFJl
ZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgcmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpOwogICAgIFBvc2l0
aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBy
ZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkZjli
ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisg
ICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpCit7Cit9
CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjJmYTc3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBD
dXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3Vu
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgor
ICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjRlNzAyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQorICAgIDogRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxl
dGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApCit7
Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKworRWRpdEFjdGlvbiBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gRWRpdEFjdGlvbkN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1YzMzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTAs
MCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
IDogcHVibGljIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Ym9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0
cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMg
PSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFy
dERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBt
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJrdXApOworCisgICAgdmlydHVhbCBSZWY8RWRpdENv
bW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1
Li44NTcxNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
UGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0
aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAg
LTQ1LDYgKzQ3LDExIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fb2Zm
c2V0ICsgbV9jb3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKIH0KIAorU3RyaW5nJiBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsK
K30KKwogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBB
U1NFUlQobV9ub2RlKTsKQEAgLTU2LDEwICs2MywxMCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1fbm9kZS0+c3Vic3RyaW5nRGF0YSht
X29mZnNldCwgbV9jb3VudCwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAg
IAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcg
dGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNl
dCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgp
LCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9k
ZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291
bnQsIGVjKTsKIH0KQEAgLTczLDggKzgwLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3Rl
eHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3Np
dGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpA
QCAtODQsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rl
c0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRl
eCAyNDkxZjA1Li43YTMxYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCArNDAsMTIgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgY291bnQpKTsKICAgICB9CiAKKyAgICBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisK
K3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKIHByaXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgsNyArNTMsMTAgQEAgcHJpdmF0ZToK
ICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0
OwogICAgIHVuc2lnbmVkIG1fY291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAg
LTg4NiwxMCArODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkK
IAogRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29u
c3QKIHsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVz
ZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0
aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGlu
Z0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRv
IFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlv
bkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUg
dHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0
Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5j
cHAKQEAgLTI3LDExICsyNywxMSBAQAogI2luY2x1ZGUgIkRpY3RhdGlvbkNvbW1hbmQuaCIKIAog
I2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgiCi0jaW5jbHVkZSAiSW5zZXJ0VGV4
dENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRo
b3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxE
aWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0
YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRp
dmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNl
cnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4
dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJr
ZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOworICAgIFJlZlB0cjxJbnNl
cnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpjcmVh
dGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5n
KGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUo
YWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFu
ZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODhjNDAwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OkRpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRp
b247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5ODM2YQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlv
bkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2Rl
LCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MTVmNzYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRpY3RhdGlvbkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQ
YXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisg
ICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpCit7
Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2Vy
dFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzljYjQxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5l
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21t
YW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGll
cihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0
SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQs
IHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxU
ZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFu
ZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjc5YWJhNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0xMjQsNSArMTI1LDI3IEBAIHZvaWQgU2lt
cGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhh
c2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAgIG5vZGVzLmFkZChub2RlKTsKIH0KICNlbmRpZgorICAg
IAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IFNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCit2b2lkIFNp
bXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBu
b2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOwor
ICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisjZW5k
aWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5oCmluZGV4IDAzZTZjMzcuLjAxYTAzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21t
YW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1hbmRfaAogI2RlZmluZSBF
ZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRp
dEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNTksNiArNjAs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQo
KSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOyB9Owor
CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKICAgICBF
ZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJik7CkBAIC05MCw2ICs5Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSA9IDA7CiAjZW5kaWYKIAorICAg
IHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRl
bnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChhcHBseUVkaXRUeXBlKCkpOyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCB1bmFwcGx5SW50ZW50KCkgeyByZXR1cm4gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQodW5hcHBseUVkaXRUeXBlKCkpOyB9CisKIHByb3Rl
Y3RlZDoKICAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQp
IDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsgfQogCkBAIC05Nyw2ICsxMDMsMTEgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUq
PiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
IGFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlIHVuYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCisKIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5n
QWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3Bw
CmluZGV4IGRjM2FlMzMuLjZkZTEzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdBbGxJbk9uZS5jcHAKQEAgLTMyLDEwICszMiwxNCBAQAogI2luY2x1ZGUgPEJyZWFrQmxvY2tx
dW90ZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPENvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcD4KICNp
bmNsdWRlIDxDcmVhdGVMaW5rQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8Q3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGljdGF0aW9uQWx0ZXJuYXRp
dmUuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxFZGl0Q29tbWFuZC5jcHA+CiAjaW5jbHVk
ZSA8RWRpdGluZ1N0eWxlLmNwcD4KICNpbmNsdWRlIDxFZGl0b3IuY3BwPgpAQCAtNTQsMTEgKzU4
LDE1IEBACiAjaW5jbHVkZSA8TWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwPgogI2lu
Y2x1ZGUgPE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA+CiAjaW5jbHVkZSA8TW92ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwPgorI2luY2x1ZGUgPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
PgogI2luY2x1ZGUgPFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVt
b3ZlRm9ybWF0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcD4KICNpbmNs
dWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcD4KICNp
bmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0
dHJpYnV0ZUNvbW1hbmQuY3BwPgpAQCAtNzcsNiArODUsMTAgQEAKICNpbmNsdWRlIDxUZXh0SW5z
ZXJ0aW9uQmFzZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFRleHRJdGVyYXRvci5jcHA+CiAjaW5j
bHVkZSA8VHlwaW5nQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VW5s
aW5rQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VmlzaWJsZVBvc2l0aW9uLmNwcD4KICNpbmNsdWRl
IDxWaXNpYmxlU2VsZWN0aW9uLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3
MTBhYTM5Li4zNDcwNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3NpdGlv
bkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5j
bHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVy
bmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwxNSBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERp
cmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNt
YXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChlZGl0aW5nQWN0aW9uID09IEVkaXRB
Y3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBlbHNlCisgICAgICAgIGFw
cGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21h
cnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCkBAIC0xMDAxLDcgKzEw
MDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21wb3NpdGVF
ZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3
aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNld2hlcmUg
aWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246OkRpY3Rh
dGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1Nl
bGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1Nl
bGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUludGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRh
YmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxl
RWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAog
ICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEwMzIsNyArMTAzNiw3IEBA
IHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRDb21w
b3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJvbHMoY21kLT5zdGFydGluZ1Jv
b3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwog
CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21kLT5zdGFydGluZ1NlbGVjdGlv
bigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSk7CisgICAgY2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRT
ZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUludGVudCgpKTsKICAgICBkaXNwYXRj
aEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVs
ZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRl
RWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0
b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAg
IGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRB
Y3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENv
cHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNh
blNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6
cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0
aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlz
bWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZv
aWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMg
b3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0
aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRo
ZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFy
dCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYy
LDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9w
cm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWlu
IFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29s
IHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5n
ZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9u
KG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUg
ZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQg
YWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBs
ZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1h
cmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQ2YzVlMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNl
bmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVj
dGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlw
aW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhT
bWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgp
OwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hh
bmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBT
ZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9u
IH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlv
bk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
T3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
T3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVj
dENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0
aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3Jt
Q3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDU3NDUxNzAuLmI0YzcyNWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVu
dCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgp
IGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRp
b24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9s
bCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVx
dWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVj
dGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0
aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmlu
aXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWdu
KTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlv
biAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVz
ZXJUcmlnZ2VyZWQpCkBAIC0xNzAsNyArMTY5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92
ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW8K
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAgICBuZXdTZWxlY3Rpb24uc2V0
V2l0aG91dFZhbGlkYXRpb24oYmFzZSwgZXh0ZW50KTsKICAgICBuZXdTZWxlY3Rpb24uc2V0SXNE
aXJlY3Rpb25hbChzZWxlY3Rpb25IYXNEaXJlY3Rpb24pOwotICAgIHNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMg
PyAwIDogRG9Ob3RTZXRGb2N1cykpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RT
ZXRGb2N1cyksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6
OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlz
Y29udGlndW91cykpKTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpzZXRDYXJldFBv
c2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCkBAIC0yNTQsNyArMjUzLDE2
IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1Nl
bGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5l
ZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAg
ICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0
Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91cykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0gZWxzZQorICAg
ICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOwor
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldp
dGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMs
IEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkK
QEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRo
b3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIGlmIChEb2N1
bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFzZSgpLmRvY3VtZW50
KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9uRnJhbWUgPSBuZXdT
ZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlv
bkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9j
dW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkp
OworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCks
IGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0
aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBo
YXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVu
dEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxv
bmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0
byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24u
CkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0
eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRT
ZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAg
IHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRh
dGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAs
NyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUo
KQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0
aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMzc5LDggKzM4Nyw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0
ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVu
dCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9Ci0KLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShpbnRlbnQpOwogCiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVkaXRvcigpLmNs
aWVudCgpKQogICAgICAgICBjbGllbnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91
dCgpOwpAQCAtMTAyMSw3ICsxMDI4LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0
aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBy
ZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFn
cmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAor
fQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVB
bHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
KTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rp
b246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlzUmFu
Z2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMKQor
ICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAg
ICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJh
Y3RlckdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6
CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdy
YW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhC
b3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5k
YXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5
KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxh
cml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50
R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToK
KyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAg
IGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVj
dGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5k
YXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhP
YmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmplY3RD
YWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9u
TGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkp
CisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVj
dENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRl
bnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9u
IGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc3LDYgKzEx
NTcsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAm
JiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9z
aXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4dFNl
bGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwog
ICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNh
bEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIg
aXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0
aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQs
IGl0IHdvdWxkIGJlCkBAIC0xNzEwLDggKzE3OTUsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVT
ZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAg
ICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJl
U2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9u
KSkgeworICAgICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQp
OworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5n
ZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjMs
NyArMjUxMCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rp
b25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0
aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1Nl
bGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJh
bWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5n
cmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50
ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVs
YXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rp
b24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0
aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IDBlNGUyOGUuLjNjMzE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBG
cmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
RWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJl
Y3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJu
IENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJldmVh
bFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9CisgICAgCisgICAgc3Rh
dGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JU
IGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyAr
MTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3Qg
UG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBi
b29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9w
dGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xs
ID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0
ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9
IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVs
YXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSos
IEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyAr
Mjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFS
VCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwog
ICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBz
ZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVs
YXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGlu
ZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUp
OwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50
ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVj
dGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICsz
NzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1Jl
ZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlu
bGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdlLi5hZWM0NzU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJh
bWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBAIC01MCw2ICs1MSwxMSBAQCBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaQogICAgIEFTU0VSVCghbV90ZXh0LmlzRW1wdHkoKSk7CiB9CiAKK1N0cmluZyYg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4g
bV90ZXh0OworfQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQog
ewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNz
d29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5ICs3MSw5IEBAIHZvaWQgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgfQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1f
b2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwotCi0gICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIAorICAgIGlmIChB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90
ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAog
I2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEwICs4OCwxMCBAQCB2b2lkIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX25vZGUtPmhhc0VkaXRhYmxl
U3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAg
ICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1f
dGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAg
ICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiB9CkBAIC05Nyw0ICsxMDMsMTQgQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5k
aWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaAppbmRleCAzMTBiYmIzLi5lMzNmNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOSArNDAsMTEg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAgIH0KIAotcHJpdmF0ZToKKyAgICBT
dHJpbmcmIGluc2VydGVkVGV4dCgpOworcHJvdGVjdGVkOgogICAgIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZP
Uk0oSU9TKQpAQCAtNTEsNyArNTQsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAg
dmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7
CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8
VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIFN0cmluZyBtX3RleHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQu
Y3BwCmluZGV4IGQxNmI1ZDYuLjhkNWVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0yNiw5ICsyNiwxMSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCiAK
LSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0
bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU3LDggKzU5LDEwIEBAIHZv
aWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNl
cnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3Rp
ZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0
ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9
IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4o
bV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hp
bGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAK
IHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs3MSwx
MCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxl
dGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24g
PSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+
KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbiht
X2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0
Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAK
ICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC04MSw0
ICs4NywxNCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFu
ZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKworQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
RGVsZXRlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVC
ZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uOGQ5YzYwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJF
ZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCwxNiArMzksMjAgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAg
ICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQs
IFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogICAg
IAogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2RlPiBtX2luc2VydENoaWxkOwogICAgIFJlZlB0cjxO
b2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uYmZhMTgxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNTksMTAgKzU5LDEx
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1h
bmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CiAgICAgfQogCi1wcml2YXRlOgot
Ci0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKK3Byb3RlY3RlZDoKICAgICBJ
bnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0
cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJl
YmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0ZXIoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFhY2Fi
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hp
bGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNTU5MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gK
KyNkZWZpbmUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2Rl
PiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
Y2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmM0N2E3ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQp
CisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRl
eHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU2YTM1MgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQp
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJl
cGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZTAxN2I4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
dGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKwordm9pZCBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMwZmRiZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRf
aAorI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRl
ICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBw
dWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWdu
ZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zNWFjN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKwor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0KQorICAgICwgbV9kZWxldGVkVGV4dChkZWxldGVkVGV4dCkKK3sKK30K
Kwordm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47
CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZVVua25vd246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDoK
KyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24o
bm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNl
cnQ6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCByZXBs
YWNlQXBwbHlFZGl0VHlwZSgpLCB0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YzQyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZp
bmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRl
eHQ7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0
ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOwor
ICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFw
cGx5RWRpdFR5cGUoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2Vy
dDsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
YXBwbHlJbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudChyZXBsYWNlQXBwbHlFZGl0VHlwZSgpKTsgfQorCitwcml2YXRlOgorICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIG92ZXJyaWRlOworCisgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCmluZGV4IGZiMzg4MGMuLjMwYzQ3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJC
cmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5o
IgorI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCkBAIC00NCwxNCArNDUsMjAgQEAKICNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50LmgiCiAj
aW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKKyNpbmNs
dWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAiUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5o
IgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNp
bmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJr
dXBDb21tYW5kLmgiCiAjaW5jbHVkZSAiU21hcnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQ
cm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5o
IgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisjaW5jbHVkZSAi
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNp
YmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5o
IgpAQCAtMTQ4Miw2ICsxNDg5LDMwIEBAIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnVw
ZGF0ZU5vZGVzSW5zZXJ0ZWQoTm9kZSAqbm9kZSkKIAogICAgIG1fZW5kT2ZJbnNlcnRlZENvbnRl
bnQgPSBsYXN0UG9zaXRpb25Jbk9yQWZ0ZXJOb2RlKG5vZGUtPmxhc3REZXNjZW5kYW50KCkpOwog
fQorICAgIAorUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0
cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7CisgICAgc3dpdGNoIChtX2VkaXRB
Y3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGNhc2UgRWRpdEFjdGlv
blBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3Jl
YXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgfQorfQorCitSZWY8RWRpdENvbW1h
bmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCit7CisgICAgc3dpdGNo
IChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJl
dHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgY2FzZSBFZGl0QWN0aW9u
UGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRleHQsIGRlbGV0ZWRUZXh0KTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxl
dGVkVGV4dCk7CisgICAgfQorfQogCiAvLyBEdXJpbmcgc2ltcGxlIHBhc3Rlcywgd2hlcmUgd2Un
cmUganVzdCBwYXN0aW5nIGEgdGV4dCBub2RlIGludG8gYSBydW4gb2YgdGV4dCwgd2UgaW5zZXJ0
IHRoZSB0ZXh0IG5vZGUKIC8vIGRpcmVjdGx5IGludG8gdGhlIHRleHQgbm9kZSB0aGF0IGhvbGRz
IHRoZSBzZWxlY3Rpb24uICBUaGlzIGlzIG11Y2ggZmFzdGVyIHRoYW4gdGhlIGdlbmVyYWxpemVk
IGNvZGUgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuaAppbmRleCBkODdjM2ZmLi5lMjZhOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0xMTEsNiArMTExLDkgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgcGVyZm9ybVRyaXZpYWxSZXBsYWNlKGNvbnN0IFJlcGxhY2VtZW50
RnJhZ21lbnQmKTsKIAorICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVm
b3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8RWRp
dENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKwog
ICAgIFBvc2l0aW9uIG1fc3RhcnRPZkluc2VydGVkQ29udGVudDsKICAgICBQb3NpdGlvbiBtX2Vu
ZE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1faW5zZXJ0aW9u
U3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCA5MzI5
Y2RmLi44YzBmYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAi
UmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5
cGluZ0luc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtMzczLDcgKzM3NCw3IEBAIHZvaWQgVHlwaW5nQ29t
bWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRU
ZXh0KQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMo
Y29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKLSAgICBSZWZQ
dHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRl
KGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKKyAgICBSZWZQdHI8SW5zZXJ0
VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKICAgICAgICAgbV9jb21wb3NpdGlv
blR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFu
Y2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJh
bGFuY2VBbGxXaGl0ZXNwYWNlcyk7CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21t
YW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTQyMjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAK
K1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MDBiZDE0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6
IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjI0NjA3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NS
ZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlw
aW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNzQ2MTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKyNk
ZWZpbmUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2Rl
PiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
KGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWIxNjY1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGlu
Z0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFs
YW5jZVR5cGUgcmViYWxhbmNlVHlwZSkKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50
LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpCit7Cit9CisKK1JlZjxF
ZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2Vy
dGVkVGV4dCwgZGVsZXRlZFRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNzQ5M2I1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNs
dWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFR5cGluZ0luc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydFRleHRDb21tYW5kPiBjcmVhdGUoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRU
ZXh0ID0gZmFsc2UsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRp
bmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2Vy
dGVkVGV4dCwgcmViYWxhbmNlVHlwZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIGJvb2wsIFJlYmFsYW5j
ZVR5cGUpOworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZGQ1MzEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkK
K3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45NmMyZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgVHlwaW5nUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
Jik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VB
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXgg
N2MyMTM2NS4uZTY5NWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsv
RnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0Zy
YW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVt
aXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmpl
Y3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVj
dGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4wN2UyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0
YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMp
CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNl
bGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFy
dCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9u
LnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhT
ZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAg
IGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0
KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uNWJmYjY0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwx
NiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4
dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VS
VChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAh
PSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFs
dWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFu
Z2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAh
aW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYm
ICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIo
KSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlm
aWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2
YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpbm5lclRleHQtPnNldElu
bmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgaWYgKHZhbHVl
LmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQogICAgICAgICAgICAgaW5u
ZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAg
ICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwg
cHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVl
LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZv
cmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHNldEZvcm1Db250
cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggOThhNWQzOS4uY2FhYWEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtMzE4NCw3ICszMTg0LDcgQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJv
YXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxl
UG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2Vy
VHJpZ2dlcmVkKSk7CisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24s
IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVk
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNl
bGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzKSkpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50
KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdmZS4uYmZkMWZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzQxLDcgKzM0MSw3IEBAIGJvb2wgRm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24gZGly
ZWN0aW9uLCBLZXliCiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbklu
T3JCZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5l
d1NlbGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwogICAgICAgICBpZiAo
ZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0g
ICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsK
KyAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVk
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhPYmplY3RDYWNoZTo6
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhPYmplY3RDYWNoZTo6VGV4dFNl
bGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzKSkpOwogICAgIH0KIAogICAgIGVsZW1lbnQtPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGJlMWRi
M2UuLmUyYWE4NTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0xNSAgRG91ZyBSdXNzZWxsICA8ZF9ydXNz
ZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhh
dCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmls
aXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUs
IHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29u
dGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxl
bWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBm
aWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ug
b2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5k
IGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBh
c3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0
byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNl
bGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAg
KC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVk
Ol0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisKIDIwMTUtMDQt
MTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBEUlQg
ZG9lcyBub3Qgc2VlbSB0byByZXNldCB0aGUgJ1VzZXNQYWdlQ2FjaGUnIHNldHRpbmcgYmV0d2Vl
biB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLjdiMDE3YmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTExMiwxNiArMTEyLDI3IEBACiAgICAgaWYgKG1f
cGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2Jq
ZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVl
ID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3Jl
YXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90aWZp
Y2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQg
PSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlcklu
Zm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFs
dWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBnbG9iYWxD
b250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3Bs
YXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVz
dCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09i
amVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0
aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxl
bWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8g
TGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1
c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3Vt
ZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFd
ID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5j
dGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2Fs
bGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBn
bG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVz
ZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1l
bnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxl
bWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtu
b3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRp
b25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVl
QXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9i
YWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVu
dHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwxOSAr
MTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50
ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJp
bmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8i
XTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFp
bkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsK
ICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29u
dGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZp
Y2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAg
IEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmco
Y29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0
aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFs
dWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAg
ICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhj
b250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxh
dGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0
IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2Jq
ZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3Rp
ZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0
aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAg
ICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1l
IGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAg
IGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1l
bnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxs
QXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlv
bkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlv
biBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAg
ICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwogICAg
ICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFy
Z3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmlj
YXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250992</attachid>
            <date>2015-04-16 19:37:35 -0700</date>
            <delta_ts>2015-04-20 13:54:33 -0700</delta_ts>
            <desc>Edit commands infrastructure</desc>
            <filename>0001-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>153271</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAwNTIwY2E5ZTdhNDhhMTU1N2U4OGFmM2I4Y2UwMTlmYzg5NmYxNzM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgOCBBcHIgMjAxNSAxMzoxNDo0OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKTmV3IEVkaXRpbmcgQ29tbWFuZHMKLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArKwogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiAgICAgfCAxODAgKysrKysrKysrKysr
KysrKysrKysrCiAuLi4vV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzICAg
ICAgICB8ICA3MiArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiAgIHwgIDk2ICsrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmNwcCAgICAgICB8ICAxOCArKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCAgICB8ICAzOCArKysrLQogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oICAgICAgfCAgIDYgKwogLi4u
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgICAgICAgfCAgMzggKysr
KysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIHwg
IDQ2ICsrKysrKwogLi4uL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCAgfCAgNDUgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCB8ICA0OCArKysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgIHwgIDI2ICsrLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgICAgICAgIHwgICA0ICstCiAuLi4vZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCB8ICA0MCArKysrKwogLi4uL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICAgfCAgNDYgKysrKysrCiAu
Li4vV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCB8ICA0NSAr
KysrKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAg
IHwgIDQ3ICsrKysrKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3Bw
ICAgICAgICAgfCAgMTIgKysKIC4uLi9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgIHwgIDI5ICsrKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIHwgICA5ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCB8ICAyMiArKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydFRleHRDb21tYW5kLmggICAgICAgICB8ICAgNyArLQogLi4uL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAgICAgfCAgMzggKysrKysKIC4uLi9XZWJD
b3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIHwgIDQ3ICsrKysrKwog
Li4uL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICAgfCAgMzgg
KysrKysKIC4uLi9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICAg
IHwgIDQ4ICsrKysrKwogLi4uL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuY3BwICAgfCAgMzggKysrKysKIC4uLi9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggICAgIHwgIDQ5ICsrKysrKwogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgfCAgNDAgKysrKysKIC4uLi9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgIHwgIDUyICsrKysrKwogU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgfCAgMzEgKysrKwogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oICAgfCAgIDMgKwogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCAgICAgICAgICAgfCAgIDMgKy0K
IC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgIHwgIDQw
ICsrKysrCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAg
ICB8ICA0NSArKysrKysKIC4uLi9lZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcCAgICAgIHwgIDM4ICsrKysrCiAuLi4vZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5oICAgICAgICB8ICA0NyArKysrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIHwgIDUwICsrKysrKwogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICAgfCAgNDkgKysrKysrCiAuLi4vVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICB8ICAzOCArKysrKwogLi4u
L1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICAgfCAgNDggKysr
KysrCiA0NSBmaWxlcyBjaGFuZ2VkLCAxNjE3IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygt
KQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
aAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9Q
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MjkwYjMzMS4uNGMzYTI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0NjgsMTAgKzE0Njgs
MTQgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9uQWx0ZXJuYXRp
dmUuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwCiAgICAg
ZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCiAgICAgZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xNDkw
LDExICsxNDk0LDE1IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL01lcmdlSWRl
bnRpY2FsRWxlbWVudHNDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlz
dExldmVsLmNwcAogICAgIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3Bw
CiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVuZGVyZWRQb3Np
dGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCiAgICAg
ZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1h
bmQuY3BwCkBAIC0xNTEwLDYgKzE1MTgsMTAgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVk
aXRpbmcvVGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcAogICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGlu
Z0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmNwcAorICAgIGVkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9VbmxpbmtDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVBv
c2l0aW9uLmNwcAogICAgIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBjNDg5NDNhLi5kYWIzNmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAgQEAKKzIwMTUtMDQt
MTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJp
Y2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQg
c3ViY2xhc3NlcyB0byBnaXZlIHRoZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0
byBwb3N0IG1vcmUgZGV0YWlsZWQgdmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gVGhpcyBjb21taXQgaXMgYWxsIGluZnJhc3RydWN0dXJlIGFuZCBkb2Vzbid0IGNvbnRh
aW4gYW55IGFjY2Vzc2liaWxpdHkgc3BlY2lmaWMgY2hhbmdlcy4KKwogMjAxNS0wNC0xNCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgY3JlYXRp
bmcgc2VuZCByaWdodHMgZnJvbSBzaGFyZWQgbWVtb3J5IG1vcmUgcm9idXN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBkMDc3YTAyLi5k
MzlmMThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTE0MzY2LDYgKzE0MzY2LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ0MjIsNiArMTQ0NTAs
MzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0Rl
YnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1
ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJv
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dp
bkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RWRpdENvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KQEAgLTE0NzAzLDYgKzE0NzU5LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlv
bnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDc3
Myw2ICsxNDg1NywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29t
cGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE0OTk3LDYgKzE1MTA5LDYy
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVu
bGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KQEAgLTIxMDQxLDEwICsyMTIwOSwxNCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXENvbXBvc2l0ZUVkaXRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXENyZWF0ZUxpbmtDb21tYW5kLmgiIC8+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVk
aXRBY3Rpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENv
bW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0Jl
aGF2aW9yLmgiIC8+CkBAIC0yMTA3MSwxMCArMjEyNDMsMTQgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVs
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1vdmVTZWxlY3Rpb25D
b21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZUNvbW1hbmQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIiAvPgpAQCAtMjEwOTMsNiArMjEyNjks
MTAgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2
aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1h
bmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmRv
U3RlcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFZpc2libGVQb3Np
dGlvbi5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGU0NDYwODcuLmFkYjcyODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKQEAgLTM0MzgsNiArMzQzOCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zNDUwLDYgKzM0NTYsMTIg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uQ29tbWFuZC5j
cHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRD
b21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KQEAgLTM1MTMsNiArMzUyNSwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+
ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM1MjgsNiArMzU0NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8
RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1NzYsNiArMzYw
MCwxOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5k
LmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTA1NjYsNiArMTA2MDIsMTIgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
Ij4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
QEAgLTEwNTc4LDYgKzEwNjIwLDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGlj
dGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xFZGl0QWN0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDY1Niw2ICsxMDcwNCwxMiBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiPgorICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlD
b21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkBAIC0xMDY2OCw2ICsxMDcyMiwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiPgogICAgICAg
PEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDcyMiw2ICsx
MDc4MiwxOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21t
YW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0Ns
SW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbi5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xVbmRvU3RlcC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDUxMTBlMGIuLmMyMDI5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNzQsMTIgKzYzNzQs
MjIgQEAKIAkJRjQ3ODc1NTUxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0
YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3
ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tICovOyB9
OwogCQlGNDdBNUUzRTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQjE5
NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ3QTVFM0YxOTVCOEU0ODAwNDgz
MTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDdBNUUzQTE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVT
Y3JvbGxTbmFwUG9pbnRzLmNwcCAqLzsgfTsKKwkJRjUwNjNDMUMxQUI3NTZENTAwOUFCNTU2IC8q
IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBE
aWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1MDYzQzFEMUFC
NzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDYzQzFBMUFC
NzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2NEY1MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUY1MDY2NEY4MTU3
RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1D
b250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0
aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1
RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1NDNENUZE
MUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZCMUFDQjA5
REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZD
MUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07
CisJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNE
NjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07
CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4
MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4
MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxv
Y2FsZS5oICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07
CisJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggKi87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0
VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9Owog
CQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQw
MDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJE
MDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25J
bnB1dFR5cGUuY3BwICovOyB9OwpAQCAtNjQyOSwxMiArNjQzOSwyNiBAQAogCQlGNTVCM0RERTEy
NTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5w
dXRUeXBlLmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRU
eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1
QjNERTAxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAv
KiBXZWVrSW5wdXRUeXBlLmggKi87IH07CisJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAvKiBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1RDBCRDgxQUNCNzA4MjAwOTM0
MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2OCAvKiBQ
YXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi87IH07CisJCUY1NzRERURBMUFDQTJFQjAw
MDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NzRERUQ4MUFDQTIy
OEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LzsgfTsKKwkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAv
KiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0
NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4
MDQgLyogTG9jYWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJ
CUY1OTczREUxMTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQg
LyogTG9jYWxlTWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmggKi87IH07CisJCUY1OUZBNDZDMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NkQxQUNDQjNDMDAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1OUZBNDcwMUFD
Q0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTlGQTQ3MTFBQ0NC
NTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNUExNTQyNzEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRp
b25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0MjgxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlk
YXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsg
fTsKKwkJRjVBNTI5NUQxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIx
MSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUMxQUNDRThFMDAwNTEy
QjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJ
CUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1
Mjk1RjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
ICovOyB9OworCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1QTUyOTYwMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oICovOyB9OwogCQlGNUMwNDFEQTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87
IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBG
RkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFF
MzBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5
RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKQEAgLTEzOTk0LDYgKzE0MDE4
LDggQEAKIAkJRjQ3ODc1NTMxOTk4M0FGRjAwMjRBMjg3IC8qIFNjcm9sbFNuYXBBbmltYXRvclN0
YXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsU25h
cEFuaW1hdG9yU3RhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0N0E1RTNB
MTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcDsgcGF0
aCA9IHN0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2lu
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVTY3JvbGxTbmFwUG9p
bnRzLmg7IHBhdGggPSBzdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjUwNjNDMUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUwNjY0RjUxNTdGNTJEQzAw
QUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMDYsOCAr
MTQwMzIsMTYgQEAKIAkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJhbmdl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7
IH07CiAJCUY1MjNEMzA0MDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5nZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyQUQ1RTMx
NTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjU0M0Q1RkMxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDVGRjFBQ0IwQzgz
MDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q2MDAxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1M
b2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFz
ZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3
QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNTcsNiArMTQwOTEsMTIgQEAK
IAkJRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBVUkxJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEQUIxMjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vla0lucHV0VHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAv
KiBXZWVrSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlZWtJ
bnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1RDBCRDUxQUNCNzA4
MjAwOTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ2MUFDQjcwODIwMDkzNDA2
OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU3NERFRDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQ
YXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjU4NzJBNzMxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
ODc4NEYwMDJERTM3NTkwMUVBNDEyMiAvKiBDdXJzb3JNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDdXJzb3JNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlG
NTg3ODU0QzAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZUZyYW1lVmlldy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnJhbWVWaWV3
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9
OwogCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2V0dGluZ3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xNDA2
Nyw4ICsxNDEwNywxNiBAQAogCQlGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxlTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAg
LyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZB
MUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QjFB
Q0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQy
NTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlv
bk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1l
c3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5NUIxQUNDRThFMDAw
NTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjVBNTI5
NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1
QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTYw
MUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEg
LyogSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERh
dGFMaXN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY3OSw2
ICsxNzcyNywxMCBAQAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVF
ZGl0Q29tbWFuZC5oICovLAogCQkJCUQwQjA1NTY3MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVM
aW5rQ29tbWFuZC5jcHAgKi8sCiAJCQkJRDBCMDU1NjYwOUM2NzAwMTAwMzA3RTQzIC8qIENyZWF0
ZUxpbmtDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NDNENUZDMUFDQjA5REEwMDYz
NkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU0M0Q1RkYx
QUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLAorCQkJ
CUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgg
Ki8sCiAJCQkJOTMzMDlEOEYwOTlFNjQ5MTAwNTZFNTgxIC8qIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDkwMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOTEwOTlFNjQ5MTAwNTZFNTgxIC8qIERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMTc2ODcsNiArMTc3MzksMTAgQEAKIAkJ
CQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLywK
IAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAgKi8s
CiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAqLywK
KwkJCQlGNTA2M0MxQTFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjUwNjNDMUIxQUI3NTZDQzAwOUFCNTU2IC8qIERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTg3MkE3MjFBQjc1QTJC
MDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1ODcy
QTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovLAog
CQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBFZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMz
MDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5
NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQuaCAqLywKQEAgLTE3NzMzLDYgKzE3Nzg5
LDEwIEBACiAJCQkJQzZENzRBRDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxp
c3RMZXZlbC5oICovLAogCQkJCTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0
aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQUQwOTlFNjQ5MTAwNTZFNTgxIC8qIE1vdmVT
ZWxlY3Rpb25Db21tYW5kLmggKi8sCisJCQkJRjU1RDBCRDUxQUNCNzA4MjAwOTM0MDY4IC8qIFBh
c3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NUQwQkQ2MUFDQjcwODIw
MDkzNDA2OCAvKiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU3NERF
RDgxQUNBMjI4RDAwNTk4MkU0IC8qIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwICovLAorCQkJCUY1NzRERUQ5MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQjEwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQjIwOTlF
NjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oICovLAogCQkJCUQwNkMw
RDhFMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLywKQEAgLTE3
NzQzLDYgKzE3ODAzLDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIzMkNEQTgxM0RGN0ZB
OTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlCMzJDREE3MTNERjdG
QTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1MjhEQTQxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJ
CQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdB
RCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCUE4OUNDQzUw
MEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAgKi8sCiAJ
CQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcCAqLywKQEAgLTE3Nzc4LDYgKzE3ODQyLDE0IEBACiAJCQkJOTM5MjE0NjgxOEE2
RDc5MTAwMEVFNjg4IC8qIFRleHRJdGVyYXRvckJlaGF2aW9yLmggKi8sCiAJCQkJOTMzMDlEQ0Ew
OTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RENCMDk5
RTY0OTEwMDU2RTU4MSAvKiBUeXBpbmdDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkExQUNDQjND
MDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJ
CUY1OUZBNDZCMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggKi8sCisJCQkJRjVBNTI5NUYxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1MTJCMTEgLyog
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLywKKwkJCQlGNTlGQTQ2RTFBQ0NCNTBF
MDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAorCQkJCUY1OUZBNDZG
MUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovLAorCQkJCUY1
QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NUMxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJOUIyRDhBNzgxNDk5N0ND
RjAwRUNFRjNFIC8qIFVuZG9TdGVwLmggKi8sCiAJCQkJRDA4NkZFOTcwOUQ1M0FBQjAwNUJDNzRE
IC8qIFVubGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwODZGRTk2MDlENTNBQUIwMDVCQzc0RCAv
KiBVbmxpbmtDb21tYW5kLmggKi8sCkBAIC0yMzY3MSw2ICsyMzc0Myw3IEBACiAJCQkJNkM1NjhD
QjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFDMTAz
M0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBwbGlj
YXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURCNzk0
IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ3Miw2ICsy
NDU0NSw3IEBACiAJCQkJMzEwNjAzNzkxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0Zp
bHRlclZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTA2MDM3QjE0MzI4MUNEMDBBQkY0QkEg
LyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzE2RkUwN0QwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRjVBNTI5NUUxQUNDRThFMDAwNTEyQjExIC8qIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3RjBFNkND
QzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxNkZFMDgwMEU2Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZXNSdWxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA4MjBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5
ZnJhbWVzUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI0Nzk1LDYgKzI0ODY5LDcg
QEAKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RDJCMEExOTM4NTUwMEE4RUY1RiAv
KiBIVE1MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUNDMDk3Mzc0RjYw
MEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTg3MkE3
NTFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3QkM4NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1MSW5wdXRTdHJlYW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REU2MDk5RTY0OTIwMDU2RTU4MSAvKiBIVE1MSW50
ZXJjaGFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAv
KiBIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAyNCw2ICsyNTA5OSw3
IEBACiAJCQkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTAxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBNjEyQjAzRUUx
MDAzQTU4M0EgLyogSlNBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MDYzQzFD
MUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVBODEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQUUxMkIwM0VFMTAwM0E1
ODNBIC8qIEpTQXVkaW9MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQjAxMkIw
M0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDMyLDYg
KzI1MTA4LDcgQEAKIAkJCQlCRThFRjA0MzE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNr
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCRThFRjA0NTE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRp
b1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzZGQjlGRjkxOUE3M0UzQTAwNDIwNTYy
IC8qIEpTQXV0b2NvbXBsZXRlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0
NkQxQUNDQjNDMDAwNjIzMDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMTI0RjAwMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3Au
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQ2MzQ4MTA3QTkzNjYwMDg1NzE5MyAvKiBKU0JlZm9y
ZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZBNDQ1NEU4OThGMkZDMTY4QkMzOEMx
IC8qIEpTQmVmb3JlVW5sb2FkRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNTEsNiArMjUy
MjgsNyBAQAogCQkJCUZEQTE1RUFDMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0dhaW5Ob2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MThGNTAwMjE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFkLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MThGNTAwNDE5NENBQzNBMDA4MUJBQUUgLyogSlNHYW1lcGFk
QnV0dG9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTQzRDVGRTFBQ0IwOURBMDA2MzZENUQgLyog
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MERB
NjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkRBN0MxRjE4ODMyMkZDMDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU1OTMsNiArMjU2NzEsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgw
MEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hN
TEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZh
bHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyog
SlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjc3NCw2ICsyNjg1Myw3IEBA
CiAJCQkJQjJDM0RBM0MwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0lDVS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBM0UwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY0xhdGluMS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDOUEwRDAwQTVERjAwMzAwNzREIC8qIFRleHRDb2Rl
Y01hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU3NERFREIxQUNBMkY0NzAwNTk4MkU0IC8qIFBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyQzNEQTQwMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVc2VyRGVmaW5lZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJDM0RBNDIwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRDb2RlY1VURjE2
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQzQ0I4MjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENv
ZGVjVVRGOC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjgyNyw2ICsyNjkwNyw3IEBACiAJCQkJMTg1
QkNGMjkwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0FBM0E2OUExOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNvbnRyb2xsZXJNZW1v
cnlIYW5kbGVySU9TLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNB
NkE0MTk0QjVDMjIwMDFDQkQyNCAvKiBUaWxlQ292ZXJhZ2VNYXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBRjg5QTQyMTUxOEZERUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdBQTNBNjlDMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlR3JpZC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjk1MCwxMiArMjcwMzEsMTQgQEAKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAw
MzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNUE3QUE0MzEzMkYwRUNDMDBEM0EzQzIgLyogV2ViQXV0b2NhcGl0YWxpemUuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1NkM1QjlCMTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xl
QWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NDNENjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0QTE5
MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDREM2OUREQTE2MzcxRkQ0MDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY5REQ2MTYzMjAyNkMw
MDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3Jl
SlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNUE1Mjk2MjFBQ0NFQTcwMDA1MTJC
MTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9u
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0RDlCQTcwQjhDMTE3NTAwN0I0MkE5IC8q
IFdlYkNvcmVOU1N0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk4OCw2ICsyNzA3
MSw3IEBACiAJCQkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBX
ZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDFEM0NGODMxNEJEMEEzMDAw
RkU5OTcwIC8qIFdlYkdMQ29udGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTVEMEJE
ODFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDFEM0NGODUxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMQ29udGV4dE9i
amVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTBFRTBERjYxNDRGODI1NTAwRjgwQjBEIC8qIFdl
YkdMRGVidWdSZW5kZXJlckluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY4MTQ0Rjgy
NTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcy
Nyw2ICsyNzgxMSw3IEBACiAJCQkJNkY5OTVBMzkxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDNFMjUyMzE4MDQ2QkNE
MDBFMjdGNTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGQkY4OTA0NTE2OUU5RjFGMDA1MkQ4NkUgLyogQ1NTR3JvdXBpbmdSdWxlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUY1QTUyOTYxMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIzRTc2QzBEQUU4OEE5
MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MzkzRTVGRjE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBODBFNkNGRTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW1hZ2VWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI3ODA0LDYgKzI3ODg5LDcgQEAKIAkJCQkzMUZCMUE1ODEy
MEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMUZCMUE1QTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90
aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU4NzJBNzQxQUI3NUEyQjAwODBGNDU3
IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMx
NDAzNzlFMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTU5MzA5QTExMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjY5Mzk3MjYxQTRBNUZC
RDAwRTgzNDlEIC8qIE5GQS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3OTQwLDYgKzI4MDI2LDcg
QEAKIAkJCQk4NUVDQkVGNjBBQTc2MjY5MDA1NDRGMEIgLyogRE9NSFRNTE1vZEVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NURGODEyQzBBQTc3ODcyMDA0ODZBRDcgLyogRE9NSFRNTE9i
amVjdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NUJBNEQxNjBBQTY4ODY4MDA4ODA1
MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENUZE
MUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg1RjMyQUVGMEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MT3B0R3Jv
dXBFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0MDc1NkMwQUQ2Q0JGOTAwNjIwQzU3
IC8qIERPTUhUTUxPcHRpb25FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVERjJGOUMw
QUEzQ0FFNTAwQUQ2NEM1IC8qIERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5tbSBpbiBTb3VyY2Vz
ICovLApAQCAtMjgwODcsNiArMjgxNzQsNyBAQAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFF
NCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0
MzA0QjAxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgy
RTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNzVFOEI4ODBFMURFMkQ2MDA3RjI0ODEgLyogRkVCbGVuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNzVFOEI4QTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb2xvck1hdHJpeC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUUzMzVGMTFBQ0IwOUUyMDBFNDAxRUYgLyogV2hlZWxF
dmVudFRlc3RUcmlnZ2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgxOTgsNiArMjgyODYsNyBA
QAogCQkJCTRGQjM5MEFEMTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzIwQjBBMDE0RDMzMjM1MDA2NDI5NTUgLyogR2VuZXJpY0V2ZW50
UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjMxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1OUZBNDcwMUFDQ0I1MEUwMDYy
MzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
NzQ2QUYyNjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGQjYyNTJFMThERTFCMTUwMEEwN0MwNSAvKiBHZW9tZXRyeVV0aWxp
dGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM4MzBEMDBBNUMxMDAzMDA3NEQgLyog
R2x5cGhQYWdlTWFjLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgyMTgsNiArMjgzMDcsNyBAQAog
CQkJCUIyQTAxNUFBMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc1R5cGVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUNERjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyog
SGlkZGVuSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1QTUyOTVEMUFDQ0U4RTAw
MDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUE5RDlGMzE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTc5Q0UzNjE5NUNBQzdFMDAxOUMxOTggLyogSElER2Ft
ZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTREMTUzMEMyNzVDOEIwMDZC
QzYxNyAvKiBIaXN0b3J5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgzOTcsNiArMjg0ODcsNyBA
QAogCQkJCTUxMDE5MkQxMThCNkI5QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1l
bnRNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8q
IEltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTcz
ODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBNjFBQzEw
MzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjU1QjNEQzExMjUxRjEyRDAwM0VGMjY5IC8qIEltYWdlSW5wdXRUeXBl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4OTU4MjU1MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFn
ZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU3QjBCMDUzODE0MDAyQ0U2NEYg
LyogSW1hZ2VNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTI4ODU0LDYgKzI4OTQ1LDcgQEAKIAkJ
CQlFNTFBODFERjE3Mjk4RDc3MDBCRkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4QTlBNTg3MDExRTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmln
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0M0M4NUYxODlFMTVBNjAwMDE5QUUyIC8q
IEpTUGVyZm9ybWFuY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU0M0Q2MDExQUNC
MEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkRFQTYyNDYxNTIxMDJGQzAwNDc5REYwIC8qIEpTUGVyaW9kaWNXYXZlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzQjcwRDZCMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4OUYwMUQxMEIzN0JEOTAw
RjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4ODg4LDYg
KzI4OTgwLDcgQEAKIAkJCQkwNzk2OURCQjE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTZXNzaW9u
RGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQkQxN0QxNDE1MTAwN0ZG
ODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDdEMDdCMTQxODM0MTU4ODAwQUJERDNDIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NUQwQkQ3MUFDQjcwODIwMDkzNDA2OCAv
KiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
OTY5REJGMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzQ2FsbGJhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc5NjlEQzExN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXBvcnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQzMxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRD
U3RhdHNSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5NjYzLDYgKzI5NzU2LDcgQEAK
IAkJCQkwNzM3OTRGRDE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzM3OTRERDE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3
ZXJPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTBCMTdEMTRDRUUwMDQyMEFB
MSAvKiBSVENQZWVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ2QzFB
Q0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mzc5NEYxMTlFRTM3QkIwMEU1
QTA0NSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3OEUwOTBDMTdEMTRDRUUwMDQyMEFBMSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yOTg0MCw2ICsyOTkzNCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3
ODI2NTAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMkU2RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9y
SU9TLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0YxOUFFNjA4MjQ1RTU5MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDN0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJh
bmdlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAzNDMsNiArMzA0MzgsNyBAQAogCQkJCUExNDgz
MkMwMTg3RjY1NjYwMERBNjNBNiAvKiBXS0dyYXBoaWNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTE0ODMyQzIxODdGNjVDNzAwREE2M0E2IC8qIFdLVXRpbGl0aWVzLmMgaW4gU291cmNlcyAqLywK
IAkJCQlBMTQ4MzJDNTE4N0Y2NjgzMDBEQTYzQTYgLyogV0tWaWV3Lm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJRjUwNjNDMUQxQUI3NTZEODAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5OTE5OTYxMjAwRERGNDAwRUEw
NDFDIC8qIFdPRkZGaWxlRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNDM0NjQ1MEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM4MjA4OTYx
NDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMWRl
YjRkYi4uMmRlNmRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTQ2
LDE1ICs0OCwxNyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVu
dC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zm
c2V0KQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBp
ZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0g
ICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0
KTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02NCw4ICs2OCw3
IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFw
cGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9ub2RlLT5ub2RlVmFs
dWUoKSwgMCk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC03
NCw4ICs3Nyw3IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAg
IHJldHVybjsKICAgICAgICAgCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0
dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIG1fbm9kZS0+bm9kZVZhbHVlKCksIDApOwogCiAgICAgbV9ub2Rl
LT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4uZWRmNjgxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+KTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5h
cHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAppbmRleCA4NDYxZWU3Li4zMWY1MTc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNTgsNiArNTgsOCBAQAog
I2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNp
bmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAj
aW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVu
dFF1ZXVlLmgiCkBAIC0zMjAsOSArMzIyLDE0IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZv
cmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4g
cmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHJldHVybiBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOworfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9k
ZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxk
LCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKGluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGls
ZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKIH0KIAogdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0
Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC01MjIsMjMgKzUyOSw0NCBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4LCBzY29wZS5nZXQo
KSksIHZpc2libGVQb3NpdGlvbkZvckluZGV4KHN0YXJ0SW5kZXggKyBsZW5ndGgsIHNjb3BlLmdl
dCgpKSkpOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNF
bXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0KSk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQoreworICAgIHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQp
KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgY291bnQpKTsKK30KKworUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQp
Cit7CisgICAgcmV0dXJuIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCk7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29u
c3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRl
ZFRleHQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9k
ZShQYXNzUmVmUHRyPFRleHQ+IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBu
b2RlKHBycE5vZGUpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSByZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShkZWxldGVDb21tYW5kKTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0Vt
cHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShyZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRl
eHQoKSkpOwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVj
dGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uZjhkZjlkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiAr
MzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNz
IFN0eWxlZEVsZW1lbnQ7CkBAIC0xMDMsMTUgKzEwNCwxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCByZW1vdmVTdHlsZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOwogICAgIHZvaWQgZGVs
ZXRlU2VsZWN0aW9uKGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3Bl
Y2lhbEVsZW1lbnRzID0gdHJ1ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpOwogICAgIHZv
aWQgZGVsZXRlU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVs
ZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVw
bGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IHRydWUsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gZGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWdu
ZWQpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAgICAgdm9pZCBpbnB1dFRleHQo
Y29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSk7CiAgICAgYm9v
bCBpc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqKTsKICAgICB2b2lkIGluc2VydE5vZGVBZnRl
cihQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKTsKICAgICB2b2lk
IGluc2VydE5vZGVBdChQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOwogICAgIHZv
aWQgaW5zZXJ0Tm9kZUF0VGFiU3BhblBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IFBv
c2l0aW9uJik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydE5vZGVCZWZvcmVD
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKICAgICB2b2lkIGluc2VydE5vZGVCZWZvcmUoUGFzc1Jl
ZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgPSBEb05vdEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsK
ICAgICB2b2lkIGluc2VydFBhcmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3Jh
cGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9
IGZhbHNlKTsKICAgICB2b2lkIGluc2VydExpbmVCcmVhaygpOworICAgIHZpcnR1YWwgUmVmPEVk
aXRDb21tYW5kPiBpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGluc2VydFRleHRJbnRvTm9kZShQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAg
dm9pZCBtZXJnZUlkZW50aWNhbEVsZW1lbnRzKFBhc3NSZWZQdHI8RWxlbWVudD4sIFBhc3NSZWZQ
dHI8RWxlbWVudD4pOwogICAgIHZvaWQgcmViYWxhbmNlV2hpdGVzcGFjZSgpOwpAQCAtMTMwLDYg
KzEzNCw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIG1vdmVSZW1haW5pbmdTaWJsaW5nc1RvTmV3
UGFyZW50KE5vZGUqLCBOb2RlKiBwYXN0TGFzdE5vZGVUb01vdmUsIFBhc3NSZWZQdHI8RWxlbWVu
dD4gcHJwTmV3UGFyZW50KTsKICAgICB2b2lkIHVwZGF0ZVBvc2l0aW9uRm9yTm9kZVJlbW92YWxQ
cmVzZXJ2aW5nQ2hpbGRyZW4oUG9zaXRpb24mLCBOb2RlJik7CiAgICAgdm9pZCBwcnVuZShQYXNz
UmVmUHRyPE5vZGU+KTsKKyAgICB2aXJ0dWFsIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
PiByZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCwgdW5zaWduZWQpOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiByZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZShQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJp
bmcmIHJlcGxhY2VtZW50VGV4dCk7CiAgICAgUG9zaXRpb24gcmVwbGFjZVNlbGVjdGVkVGV4dElu
Tm9kZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlcGxhY2VUZXh0SW5Ob2RlUHJlc2Vydmlu
Z01hcmtlcnMoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3Vu
dCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNmZDI0YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjRkZjU3OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIEN1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChu
b2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xNjNjOTIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgor
I2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVu
dCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJl
cGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3Vw
KQorICAgIDogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywg
c2FuaXRpemVNYXJrdXApCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIEN1dERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45Y2JlMTU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKwor
I2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZh
bHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBm
YWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6
ZU1hcmt1cCA9IHRydWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1h
cmt1cCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
KERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRl
LCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRp
emVNYXJrdXApOworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlk
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uNTk3ZjQ5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCkBAIC00NSw2ICs0NywyMCBAQCBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9u
b2RlLT5sZW5ndGgoKSk7CiB9CiAKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKKyNpZiBIQVZFKEFDQ0VT
U0lCSUxJVFkpCit2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5n
ZSBjaGFuZ2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQoreworICAgIGlm
IChub2RlICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOworfQorI2VuZGlmCisKIHZvaWQgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBA
IC01Nyw5ICs3MywxMCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwogICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGlu
ZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zm
c2V0LCBtX3RleHQpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV90ZXh0LCBtX29mZnNldCk7
CisjZW5kaWYKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMp
OwogfQpAQCAtNzMsOCArOTAsOSBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRl
ZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0SW5zZXJ0ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOworI2VuZGlmCiB9CiAKICNpZm5kZWYg
TkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLjRlNDdjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw4ICs0MCwxNSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwogICAgIH0KIAorICAgIFN0cmluZyYgZGVs
ZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5z
aWduZWQpOworI2VuZGlmCiBwcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1h
bmQuY3BwCmluZGV4IGMxNzNkZjQuLjE5ZjlmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtMjcsMTEgKzI3LDExIEBACiAjaW5jbHVkZSAiRGlj
dGF0aW9uQ29tbWFuZC5oIgogCiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5o
IgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCIK
LSNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFu
ZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3QgbGluZVN0YXJ0LCBzaXplX3Qg
bGluCiB7CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiBhbHRlcm5hdGl2ZXNJbkxp
bmU7CiAgICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2UobGluZVN0YXJ0LCBs
aW5lTGVuZ3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29t
bWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxp
ZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxl
bmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5l
KSk7CisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3Rl
eHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFy
a2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKICAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1ZjYx
YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRl
eHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAg
IDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU1NDUxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZp
bmUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQs
IHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1Zjc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAs
MCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9u
TWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQo
ZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitSZWY8RWRpdENvbW1hbmQ+
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQp
Cit7CisgICAgcmV0dXJuIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIHRleHQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uM2M5Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2Vy
dFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVy
PiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBs
aWVyPik7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGluc2VydFRleHRJbnRvTm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUu
Y3BwCmluZGV4IGRjM2FlMzMuLjZkZTEzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdBbGxJbk9uZS5jcHAKQEAgLTMyLDEwICszMiwxNCBAQAogI2luY2x1ZGUgPEJyZWFrQmxv
Y2txdW90ZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPENvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxDcmVhdGVMaW5rQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVk
ZSA8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGljdGF0aW9uQWx0ZXJu
YXRpdmUuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPERp
Y3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxFZGl0Q29tbWFuZC5jcHA+CiAjaW5j
bHVkZSA8RWRpdGluZ1N0eWxlLmNwcD4KICNpbmNsdWRlIDxFZGl0b3IuY3BwPgpAQCAtNTQsMTEg
KzU4LDE1IEBACiAjaW5jbHVkZSA8TWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA+CiAjaW5jbHVkZSA8TW92ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwPgorI2luY2x1ZGUgPFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwPgogI2luY2x1ZGUgPFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8
UmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9kZUNvbW1hbmQuY3Bw
PgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcD4KICNp
bmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8U2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQuY3BwPgpAQCAtNzcsNiArODUsMTAgQEAKICNpbmNsdWRlIDxUZXh0
SW5zZXJ0aW9uQmFzZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFRleHRJdGVyYXRvci5jcHA+CiAj
aW5jbHVkZSA8VHlwaW5nQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcD4KKyNpbmNsdWRl
IDxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8
VW5saW5rQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VmlzaWJsZVBvc2l0aW9uLmNwcD4KICNpbmNs
dWRlIDxWaXNpYmxlU2VsZWN0aW9uLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLjlmMDkwMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUwLDYgKzUxLDIwIEBAIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0K
IAorU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQorewor
ICAgIHJldHVybiBtX3RleHQ7Cit9CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCit2b2lkIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSBjaGFuZ2UsIGNvbnN0IFN0
cmluZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQoreworICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUt
Pm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsK
K30KKyNlbmRpZgorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQog
ewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNz
d29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5ICs4MCwxMCBAQCB2b2lkIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0KIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YSht
X29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKLQotICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
IGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICAKKyNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV90ZXh0LCBtX29mZnNl
dCk7CisjZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEwICs5OCwxMSBAQCB2
b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFt
X25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKyAg
ICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBi
ZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNo
ZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0
ZWQsIG1fdGV4dCwgbV9vZmZzZXQpOworI2VuZGlmCiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEo
bV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4
IDMxMGJiYjMuLjVjYTJkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxNSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwg
b2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRU
ZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAor
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29u
c3QgU3RyaW5nJiwgdW5zaWduZWQpOworI2VuZGlmCisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3Zl
cnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li4wY2I4YWRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApAQCAtMjYsOSArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1
ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDYgKzQ5LDE1
IEBAIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQCiAgICAgQVNTRVJUKG1fcmVmQ2hpbGQtPnBhcmVu
dE5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCkt
PnJlbmRlcmVyKCkpOwogfQogCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQordm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSog
bm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCit7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOworfQorI2Vu
ZGlmCisKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIENv
bnRhaW5lck5vZGUqIHBhcmVudCA9IG1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKTsKQEAgLTU3LDgg
KzY3LDkgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBw
YXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgp
LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2lu
c2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9pbnNlcnRD
aGlsZC0+bm9kZVZhbHVlKCksIDApOworI2VuZGlmCiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Niw5ICs3NywxMCBAQCB2b2lkIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghaXNFZGl0YWJsZU5vZGUoKm1faW5z
ZXJ0Q2hpbGQpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAg
ICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRl
eHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24o
bV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9p
bnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQs
IG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKKyNlbmRpZgogCiAgICAgbV9pbnNlcnRD
aGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjM3NWQwOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAog
I2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzgsOSArMzksMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3Jl
LCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJpdmF0
ZToKK3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5v
ZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSos
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOwor
I2VuZGlmCisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uYmZhMTgxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNTksMTAg
KzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4
dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CiAgICAgfQogCi1wcml2
YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKK3Byb3RlY3RlZDoK
ICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFz
c1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICBJbnNlcnRUZXh0Q29t
bWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0
ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YWMwYzNjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAg
IDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzNhZjdjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAorI2RlZmluZSBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFzdGVJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0
LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MDdiNDMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Y2Y0MWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBQYXN0ZVJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGFzdGVSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5OGIwMTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQodGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZDhl
M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0Owor
CitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBj
b3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjg3YTYyZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQp
CisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkKKyAg
ICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kOWZmNWJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
VGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7
CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOworCitwcml2YXRlOgorICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMGM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiQnJlYWtC
bG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNp
bmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpA
QCAtNDQsMTQgKzQ1LDIwIEBACiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgogI2luY2x1
ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAi
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVk
ZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVy
dGllcy5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNp
bmNsdWRlICJUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlR5cGlu
Z1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVu
aXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAg
LTE0ODIsNiArMTQ4OSwzMCBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjp1cGRhdGVO
b2Rlc0luc2VydGVkKE5vZGUgKm5vZGUpCiAKICAgICBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50ID0g
bGFzdFBvc2l0aW9uSW5PckFmdGVyTm9kZShub2RlLT5sYXN0RGVzY2VuZGFudCgpKTsKIH0KKyAg
ICAKK1JlZjxFZGl0Q29tbWFuZD4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9k
ZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQoreworICAgIHN3aXRjaCAobV9lZGl0QWN0aW9u
KSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gVHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0
ZToKKyAgICAgICAgcmV0dXJuIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShp
bnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIH0KK30KKworUmVmPEVkaXRDb21tYW5kPiBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5z
ZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHN3aXRjaCAobV9l
ZGl0QWN0aW9uKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4g
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3Rl
OgorICAgICAgICByZXR1cm4gUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRl
eHQpOworICAgIH0KK30KIAogLy8gRHVyaW5nIHNpbXBsZSBwYXN0ZXMsIHdoZXJlIHdlJ3JlIGp1
c3QgcGFzdGluZyBhIHRleHQgbm9kZSBpbnRvIGEgcnVuIG9mIHRleHQsIHdlIGluc2VydCB0aGUg
dGV4dCBub2RlCiAvLyBkaXJlY3RseSBpbnRvIHRoZSB0ZXh0IG5vZGUgdGhhdCBob2xkcyB0aGUg
c2VsZWN0aW9uLiAgVGhpcyBpcyBtdWNoIGZhc3RlciB0aGFuIHRoZSBnZW5lcmFsaXplZCBjb2Rl
IGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25D
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmgKaW5kZXggZDg3YzNmZi4uZTI2YTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMTExLDYgKzExMSw5IEBAIHByaXZhdGU6
CiAKICAgICBib29sIHBlcmZvcm1Ucml2aWFsUmVwbGFjZShjb25zdCBSZXBsYWNlbWVudEZyYWdt
ZW50Jik7CiAKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21t
YW5kPiByZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKICAgICBQ
b3NpdGlvbiBtX3N0YXJ0T2ZJbnNlcnRlZENvbnRlbnQ7CiAgICAgUG9zaXRpb24gbV9lbmRPZklu
c2VydGVkQ29udGVudDsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX2luc2VydGlvblN0eWxl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4u
OGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00
MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
ckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6
Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkK
IAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0
IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB7Ci0gICAgUmVmUHRyPElu
c2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1
bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCisgICAgUmVmUHRyPEluc2VydFRleHRD
b21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAgICAgICAgIG1fY29tcG9zaXRpb25UeXBl
ID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVh
ZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNl
QWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwg
ZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uM2JmYjk3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4
dCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDA3NDk4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAg
IH0KK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBhNGRj
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2Vy
dENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICA6
IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDQyMTkxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCisjZGVmaW5lIFR5
cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRU
b0luc2VydEJlZm9yZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRv
SW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjAxYjE2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBl
KQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVk
VGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVy
biBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0
ZXh0KTsKK30KKworUmVmPEVkaXRDb21tYW5kPiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0KQoreworICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDkzYjVkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29t
bWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5l
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNl
VHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFj
ZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBl
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisKKyAgICB2aXJ0dWFs
IFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWY8
RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRl
eHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FjM2NhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjNmZjNhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAt
MCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaAorI2RlZmluZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CisKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAotLSAKMi4zLjIgKEFwcGxlIEdpdC01NSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250993</attachid>
            <date>2015-04-16 19:38:17 -0700</date>
            <delta_ts>2015-04-20 13:55:08 -0700</delta_ts>
            <desc>value change notifications</desc>
            <filename>0002-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>62424</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSAyMjM2NzE1MTE5ZWUyNDU2ZWQ1OGM2ZTkzZWVkODUyY2VlZmRkNzhjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMjoyNTozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVmFsdWUgQ2hhbmdlZCBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKysKIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICAgIHwgIDg2ICsrKysrKysr
KysrKystCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAgICAg
ICB8ICA3MSArKysrKysrKysrLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcCAgICAgIHwgIDIxICsrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmggICAgICAgIHwgICAxICsKIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgIHwgIDIwICsrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAyICsKIC4uLi9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggICAgICAgIHwgICAzICstCiAuLi4vV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tICB8ICAgNiArLQogLi4uL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSAgfCAxMjQgKysrKysrKysr
KysrKysrKysrKystCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgg
ICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmNwcCAgICAgICB8ICAzMCArKystLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oICAgICAgICAgfCAgIDMgKwogU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAgICAgfCAgIDMgKwogLi4uL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgICAgICAgfCAgIDYgKwogLi4uL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggfCAgIDQgKwogLi4uL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAgfCAgIDUgKwogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggfCAgIDEgKwogLi4uL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAgfCAgMzEgKysrLS0tCiBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgOCArLQogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAgfCAgIDUgKy0K
IC4uLi9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIHwgICA1
ICsKIC4uLi9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgIHwg
ICAyICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwICAgICAgICAgICAg
IHwgIDIzICsrKysKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCAgICAgICAg
ICAgICAgIHwgICA1ICsKIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCAgICAgICAg
ICAgICAgICAgIHwgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oICAgICAg
ICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAgfCAgMzEgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCB8ICAgOSArLQogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgfCAgMzQgKysrLS0tCiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggICB8ICAgOSArLQogLi4uL2VkaXRp
bmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgICAgICAgfCAgIDUgKwogLi4uL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggfCAgIDIgKwogLi4u
L1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICAgICAgfCAgIDUgKwog
Li4uL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAgICAgfCAgIDIg
KwogLi4uL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICAgfCAg
IDUgKwogLi4uL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAgICAg
fCAgIDQgKy0KIC4uLi9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCAgIHwgIDI1ICsrKysrCiAuLi4vZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oICAgICB8ICAgNSArLQogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgICAgfCAgIDUgKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oICAgICAgfCAgIDMgKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuY3BwICAgICAgfCAgIDUgKwogLi4uL2VkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaCAgICAgICAgfCAgIDIgKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcCAgICAgfCAgIDUgKwogLi4uL1R5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmggICAgICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgfCAgMTIgKy0KIDQ2IGZpbGVzIGNoYW5n
ZWQsIDU2NCBpbnNlcnRpb25zKCspLCA5MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGFi
MzZjOS4uNTIzMWI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDEzIEBACiAgICAgICAgIEFYOiBy
aWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CiAKKyAgICAgICAgUmljaGVyIGFjY2Vzc2li
aWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlw
ZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1w
bGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3Jt
IGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5j
ZSBvZiBjaGFuZ2VzLgorCisyMDE1LTA0LTE0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBw
bGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisK
ICAgICAgICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0
aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBz
ZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY29tbWl0IGlzIGFsbCBpbmZyYXN0
cnVjdHVyZSBhbmQgZG9lc24ndCBjb250YWluIGFueSBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIGNo
YW5nZXMuCiAKIDIwMTUtMDQtMTQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmlu
ZGV4IGEwMGIxNWMuLmEzOWViNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI5LDYgKzEyOSw3
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJp
bGl0eShib29sIGZsYWcpCiBBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBk
b2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlv
blBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZp
cmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2Jq
ZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAg
LTc0Miw2ICs3NDMsMjAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRPYmplY3Qo
KSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOworCisgICAgLy8gSW4gRFJULCBwb3N0aW5nIG5v
dGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIg
bm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAg
IC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVuZC4gSW5z
dGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmljYXRpb25z
ID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAgIGZvciAo
Y29uc3QgYXV0byYgb2JqZWN0IDogbm90aWZpY2F0aW9ucykKKyAgICAgICAgcG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdC5nZXQoKSwgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2VuZGlmCit9CiAgICAgCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhO
b3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBl
IHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjUsNzAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpz
ZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3RO
b3RpZmljYXRpb24ocmVuZGVyZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9i
c2VydmFibGVQYXJlbnQpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7
CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0gQVhU
ZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRy
aWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqKSB7CisgICAgICAgIGlmIChv
YmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
KSkgeworICAgICAgICAgICAgZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24o
b2JqKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBvYmogPSBvYmot
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAg
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRp
dFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdP
ZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0
aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0
aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGlu
c2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBB
WFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGlj
dGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CiAKICAgICBz
dG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVsZWdhdGUg
b24gdGhlIHJpZ2h0IHBsYXRmb3JtCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0
T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihv
YmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
aWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlz
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKKyAgICAgICAgICAgIGVucXVldWVQYXNzd29y
ZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iaik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisg
ICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25U
eXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7
CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0
Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQo
KS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNl
cnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09m
ZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqKQoreworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7
CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
c3RkOjpmaW5kKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmJlZ2luKCksIG1fcGFzc3dv
cmROb3RpZmljYXRpb25zVG9Qb3N0LmVuZCgpLCBvYnNlcnZhYmxlT2JqZWN0KSA9PSBtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSkgeworICAgICAgICBtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlmICghbV9w
YXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9w
YXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoMC4wMjUpOworICAgIH0K
IH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihG
cmFtZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTE1
MywxNSBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJl
YSgpCit7CisgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmplY3QgKnJvb3RPYmplY3QgPSB0aGlzLT5y
b290T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldz4oKnJvb3RPYmplY3QpLndlYkFyZWFPYmplY3QoKTsKKyAgICB9CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hl
RW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTky
NzcuLjE1NzQ3YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAs
IDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4OSwyNSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRh
cmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBv
c3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmlj
YXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hy
b25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2Vy
dGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICAgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorICAgIH07CisKKyAgICBlbnVtIEFYVGV4dEVkaXRUeXBl
IHsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgICAgICBBWFRleHRFZGl0VHlw
ZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0ZQorICAgICAgICBBWFRleHRFZGl0VHlwZUlu
c2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgICAgICBBWFRleHRFZGl0VHlwZVR5cGlu
ZywgLy8gSW5zZXJ0IHZpYSB0eXBpbmcKKyAgICAgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24s
IC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAgICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBE
ZWxldGUgdmlhIEN1dAorICAgICAgICBBWFRleHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEg
UGFzdGUKICAgICB9OwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworICAgIC8v
IFNpbXBsZSB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpOworICAgIC8vIENvbXBvdW5kIHRleHQgdmFsdWUgY2hhbmdlCisgICAg
dm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBl
IGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRp
bmdTdGFydGVkLApAQCAtMjE4LDcgKzIzMSwzNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9u
KTsKICAgICB2b2lkIHBsYXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSog
b2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJik7CisjZWxzZQorICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKKyAgICAgICAgQVhUZXh0SW5z
ZXJ0ZWQsCisgICAgICAgIEFYVGV4dERlbGV0ZWQsCisgICAgfTsKKyAgICBpbmxpbmUgQVhUZXh0
Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQorICAgIHsK
KyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICByZXR1cm4g
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZUluc2VydDoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBh
c3RlOgorICAgICAgICAgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOwor
ICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOworICAgICAgICB9CisgICAgfQorICAgIHZvaWQgbm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQg
ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9i
amVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsyNjks
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBt
X3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1l
bnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2Jq
ZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFw
cGluZzsKQEAgLTI0NCw2ICsyODYsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNh
dGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9p
ZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90
aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChO
b2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9p
ZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyOTgsMTAgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlF
bGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3Np
YmlsaXR5T2JqZWN0Kik7CisKKyAgICB2b2lkIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2Fj
aGVFbmFibGVyCkBAIC0zMDgsOCArMzU5LDE0IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBF
bGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9y
ZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVT
Y3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRp
ZgogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5
cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5k
ZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmlj
YXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZDhk
MjZkZS4uM2Q0NWQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsMjcgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAgICBy
ZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5p
bmdQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgp
OworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRN
TElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgewor
ICAgICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAg
IHJldHVybiBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4odGhpcyk7CisgICAg
fQorICAgIAorICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7
CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpIHsKKyAgICAgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlICpjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5v
ZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJmLi5kNTNhOTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBA
IC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVs
ZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlz
U2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA1YTI3ZWE4Li5hN2E5OTRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKQEAgLTI2NDYsNCArMjY0NiwyNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goYm9vbCBvbikKIH0KICNlbmRpZgog
Citib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkg
Y29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgp
ICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgSFRNTElu
cHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbnVsbHB0cjsKKyAgICBpZiAoRWxlbWVudCogZWxl
bWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxl
bWVudD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRN
TElucHV0RWxlbWVudD4oZWxlbWVudCk7CisgICAgfQorICAgIGlmICghaW5wdXRFbGVtZW50KQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQ
YXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4
NmYyYS4uMmU5Nzc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVs
ZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVU
ZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
U2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNXZWJBcmVh
KCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aAppbmRleCBjNjJjNzUzLi4wYzQ2NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCkBAIC00Myw2ICs0Myw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpOwogICAgIHZp
cnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlLCBBWE9iamVjdENh
Y2hlKikgb3ZlcnJpZGU7CiAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0
KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcoU2Nyb2xsVmlldyopOwogICAgIApAQCAtNzEsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygp
IGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFP
YmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0Q2hp
bGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB3ZWJBcmVhT2JqZWN0KCk7IH0KICAgICBBY2Nl
c3NpYmlsaXR5U2Nyb2xsYmFyKiBhZGRDaGlsZFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2
b2lkIHJlbW92ZUNoaWxkU2Nyb2xsYmFyKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmlu
ZGV4IDExOWUwYjAwLi40ZTI2YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDcgKzk1LDExIEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0
ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKQoreworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li41NDIyMTAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDQyIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVS
ZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgog
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hh
bmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50
IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNh
bGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0xNTYsOCArMTkyLDk0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAg
W29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZp
Y2F0aW9uXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKQorc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hh
bmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3Ry
aW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07Cisg
ICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIHN0
YXRpYyBjb25zdCBOU1VJbnRlZ2VyIHRydW5jYXRpb25MZW5ndGggPSAxMDAwOworICAgIGlmIChs
ZW5ndGggPiB0cnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3Rl
eHQgc3Vic3RyaW5nVG9JbmRleDp0cnVuY2F0aW9uTGVuZ3RoXTsKKyAgICB9CisgICAgaWYgKGxl
bmd0aCA+IDApCisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVd
ID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlk
IHRleHRNYXJrZXIgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlv
bjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFu
Z2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4
dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEo
KTsKKworICAgIGlmICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVu
Z3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJ
bmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOwor
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5n
ZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqLCB0eXBlLCB0ZXh0LCBwb3Np
dGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNd
ID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAg
ICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBl
cjsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOwor
CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVh
LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pOworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFy
ZSBwb3N0ZWQuCisgICAgW3dlYkFyZWEtPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5m
bzp1c2VySW5mb107CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVz
ZXJJbmZvKG9iai0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmlj
YXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZp
Y2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9z
dGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1
c2VySW5mbzp1c2VySW5mb107CisKKyAgICBbdXNlckluZm8gcmVsZWFzZV07Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25z
dCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25z
dCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
IHsKKyAgICBpZiAoIW9iaikKKyAgICAgICAgb2JqID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlm
ICghb2JqKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2Vy
SW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsK
KyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAo
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdl
cyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYg
KE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShv
YmosIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5n
ZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4
dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIGluc2VydGlvblR5cGUsIGluc2VydGVk
VGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7Cisg
ICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBl
cigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0g
PSB3cmFwcGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJB
cmVhKCk7CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KHdlYkFyZWEtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0
aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNh
dGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbd2ViQXJlYS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
IHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRp
b25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdl
ZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hl
biBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZp
Y2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0K
IAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxv
YWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4
YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApA
QCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJr
ZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3Rh
cnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0
aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6
VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDJkZTZkYmYuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMiArMjYsMTIgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDgsMTcgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJU
KG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsK
IH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9k
ZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIGNoYW5nZSwgIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0KQorc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgdHlwZSkKIHsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICgh
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24n
dCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAogICAgIGlmICh0ZXh0ID09ICJc
biIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2Rl
LT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Pihub2Rl
KSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRp
bmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7
CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY4LDE2
ICs3NCwxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFy
ZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9ub2RlLT5ub2RlVmFsdWUoKSwgMCk7CisgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRU
eXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAg
IGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0
aW5nIHRoZSB0ZXh0Ci0gICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX25vZGUtPm5vZGVWYWx1
ZSgpLCAwKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
Z2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9F
WENFUFRJT04pOwogfQpAQCAtOTAsNCArOTYsMTQgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRU
eXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7
Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEFwcGVuZE5vZGVDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZURlbGV0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IGVkZjY4MWIuLjQ5YzllYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKQEAgLTQ3LDYgKzQ3LDkg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwog
ICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3BhcmVudDsKICAgICBSZWZQdHI8Tm9kZT4gbV9u
b2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAKaW5kZXggMzFmNTE3OC4uYWZlZDJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJBcHBlbmROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21tYW5kLmgiCiAj
aW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC01NDIsNiArNTQzLDggQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5z
ZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2YKIAogUmVm
PEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQpCiB7CisgICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAg
ICByZXR1cm4gQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgY291bnQpOwogICAgIHJldHVybiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IGJjZmQyNGEuLmZk
ZjliZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKIAorI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM1LDQgKzM2LDkgQEAgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUKIHsKIH0KIAor
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVk
aXRUeXBlQ3V0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDRk
ZjU3OTEuLmJmMmZhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0zOSw2ICszOSwxMCBAQCBwdWJsaWM6CiAK
IHByb3RlY3RlZDoKICAgICBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDE2M2M5MjIuLjFiNGU3MDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtNDIsNCArNDIsOSBAQCBSZWY8RWRpdENvbW1hbmQ+IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cgogICAg
IHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0
LCBjb3VudCk7CiB9CiAKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRp
dGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggOWNiZTE1Ny4uMWQwNWMzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAg
LTQxLDYgKzQxLDcgQEAgcHJpdmF0ZToKICAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERv
Y3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBi
b29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVN
YXJrdXApOwogCiAgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTk3ZjQ5Yy4uODU3MTY0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC01MiwxNSArNTIsNiBAQCBTdHJpbmcmIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKICAgICByZXR1cm4gbV90ZXh0OwogfQogCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRDaGFuZ2UgY2hhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKLXsK
LSAgICBpZiAobm9kZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQot
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKG5vZGUsIGNoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKLX0KLSNlbmRpZgotCiB2b2lk
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIEFTU0VSVChtX25v
ZGUpOwpAQCAtNzIsMTEgKzYzLDEwIEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSgpCiAgICAgbV90ZXh0ID0gbV9ub2RlLT5zdWJzdHJpbmdEYXRhKG1fb2Zmc2V0LCBt
X2NvdW50LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm47Ci0gICAgCi0jaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0
dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fdGV4dCwg
bV9vZmZzZXQpOwotI2VuZGlmCisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9k
ZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlv
bihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0
LCBtX2NvdW50LCBlYyk7CiB9CkBAIC05MCw5ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNl
dCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkK
LSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKLSNlbmRpZgorICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlw
ZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkp
OwogfQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtMTAyLDQgKzkxLDE0IEBAIHZvaWQgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVz
KQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRp
dFR5cGUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAg
ICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggNGU0N2NmOS4uN2EzMWMxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQ1
LDkgKzQ1LDYgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKIAotI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5n
JiwgdW5zaWduZWQpOwotI2VuZGlmCiBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBvdmVycmlkZTsKQEAgLTU2LDcgKzUzLDEwIEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJV
RwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92
ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworCiAgICAg
UmVmUHRyPFRleHQ+IG1fbm9kZTsKICAgICB1bnNpZ25lZCBtX29mZnNldDsKICAgICB1bnNpZ25l
ZCBtX2NvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04ODYsMTAgKzg4Niw3
IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKIEVkaXRBY3Rpb24g
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8g
Tm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVz
ZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJl
J3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28K
LSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAg
cmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25EZWxldGU7CiB9CiAK
IC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0
aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAKaW5kZXggNzVmNjFiMC4uZjg4YzQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0zNyw0ICszNyw5IEBAIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0CiB7CiB9CiAKK0FY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZURpY3RhdGlvbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaAppbmRleCBmZTU0NTEwLi5mMjk4MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMzksNiArMzksOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRl
eCA4ZjU2NTMyLi43OWFiYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRD
b21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9z
aXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRv
ci5oIgpAQCAtMTI0LDUgKzEyNSwyNyBAQCB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjphZGROb2Rl
QW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUqPiYgbgogICAgICAg
ICBub2Rlcy5hZGQobm9kZSk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBw
bHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBl
VW5rbm93bjsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENv
bW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAg
ICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9k
ZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li5mNWI4
NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJW
aXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTk3LDYgKzk4LDEwIEBAIHByb3RlY3RlZDoKICAgICB2
b2lkIGFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNlbmRp
ZgogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRU
eXBlKCk7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggNzEwYWEzOS4uYWViZGMxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBi
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNy
ZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
IgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICsz
NzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVs
ZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNt
YXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUu
c2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFu
ZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUp
KTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBs
eUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNt
YXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAgICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQg
RWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBl
cmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdy
aXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24p
Ci0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRl
bGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0
Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzkyYmM0Ni4uNjZkYjAyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0
aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24p
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
KGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExB
VEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5
bGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcAppbmRleCA5ZjA5MDI3Li5hZWM0NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTU2LDE1
ICs1Niw2IEBAIFN0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0
KCkKICAgICByZXR1cm4gbV90ZXh0OwogfQogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotdm9p
ZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgY2hhbmdlLCBjb25z
dCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIG9mZnNldCkKLXsKLSAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCBjaGFuZ2UsIG9mZnNldCwgdGV4
dCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKIHsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBmcmFtZSgpLnNldHRpbmdzKCku
cGFzc3dvcmRFY2hvRW5hYmxlZCgpOwpAQCAtODEsOSArNzIsOCBAQCB2b2lkIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zm
c2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIAotI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCks
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX3RleHQsIG1fb2Zmc2V0KTsKLSNlbmRp
ZgorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNl
dCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTk4LDExICs4OCwxMCBAQCB2b2lkIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX25vZGUt
Pmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAotI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5
IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX3RleHQsIG1fb2Zm
c2V0KTsKLSNlbmRpZgorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0
KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbiht
X25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBt
X3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwogfQpAQCAtMTE0LDQgKzEwMywxNCBA
QCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cit9CisKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVs
ZXRlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDVjYTJkOTYuLmUzM2Y1
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oCkBAIC00NCwxMCArNDQsNiBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQpOwotI2Vu
ZGlmCi0KIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CkBAIC01OCw3ICs1NCwxMCBAQCBw
cml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1h
bmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5
cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CiAgICAgdW5zaWduZWQg
bV9vZmZzZXQ7CiAgICAgU3RyaW5nIG1fdGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggMGNiOGFkYy4uOGQ1ZWMyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ5LDE1ICs1MCw2IEBAIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQCiAgICAg
QVNTRVJUKG1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFt
X3JlZkNoaWxkLT5wYXJlbnROb2RlKCktPnJlbmRlcmVyKCkpOwogfQogCi0jaWYgSEFWRShBQ0NF
U1NJQklMSVRZKQotdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdl
IGNoYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQpCi17Ci0gICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0g
ICAgICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgY2hhbmdl
LCBvZmZzZXQsIHRleHQpOwotfQotI2VuZGlmCi0KIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvQXBwbHkoKQogewogICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IG1fcmVmQ2hpbGQt
PnBhcmVudE5vZGUoKTsKQEAgLTY3LDkgKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGls
ZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9p
bnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1faW5zZXJ0
Q2hpbGQtPm5vZGVWYWx1ZSgpLCAwKTsKLSNlbmRpZgorICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8
VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2lu
c2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNl
cnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+
bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9p
ZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTc3LDEwICs3MCwxMSBA
QCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgIGlmICghaXNF
ZGl0YWJsZU5vZGUoKm1faW5zZXJ0Q2hpbGQpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFs
bHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX2lu
c2VydENoaWxkLT5ub2RlVmFsdWUoKSwgMCk7Ci0jZW5kaWYKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9
IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4o
bV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRD
aGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAog
ICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTkzLDQg
Kzg3LDE0IEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5k
KEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7Cisg
ICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6dW5hcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVE
ZWxldGU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaAppbmRleCAzNzVkMDk5Li44ZDljNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC00MiwxMCArNDIsNiBA
QCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRC
ZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAotI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UsIGNvbnN0IFN0cmluZyYsIHVuc2ln
bmVkKTsKLSNlbmRpZgotCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNTMsNyAr
NDksMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5v
ZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5h
cHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGls
ZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZC5jcHAKaW5kZXggYWMwYzNjYi4uNjFhY2FiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0z
NSw0ICszNSw5IEBAIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlBhc3RlSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlCiB7CiB9CiAKK0FYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3Rl
OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGU3M2FmN2MuLjFkMDU1OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBA
IC00MCw2ICs0MCw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBQYXN0ZUluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMzQw
N2I0My4uYzQ3YTdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zNSw0
ICszNSw5IEBAIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzCiB7CiB9CiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJl
cGxhY2VBcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVQYXN0ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaAppbmRleCBhNGNmNDFlLi44ZTZhMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4
IDg5OGIwMTcuLmUwMTdiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJU
ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDQgKzM2LDggQEAgUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGUKIHsKIH0KIAordm9pZCBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXgg
ZGZkOGUzZS4uZDMwZmRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNyArMjYsNiBAQAog
I2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQyLDYgKzQxLDkgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggODdhNjJmOC4u
MzVhYzdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgogCkBAIC0zNyw0ICszOCwyOCBAQCBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZQogewogfQogCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisg
ICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBp
bmc6CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAg
ICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZSwg
dGV4dCwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQs
IHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVs
ZXRlZFRleHQsIHJlcGxhY2VBcHBseUVkaXRUeXBlKCksIHRleHQsIHBvc2l0aW9uKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKaW5kZXggZDlmZjViZS4uNDY5MTUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYs
NyArMjYsNiBAQAogI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAj
ZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAotI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQyLDExIEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAKKyAgICB2aXJ0dWFs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgeyBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ7IH0KKwogcHJpdmF0ZToK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSos
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKSBvdmVycmlkZTsKKwogICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggM2JmYjk3ZC4uM2U0MjIxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC0zNyw0ICszNyw5IEBAIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OlR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0CiB7CiB9
CiAKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFR5cGluZ0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZVR5cGluZzsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaAppbmRleCBiNDA3NDk4Li4wMGJkMTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzYs
OCArMzYsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKICAg
ICB9CisKIHByaXZhdGU6CiAgICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggMzBhNGRjZi4u
N2IyNDYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTM1LDQgKzM1LDkgQEAgVHlwaW5nSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4gaW4KIHsKIH0KIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5n
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGluZzsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmlu
ZGV4IGM0NDIxOTEuLjgxNzQ2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NS
ZWZQdHI8Tm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
YXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA3YWMzY2EzLi4zMGRkNTMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzUsNCArMzUsOSBAQCBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlwaW5nUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUAogewogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGlu
ZzsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCmluZGV4IDIzZmYzYTIuLjk2YzJlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKQEAgLTQxLDYgKzQxLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFR5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uNWJmYjY0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0NoYW5nZWQg
PSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3RyaW5nIHBy
ZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgYm9vbCB0
ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4dElzQ2hh
bmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYg
cmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBjYWNoZS0+
cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgVGFy
Z2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpbm5lclRl
eHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAg
aWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQogICAgICAg
ICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAm
JiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIo
KSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVJbnNl
cnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9zaXRpb246OlBvc2l0
aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHNl
dEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7Ci0tIAoyLjMuMiAoQXBwbGUg
R2l0LTU1KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250994</attachid>
            <date>2015-04-16 19:38:42 -0700</date>
            <delta_ts>2015-04-17 14:48:34 -0700</delta_ts>
            <desc>tests</desc>
            <filename>0004-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>31828</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA3OTQzMTFiNDliNzJiN2M1ZGU4ZmMzNmQ3YTg4YWZmNTdmNjRiNTA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAxMDo0ODo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVGVzdHMKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgNyArCiAuLi4vc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1l
eHBlY3RlZC50eHQgICAgICAgICB8ICA5NSArKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L3Nl
bGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbCAgIHwgMjE3ICsrKysrKysrKysrKysrKysrKysr
KwogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaCAgICAgICAgfCAg
IDEgKwogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0gICAgICAg
fCAgNTQgKysrKy0KIC4uLi9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0g
ICAgICAgIHwgIDE5ICstCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tICAgICAgICB8ICAxOSArLQogNyBmaWxlcyBjaGFuZ2VkLCA0MDIgaW5zZXJ0aW9ucygrKSwg
MTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGNkNTc0Zi4uZjhjYzBj
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEwIEBACisyMDE1LTA0LTE0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1
c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQyNzE5CisKKyAgICAgICAgVGVzdHMKKwogMjAxNS0wNC0xNSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9yZWFkYWJsZS1zdHJlYW0uaHRtbCBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zY2M5ZjIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw5NSBAQAorb25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC4KKwor
c2V2ZW4gZWlnaHQgbmluZS4KKworVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNh
dGlvbnMgZm9yIG1vdmVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBh
ZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJd
IGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3Jh
cGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJd
IGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0
bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU3
NTM3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDIxNyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IHJvbGU9InRleHRib3gi
IHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVlPgorPHA+b25lIHR3
byB0aHJlZS4gZm91ciBmaXZlIHNpeC48L3A+Cis8cD5zZXZlbiBlaWdodCBuaW5lLjwvcD4KKzwv
ZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBp
bmZvIGRhdGEuIik7CisKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSA9IDI7CisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA9IEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgKyAxOworCisgICAgdmFyIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA9IDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyArIDE7CisgICAg
dmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzID0gQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA9IEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzICsgMTsKKworICAgIHZhciBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciA9IDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyICsgMTsK
KyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lID0gQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlXb3JkICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSArIDE7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlTZW50ZW5jZSArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9j
dW1lbnQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCArIDI7CisKKyAgICB2
YXIgZ3JhbiA9IFsiY2hhcmFjdGVyIiwgIndvcmQiLCAic2VudGVuY2UiLCAibGluZSIsICJwYXJh
Z3JhcGgiLCAibGluZWJvdW5kYXJ5IiwgInNlbnRlbmNlYm91bmRhcnkiLCAicGFyYWdyYXBoYm91
bmRhcnkiLCAiZG9jdW1lbnRib3VuZGFyeSJdOworICAgIHZhciB3ZWJBcmVhID0gMDsKKyAgICB2
YXIgY291bnQgPSAwOworICAgIHZhciByZXN1bHRzID0gW107CisgICAgdmFyIHJlc3VsdEluZGV4
ID0gMDsKKyAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVz
ZXJJbmZvKSB7CisgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2VsZWN0ZWRUZXh0Q2hh
bmdlZCIpIHsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBpZiAodXNlckluZm8p
CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAgICAgICAgICAgIGlm
IChjb3VudCA9PSBncmFuLmxlbmd0aCAqIDQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRl
eCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBh
cmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsK
KworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwi
XSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCAr
PSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0g
MjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAod2luZG93LmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhh
bmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgdmFyIGFk
ZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmlj
YXRpb25DYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0
cnVlIik7CisKKyAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0
Ym94Iik7CisgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAvLyBUcmlnZ2VyIHNl
bGVjdGlvbiBjaGFuZ2VzLgorICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsK
KyAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgZm9yICh2YXIgaSBp
biBncmFuKSB7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgZ3Jhbltp
XSk7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIsIGdyYW5baV0pOwor
ICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5z
ZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJleHRlbmQiLCAi
Zm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICB9CisgICAgfQorCis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApp
bmRleCA1ZTA2YzM1Li5jNDY0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UuaApAQCAtNTgsNiArNTgsNyBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAtIChpZClh
dHRhY2htZW50VmlldzsKIC8vIFVzZWQgdG8gaW5mb3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlm
aWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2VkIGJ5IERSVC4KIC0gKHZvaWQpYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAo
dm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNh
dGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhS
ZWYpY29udmVydFBhdGhUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENH
UG9pbnQpY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBv
aW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZj
M2EuLjYzN2U5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0K
QEAgLTM4Nyw5ICszODcsNTkgQEAgc3RhdGljIEJPT0wgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnM7CiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlv
bjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlT
aG91bGRSZXBvc3ROb3RpZmljYXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9z
dGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3Rh
dGljIE5TQXJyYXkgKmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7
CisgICAgQVNTRVJUKFthcnJheSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAg
IE5TTXV0YWJsZUFycmF5ICptdXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAg
IGZvciAoTlNVSW50ZWdlciBpZHggPSAwOyBpZHggPCBbbXV0YWJsZUFycmF5IGNvdW50XTsgaWR4
KyspIHsKKyAgICAgICAgaWQgdmFsdWUgPSBtdXRhYmxlQXJyYXlbaWR4XTsKKyAgICAgICAgaWYg
KFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAg
IFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aWR4IHdpdGhPYmplY3Q6ZGljdGlv
bmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1
ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFy
cmF5IHJlcGxhY2VPYmplY3RBdEluZGV4OmlkeCB3aXRoT2JqZWN0OmFycmF5UmVtb3ZpbmdOb25K
U09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xh
c3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aWR4
XTsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitz
dGF0aWMgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNEaWN0
aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIEFTU0VSVChbZGljdGlvbmFyeSBpc0tpbmRPZkNs
YXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0
YWJsZURpY3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1N0
cmluZyAqa2V5IGluIGRpY3Rpb25hcnkpIHsKKyAgICAgICAgaWQgdmFsdWUgPSBkaWN0aW9uYXJ5
W2tleV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNs
YXNzXV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gZGljdGlvbmFyeVJl
bW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2lu
ZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5
W2tleV0gPSBhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBp
ZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rp
b25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBbbXV0YWJs
ZURpY3Rpb25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0
ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNE
aWN0aW9uYXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtOU0Rp
Y3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1lLCBA
Im5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24i
IG9iamVjdDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5vdGlmaWNh
dGlvbk5hbWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAgICAgIGlm
ICh1c2VySW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBbTlNKU09O
U2VyaWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNP
TlR5cGVzKHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVycm9yOm5p
bF07CisgICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAgICAgTlNT
dHJpbmcgKnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnVz
ZXJJbmZvRGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAgICAgICAg
ICAgaWYgKHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0gQHtAIm5v
dGlmaWNhdGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1c2VySW5m
b1N0cmluZ307CisgICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2VdOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaW5mbykKKyAgICAgICAgICAgIGlu
Zm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lfTsKKyAgICAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFt
ZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzppbmZvXTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCBhZGE2ODdhLi43YjAxN2JhIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkhhbmRsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMTIsMTYgKzExMiwyNyBAQAogICAgIGlmIChtX3Bs
YXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0aW9uIG9iamVj
dF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pTT05WYWx1ZSA9
IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25OYW1lIGNyZWF0
ZUpTU3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQg
PSBKU1ZhbHVlTWFrZVN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc05vdGlmaWNh
dGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0g
bmlsOworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZv
SlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVl
QXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29u
dGV4dF0sIGpzVXNlckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAobV9wbGF0
Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1c3Qg
Z2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNPYmpl
Y3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlv
bkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDApOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1l
bnQgYW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8vIExp
c3RlbmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNl
ckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1bWVu
dHNbMF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9
IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxi
YWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xv
YmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2Vy
SW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50
c1swXSA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbm90
aWZpY2F0aW9uIG9iamVjdF0pKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9u
TmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pTT05WYWx1ZUFy
Z3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFs
Q29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRz
LCAwKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLm1tCmluZGV4IDY1MWI1OTEuLjI4Y2EwM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjUsMTkgKzEy
NSwzMCBAQAogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAh
PSBbbm90aWZpY2F0aW9uIG9iamVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5n
ICp1c2VySW5mb0pTT05WYWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07
CisKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5G
cmFtZShXVFI6OkluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7CiAg
ICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRl
eHQobWFpbkZyYW1lKTsKIAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNh
dGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBK
U1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKGNv
bnRleHQsIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhd
KSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVl
KEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAg
dXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29u
dGV4dCwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRm
b3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBn
ZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVj
dENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZp
Y2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQs
IDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhl
IGVsZW1lbnQgYW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAg
IC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBh
bmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBh
cmd1bWVudHNbMF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50
c1sxXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFz
RnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25G
dW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24g
bmFtZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAg
ICAgICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkpKTsKICAgICAg
ICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1
bWVudHNbMl0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0
aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQotLSAK
Mi4zLjIgKEFwcGxlIEdpdC01NSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251051</attachid>
            <date>2015-04-17 14:48:01 -0700</date>
            <delta_ts>2015-04-20 13:55:23 -0700</delta_ts>
            <desc>selection change notifications</desc>
            <filename>0003-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>45594</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA4NjZkNzIyM2NiZGI5Zjc1ZWZmNDI1ZmE1M2EyOTU4OGE4YzAxM2RmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFdlZCwgMSBBcHIgMjAxNSAyMzozNjowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKU2VsZWN0aW9uIENoYW5nZSBOb3RpZmljYXRpb25zCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwogU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCAgICAgfCAxNDcgKysrKysr
KysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuaCAgICAgICB8ICA3OSArKysrKysrKysrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgICAgfCAgMTcgKystCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tICB8ICAgNSArCiAuLi4vV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tICB8ICA2NSArKysrKysrKysKIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICAgIHwgIDE0ICsrCiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggICAgICB8ICAgMyArCiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggICAgICAgICAgICAgICB8ICAgNiAr
CiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgICAgICAgICAgICAgICAgICB8ICAg
OCArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCAgICAgICAgICAgICAgICAgICAg
fCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwICAgICAg
ICAgIHwgMTE1ICsrKysrKysrKysrKysrLS0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaCAgICAgICAgICAgIHwgIDE3ICsrLQogLi4uL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCAgICAgfCAgIDEgKwogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgICAgICAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwICAgICAgICAgICAgfCAgIDIgKy0KIDE4IGZp
bGVzIGNoYW5nZWQsIDQ2MSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYWQyN2ViOS4uZGM4NTM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMyw2ICszLDEzIEBACiAgICAg
ICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CiAKKyAgICAgICAgUmljaGVy
IGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2Ug
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxh
Y2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlh
YmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxl
Y3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBm
aWVsZHMuCisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+
CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKwogICAgICAg
ICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9k
dWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBw
cyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIg
Y29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2Vz
IGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5h
bHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCiAKIDIwMTUtMDQtMTQgIERvdWcgUnVzc2Vs
bCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMzllYjQ0Li5lYzBjOWM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTg2NSw2ICs4NjUs
MTUzIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVj
dGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAorI2lmbmRl
ZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRhdGFMb2dGKCJV
bmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdDoKKyAgICAgICAgZGF0YUxvZ0YoIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGRhdGFMb2dG
KCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2dGKCJFeHRlbmQ6OiIpOworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGludGVudC5jaGFuZ2UpIHsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgICAgICBkYXRhTG9n
RigiVW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEZWxldGU6CisgICAgICAgICAgICBkYXRhTG9nRigiRGVsZXRlIik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAg
IGRhdGFMb2dGKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgZGF0YUxvZ0YoIkRpY3RhdGlvbklu
c2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVU
eXBpbmc6CisgICAgICAgICAgICBkYXRhTG9nRigiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRh
dGFMb2dGKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlUGFzdGU6CisgICAgICAgICAgICBkYXRhTG9nRigiUGFzdGUiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAg
ICAgICAgICBkYXRhTG9nRigiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBk
YXRhTG9nRigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGRhdGFMb2dGKCJFbmQ6
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBkYXRhTG9nRigiUHJldmlvdXM6OiIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dDoKKyAgICAgICAgICAgIGRhdGFMb2dGKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAg
ICAgICAgICBkYXRhTG9nRigiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAg
ICAgICAgICAgICAgIGRhdGFMb2dGKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgor
ICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nRigiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2dGKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAg
ICAgICAgICAgICAgICBkYXRhTG9nRigiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAg
ICAgICAgICAgICAgICBkYXRhTG9nRigiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAg
ICAgICAgICAgICAgIGRhdGFMb2dGKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nRigiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuc3luYykKKyAgICAgICAgZGF0
YUxvZ0YoIi1TeW5jIik7CisgICAgZGF0YUxvZ0YoIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBB
WE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2Rl
ICpub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7
CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iaikg
eworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iaiA9IG9i
ai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAg
cG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVj
dGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJB
TShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBz
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7
CiAgICAgaWYgKCFub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaAppbmRleCAxNTc0N2FiLi41OGIxMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTkxLDcgKzE5MSw5IEBAIHB1YmxpYzoKIAog
ICAgIGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKICAgICAgICAgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlVW5rbm93biwKLSAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorICAgICAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLAorICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKICAgICB9OwogCiAgICAgZW51bSBBWFRleHRFZGl0VHlwZSB7CkBAIC0yMDksNiArMjEx
LDc4IEBAIHB1YmxpYzoKICAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQogICAgIHZv
aWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUg
ZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBp
bnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CiAKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7CisgICAgICAg
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRGlzY29udGlndW91cworICAgIH07CisKKyAgICBlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duLAorICAg
ICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICAgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisg
ICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoLAorICAgICAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQsCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIC8v
IEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5nIHRoZSB3
aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rpb24gYnkg
c29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hvbGUgZG9j
dW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5vdGlmaWNhdGlvbi4K
KyAgICB9OworCisgICAgc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IGdyYW51bGFyaXR5OworICAgIH07CisKKyAgICBzdGF0aWMgQVhUZXh0U2VsZWN0aW9u
IFRleHRTZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdy
YW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duKQorICAgIHsKKyAg
ICAgICAgYXV0byBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKTsKKyAgICAgICAgc2VsZWN0
aW9uLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKKyAgICAgICAgc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gZ3JhbnVsYXJpdHk7CisgICAgICAgIHJldHVybiBzZWxlY3Rpb247CisgICAgfQorCisgICAg
c3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIHR5cGU7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIEFYVGV4dFNlbGVjdGlv
biBzZWxlY3Rpb247CisgICAgICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgICAg
IH07CisgICAgICAgIGJvb2wgc3luYzsKKworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSwgYm9vbCBz
eW5jID0gZmFsc2UpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgc2Vs
ZWN0aW9uKHNlbGVjdGlvbikKKyAgICAgICAgICAgICwgc3luYyhzeW5jKQorICAgICAgICB7IH0K
KworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2Up
CisgICAgICAgICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAg
ICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAgICAgICAgICwgc3luYyhmYWxzZSkKKyAgICAgICAg
eyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIHR5cGUsIGJvb2wgc3luYykKKyAgICAgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAg
ICAgLCBzZWxlY3Rpb24oQVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgICAgICAsIHN5bmMoc3lu
YykKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZCk7CisgICAgICAgIH0KKyAgICB9OworCisjaWZuZGVmIE5ERUJVRworICAgIHZv
aWQgc2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisK
KyAgICB2b2lkIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
PSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKKworICAgIC8vIFNlbGVjdGlvbiBjaGFuZ2UK
KyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisKICAgICBlbnVtIEFY
TG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKICAgICAgICAgQVhMb2Fk
aW5nUmVsb2FkZWQsCkBAIC0yMzIsNiArMzA2LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcGxh
dGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwg
Tm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAg
ICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKTsKICAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsK
ICNlbHNlCkBAIC0zNTksOSArNDM0LDExIEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVt
ZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQo
UmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3Jv
bGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQogI2lmIFBMQVRGT1JNKENPQ09BKQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikgeyB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5Ni4u
NmVmYWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE4IEBAIFBs
YWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdl
KCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0
UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRl
eHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmpl
Y3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAg
ICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNhc3Q8
UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7
CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5n
ZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBO
b2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwg
cmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAotICAgICAg
ICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBv
c2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBQb3NpdGlvbiBwb3Mx
ID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0
SW5BbmNob3IpOworICAgIFBvc2l0aW9uIHBvczIgPSBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFy
dCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcik7Cisg
ICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihw
b3MxLCBwb3MyLCBET1dOU1RSRUFNKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbih2aXNpYmxlU2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQocmFuZ2UubGVuZ3RoID4gMCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnVybCgpIGNvbnN0CkBAIC0xOTYwLDEzICsxOTY0LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNp
YmxlUG9zCiB7CiAgICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5k
IHRlbGwgdGhlIGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBt
b3ZlIHRvIHRoYXQgcG9zaXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQor
ICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRl
eHRTZWxlY3Rpb25JbnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
QVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkp
OwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5nZS5z
dGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJh
bmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRT
ZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwg
dHJ1ZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggNGUyNmI2Ny4uYWI3OTM0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9T
Lm1tCkBAIC05NSw2ICs5NSwxMSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmot
PndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0
cmluZ107CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmosIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IDU0MjIxMDMuLmY0NWJhMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQpAQCAtNDgsNiArNDgsMTAgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKICNlbmRpZgogCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCiAjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKICNlbmRp
ZgpAQCAtODAsNiArODQsMTAgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVs
ZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVjdGVkVGV4dE1h
cmtlclJhbmdlIgorI2VuZGlmCisKIC8vIFRoZSBzaW1wbGUgQ29jb2EgY2FsbHMgaW4gdGhpcyBm
aWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE5
Miw2ICsyMDAsNjMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVy
KCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOwogfQog
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlmICghb2Jq
KQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAg
IHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFi
bGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQu
c3luYykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0g
PSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtu
b3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5
cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsK
KyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7
CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqLT53cmFwcGVyKCkgdGV4dE1h
cmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVu
ZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9b
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1h
cmtlclJhbmdlOworICAgIH0KKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFwcGVyKCkp
CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdy
YXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEo
KTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2Vi
QXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZp
Y2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlm
aWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbd2ViQXJlYS0+d3JhcHBlcigpIGFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5v
dGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0
Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBi
eSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqLT53
cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlT
ZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAg
IFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwogc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxh
Y2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3Ry
aW5nICopc3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmNwcAppbmRleCBhZmVkMmI5Li4yNWVhYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMTY1LDYgKzE2NSwxMyBAQCB2
b2lkIEVkaXRDb21tYW5kQ29tcG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9k
ZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5SW50ZW50KCkKK3sKKyAgICBp
ZiAobV9jb21tYW5kcy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzW21fY29tbWFu
ZHMuc2l6ZSgpLTFdLT51bmFwcGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NS
ZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBw
bHkoKTsKQEAgLTE1NTQsNCArMTU2MSwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJs
b2NrUGxhY2Vob2xkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudChiclRhZywgZmFsc2UpOwogfQogCitBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQo
KQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFu
ZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPmFwcGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEVkaXRD
b21tYW5kOjphcHBseUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggZjhkZjlk
OS4uZWRlZTQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuaApAQCAtNjAsNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5v
ZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgdW5hcHBseUludGVudCgpOworCiBw
cml2YXRlOgogICAgIEVkaXRDb21tYW5kQ29tcG9zaXRpb24oRG9jdW1lbnQmLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzdGFydGluZ1NlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
ZW5kaW5nU2VsZWN0aW9uLCBFZGl0QWN0aW9uKTsKIApAQCAtODgsNiArOTAsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5k
aWNhdG9yKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6
CiAgICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCBmNWI4NmMzLi4wMWEwMzA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC02MCw2ICs2MCw4IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIHsgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7IH07CisKIHByb3RlY3RlZDoKICAgICBl
eHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50
JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKQEAg
LTkxLDYgKzkzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFu
ZChIYXNoU2V0PE5vZGUqPiYpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0
dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGFwcGx5RWRpdFR5cGUo
KSk7IH0KKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IHVuYXBwbHlJbnRlbnQoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCh1bmFwcGx5RWRpdFR5cGUoKSk7IH0KKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0
IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkgOiBFZGl0Q29tbWFuZChkb2N1
bWVudCkgeyB9CiAKQEAgLTEwMiw2ICsxMDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBB
WE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKIAorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5k
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAppbmRleCBhZWJkYzEzLi4zNDcwNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCkBAIC0xMDA1LDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFz
c1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIg
dGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3Nl
IHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRT
ZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJh
bWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUludGVudCgpKTsK
ICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0
YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRh
YmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAg
LTEwMzYsNyArMTAzNiw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQ
dHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJv
bHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRp
dGFibGVFbGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21k
LT5zdGFydGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQo
bmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVT
ZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUludGVu
dCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY21kLT5zdGFy
dGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50
KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMjg1NCw3ICsy
ODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQog
ICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNz
aW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAg
RnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8g
SWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBz
ZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3
U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODY2LDcgKzI4NjYsNyBAQCB2b2lkIEVk
aXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUg
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9u
cyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5n
ZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0
aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9u
cyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNo
YW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlv
biB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1
cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCmluZGV4IDY2ZGIwMjAuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaApAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlv
bk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9p
ZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0g
ICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7Cisg
ICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhP
YmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVy
IHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVk
aXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCmluZGV4IDU3NDUxNzAuLmI0YzcyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxl
Y3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZv
aWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVz
ZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsK
LSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwg
cG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVj
dGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dl
cmVkKSwgYWxpZ24pOworICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVw
RXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2Vs
ZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJU
cmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQp
CkBAIC0xNzAsNyArMTY5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxp
ZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW8KICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlk
YXRpb24oYmFzZSwgZXh0ZW50KTsKICAgICBuZXdTZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25hbChz
ZWxlY3Rpb25IYXNEaXJlY3Rpb24pOwotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RT
ZXRGb2N1cykpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rp
b24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykp
KTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpzZXRDYXJldFBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAh
c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVs
YXJpdHkpOworICAgIAorICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
eworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVu
dCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRT
ZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGln
dW91cykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQg
PSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2Vs
ZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0
eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGlu
Z0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlX
aXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWdu
T25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsy
ODQsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdB
cHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2Vs
ZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAg
ICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1
bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1f
ZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewot
ICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAg
ICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFu
dWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0
aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2Rp
ZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZG
dWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBz
aW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95
ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyAr
MzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5n
QXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRT
ZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBw
ZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAg
IHJldHVybjsKQEAgLTM0MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAg
IGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25C
eVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2
aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFs
U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkK
IHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzc5LDggKzM4Nyw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbigpCiAKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0
ZW50KTsKICAgICB9Ci0KLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwog
CiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpKQogICAg
ICAgICBjbGllbnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpOwpAQCAtMTAy
MSw3ICsxMDI4LDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92
aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0Jv
dW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVs
YXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5
IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQorQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFs
dGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCit7CisgICAgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29s
IGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRp
b25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAg
ICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAg
ICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVudC50
eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
OworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFy
aXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBT
ZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0g
QVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRh
cnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hl
OjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJv
b2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2Fz
ZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBj
YXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExp
bmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1l
bnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0Ogor
ICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cyA6IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBj
YXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5k
aWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVV
c2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc3LDYgKzExNTcsMTEgQEAgYm9v
bCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJl
Y3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBB
bHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAg
ICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVu
dChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUg
b2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdh
dGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUg
aXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9z
aXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJl
CkBAIC0xNzEwLDggKzE3OTUsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkK
IAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNl
bGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxk
Q2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQp
OworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAg
ICBhdXRvIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmpl
Y3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzLCBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUFsbCkpOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0K
IAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVB
ZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUxMCw3IEBA
IFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5n
Q2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVj
dGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBh
bmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24u
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwg
QWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgp
KTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAK
ICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgp
KTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjNj
MzE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlv
bl9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxl
LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEz
MSw2ICsxMzIsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5n
IHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8
IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9u
SW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZy
YW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBj
b25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNl
dEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxl
Y3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJz
b3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0
eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRT
ZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3Jv
bGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwg
Ym9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNF
LCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAg
dm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBk
YXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25X
aXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxl
Y3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAt
Mjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBv
aW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSgpOworICAgIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRl
eHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdy
YW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNl
bmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRl
VGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxp
bmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5n
U3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lu
bGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggNDY5MTUzOC4uNzdjNDI2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaApAQCAtNDMsNiArNDMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRF
ZGl0VHlwZSByZXBsYWNlQXBwbHlFZGl0VHlwZSgpIHsgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlSW5zZXJ0OyB9CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCBhcHBseUludGVudCgpIG92ZXJyaWRlIHsgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJlcGxhY2VBcHBseUVkaXRUeXBlKCkpOyB9
CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKE5vZGUqLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uZTY5NWE3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25B
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRr
LmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFu
Z2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICgh
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRl
eCA5YmRlZTFjLi4wN2UyYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
Yy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9G
cmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNj
ZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBM
QVRGT1JNKElPUykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFt
ZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgp
ICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAg
ICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVj
YXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFu
Z2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4
dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5v
ZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBjOGJlZTllLi4zY2U4ZGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMjEwLDcgKzMyMTAsNyBAQCBz
dGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxl
Y3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBzZWxlY3Rpb24uc2V0
U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRs
ZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBl
dmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2MwN2Zl
Li5iZmQxZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0z
NDEsNyArMzQxLDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1l
bnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICAgICAgUG9zaXRpb24g
cG9zaXRpb24gPSBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZWxlbWVudC5nZXQoKSk7CiAg
ICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKHBvc2l0aW9uLCBwb3NpdGlvbiwg
RE9XTlNUUkVBTSk7CiAgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLCBBWE9iamVjdENhY2hlOjpUZXh0U2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMpKSk7CiAgICAgfQogCiAgICAgZWxlbWVudC0+
Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7Ci0tIAoyLjMuMiAoQXBwbGUgR2l0LTU1KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251052</attachid>
            <date>2015-04-17 14:48:34 -0700</date>
            <delta_ts>2015-04-20 13:55:50 -0700</delta_ts>
            <desc>tests</desc>
            <filename>0004-rdar-problem-20169058-AX-richer-text-change-notifica.patch</filename>
            <type>text/plain</type>
            <size>44427</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">RnJvbSA5YjViODkyNjllOGFkNzc5OWRmZTVhYTIwMWRjMTg2MTMyOWExOTFiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMiBBcHIgMjAxNSAxMDo0ODo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxyZGFy
Oi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZQogbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQoKVGVzdHMKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgNyArCiAuLi4vaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
LWV4cGVjdGVkLnR4dCAgICAgICB8ICAyMCArKwogLi4uL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVw
bGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwgfCAgODMgKysrKysrKysKIC4uLi9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCAgICAgICAgIHwgIDk1ICsrKysrKysrKwogLi4uL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sICAgfCAyMTcgKysrKysr
KysrKysrKysrKysrKysrCiAuLi4vdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCAg
ICAgICAgICAgICB8ICAyOSArKysKIC4uLi9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2Ut
dXNlcmluZm8uaHRtbCAgIHwgIDk3ICsrKysrKysrKwogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckJhc2UuaCAgICAgICAgfCAgIDEgKwogLi4uL21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UubW0gICAgICAgfCAgNTQgKysrKy0KIC4uLi9tYWMvQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gICAgICAgIHwgIDE5ICstCiAuLi4vbWFjL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tICAgICAgICB8ICAxOSArLQogMTEgZmls
ZXMgY2hhbmdlZCwgNjMxIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJl
cGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNl
cmluZm8uaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVj
dGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRmMjFiNmYuLjAw
OGNkYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMCBAQAorMjAxNS0wNC0xNyAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjcxOQorCisgICAgICAgIFRlc3RzCisKIDIwMTUtMDQtMTcgIEJldGggRGFraW4gIDxi
ZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91bGQgZ28g
dGhyb3VnaCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29kZSBwYXRocwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhNmY4MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1
ZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorICAKK1RoaXMgdGVzdHMg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcg
dGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxl
dGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5w
dXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTBkZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVz
ZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IGlkPSJib2R5Ij4KKworICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InNlY3VyZXZhbHVl
dGVzdCI+CisKKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZhbHVldGVzdCI+CisKKyAgICA8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAg
ICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNl
ciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxk
LiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAg
ICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRp
dFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisKKyAgICAgICAgdmFyIHdl
YkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9
IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3Rp
ZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBp
ZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBj
b3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAg
ICAgICAgICAgaWYgKGNvdW50ID09IDIpIHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRF
ZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVc
Il0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1b
XCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1b
XCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAgICAg
ICAgICAgICAgICAgIC8vIFBhc3N3b3JkIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBpbnNlcnQgb25s
eSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3aWxsIGJlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFs
dWVcIl0iLCAiXCIgXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVc
Il0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJB
cmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZXR2YWx1ZSgpIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIxIjsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNldHNlY3VyZXZhbHVlKCkgeworICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0g
IjEiOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVl
dGVzdCIpLnZhbHVlID0gIjAiOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vj
dXJldmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxl
RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAg
ICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWRO
b3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICBzZXR2YWx1ZSgpOworCisgICAg
ICAgICAgICBzZXRzZWN1cmV2YWx1ZSgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmRkMjJmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4LgorCitzZXZlbiBlaWdodCBu
aW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGlu
Zm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3Rp
ZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5l
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlE
b2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2Vy
aW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRl
eD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUu
IGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKwor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYg
aWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRh
LiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAyOwor
ICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlICsgMTsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgKyAxOworICAgIHZhciBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgPSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyArIDE7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlDaGFyYWN0ZXIgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciArIDE7CisgICAgdmFy
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ug
PSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgKyAxOworICAgIHZhciBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2UgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50ID0g
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggKyAyOworCisgICAgdmFyIGdyYW4g
PSBbImNoYXJhY3RlciIsICJ3b3JkIiwgInNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwg
ImxpbmVib3VuZGFyeSIsICJzZW50ZW5jZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5Iiwg
ImRvY3VtZW50Ym91bmRhcnkiXTsKKyAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50
ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7Cisg
ICAgZnVuY3Rpb24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykg
eworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7
CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAg
ICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQg
PT0gZ3Jhbi5sZW5ndGggKiA0KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFj
dGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJ
bmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJ
bmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1
bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5l
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCAr
PSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1l
bnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
Iik7CisKKyAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVy
KCk7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nl
c3NpYmlsaXR5KHRydWUpOworCisgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlm
aWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2Fs
bGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwor
CisgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwor
ICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24g
Y2hhbmdlcy4KKyAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAg
IHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3Jhbikg
eworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAg
ICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAg
fQorICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRp
b24odGV4dGJveCwgMCk7CisgICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQi
LCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwOTBiNjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFu
Z2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKzAyMzQ1Njc4OTAKK1Ro
aXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRy
dWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVDdXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFu
Z2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdl
VmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENo
YW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0g
aXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VW
YWx1ZSJdIGlzICIyMzQ1Njc4OTAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRD
aGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUluc2Vy
dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5
cGUiXSBpcyBBWFRleHRFZGl0VHlwZVR5cGluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENo
YW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFu
Z2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZURlbGV0ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5n
ZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
dmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMzBiMTUxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsOTcg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2VkaXRpbmcvZWRpdGlu
Zy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKyAgICA8ZGl2IHJv
bGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVl
PjAxMjM0NTY3ODkwPC9kaXY+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rp
dj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuIik7CisKKyAgICAgICAgdmFy
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQgPSAxOworCisgICAgICAgIHZhciBBWFRleHRFZGl0
VHlwZURlbGV0ZSA9IDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZUluc2VydCA9IEFYVGV4
dEVkaXRUeXBlRGVsZXRlICsgMTsKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlVHlwaW5nID0g
QVhUZXh0RWRpdFR5cGVJbnNlcnQgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb24gPSBBWFRleHRFZGl0VHlwZVR5cGluZyArIDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0
VHlwZUN1dCA9IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uICsgMQorICAgICAgICB2YXIgQVhUZXh0
RWRpdFR5cGVQYXN0ZSA9IEFYVGV4dEVkaXRUeXBlQ3V0ICsgMTsKKworICAgICAgICB2YXIgd2Vi
QXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgIHZhciByZXN1bHRzID0g
W107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIG5vdGlm
aWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlckluZm8pIHsKKyAgICAgICAgICAgIGlm
IChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikgeworICAgICAgICAgICAgICAgIGNv
dW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAgICAgICAg
ICAgICAgICBpZiAoY291bnQgPT0gNikgeworCisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENo
YW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVk
aXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlQ3V0Iik7CisKKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0i
LCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAi
QVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRl
eCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0
VHlwZUluc2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAg
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5n
ZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMjM0NTY3ODkwXCIiKTsK
KyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5
cGVJbnNlcnQiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VW
YWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VW
YWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZVR5cGluZyIp
OworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVsw
XVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVsw
XVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAgICAg
ICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRv
dy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3ZWJB
cmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDAp
OworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmlj
YXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91bGRC
ZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICB2YXIgdGV4dGJv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICB0ZXh0
Ym94LmZvY3VzKCk7CisKKyAgICAgICAgICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRleHRi
b3gsIDApOworICAgICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0ZXJD
b21tYW5kKCk7CisgICAgICAgICAgICBjdXRDb21tYW5kKCk7CisgICAgICAgICAgICBleGVjRXh0
ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIHBhc3Rl
Q29tbWFuZCgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiMSIpOworICAgICAg
ICAgICAgZGVsZXRlQ29tbWFuZCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5o
CmluZGV4IDVlMDZjMzUuLmM0NjQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIC0gKGlk
KWF0dGFjaG1lbnRWaWV3OwogLy8gVXNlZCB0byBpbmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90
aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgRFJULgogLSAodm9pZClhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWU7Cist
ICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZp
Y2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm87CiAKIC0gKENHUGF0
aFJlZiljb252ZXJ0UGF0aFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6OlBhdGggJilwYXRoOwogLSAo
Q0dQb2ludCljb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpGbG9hdFBvaW50ICYp
cG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KaW5kZXggNWRk
ZmMzYS4uNjM3ZTkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5t
bQpAQCAtMzg3LDkgKzM4Nyw1OSBAQCBzdGF0aWMgQk9PTCBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9uczsKIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUKIHsKKyAgICBpZiAoYWNjZXNzaWJpbGl0
eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpCisgICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzpuaWxdOworfQorCitz
dGF0aWMgTlNBcnJheSAqYXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyhOU0FycmF5ICphcnJheSkK
K3sKKyAgICBBU1NFUlQoW2FycmF5IGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSk7Cisg
ICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJheSA9IFthcnJheSBtdXRhYmxlQ29weV07Cisg
ICAgZm9yIChOU1VJbnRlZ2VyIGlkeCA9IDA7IGlkeCA8IFttdXRhYmxlQXJyYXkgY291bnRdOyBp
ZHgrKykgeworICAgICAgICBpZCB2YWx1ZSA9IG11dGFibGVBcnJheVtpZHhdOworICAgICAgICBp
ZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAg
ICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppZHggd2l0aE9iamVjdDpkaWN0
aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoW3Zh
bHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxl
QXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aWR4IHdpdGhPYmplY3Q6YXJyYXlSZW1vdmluZ05v
bkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNs
YXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBj
bGFzc11dKSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVtb3ZlT2JqZWN0QXRJbmRleDpp
ZHhdOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVBcnJheSBhdXRvcmVsZWFzZV07Cit9CisK
K3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyhOU0Rp
Y3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAgQVNTRVJUKFtkaWN0aW9uYXJ5IGlzS2luZE9m
Q2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpt
dXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5T
U3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgeworICAgICAgICBpZCB2YWx1ZSA9IGRpY3Rpb25h
cnlba2V5XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkg
Y2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0gPSBkaWN0aW9uYXJ5
UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICAgICAgbXV0YWJsZURpY3Rpb25h
cnlba2V5XSA9IGFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOworICAgICAgICBlbHNl
IGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAgIFttdXRhYmxlRGlj
dGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAgICB9CisgICAgcmV0dXJuIFttdXRh
YmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihO
U0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJbmZvID0gW05T
RGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUs
IEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlv
biIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOworICAgICAgICBBU1NFUlQobm90aWZp
Y2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsKKyAgICAgICAg
aWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0YSA9IFtOU0pT
T05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25K
U09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldyaXRpbmdPcHRpb25zKTAgZXJyb3I6
bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEpIHsKKyAgICAgICAgICAgICAgICBO
U1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6
dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKKyAgICAgICAgICAg
ICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAgICAgICAgICAgIGluZm8gPSBAe0Ai
bm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lLCBAInVzZXJJbmZvIiA6IHVzZXJJ
bmZvU3RyaW5nfTsKKyAgICAgICAgICAgICAgICBbdXNlckluZm9TdHJpbmcgcmVsZWFzZV07Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbmZvKQorICAgICAgICAgICAg
aW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlvbk5hbWV9OworICAgICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25O
YW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOmluZm9dOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLjdiMDE3YmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTExMiwxNiArMTEyLDI3IEBACiAgICAgaWYgKG1f
cGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2Jq
ZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVl
ID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3Jl
YXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90aWZp
Y2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQg
PSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlcklu
Zm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFs
dWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBnbG9iYWxD
b250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3Bs
YXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVz
dCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09i
amVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0
aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxl
bWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8g
TGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1
c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3Vt
ZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFd
ID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5j
dGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2Fs
bGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBn
bG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVz
ZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1l
bnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxl
bWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtu
b3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRp
b25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVl
QXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9i
YWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVu
dHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwxOSAr
MTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50
ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJp
bmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8i
XTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFp
bkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsK
ICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29u
dGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZp
Y2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAg
IEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmco
Y29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0
aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFs
dWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAg
ICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhj
b250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxh
dGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0
IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2Jq
ZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3Rp
ZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0
aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAg
ICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1l
IGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAg
IGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1l
bnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxs
QXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlv
bkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlv
biBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAg
ICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwogICAg
ICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFy
Z3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmlj
YXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9Ci0t
IAoyLjMuMiAoQXBwbGUgR2l0LTU1KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251054</attachid>
            <date>2015-04-17 14:51:10 -0700</date>
            <delta_ts>2015-04-20 13:59:26 -0700</delta_ts>
            <desc>Full Patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>282094</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGQ5MDE2YThkOTgzZGYwODIyNjk3MzhhNTZmN2ExYzZlNGQ3NGI1MjcKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgVGh1IEFwciA5IDEzOjE4
OjMyIDIwMTUgLTA3MDAKCiAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
KDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MTkKICAgIAogICAgTmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4
dCB0aGF0IGFjY2Vzc2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFu
ZCBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuCiAgICAKICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFu
ZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBz
ZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRmMjFiNmYuLmE2
ZDAyNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0wNC0xNyAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRl
eHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBh
bmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lu
cHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8u
aHRtbDogQWRkZWQuCisKIDIwMTUtMDQtMTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91bGQgZ28gdGhyb3VnaCBub3JtYWwg
bW91c2UgZXZlbnQgaGFuZGxpbmcgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0
LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZWZhNmY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9m
IGFuIGlucHV0IGZpZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBh
ZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJd
IGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzFdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlz
ICIgIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1b
IkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVl
LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9p
bnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kZTBkZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAg
LTAsMCArMSw4MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRp
dGluZy9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKwor
ICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZhbHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3Rp
ZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hl
biByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAg
IHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0
RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBB
WFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAg
ICAgICB2YXIgY291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2
YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFj
ayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9u
ID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAg
ICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNv
dW50ID09IDIpIHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIs
ICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJB
WFRleHRFZGl0VHlwZURlbGV0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VW
YWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlw
ZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8v
IFBhc3N3b3JkIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVl
IHN0cmluZyB3aWxsIGJlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQi
KTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIi
KTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRp
dFR5cGVJbnNlcnQiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlm
aWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBzZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIHNldHNlY3VyZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9
CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0g
IjAiOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0Iiku
dmFsdWUgPSAiMCI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3Np
YmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVk
Tm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRp
b25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAi
dHJ1ZSIpOworCisgICAgICAgICAgICBzZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1
cmV2YWx1ZSgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUg
dHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRl
c3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1
ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24i
XSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUi
XSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZwor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBo
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IGlkPSJib2R5Ij4KKworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94
IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXgu
PC9wPgorPHA+c2V2ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlv
bnMiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFy
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlICsgMTsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmcgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91cyA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFy
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cyArIDE7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0
ZXIgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7Cisg
ICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUxpbmUgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVBhcmFncmFwaCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAg
IHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGggKyAyOworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIs
ICJ3b3JkIiwgInNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIs
ICJzZW50ZW5jZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRh
cnkiXTsKKyAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIg
cmVzdWx0cyA9IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90
aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAo
bm90aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBj
b3VudCsrOworICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3Vs
dHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGgg
KiA0KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlc
Il0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsK
KworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwi
XSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJ
bmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgg
Kz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsK
KworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAg
ICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikg
eworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAg
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUp
OworCisgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVu
dC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFy
ZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAg
ICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRi
b3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94
LmZvY3VzKCk7CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAg
ICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24o
dGV4dGJveCwgMCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAg
cy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2Rp
ZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3Ig
KHZhciBpIGluIGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7
CisgICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAg
ICAgICAgfQorICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5n
ZS11c2VyaW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwOTBiNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVDdXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIx
IgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFY
VGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBd
WyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5
cGVJbnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIyMzQ1
Njc4OTAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUluc2VydAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRF
ZGl0VHlwZVR5cGluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMg
IjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsi
QVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZURlbGV0ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1s
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVz
ZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBiMTUxNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKyAgICA8ZGl2IHJvbGU9InRleHRib3giIHRh
YmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVlPjAxMjM0NTY3ODkwPC9k
aXY+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3Jp
cHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlm
aWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuIik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQgPSAxOworCisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7
CisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRl
ICsgMTsKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlVHlwaW5nID0gQVhUZXh0RWRpdFR5cGVJ
bnNlcnQgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gPSBBWFRleHRF
ZGl0VHlwZVR5cGluZyArIDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZUN1dCA9IEFYVGV4
dEVkaXRUeXBlRGljdGF0aW9uICsgMQorICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVQYXN0ZSA9
IEFYVGV4dEVkaXRUeXBlQ3V0ICsgMTsKKworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAg
ICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZh
ciByZXN1bHRJbmRleCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNr
KG5vdGlmaWNhdGlvbiwgdXNlckluZm8pIHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24g
PT0gIkFYVmFsdWVDaGFuZ2VkIikgeworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAg
ICAgICAgICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291
bnQgPT0gNikgeworCisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwg
IlwiMFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFY
VGV4dEVkaXRUeXBlQ3V0Iik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsK
KyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVE
ZWxldGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOwor
CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtc
IkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKwor
ICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJB
WFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZVR5cGluZyIpOworCisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5n
ZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRU
eXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAgICAgICAgICAgICAgICAgICAg
d2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAg
dmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihu
b3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmlj
YXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICB2YXIgdGV4dGJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisK
KyAgICAgICAgICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRleHRib3gsIDApOworICAgICAg
ICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0ZXJDb21tYW5kKCk7CisgICAg
ICAgICAgICBjdXRDb21tYW5kKCk7CisgICAgICAgICAgICBleGVjRXh0ZW5kU2VsZWN0aW9uUmln
aHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIHBhc3RlQ29tbWFuZCgpOworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiMSIpOworICAgICAgICAgICAgZGVsZXRlQ29t
bWFuZCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGE2OTA1MTUuLjdiM2RmZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNDgzLDEwICsxNDgzLDE0IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAorICAg
IGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RpY3RhdGlvbkFsdGVybmF0aXZlLmNwcAogICAgIGVkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCisgICAgZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL0VkaXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAg
IGVkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTUwNSwxMSArMTUwOSwxNSBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAKICAgICBlZGl0aW5nL01vdmVT
ZWxlY3Rpb25Db21tYW5kLmNwcAorICAgIGVkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAKKyAgICBlZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwCiAgICAgZWRp
dGluZy9SZW1vdmVGb3JtYXRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5j
cHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApAQCAtMTUyNSw2ICsxNTMzLDEwIEBA
IHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1RleHRJbnNlcnRpb25CYXNlQ29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKICAgICBlZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwCisgICAgZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAorICAgIGVkaXRpbmcvVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisgICAgZWRp
dGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2li
bGVTZWxlY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjc4ZDQ2Mi4uYjM5YWFjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyNSBAQAorMjAxNS0wNC0xNyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBh
Y2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5
IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4
dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVu
dCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVs
ZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2Yg
Y2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFu
IG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Np
c3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBj
aGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVj
dGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBUZXN0czogcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKKyAg
ICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2Ut
dXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
dmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RD
YWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNo
b3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVj
dGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVk
aXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dv
cmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNl
dFNlbGVjdGVkVGV4dFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246XSk6CisgICAgICAgIChhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAg
ICAgICAgKGRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyk6CisgICAgICAgICgtW1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOnVzZXJJbmZvOl0pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAgICAgICogZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGlu
ZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAq
IGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9zaXRp
b246OnVuYXBwbHlJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Omluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRG
cm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFwaHMpOgorICAg
ICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXRE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgu
CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUp
OgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0
aG91dE5ld2xpbmVzKToKKyAgICAgICAgKiBlZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVk
aXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAg
ICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVF
ZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0
Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRp
dGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmFwcGx5
SW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjp1bmFwcGx5SW50
ZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVk
RWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8pOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFyeSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGVk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2Vs
ZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAg
KiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgICogZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1Bhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAqIGVkaXRp
bmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUGFz
dGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6cmVwbGFjZUFwcGx5RWRpdFR5cGUpOgorICAgICAgICAq
IGVkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVkaXRUeXBlKToK
KyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5l
cyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6VHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjph
cHBseUVkaXRUeXBlKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQp
OgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmguCisg
ICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBlZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgor
ICAgICAgICAoV2ViQ29yZTo6VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpyZXBsYWNlQXBwbHlF
ZGl0VHlwZSk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvYXRrL0Zy
YW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBlZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZSk6CisgICAgICAgICog
cGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SW5pdGlhbEtleWJv
YXJkU2VsZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRl
cik6CisKIDIwMTUtMDQtMTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91bGQgZ28gdGhyb3VnaCBub3JtYWwgbW91c2UgZXZl
bnQgaGFuZGxpbmcgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZDA3N2EwMi4uYTJjMWM1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNDM2Niw2ICsxNDM2
NiwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KQEAgLTE0NDIyLDYgKzE0NDUwLDM0IEBACiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1
ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdT
dWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDcwMyw2ICsxNDc1
OSwzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTQ3NzMsNiArMTQ4NTcsMzQgQEAKICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VO
b2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CkBAIC0xNDk5Nyw2ICsxNTEwOSw2MiBAQAogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5j
cHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmxpbmtDb21tYW5kLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMTA0MSwxMCArMjEy
MDksMTQgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1
b3RlQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21w
b3NpdGVFZGl0Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xDcmVhdGVMaW5rQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlv
bkFsdGVybmF0aXZlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0QWN0aW9uLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRDb21tYW5kLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRpbmdCZWhhdmlvci5oIiAvPgpAQCAtMjEwNzEs
MTAgKzIxMjQzLDE0IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXE1lcmdl
SWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
IC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24u
aCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0
ZUNvbW1hbmQuaCIgLz4KQEAgLTIxMDkzLDYgKzIxMjY5LDEwIEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFRleHRJdGVyYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUZXh0SXRlcmF0b3JCZWhhdmlvci5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdDb21tYW5kLmgiIC8+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9zaXRpb24uaCIgLz4KQEAgLTIxNzU1LDQg
KzIxOTM1LDQgQEAKICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAg
ICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xt
YXNtLnRhcmdldHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGU0NDYwODcuLjU0
ZWNiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTM0MzgsNiArMzQzOCwxMiBAQAogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+
CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0zNDUwLDYgKzM0NTYsMTIgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
RGljdGF0aW9uQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3Rh
dGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXEVkaXRDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM1MTMsNiArMzUyNSwxMiBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlQ1NT
UHJvcGVydHlDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTM1MjgsNiArMzU0NiwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAg
IDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21t
YW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KQEAgLTM1NzYsNiArMzYwMCwxOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xUeXBpbmdDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlw
aW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5n
PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0NvbW1hbmQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTA1NjYs
NiArMTA2MDIsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRl
TGlua0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
SW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQ3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNTc4LDYgKzEwNjIwLDEyIEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0QWN0aW9uLmgiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDY1Niw2ICsxMDcwNCwx
MiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xNb3ZlU2VsZWN0aW9uQ29t
bWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xQYXN0ZUluc2VydE5vZGVCZWZv
cmVDb21tYW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFBhc3RlUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDY2OCw2ICsxMDcyMiwxMiBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiPgogICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkBAIC0xMDcyMiw2ICsxMDc4MiwxOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xUeXBpbmdDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVk
aXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbi5oIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xVbmRvU3RlcC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTU0NTUsNCArMTU1MjcsNCBAQAog
ICAgICAgPEZpbHRlcj5wbGF0Zm9ybVx3aW48L0ZpbHRlcj4KICAgICA8L01BU00+CiAgIDwvSXRl
bUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVj
dD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1MTEwZTBiLi5jMjAyOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Mzc0LDEyICs2Mzc0LDIyIEBACiAJCUY0
Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Nzg3NTUzMTk5ODNB
RkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLzsgfTsKIAkJRjQ3QTVF
M0UxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgz
MTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHls
ZVNjcm9sbFNuYXBQb2ludHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ3QTVFM0ExOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBv
aW50cy5jcHAgKi87IH07CisJCUY1MDYzQzFDMUFCNzU2RDUwMDlBQjU1NiAvKiBEaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTA2M0MxRDFBQjc1NkQ4MDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2M0MxQTFBQjc1NkNDMDA5QUI1
NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJCUY1
MDY2NEY3MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA2NjRGNTE1N0Y1MkRDMDBBQzIy
NkYgLyogRm9ybUNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNTA2NjRGODE1N0Y1MkRDMDBBQzIy
NkYgLyogRm9ybUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1MDY2NEY2MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5o
ICovOyB9OwogCQlGNTEzQTNFQTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9
OwogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0NUYw
MDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OworCQlGNTQzRDVGRDFBQ0IwOURBMDA2
MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQjFBQ0IwOURBMDA2MzZENUQg
LyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNENUZFMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGQzFBQ0IwOURBMDA2
MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTQzRDYw
MTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDVGRjFBQ0IwQzgz
MDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NDNE
NjAyMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQzRDYwMDFBQ0IwQzgz
MDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovOyB9OwogCQlGNTQ0Rjc4
ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8q
IFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8q
IFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsg
fTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdB
RCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERB
QTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9
OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUx
MjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyog
QmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8q
IEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNw
cCAqLzsgfTsKQEAgLTY0MjksMTIgKzY0MzksMjYgQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VG
MjY5IC8qIFVSTElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU1QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICov
OyB9OwogCQlGNTVCM0RERjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFG
MTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYx
MkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0
VHlwZS5oICovOyB9OworCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTVEMEJENTFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NUQwQkQ4MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oICovOyB9OworCQlGNTc0REVEQTFBQ0EyRUIwMDA1OTgyRTQgLyog
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTc0REVEODFBQ0EyMjhEMDA1OTgyRTQg
LyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oICovOyB9OworCQlGNTg3MkE3NDFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU4NzJBNzUxQUI3NUEyQjAwODBGNDU3IC8qIERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTg3MkE3MzFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjU5NzNERTAxNUNGQjIwMzAwMjdGODA0IC8qIExvY2Fs
ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5
NzNEREUxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5oICovOyB9OwogCQlGNTk3M0RFMTE1
Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1h
Yy5tbSAqLzsgfTsKIAkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlDOTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmNwcCAqLzsgfTsKIAkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjU5Qzk1RkUxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
ICovOyB9OworCQlGNTlGQTQ2QzFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTlGQTQ2QTFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1OUZBNDZEMUFDQ0IzQzAwMDYyMzA3QSAvKiBUeXBp
bmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2QjFBQ0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMw
N0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdB
IC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuaCAqLzsgfTsKIAkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1QTE1NDI1MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5j
cHAgKi87IH07CiAJCUY1QTE1NDI4MTI3OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2Fn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0
MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggKi87IH07CisJCUY1QTUy
OTVEMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NUE1Mjk1QjFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwICovOyB9OworCQlGNUE1Mjk1RTFBQ0NFOEUwMDA1MTJCMTEgLyogVHlwaW5n
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBp
bmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OworCQlGNUE1Mjk2MTFB
Q0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBNTI5NUYxQUNDRUE3
MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUE1Mjk2
MDFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLzsg
fTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDcw
RkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMw
NDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRDgwRkZDQTdDRTAwODM5
RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKIAkJRjVDMDQxRTMwRkZDQTk2RDAw
ODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MURFMEZGQ0E5NkQwMDgzOUQ0QSAvKiBET01I
VE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CkBAIC0xMzk5NCw2ICsxNDAxOCw4IEBACiAJCUY0
Nzg3NTUzMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbFNuYXBBbmltYXRvclN0
YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDdBNUUzQTE5NUI4QzhBMDA0
ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHA7IHBhdGggPSBzdHlsZS9T
dHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDdBNUUzQjE5NUI4QzhBMDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oOyBwYXRo
ID0gc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1MDYzQzFBMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTA2M0Mx
QjFBQjc1NkNDMDA5QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBG
b3JtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
b3JtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MDY2NEY2
MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTEzQTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA2LDggKzE0MDMyLDE2IEBA
CiAJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYW5nZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIz
RDMwNDAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5
RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0
M0Q1RkIxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3V0RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNENUZDMUFD
QjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU0M0Q1RkYxQUNCMEM4MzAwNjM2RDVEIC8q
IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY1NDNENjAwMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3
ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRU
eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDU3LDYgKzE0MDkxLDEyIEBACiAJCUY1NUIzREFB
MTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0
VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWVrSW5wdXRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAv
KiBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1NzRERUQ4MUFDQTIyOEQwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUz
NzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRF
Mzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2
M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTQwNjcsOCArMTQxMDcs
MTYgQEAKIAkJRjU5NzNEREYxNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsZU1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU5Qzk1RkQxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2QTFBQ0NCM0MwMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU5RkE0NkIxQUNDQjNDMDAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1h
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVBMTU0MjUxMjc5NTM0RDAw
RDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZhbGlkYXRpb25NZXNzYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVCMUFDQ0U4RTAwMDUxMkIxMSAvKiBU
eXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1QTUyOTVDMUFDQ0U4RTAw
MDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk1RjFBQ0NF
QTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNUE1Mjk2MDFBQ0NFQTcwMDA1
MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SFRNTERhdGFMaXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDkwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRh
TGlzdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxEYXRhTGlzdEVsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2NzksNiArMTc3MjcsMTAg
QEAKIAkJCQk5MzMwOUQ4RTA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQu
aCAqLywKIAkJCQlEMEIwNTU2NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQu
Y3BwICovLAogCQkJCUQwQjA1NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFu
ZC5oICovLAorCQkJCUY1NDNENUZCMUFDQjA5REEwMDYzNkQ1RCAvKiBDdXREZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDVGQzFBQ0IwOURBMDA2MzZENUQgLyogQ3V0
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NDNENUZGMUFDQjBDODMwMDYz
NkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKKwkJCQlGNTQzRDYwMDFB
Q0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovLAogCQkJCTkz
MzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcCAqLywKQEAgLTE3Njg3LDYgKzE3NzM5LDEwIEBACiAJCQkJQ0VDQURGQzMx
NTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJQ0VDQURG
QzQxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuY3BwICovLAogCQkJCUNFQ0FE
RkM1MTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25Db21tYW5kLmggKi8sCisJCQkJRjUwNjND
MUExQUI3NTZDQzAwOUFCNTU2IC8qIERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwICovLAorCQkJCUY1MDYzQzFCMUFCNzU2Q0MwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU4NzJBNzIxQUI3NUEyQjAwODBGNDU3IC8q
IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTg3MkE3MzFBQjc1QTJC
MDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOUQ5
MzA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdEFjdGlvbi5oICovLAogCQkJCTkzMzA5RDk0MDk5RTY0
OTEwMDU2RTU4MSAvKiBFZGl0Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEOTUwOTlFNjQ5MTAw
NTZFNTgxIC8qIEVkaXRDb21tYW5kLmggKi8sCkBAIC0xNzczMyw2ICsxNzc4OSwxMCBAQAogCQkJ
CUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAq
LywKIAkJCQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwICovLAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29t
bWFuZC5oICovLAorCQkJCUY1NUQwQkQ1MUFDQjcwODIwMDkzNDA2OCAvKiBQYXN0ZUluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTVEMEJENjFBQ0I3MDgyMDA5MzQwNjggLyog
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oICovLAorCQkJCUY1NzRERUQ4MUFDQTIyOEQw
MDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNTc0REVEOTFBQ0EyMjhEMDA1OTgyRTQgLyogUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1v
dmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4
MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2
MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCkBAIC0xNzc0Myw2ICsxNzgw
MywxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAv
KiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMg
LyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMx
QUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8s
CisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBC
NURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUx
MEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJ
CTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
Ki8sCkBAIC0xNzc3OCw2ICsxNzg0MiwxNCBAQAogCQkJCTkzOTIxNDY4MThBNkQ3OTEwMDBFRTY4
OCAvKiBUZXh0SXRlcmF0b3JCZWhhdmlvci5oICovLAogCQkJCTkzMzA5RENBMDk5RTY0OTEwMDU2
RTU4MSAvKiBUeXBpbmdDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDQjA5OUU2NDkxMDA1NkU1
ODEgLyogVHlwaW5nQ29tbWFuZC5oICovLAorCQkJCUY1OUZBNDZBMUFDQ0IzQzAwMDYyMzA3QSAv
KiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2QjFB
Q0NCM0MwMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAor
CQkJCUY1QTUyOTVGMUFDQ0VBNzAwMDUxMkIxMSAvKiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgKi8sCisJCQkJRjVBNTI5NjAxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmggKi8sCisJCQkJRjU5RkE0NkUxQUNDQjUwRTAwNjIzMDdBIC8q
IFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCAqLywKKwkJCQlGNTlGQTQ2RjFBQ0NCNTBFMDA2
MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCAqLywKKwkJCQlGNUE1Mjk1QjFBQ0NF
OEUwMDA1MTJCMTEgLyogVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovLAorCQkJCUY1QTUyOTVDMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAv
KiBVbmRvU3RlcC5oICovLAogCQkJCUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtD
b21tYW5kLmNwcCAqLywKIAkJCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29t
bWFuZC5oICovLApAQCAtMjM2NzEsNiArMjM3NDMsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAw
MDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgw
RkFGMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTRBNEY2NTcyMUFBOTk3RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQg
LyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMzA5REQ3MDk5RTY0OTIwMDU2RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE4RjZCQkQwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNh
dGlvbkNhY2hlR3JvdXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0NzIsNiArMjQ1NDUsNyBAQAog
CQkJCTMxMDYwMzc5MTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwNjAzN0IxNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktp
dENTU0ZpbHRlclZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMDdEMEU2
Q0NDMjgwMEJGNjA4OCAvKiBET01DU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUY1QTUyOTVFMUFDQ0U4RTAwMDUxMkIxMSAvKiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwN0YwRTZDQ0MyODAwQkY2MDg4
IC8qIERPTUNTU0tleWZyYW1lUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTA4MDBFNkNDQzI4MDBCRjYwODggLyogRE9NQ1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE2RkUwODIwRTZDQ0MyODAwQkY2MDg4IC8qIERPTUNTU0tleWZyYW1lc1J1bGVJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDc5NSw2ICsyNDg2OSw3IEBACiAJCQkJQTE5
RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0QyQjBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdl
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyog
SFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU4NzJBNzUxQUI3NUEyQjAw
ODBGNDU3IC8qIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzMwOURFNjA5OUU2NDkyMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlFNDA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdl
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwMjQsNiArMjUwOTksNyBAQAogCQkJCUZE
RjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEQTE1RUEwMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyU291
cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQTYxMkIwM0VFMTAwM0E1ODNBIC8q
IEpTQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTA2M0MxQzFBQjc1NkQ1MDA5
QUI1NTYgLyogRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkRBMTVFQTgxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUFFMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1
ZGlvTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RUIwMTJCMDNFRTEwMDNBNTgz
QSAvKiBKU0F1ZGlvTm9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTAzMiw2ICsyNTEwOCw3IEBA
CiAJCQkJQkU4RUYwNDMxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkU4RUYwNDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc2RkI5RkY5MTlBNzNFM0EwMDQyMDU2MiAvKiBKU0F1dG9j
b21wbGV0ZUVycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1OUZBNDZEMUFDQ0IzQzAw
MDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzEyNEYwMDBDMjY0NDdBMDA5RTIzNDkgLyogSlNCYXJQcm9wLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzk0NjM0ODEwN0E5MzY2MDA4NTcxOTMgLyogSlNCZWZvcmVMb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9y
ZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTUxLDYgKzI1MjI4LDcgQEAKIAkJ
CQlGREExNUVBQzEyQjAzRUUxMDAzQTU4M0EgLyogSlNHYWluTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4RjUwMDIxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE4RjUwMDQxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBhZEJ1dHRvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q1RkUxQUNCMDlEQTAwNjM2RDVEIC8qIEN1dERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFODBEQTY0MEU5QzQ3MDMw
MDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTgwREE2NjBF
OUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZE
QTdDMUYxODgzMjJGQzAwQzk1NEI1IC8qIEpTR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTI1NTkzLDYgKzI1NjcxLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyog
SlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUw
REI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVz
dFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNl
cHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3NzQsNiArMjY4NTMsNyBAQAogCQkJCUIyQzNE
QTNDMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNJQ1UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyQzNEQTNFMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNMYXRpbjEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyQUZGQzlBMEQwMEE1REYwMDMwMDc0RCAvKiBUZXh0Q29kZWNNYWMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY1NzRERURCMUFDQTJGNDcwMDU5ODJFNCAvKiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE0MDBE
MDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjVXNlckRlZmluZWQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyQzNEQTQyMEQwMDZDMUQwMEVGNkYyNiAvKiBUZXh0Q29kZWNVVEYxNi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0M0NCODIxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCBp
biBIZWFkZXJzICovLApAQCAtMjY4MjcsNiArMjY5MDcsNyBAQAogCQkJCTE4NUJDRjI5MEYzMjc5
Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNjlB
MTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklP
Uy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBNDE5NEI1QzIy
MDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0
MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjY5NTAsMTIgKzI3MDMxLDE0IEBACiAJCQkJMkQzRUY0NDgxOTE3OTE1QzAwMDM0MTg0IC8qIFdl
YkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVB
N0FBNDMxMzJGMEVDQzAwRDNBM0MyIC8qIFdlYkF1dG9jYXBpdGFsaXplLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlGNTQzRDYwMjFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NEExOTE3OTE1QzAwMDM0
MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlB
ODA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUZyYW1lVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xk
ZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM2OURENjE2MzIwMjZDMDA3QzM4REYgLyog
V2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxMjdE
RUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0
YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjVBNTI5NjIxQUNDRUE3MDAwNTEyQjExIC8qIFR5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4
MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNT
dHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5ODgsNiArMjcwNzEsNyBAQAogCQkJ
CTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjgzMTRCRDBBMzAwMEZFOTk3MCAvKiBX
ZWJHTENvbnRleHRHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1RDBCRDgxQUNCNzA4MjAw
OTM0MDY4IC8qIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTAxRDNDRjg1MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJHTENvbnRleHRPYmplY3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4MjU1MDBGODBCMEQg
LyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3MjcsNiArMjc4MTEs
NyBAQAogCQkJCTZGOTk1QTM5MUE3MDgzMzcwMEE3MzVGNCAvKiBKU1dlYkdMVmVydGV4QXJyYXlP
YmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8q
IENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkJGODkw
NDUxNjlFOUYxRjAwNTJEODZFIC8qIENTU0dyb3VwaW5nUnVsZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGNUE1Mjk2MTFBQ0NFQTcwMDA1MTJCMTEgLyogVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyM0U3NkMwREFFODhBOTAwOUZEQzkxIC8q
IENTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5M0U1RkYx
NTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTgwRTZDRkUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU0ltYWdlVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yNzgwNCw2ICsyNzg4OSw3IEBACiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMw
MkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFG
QjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJF
QTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAv
KiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzk0MCw2ICsyODAyNiw3IEBACiAJCQkJODVF
Q0JFRjYwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxNb2RFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODVERjgxMkMwQUE3Nzg3MjAwNDg2QUQ3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVCQTREMTYwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhU
TUxPTGlzdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNTQzRDVGRDFBQ0IwOURBMDA2
MzZENUQgLyogQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NUYzMkFFRjBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTE9wdEdyb3VwRWxlbWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTg1NDA3NTZDMEFENkNCRjkwMDYyMEM1NyAvKiBET01IVE1M
T3B0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REYyRjlDMEFBM0NBRTUwMEFE
NjRDNSAvKiBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubW0gaW4gU291cmNlcyAqLywKQEAgLTI4
MDg3LDYgKzI4MTc0LDcgQEAKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5z
aW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDMwNEIwMTkxQUM5
MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU3NERFREExQUNBMkVCMDAwNTk4MkU0IC8qIFBhc3Rl
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29sb3JNYXRyaXguY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0FFMzM1RjExQUNCMDlFMjAwRTQwMUVGIC8qIFdoZWVsRXZlbnRUZXN0VHJp
Z2dlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MTk4LDYgKzI4Mjg2LDcgQEAKIAkJCQk0RkIz
OTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDcyMEIwQTAxNEQzMzIzNTAwNjQyOTU1IC8qIEdlbmVyaWNFdmVudFF1ZXVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTk3NDZBRjIzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTlGQTQ3MDFBQ0NCNTBFMDA2MjMwN0EgLyogVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0NkFGMjYxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkI2MjUyRTE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDODMwRDAwQTVDMTAwMzAwNzREIC8qIEdseXBoUGFnZU1h
Yy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MjE4LDYgKzI4MzA3LDcgQEAKIAkJCQlCMkEwMTVB
QTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NUeXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0
VHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNUE1Mjk1RDFBQ0NFOEUwMDA1MTJCMTEgLyog
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFBOUQ5RjMxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTE3OUNFMzYxOTVDQUM3RTAwMTlDMTk4IC8qIEhJREdhbWVwYWRQcm92aWRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlz
dG9yeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4Mzk3LDYgKzI4NDg3LDcgQEAKIAkJCQk1MTAx
OTJEMTE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdl
RG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FE
IC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUY1NUIzREMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODg1NCw2ICsyODk0NSw3IEBACiAJCQkJRTUxQTgxREYx
NzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OEE5QTU4NzAxMUU4NEMzNjAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGNDNDODVGMTg5RTE1QTYwMDAxOUFFMiAvKiBKU1BlcmZvcm1h
bmNlVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NDNENjAxMUFDQjBDODMwMDYzNkQ1
RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
RUE2MjQ2MTUyMTAyRkMwMDQ3OURGMCAvKiBKU1BlcmlvZGljV2F2ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5M0I3MEQ2QjA5RUIwQzdDMDA5RDg0NjggLyogSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODlGMDFEMTBCMzdCRDkwMEYzQzczOSAvKiBK
U1BvcFN0YXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg4OCw2ICsyODk4MCw3IEBA
CiAJCQkJMDc5NjlEQkIxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTY5REJEMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JU
Q1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDA3
QjE0MTgzNDE1ODgwMEFCREQzQyAvKiBKU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNTVEMEJENzFBQ0I3MDgyMDA5MzQwNjggLyogUGFzdGVJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzk2OURCRjE3RDE0
MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3OTY5REMxMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3OTY5REMzMTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9u
c2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY2Myw2ICsyOTc1Niw3IEBACiAJCQkJMDczNzk0
RkQxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDczNzk0REQxOUVFMkM1MjAwRTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkwQjE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDUGVl
ckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5RkE0NkMxQUNDQjNDMDAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDczQkUzNTAxN0QxODFBNjAwMkJENDMxIC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzM3OTRGMTE5RUUzN0JCMDBFNUEwNDUgLyogUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDkw
QzE3RDE0Q0VFMDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjk4NDAsNiArMjk5MzQsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdD
MSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0
NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTMwMzQzLDYgKzMwNDM4LDcgQEAKIAkJCQlBMTQ4MzJDMDE4N0Y2NTY2
MDBEQTYzQTYgLyogV0tHcmFwaGljcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExNDgzMkMyMTg3
RjY1QzcwMERBNjNBNiAvKiBXS1V0aWxpdGllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMy
QzUxODdGNjY4MzAwREE2M0E2IC8qIFdLVmlldy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY1MDYz
QzFEMUFCNzU2RDgwMDlBQjU1NiAvKiBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTkxOTk2MTIwMERERjQwMEVBMDQxQyAvKiBXT0ZG
RmlsZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTQzNDY0NTBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2MTQ3RDM1RjkwMDEw
QkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBhMDBiMTVjLi5l
YzBjOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyOSw2ICsxMjksNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFn
KQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRo
aXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1f
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03NDIsNiArNzQzLDIw
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAg
ICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2JqZWN0KCkpOwogICAgIH0KIH0K
Kwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVk
KCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9z
dFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25zIGhh
cyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMs
IHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBu
b3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlz
IGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZSht
X3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG9i
amVjdCA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmplY3QuZ2V0KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZp
c2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5v
dGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsK
QEAgLTg1MCwxNiArODY1LDIxNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihy
ZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVu
dCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24o
Tm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hv
d0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3
aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d246CisgICAgICAgIGRhdGFMb2dGKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgZGF0YUxvZ0YoIkVkaXQ6OiIp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmU6CisgICAgICAgIGRhdGFMb2dGKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIGRhdGFM
b2dGKCJFeHRlbmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRl
bnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBz
d2l0Y2ggKGludGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25v
d246CisgICAgICAgICAgICBkYXRhTG9nRigiVW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICBkYXRhTG9n
RigiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZUluc2VydDoKKyAgICAgICAgICAgIGRhdGFMb2dGKCJJbnNlcnQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAg
ICAgZGF0YUxvZ0YoIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBkYXRhTG9nRigiVHlw
aW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZUN1dDoKKyAgICAgICAgICAgIGRhdGFMb2dGKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBkYXRhTG9n
RigiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChp
bnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBkYXRhTG9nRigiVW5rbm93bjo6Iik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25C
ZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRhTG9nRigiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAg
ICAgICAgICAgIGRhdGFMb2dGKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBkYXRh
TG9nRigiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIGRhdGFMb2dGKCJOZXh0Ojoi
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBkYXRhTG9nRigiRGlzY29udGlndW91czo6
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVu
dC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJVbmtub3duIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJDaGFyYWN0
ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgorICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJXb3JkIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBkYXRhTG9nRigiTGluZSIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJTZW50ZW5jZSIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAgICAgICAgICAgICBkYXRhTG9nRigiUGFyYWdyYXBo
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAgICBkYXRhTG9nRigiUGFnZSIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJEb2N1bWVudCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAgICAgICBkYXRhTG9nRigiQWxsIik7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChp
bnRlbnQuc3luYykKKyAgICAgICAgZGF0YUxvZ0YoIi1TeW5jIik7CisgICAgZGF0YUxvZ0YoIlxu
Iik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50
ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rp
b25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlICpub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5v
ZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRl
bnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQg
PSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0
QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCiAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwg
dGV4dCk7CisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bhc3N3b3JkRmllbGQo
KSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIG9iaiA9IG9iai0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAg
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIGludGVudCwgc2Vs
ZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBB
WE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJl
bnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rp
b24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KCk7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2Rl
LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47Cisg
ICAgQVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNo
aW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAo
b2JqKSB7CisgICAgICAgIGlmIChvYmotPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iai0+aXNDb250
YWluZWRCeVBhc3N3b3JkRmllbGQoKSkgeworICAgICAgICAgICAgZW5xdWV1ZVBhc3N3b3JkVmFs
dWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBvYmogPSBvYmotPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0eXBlLCB0ZXh0LCBw
b3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50
KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUs
IEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwg
QVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURl
bGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQg
fHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBl
ID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRp
dFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygp
OworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iaikgeworICAgICAgICBpZiAob2JqLT5pc1Bh
c3N3b3JkRmllbGQoKSB8fCBvYmotPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpIHsKKyAg
ICAgICAgICAgIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iaik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgb2JqID0gb2JqLT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwg
aW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwg
cG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxl
dGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRl
eHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxl
bnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9
CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQoreworICAgIGlmICghb2JqKQorICAgICAg
ICByZXR1cm47CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0g
b2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoc3RkOjpmaW5kKG1fcGFzc3dvcmROb3RpZmljYXRpb25z
VG9Qb3N0LmJlZ2luKCksIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmVuZCgpLCBvYnNl
cnZhYmxlT2JqZWN0KSA9PSBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSkgewor
ICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9i
amVjdCk7CisgICAgICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0Fj
dGl2ZSgpKQorICAgICAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFy
dE9uZVNob3QoMC4wMjUpOworICAgIH0KIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxv
YWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRp
bmdFdmVudCkKQEAgLTEwODQsNiArMTMwMCwxNSBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5v
ZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBB
WE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7CisgICAgaWYgKEFjY2Vzc2liaWxpdHlPYmpl
Y3QgKnJvb3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKHJvb3RP
YmplY3QtPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgICAgIHJldHVybiBk
b3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndlYkFyZWFPYmpl
Y3QoKTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVF
bmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihBWE9iamVjdENhY2hlKiBjYWNoZSkKICAg
ICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjU4YjEzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODksMTIgKzE4
OSw5OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlm
aWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5j
aHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50
LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVtIEFYVGV4dENoYW5n
ZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHREZWxldGVkLAorICAg
IGVudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93biwKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICAgICAgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCisgICAgfTsKKworICAgIGVudW0gQVhUZXh0RWRpdFR5
cGUgeworICAgICAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgICAgIEFYVGV4dEVkaXRU
eXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgICAgIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlVHlw
aW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgICAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlv
biwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICAgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8v
IERlbGV0ZSB2aWEgQ3V0CisgICAgICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZp
YSBQYXN0ZQorICAgIH07CisKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2
b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3Vu
ZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGlu
c2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKKyAgICBlbnVtIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25v
d24sCisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91cywKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAg
ICAgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cwogICAgIH07CiAKLSAg
ICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAgZW51bSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwK
KyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgICAgICBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eURvY3VtZW50LAorICAgICAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFs
bCAvLyBBbGwgZ3JhbnVsYXJpdHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0
aGUgd2hvbGUgZG9jdW1lbnQgYXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9u
IGJ5IHNvbWUgb3RoZXIgZ3JhbnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xl
IGRvY3VtZW50IHdpbGwgbm90IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRp
b24uCisgICAgfTsKKworICAgIHN0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgICAgICBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAgICAgICBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSBncmFudWxhcml0eTsKKyAgICB9OworCisgICAgc3RhdGljIEFYVGV4dFNlbGVj
dGlvbiBUZXh0U2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSBncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bikKKyAgICB7
CisgICAgICAgIGF1dG8gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCk7CisgICAgICAgIHNl
bGVjdGlvbi5kaXJlY3Rpb24gPSBkaXJlY3Rpb247CisgICAgICAgIHNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IGdyYW51bGFyaXR5OworICAgICAgICByZXR1cm4gc2VsZWN0aW9uOworICAgIH0KKwor
ICAgIHN0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgICAgIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSB0eXBlOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBBWFRleHRTZWxl
Y3Rpb24gc2VsZWN0aW9uOworICAgICAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAg
ICAgICB9OworICAgICAgICBib29sIHN5bmM7CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCksIGJv
b2wgc3luYyA9IGZhbHNlKQorICAgICAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICAgICAs
IHNlbGVjdGlvbihzZWxlY3Rpb24pCisgICAgICAgICAgICAsIHN5bmMoc3luYykKKyAgICAgICAg
eyB9CisKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hh
bmdlKQorICAgICAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAg
ICAgICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgICAgICAgICAsIHN5bmMoZmFsc2UpCisgICAg
ICAgIHsgfQorCisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSB0eXBlLCBib29sIHN5bmMpCisgICAgICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAg
ICAgICAgICwgc2VsZWN0aW9uKEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAgICAgICAgLCBzeW5j
KHN5bmMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQpOworICAgICAgICB9CisgICAgfTsKKworI2lmbmRlZiBOREVCVUcKKyAg
ICB2b2lkIHNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRp
ZgorCisgICAgdm9pZCBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CisKKyAgICAvLyBTZWxlY3Rpb24gY2hh
bmdlCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51
bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTgsNyAr
MzA1LDM1IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1I
YW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSog
bmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4
dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9p
ZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNl
CisgICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAg
ICAgQVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAgIGlubGluZSBBWFRleHRDaGFuZ2UgdGV4dENo
YW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlIHR5cGUpCisgICAgeworICAgICAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHREZWxldGVkOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlVHlwaW5nOgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAg
ICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ7CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0SW5zZXJ0ZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdF
dmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdF
dmVudCk7CiAgICAgdm9pZCB0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAg
dm9pZCBsYWJlbENoYW5nZWQoRWxlbWVudCopOwpAQCAtMjI5LDYgKzM0NCw4IEBAIHByb3RlY3Rl
ZDoKICAgICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5v
ZGVzLmNvbnRhaW5zKG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
cm9vdFdlYkFyZWEoKTsKKyAgICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNo
TWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhh
c2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0
LDYgKzM2MSwxMSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVy
OwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5v
dGlmaWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlv
blBvc3RUaW1lckZpcmVkKCk7CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9z
dFRpbWVyOworICAgIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dv
cmROb3RpZmljYXRpb25zVG9Qb3N0OworICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0
VGltZXJGaXJlZCgpOworCiAgICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2
b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJ
dGVtU2VsZWN0ZWQoTm9kZSopOwpAQCAtMjUxLDYgKzM3MywxMCBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFy
ZWFFbGVtZW50Kik7CiAgICAgCiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKKworICAgIHZvaWQgZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0
U2VsZWN0aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAg
LTMwOCw4ICs0MzQsMTYgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xs
YmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7IH0K
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJPYmpl
Y3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNo
b3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNl
bHNlCiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmKSB7IH0KKyNlbmRpZgogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNh
dGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRh
cmdldCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlm
aWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAKaW5kZXggZDhkMjZkZS4uM2Q0NWQzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAK
QEAgLTU1Miw2ICs1NTIsMjcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNz
d29yZEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmll
bGQoKTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBO
b2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9k
ZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3
b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Kj4odGhpcyk7CisgICAgfQorICAgIAorICAgIGlmIChFbGVtZW50KiBlbGVtZW50
ID0gbm9kZS0+c2hhZG93SG9zdCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50
PigqZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlICpjYWNoZSA9IGF4
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRl
KGVsZW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
IGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7CiAg
ICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJmLi5k
NTNhOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApp
bmRleCA1YTI3ZWE4Li5hN2E5OTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2NDYsNCArMjY0NiwyNCBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0
Y2goYm9vbCBvbikKIH0KICNlbmRpZgogCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29u
dGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+
bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAg
IGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbnVsbHB0
cjsKKyAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKSkgeworICAg
ICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKQorICAgICAgICAgICAgaW5w
dXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCk7CisgICAgfQor
ICAgIGlmICghaW5wdXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAg
cmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uMmU5Nzc2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0
NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxk
KCkgY29uc3Q7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxk
T3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0g
V2ViQXJlYVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLjZlZmFhYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwxOCBAQCBQbGFpblRleHRS
YW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0
CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNv
bnN0IFBsYWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJv
bCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUo
KSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENh
Y2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRl
eHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAg
ICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQg
KyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9k
ZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0
YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgUG9zaXRpb24gcG9zMSA9IFBvc2l0
aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9y
KTsKKyAgICBQb3NpdGlvbiBwb3MyID0gUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5n
ZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpOworICAgIFZpc2li
bGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocG9zMSwgcG9z
MiwgRE9XTlNUUkVBTSk7CisgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24odmlzaWJsZVNlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KHJh
bmdlLmxlbmd0aCA+IDAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQgOiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCB0cnVlKSk7CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwo
KSBjb25zdApAQCAtMTk2MCwxMyArMTk2NCwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvcwog
ewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRo
ZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4gbW92ZSB0byB0
aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkKKyAgICBpZiAo
cmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0
aW9uSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAg
ICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVz
ZXJUcmlnZ2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlv
biBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQp
OwotICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRydWUpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAppbmRleCBjNjJjNzUzLi4wYzQ2NGJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oCkBAIC00Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldygpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJpbGl0eURldGFj
aG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKikgb3ZlcnJpZGU7CiAKKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyopOwogICAgIApAQCAtNzEsNyArNzMs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2Jq
ZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBw
YXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB3ZWJBcmVh
T2JqZWN0KCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKiBhZGRDaGlsZFNjcm9sbGJh
cihTY3JvbGxiYXIqKTsKICAgICB2b2lkIHJlbW92ZUNoaWxkU2Nyb2xsYmFyKEFjY2Vzc2liaWxp
dHlPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9z
L0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9B
WE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi5hYjc5MzQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAg
LTk1LDcgKzk1LDE2IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBl
cigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsK
IH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iaiwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKQoreworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li5mNDViYTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0KQEAgLTQ0LDYgKzQ0LDUwIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdp
b25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24K
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlU
ZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFs
dWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhU
ZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIK
KyNlbmRpZgorCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0
aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTYsOCArMjAwLDE1
MSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CiB9CiAKLXZvaWQgQVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CisgICAgaWYgKCFvYmopCisgICAg
ICAgIG9iaiA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJu
OworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5zeW5jKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7
CisgICAgaWYgKGludGVudC50eXBlICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsK
KyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0g
PSBAKGludGVudC50eXBlKTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5r
bm93bjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
OgorICAgICAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25H
cmFudWxhcml0eV0gPSBAKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25E
aXNjb250aWd1b3VzOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAg
ICAgaWYgKGlkIHRleHRNYXJrZXJSYW5nZSA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFu
Z2VGcm9tVmlzaWJsZVBvc2l0aW9uczpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRp
b246c2VsZWN0aW9uLnZpc2libGVFbmQoKV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFu
Z2U7CisgICAgfQorCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmotPndyYXBwZXIoKSkKKyAgICAg
ICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsK
KworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworCisg
ICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53
cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24s
IHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9u
cyBhcmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0
aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmlj
YXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVk
VGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0
byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFtvYmotPndyYXBwZXIo
KSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVNlbGVjdGVk
VGV4dENoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJ
bmZvIHJlbGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRD
aGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcgKnRleHQgPSAoTlNTdHJpbmcgKilz
dHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICgh
bGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNo
YW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsK
KyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAg
c3RhdGljIGNvbnN0IE5TVUludGVnZXIgdHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisgICAgaWYg
KGxlbmd0aCA+IHRydW5jYXRpb25MZW5ndGgpIHsKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBAKGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBb
dGV4dCBzdWJzdHJpbmdUb0luZGV4OnRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAo
bGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZV0gPSB0ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAo
aWQgdGV4dE1hcmtlciA9IFtvYmotPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0
aW9uOnBvc2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hh
bmdlVmFsdWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2No
YW5nZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhU
ZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJl
YSgpOworCisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5s
ZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNl
ckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107
CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBA
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hh
bmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmosIHR5cGUsIHRleHQsIHBv
c2l0aW9uKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
c10gPSBAW2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFw
cGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFy
ZWEtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1
c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbd2ViQXJlYS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJ
bmZvOnVzZXJJbmZvXTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8ob2JqLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3Rp
ZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQ
b3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
IHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNv
bnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9u
KQoreworICAgIGlmICghb2JqKQorICAgICAgICBvYmogPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVz
ZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRd
OworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0g
QChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFu
Z2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBp
ZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KG9iaiwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hh
bmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0
ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iaiwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOwor
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsK
KyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqLT53cmFw
cGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50
XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdl
YkFyZWEoKTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlcklu
Zm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmlj
YXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZp
Y2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRp
b24gdXNlckluZm86dXNlckluZm9dOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyhvYmotPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFu
Z2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3
aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNz
aWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwog
fQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQg
bG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAppbmRl
eCA1ZTA2YzM1Li5jNDY0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UuaApAQCAtNTgsNiArNTgsNyBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAtIChpZClhdHRh
Y2htZW50VmlldzsKIC8vIFVzZWQgdG8gaW5mb3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlmaWNh
dGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2VkIGJ5IERSVC4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9p
ZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlv
bk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYp
Y29udmVydFBhdGhUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9p
bnQpY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2Eu
LjYzN2U5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAg
LTM4Nyw5ICszODcsNTkgQEAgc3RhdGljIEJPT0wgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5v
dGlmaWNhdGlvbnM7CiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjoo
TlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91
bGRSZXBvc3ROb3RpZmljYXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVk
Tm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGlj
IE5TQXJyYXkgKmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7Cisg
ICAgQVNTRVJUKFthcnJheSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5T
TXV0YWJsZUFycmF5ICptdXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZv
ciAoTlNVSW50ZWdlciBpZHggPSAwOyBpZHggPCBbbXV0YWJsZUFycmF5IGNvdW50XTsgaWR4Kysp
IHsKKyAgICAgICAgaWQgdmFsdWUgPSBtdXRhYmxlQXJyYXlbaWR4XTsKKyAgICAgICAgaWYgKFt2
YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFtt
dXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aWR4IHdpdGhPYmplY3Q6ZGljdGlvbmFy
eVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5
IHJlcGxhY2VPYmplY3RBdEluZGV4OmlkeCB3aXRoT2JqZWN0OmFycmF5UmVtb3ZpbmdOb25KU09O
VHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpb
TlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3Nd
XSkpCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aWR4XTsK
KyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitzdGF0
aWMgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNEaWN0aW9u
YXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIEFTU0VSVChbZGljdGlvbmFyeSBpc0tpbmRPZkNsYXNz
OltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0YWJs
ZURpY3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1N0cmlu
ZyAqa2V5IGluIGRpY3Rpb25hcnkpIHsKKyAgICAgICAgaWQgdmFsdWUgPSBkaWN0aW9uYXJ5W2tl
eV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNz
XV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gZGljdGlvbmFyeVJlbW92
aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9m
Q2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tl
eV0gPSBhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAo
IShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5k
T2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25h
cnkgcmVtb3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZURp
Y3Rpb25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0
aW9uYXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5v
dGlmaWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtOU0RpY3Rp
b25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1lLCBAIm5v
dGlmaWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9i
amVjdDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5vdGlmaWNhdGlv
bk5hbWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAgICAgIGlmICh1
c2VySW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBbTlNKU09OU2Vy
aWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5
cGVzKHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVycm9yOm5pbF07
CisgICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAgICAgTlNTdHJp
bmcgKnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnVzZXJJ
bmZvRGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAgICAgICAgICAg
aWYgKHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlm
aWNhdGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1c2VySW5mb1N0
cmluZ307CisgICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2VdOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaW5mbykKKyAgICAgICAgICAgIGluZm8g
PSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lfTsKKyAgICAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpA
IkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzppbmZvXTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjky
MjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiAr
MzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZy
b21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlv
biBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAo
aWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBv
c2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuY3BwCmluZGV4IDFkZWI0ZGIuLjY3MWQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNl
bGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYs
MTUgKzQ4LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50
LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3Rh
dGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5u
b2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgY29uc3QgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24n
dCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUg
PT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUs
IHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQ
b3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4
dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAg
ICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0
ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5k
Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc0LDE2IEBAIHZvaWQgQXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5n
ZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVk
aXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewog
ICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRl
bGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENo
YW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7
CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KQEAgLTg4LDQgKzk2
LDE0IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8
Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBBcHBlbmROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBBcHBlbmROb2RlQ29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEZWxldGU7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aAppbmRleCBkNjRiMDRlLi40OWM5ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZh
dGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJl
bnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
Q29udGFpbmVyTm9kZT4sIFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAgdmlydHVhbCB2b2lkIGRv
QXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7
CkBAIC00Nyw2ICs0Nyw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5D
b21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBl
KCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJlbnQ7CiAgICAg
UmVmUHRyPE5vZGU+IG1fbm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjI1ZWFiNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJBcHBseVN0
eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIKKyNpbmNs
dWRlICJDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTgsNiArNTksOCBAQAogI2luY2x1ZGUgIlJlbmRl
ckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJl
ZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0x
NjIsNiArMTY1LDEzIEBAIHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlJ
bnRlbnQoKQoreworICAgIGlmIChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1f
Y29tbWFuZHNbbV9jb21tYW5kcy5zaXplKCktMV0tPnVuYXBwbHlJbnRlbnQoKTsKKyAgICByZXR1
cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKK30KKwogdm9pZCBh
cHBseUNvbW1hbmQoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsK
ICAgICBjb21tYW5kLT5hcHBseSgpOwpAQCAtMzIwLDkgKzMzMCwxNCBAQCBib29sIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNz
UmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKKyAgICByZXR1cm4gSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKK30KKwogdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENo
aWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CiB9
CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtNTIyLDIz
ICs1MzcsNDYgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKICAgICAgICAgc2V0RW5kaW5nU2Vs
ZWN0aW9uKFZpc2libGVTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoc3RhcnRJbmRl
eCwgc2NvcGUuZ2V0KCkpLCB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChzdGFydEluZGV4ICsgbGVu
Z3RoLCBzY29wZS5nZXQoKSkpKTsKIH0KIAorUmVmPEVkaXRDb21tYW5kPiBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIHJldHVybiBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKK30KKwog
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2RlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAg
aWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAg
ICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShpbnNlcnRUZXh0SW50b05vZGVDb21tYW5kKG5v
ZGUsIG9mZnNldCwgdGV4dCkpOworfQorCitSZWY8RWRpdENvbW1hbmQ+IENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpkZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICBpZiAoZWRpdGluZ0FjdGlv
bigpID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIHJldHVybiBDdXREZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgcmV0dXJuIERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIAog
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9k
ZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworfQorCitSZWY8RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKK3sKKyAgICByZXR1cm4gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKK30KKworUmVmPEVkaXRDb21t
YW5kPiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
aW5zZXJ0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQoreworICAgIHJldHVybiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5z
ZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAg
ICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQp
KTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9
IHJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwogICAgIGlmICghcmVw
bGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1l
bnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKHJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0LCBkZWxldGVD
b21tYW5kLT5kZWxldGVkVGV4dCgpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE1
MjMsNCArMTU2MSwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xk
ZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudChiclRhZywgZmFsc2UpOwogfQogCitBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlJbnRlbnQoKQoreworICAgIGlm
IChtX2NvbW1hbmRzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHNbbV9jb21tYW5k
cy5zaXplKCktMV0tPmFwcGx5SW50ZW50KCk7CisgICAgcmV0dXJuIEVkaXRDb21tYW5kOjphcHBs
eUludGVudCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uZWRlZTQ5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAt
MzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsK
IGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisg
ICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCB1bmFwcGx5
SW50ZW50KCk7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVu
dCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCkBAIC04Nyw2ICs5
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rp
b25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmV0YWluQXV0
b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BD
YXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGFwcGx5SW50ZW50KCkgb3ZlcnJpZGU7
CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVu
dCYpOwpAQCAtMTAzLDE1ICsxMDcsMTggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVtb3ZlU3R5
bGVkRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKICAgICB2b2lkIGRlbGV0ZVNlbGVjdGlv
bihib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9
IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cyA9IHRydWUsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKTsKICAgICB2b2lkIGRlbGV0ZVNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSB0cnVlLCBib29sIHNhbml0aXplTWFy
a3VwID0gdHJ1ZSk7CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogICAgIHZvaWQgaW5wdXRUZXh0KGNvbnN0IFN0cmlu
ZyYsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UpOwogICAgIGJvb2wgaXNSZW1vdmFi
bGVCbG9jayhjb25zdCBOb2RlKik7CiAgICAgdm9pZCBpbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0
cjxOb2RlPiwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCk7CiAgICAgdm9pZCBpbnNlcnROb2Rl
QXQoUGFzc1JlZlB0cjxOb2RlPiwgY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydE5v
ZGVBdFRhYlNwYW5Qb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBjb25zdCBQb3NpdGlvbiYpOwor
ICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSk7CiAgICAgdm9pZCBpbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4s
IFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlID0gRG9Ob3RBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiAgICAgdm9pZCBp
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9
IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSk7CiAg
ICAgdm9pZCBpbnNlcnRMaW5lQnJlYWsoKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4g
aW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJik7CiAgICAgdm9pZCBpbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIHZvaWQgbWVyZ2VJ
ZGVudGljYWxFbGVtZW50cyhQYXNzUmVmUHRyPEVsZW1lbnQ+LCBQYXNzUmVmUHRyPEVsZW1lbnQ+
KTsKICAgICB2b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKQEAgLTEzMCw2ICsxMzcsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05ld1BhcmVudChOb2Rl
KiwgTm9kZSogcGFzdExhc3ROb2RlVG9Nb3ZlLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IHBycE5ld1Bh
cmVudCk7CiAgICAgdm9pZCB1cGRhdGVQb3NpdGlvbkZvck5vZGVSZW1vdmFsUHJlc2VydmluZ0No
aWxkcmVuKFBvc2l0aW9uJiwgTm9kZSYpOwogICAgIHZvaWQgcHJ1bmUoUGFzc1JlZlB0cjxOb2Rl
Pik7CisgICAgdmlydHVhbCBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gcmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2ln
bmVkKTsKKyAgICB2aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gcmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0
PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNl
bWVudFRleHQpOwogICAgIFBvc2l0aW9uIHJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3Qg
U3RyaW5nJik7CiAgICAgdm9pZCByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBh
c3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0
cmluZyYgcmVwbGFjZW1lbnRUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmZkZjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Q3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUs
IG9mZnNldCwgY291bnQpCit7Cit9CisKK0FYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVy
biBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUN1dDsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjJm
YTc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBDdXREZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIH0KKworcHJvdGVjdGVkOgorICAgIEN1dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0
dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlk
ZTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xYjRlNzAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAi
Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5o
IgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29s
IHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFy
a3VwKQorICAgIDogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUs
IG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cywgc2FuaXRpemVNYXJrdXApCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6ZGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCit7CisgICAgcmV0dXJuIEN1
dERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsK
K30KKworRWRpdEFjdGlvbiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA1YzMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRf
aAorI2RlZmluZSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBh
bmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVw
bGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgIH0K
KworcHJpdmF0ZToKKyAgICBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9v
bCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2Us
IGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJrdXApOworCisg
ICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IGRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcAppbmRleCAyZWE5NmQ1Li44NTcxNjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDYgKzI5LDgg
QEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAKQEAgLTQ1LDYgKzQ3LDExIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpCiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsK
IH0KIAorU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7
CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKQEAgLTU2LDEwICs2MywxMCBAQCB2
b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIG1fdGV4dCA9IG1f
bm9kZS0+c3Vic3RyaW5nRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogICAgIGlmIChlYykK
ICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZv
cmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpB
WFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBv
c2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0
ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzgwLDggQEAgdm9pZCBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNl
cnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgp
LCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwog
fQogCiAjaWZuZGVmIE5ERUJVRwpAQCAtODQsNCArOTEsMTQgQEAgdm9pZCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9
CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZUluc2VydDsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li43YTMxYzE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2lmbmRlZiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOCAr
NDAsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKICAgICB9CiAKKyAgICBTdHJp
bmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKIHByaXZhdGU6
Ci0gICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpAQCAtNDgs
NyArNTMsMTAgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAK
KworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlw
ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
dW5hcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwog
ICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fY291bnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJj
NmVkLi40OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5k
OjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUg
a2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhh
dCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUg
Y29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsK
KyAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24g
ZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3Jl
IGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21t
YW5kLmNwcAppbmRleCBjMTczZGY0Li4xOWY5ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTI3LDExICsyNywxMSBAQAogI2luY2x1ZGUgIkRp
Y3RhdGlvbkNvbW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgi
Ci0jaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1h
bmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90
IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5M
aW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwg
bGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENv
bW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBs
aWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVM
ZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGlu
ZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90
ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1h
cmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODhj
NDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAg
ICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBEaWN0YXRpb25JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5
ODM2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKworICAgIHZpcnR1
YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGljdGF0aW9uSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmY0MTVmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIkRpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGll
cj4gbWFya2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4
dCwgbWFya2VyU3VwcGxpZXIpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gRGljdGF0aW9uSW5z
ZXJ0VGV4dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1
cm4gRGljdGF0aW9uSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgdGV4dCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zYzljYjQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNy
ZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBs
aWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICB2
aXJ0dWFsIFJlZjxFZGl0Q29tbWFuZD4gaW5zZXJ0VGV4dEludG9Ob2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjc5
YWJhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFu
ZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0xMjQs
NSArMTI1LDI3IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50
cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiAgICAgICAgIG5vZGVzLmFkZChu
b2RlKTsKIH0KICNlbmRpZgorICAgIAorI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkK
K3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQor
CitBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBTaW1wbGVFZGl0Q29tbWFuZDo6dW5hcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVV
bmtub3duOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24p
Cit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAg
ICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0
LCBwb3NpdGlvbik7Cit9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLjAxYTAzMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRp
dENvbW1hbmRfaAogI2RlZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rp
b24uaCIKIApAQCAtNTksNiArNjAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9B
cHBseSgpID0gMDsKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgYXBwbHlJbnRlbnQoKSB7IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpOyB9OworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRWRpdENvbW1h
bmQoRG9jdW1lbnQmKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CkBAIC05MCw2ICs5Myw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
KSA9IDA7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChhcHBseUVkaXRUeXBlKCkpOyB9CisgICAgdmlydHVh
bCBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCB1bmFwcGx5SW50ZW50KCkg
eyByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQodW5hcHBseUVk
aXRUeXBlKCkpOyB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsgfQogCkBAIC05
Nyw2ICsxMDMsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRz
KE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICB2aXJ0dWFsIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
OworCisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0aW5nQWxsSW5PbmUuY3BwCmluZGV4IGRjM2FlMzMuLjZkZTEzZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKQEAgLTMyLDEwICszMiwxNCBAQAog
I2luY2x1ZGUgPEJyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPENvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxDcmVhdGVMaW5rQ29tbWFuZC5jcHA+CisjaW5j
bHVkZSA8Q3V0RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8Q3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVk
ZSA8RGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkNvbW1hbmQu
Y3BwPgorI2luY2x1ZGUgPERpY3RhdGlvbkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgor
I2luY2x1ZGUgPERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxFZGl0
Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RWRpdGluZ1N0eWxlLmNwcD4KICNpbmNsdWRlIDxFZGl0
b3IuY3BwPgpAQCAtNTQsMTEgKzU4LDE1IEBACiAjaW5jbHVkZSA8TWVyZ2VJZGVudGljYWxFbGVt
ZW50c0NvbW1hbmQuY3BwPgogI2luY2x1ZGUgPE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA+
CiAjaW5jbHVkZSA8TW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFBhc3RlUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVt
b3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KKyNpbmNsdWRl
IDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA+
CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwPgpAQCAtNzcsNiArODUsMTAg
QEAKICNpbmNsdWRlIDxUZXh0SW5zZXJ0aW9uQmFzZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFRl
eHRJdGVyYXRvci5jcHA+CiAjaW5jbHVkZSA8VHlwaW5nQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8
VHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2VydFRleHRDb21t
YW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8VW5saW5rQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VmlzaWJsZVBv
c2l0aW9uLmNwcD4KICNpbmNsdWRlIDxWaXNpYmxlU2VsZWN0aW9uLmNwcD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAppbmRleCA3MTBhYTM5Li4zNDcwNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIK
ICNpbmNsdWRlICJDb21wb3NpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1h
bmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAi
RGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwxNSBAQCBib29s
IEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVk
aXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5p
c05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChl
ZGl0aW5nQWN0aW9uID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsK
KyAgICBlbHNlCisgICAgICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFy
VGV4dCgpCkBAIC0xMDAxLDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmco
UGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xl
YXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRo
b3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8g
RnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUludGVudCgp
KTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24t
PnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVk
aXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsK
QEAgLTEwMzIsNyArMTAzNiw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NS
ZWZQdHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29u
dHJvbHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290
RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24o
Y21kLT5zdGFydGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1h
bmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoKSk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJh
bWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUlu
dGVudCgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY21kLT5z
dGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVt
ZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3
ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3Bl
Y2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAg
ICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhT
bWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQp
OwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBF
ZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVU
ZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1h
bmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246
OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rp
b25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWE9iamVjdENhY2hlOjpB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxl
Y3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAg
aWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgp
LmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwK
ICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBs
b25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0g
bmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYg
KHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCku
c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2Vs
ZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50
ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0
aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERP
TS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxv
d2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmlu
ZGV4IDc5MmJjNDYuLmQ2YzVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcg
KzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxl
dGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29s
IGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNt
YXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsK
ICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBA
IHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRp
b24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBT
dHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsK
IAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9u
IH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDU3NDUxNzAuLmI0
YzcyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0x
MzgsOCArMTM4LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1l
bnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVU
byhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJl
ZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBv
cy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgIHNldFNl
bGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVx
dWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSks
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRv
KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZleHRl
bnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0xNzAsNyArMTY5LDcgQEAgdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24m
IGJhc2UsIGNvbnN0IFBvc2l0aW8KICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsK
ICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlkYXRpb24oYmFzZSwgZXh0ZW50KTsKICAg
ICBuZXdTZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25hbChzZWxlY3Rpb25IYXNEaXJlY3Rpb24pOwot
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cykpOworICAgIHNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxk
U2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpKTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRD
b250cm9sbGVyOjpzZXRDYXJldFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24pCkBAIC0yNTQsNyArMjUzLDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAgaWYg
KG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFYT2Jq
ZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0
aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgICAgIGludGVudCA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYT2JqZWN0Q2FjaGU6OlRleHRTZWxlY3Rpb24oQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cykpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWE9iamVjdENhY2hlOjpBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxl
Y3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVT
ZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxl
Y3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3
U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAg
ICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9j
dW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVj
dGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25z
LCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1l
LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0
U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAg
ICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwg
dGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAg
IC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0
aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8v
IHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2Us
IGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxl
U2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlm
ICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlv
bnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDks
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVW
aWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwog
fQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShG
cmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9p
ZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1Nl
bGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzc5LDggKzM4Nyw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAKICAgICAgICAgcmV2
ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9Ci0KLSAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgaWYgKGF1dG8qIGNsaWVudCA9
IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpKQogICAgICAgICBjbGllbnQtPmRpZENoYW5nZVNl
bGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpOwpAQCAtMTAyMSw3ICsxMDI4LDgwIEBAIFZpc2libGVQ
b3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8
IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3Vt
ZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpU
ZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhPYmplY3RD
YWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAo
YWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVu
dC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZTsKKyAgICAgICAgaWYgKGlzUmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9m
U2VsZWN0aW9uKCkgPT0gUlRMKQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAg
ICB9CisgICAgfSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0gQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJp
dHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5
OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5l
R3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkgPSBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6
CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5n
cmFudWxhcml0eSA9IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6Cisg
ICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5ID0gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAg
ICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToK
KyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6
CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0
eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBh
cmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91
bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rp
b24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2Fy
ZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24gPSBmbGlwID8gQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
QmVnaW5uaW5nIDogQVhPYmplY3RDYWNoZTo6QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZs
aXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgor
ICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbiA9IGZsaXAgPyBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQg
OiBBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWE9iamVjdENh
Y2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2Vy
ZWQpCiB7CkBAIC0xMDc3LDYgKzExNTcsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5
KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAg
ICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlv
biA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50
KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFu
dWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMg
c2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEg
c2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBs
YXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkg
YmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzEwLDggKzE3OTUsMTAgQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24g
bmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9k
ZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVj
dGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBhdXRvIGludGVudCA9IEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYT2JqZWN0Q2FjaGU6OkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihB
WE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWE9i
amVjdENhY2hlOjpBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCkpOworICAgICAgICBzZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmly
ZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBj
bG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUxMCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVT
ZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlz
CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNl
bGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRH
cmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVl
ZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwg
ZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhm
cmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3Mo
ZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjNjMzE5ODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVT
ZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1
c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsK
ICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAg
IHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51
bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhv
dXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2Vs
ZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygp
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0
R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9w
dGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQ3Vyc29y
QWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFy
aXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0
U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVt
IEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQg
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0
U2VsZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVj
dGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGln
bk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRl
OgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZp
Z2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVy
YXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNoZTo6QVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UK
LSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAg
ICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhPYmplY3RDYWNo
ZTo6QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVT
ZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJp
Z2dlcmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdl
Li5hZWM0NzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBAIC01MCw2ICs1
MSwxMSBAQCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVCghbV90ZXh0LmlzRW1w
dHkoKSk7CiB9CiAKK1N0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRU
ZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZy
YW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC02NSw5ICs3MSw5IEBA
IHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgfQogCiAgICAg
bV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwot
Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1f
bm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3Rl
eHQpOworICAgIAorICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgyLDEwICs4OCwxMCBA
QCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYg
KCFtX25vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAK
KwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRo
ZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQs
IG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwg
dW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9k
ZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4
dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CkBAIC05Nyw0ICsxMDMsMTQgQEAgdm9p
ZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0OworfQorCitBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjp1bmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAzMTBiYmIzLi5lMzNmNTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
X2gKICNkZWZpbmUgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzksOSArNDAsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAg
IH0KIAotcHJpdmF0ZToKKyAgICBTdHJpbmcmIGluc2VydGVkVGV4dCgpOworcHJvdGVjdGVkOgog
ICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkg
b3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNTEsNyArNTQsMTAgQEAgcHJpdmF0ZToK
ICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKworICAgIHZpcnR1YWwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CisKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2V0
OwogICAgIFN0cmluZyBtX3RleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGQxNmI1ZDYuLjhkNWVjMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBA
IC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisjaW5jbHVkZSAi
VGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTU3LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHko
KQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZD
aGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNo
ZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsK
KyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAg
ICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9z
aXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVk
aXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9z
aXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9i
amVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7
CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAg
ICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBv
c2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxl
Z2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBs
eUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24o
cG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VY
Q0VQVElPTik7CiB9CkBAIC04MSw0ICs4NywxNCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYK
IAorQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0
VHlwZUluc2VydDsKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRlOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uOGQ5YzYw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9o
CiAjZGVmaW5lIEluc2VydE5vZGVCZWZvcmVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0
Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zOCwxNiArMzksMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVm
b3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJp
dmF0ZToKK3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9y
ZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCitwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5h
cHBseSgpIG92ZXJyaWRlOwogICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAg
IAorCisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRU
eXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlw
ZSB1bmFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKwogICAgIFJlZlB0cjxOb2RlPiBtX2luc2Vy
dENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEw
ZDJmZS4uYmZhMTgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuaApAQCAtNTksMTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7
CiAgICAgfQogCi1wcml2YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBl
KTsKK3Byb3RlY3RlZDoKICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0
cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAg
ICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBz
ZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9p
ZCBkZWxldGVDaGFyYWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9QYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNjFhY2FiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZUlu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NS
ZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJl
ZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhP
YmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlUGFzdGU7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFz
dGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0
ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMWQwNTU5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQYXN0ZUluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFBhc3RlSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGFzdGVJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0lu
c2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhc3RlSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgUGFzdGVJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNz
UmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisKKyAg
ICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBv
dmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0N2E3ZjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Bhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBh
c3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgOiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KQoreworfQorCitBWE9iamVjdENh
Y2hlOjpBWFRleHRFZGl0VHlwZSBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjpyZXBsYWNlQXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlUGFzdGU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9QYXN0ZVJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU2
YTM1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUGFzdGVS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFRleHQ7CisKK2NsYXNzIFBhc3RlUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBw
dWJsaWMgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8UGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQYXN0ZVJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUGFzdGVSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYXN0ZVJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZTAxN2I4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0w
LDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRl
eHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4gdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQodGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKwordm9pZCBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UoTm9kZSosIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZDMwZmRiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4g
Y3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWFjN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQorICAgICwgbV9kZWxldGVkVGV4
dChkZWxldGVkVGV4dCkKK3sKK30KKwordm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNh
Y2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgY2FzZSBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRU
eXBlVHlwaW5nOgorICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVEaWN0YXRp
b246CisgICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVj
dENhY2hlOjpBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVE
ZWxldGUsIHRleHQsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0
ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEVkaXRUeXBlRGVsZXRl
LCBtX2RlbGV0ZWRUZXh0LCByZXBsYWNlQXBwbHlFZGl0VHlwZSgpLCB0ZXh0LCBwb3NpdGlvbik7
CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YzQyNjgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRf
aAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0
ZXh0LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0RWRpdFR5cGUgcmVwbGFjZUFwcGx5RWRpdFR5cGUoKSB7IHJldHVybiBBWE9iamVjdENhY2hl
OjpBWFRleHRFZGl0VHlwZUluc2VydDsgfQorICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgYXBwbHlJbnRlbnQoKSBvdmVycmlkZSB7IHJldHVybiBBWE9i
amVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudChyZXBsYWNlQXBwbHlFZGl0VHlwZSgp
KTsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworCisgICAgU3RyaW5nIG1f
ZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGZiMzg4MGMuLjMwYzQ3
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVk
RXZlbnQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAi
Q1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
aCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC00NCwxNCArNDUsMjAgQEAKICNpbmNsdWRlICJI
VE1MVGl0bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2Rl
UmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJQYXN0ZUluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
CisjaW5jbHVkZSAiUGFzdGVSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1
ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAj
aW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVkZSAiU21hcnRSZXBsYWNl
LmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgiCisjaW5jbHVkZSAiVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5o
IgogI2luY2x1ZGUgIm1hcmt1cC5oIgpAQCAtMTQ4Miw2ICsxNDg5LDMwIEBAIHZvaWQgUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OnVwZGF0ZU5vZGVzSW5zZXJ0ZWQoTm9kZSAqbm9kZSkKIAogICAg
IG1fZW5kT2ZJbnNlcnRlZENvbnRlbnQgPSBsYXN0UG9zaXRpb25Jbk9yQWZ0ZXJOb2RlKG5vZGUt
Pmxhc3REZXNjZW5kYW50KCkpOwogfQorICAgIAorUmVmPEVkaXRDb21tYW5kPiBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCit7
CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6
CisgICAgICAgIHJldHVybiBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGlu
c2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gUGFzdGVJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hp
bGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAg
fQorfQorCitSZWY8RWRpdENvbW1hbmQ+IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQpCit7CisgICAgc3dpdGNoIChtX2VkaXRBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rp
b25UeXBpbmc6CisgICAgICAgIHJldHVybiBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7
CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBQYXN0ZVJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBpbnNlcnRlZFRl
eHQsIGRlbGV0ZWRUZXh0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgaW5zZXJ0ZWRUZXh0LCBkZWxldGVkVGV4dCk7CisgICAgfQorfQogCiAvLyBEdXJpbmcgc2lt
cGxlIHBhc3Rlcywgd2hlcmUgd2UncmUganVzdCBwYXN0aW5nIGEgdGV4dCBub2RlIGludG8gYSBy
dW4gb2YgdGV4dCwgd2UgaW5zZXJ0IHRoZSB0ZXh0IG5vZGUKIC8vIGRpcmVjdGx5IGludG8gdGhl
IHRleHQgbm9kZSB0aGF0IGhvbGRzIHRoZSBzZWxlY3Rpb24uICBUaGlzIGlzIG11Y2ggZmFzdGVy
IHRoYW4gdGhlIGdlbmVyYWxpemVkIGNvZGUgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi5lMjZhOTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBA
IC0xMTEsNiArMTExLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGVyZm9ybVRyaXZpYWxSZXBs
YWNlKGNvbnN0IFJlcGxhY2VtZW50RnJhZ21lbnQmKTsKIAorICAgIHZpcnR1YWwgUmVmPEVkaXRD
b21tYW5kPiBpbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVm
UHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1hbmQ+IHJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmKSBvdmVycmlkZTsKKwogICAgIFBvc2l0aW9uIG1fc3RhcnRPZkluc2VydGVkQ29udGVu
dDsKICAgICBQb3NpdGlvbiBtX2VuZE9mSW5zZXJ0ZWRDb250ZW50OwogICAgIFJlZlB0cjxFZGl0
aW5nU3R5bGU+IG1faW5zZXJ0aW9uU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcAppbmRleCA5MzI5Y2RmLi44YzBmYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJNYXRoTUxF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAi
VmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtMzczLDcgKzM3
NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRl
eHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCkKIHsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNl
cnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4
dCwKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwK
ICAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2Vy
dFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IElu
c2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CiAKICAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTQyMjEzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJU
eXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlR5
cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQoreworfQorCitBWE9iamVjdENhY2hlOjpBWFRl
eHRFZGl0VHlwZSBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjphcHBseUVkaXRUeXBl
KCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBpbmc7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMDBiZDE0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBUeXBpbmdJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5n
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+
IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43YjI0NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwaW5nSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OlR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9k
ZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
KQorICAgIDogSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK3sKK30KKworQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RWRpdFR5cGUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBBWE9iamVjdENhY2hlOjpBWFRleHRFZGl0VHlwZVR5cGlu
ZzsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjgxNzQ2MTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kX2gKKyNkZWZpbmUgVHlwaW5nSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRf
aAorCisjaW5jbHVkZSAiSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBpbmdJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0lu
c2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFR5cGluZ0luc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFBh
c3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKwor
ICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgp
IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4wMWIxNjY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0Lmgi
CisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUg
IlR5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKyAgICAKK1R5cGluZ0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSkKKyAgICA6IEluc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5j
ZVR5cGUpCit7Cit9CisKK1JlZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6
Omluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gVHlwaW5nSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7Cit9CisKK1Jl
ZjxFZGl0Q29tbWFuZD4gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OnJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKK3sK
KyAgICByZXR1cm4gVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIGluc2VydGVkVGV4dCwgZGVsZXRlZFRleHQpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ5M2I1ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFR5cGluZ0luc2VydFRleHRDb21tYW5kIDogcHVibGljIElu
c2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydFRl
eHRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNl
VHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1l
bnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0
cmluZyYsIGJvb2wsIFJlYmFsYW5jZVR5cGUpOworCisgICAgdmlydHVhbCBSZWY8RWRpdENvbW1h
bmQ+IGluc2VydFRleHRJbnRvTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPEVkaXRDb21tYW5kPiBy
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjMwZGQ1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1R5cGluZ1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpUeXBpbmdS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0KQorICAgIDogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0LCBkZWxldGVkVGV4dCkKK3sKK30KKworQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5
cGUgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OnJlcGxhY2VBcHBseUVk
aXRUeXBlKCkKK3sKKyAgICByZXR1cm4gQVhPYmplY3RDYWNoZTo6QVhUZXh0RWRpdFR5cGVUeXBp
bmc7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmMyZTBmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKwor
Y2xhc3MgVHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VHlwaW5nUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
LCBkZWxldGVkVGV4dCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBUeXBpbmdSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dEVkaXRUeXBlIHJlcGxhY2VBcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9G
cmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNl
bGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uZTY5NWE3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBA
QCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYT2JqZWN0Q2FjaGU6OkFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4wN2UyYTRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpA
QCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3Jl
ZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAg
ICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZShBWE9iamVjdENhY2hlOjpBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQp
CiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAg
IGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgp
LmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90
aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIo
KSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxl
UGFyZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVj
dGlvbik7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uNWJm
YjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRl
eHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7Cisg
ICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7
CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBp
ZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJ
c0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAg
ICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVl
Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAg
ICAgICBpbm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7
CiAKICAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdc
cicpKQogICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQg
JiYgcmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNo
ZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpB
WFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9z
aXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAg
IH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggYzhiZWU5ZS4uM2NlOGRmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIxMCw3ICszMjEwLDcgQEAgc3RhdGlj
IHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgc2VsZWN0aW9uLnNldFNlbGVj
dGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
QVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSkpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXli
b2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdmZS4uYmZk
MWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzQxLDcg
KzM0MSw3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3Jk
ZXIoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXliCiAgICAgICAgIFBvc2l0aW9uIHBvc2l0
aW9uID0gZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAg
ICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05T
VFJFQU0pOwogICAgICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhPYmplY3RDYWNoZTo6QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
QVhPYmplY3RDYWNoZTo6VGV4dFNlbGVjdGlvbihBWE9iamVjdENhY2hlOjpBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzKSkpOwogICAgIH0KIAogICAgIGVsZW1lbnQtPmZvY3Vz
KGZhbHNlLCBkaXJlY3Rpb24pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGExM2Q3OWEuLmI0OGQ1MWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0xNyAg
RG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVy
IHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJjbGFzc2VzIHRv
IGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBvc3QgbW9yZSBk
ZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLgorCisgICAg
ICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5k
IHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBh
cHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdl
YiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5n
ZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBh
bmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNz
aWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29u
dGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4g
QWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIg
X25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAg
ICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVj
ZWl2ZWQ6XSk6CisKIDIwMTUtMDQtMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIE5vdCBhYmxlIHRvIGJ1aWxkIFdlYktpdCBhZ2FpbnN0IGlPUyBTaW11bGF0
b3IgOC4zIFNESwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLjdiMDE3YmEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTExMiwxNiArMTEyLDI3IEBACiAgICAgaWYg
KG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24g
b2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZh
bHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUg
Y3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1
bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90
aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1l
bnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNl
ckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09O
VmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBnbG9i
YWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmICht
X3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQg
anVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBK
U09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZp
Y2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwg
MCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUg
ZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAg
Ly8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFu
ZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFy
Z3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRz
WzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNG
dW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9u
Q2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8g
QSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5k
IHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJn
dW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmlj
YXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZh
bHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBn
bG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1
bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwx
OSArMTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVt
ZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNT
dHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlcklu
Zm8iXTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0
TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgp
KTsKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0
Q29udGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90
aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwog
ICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJp
bmcoY29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlcklu
Zm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxl
bmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09O
VmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAg
ICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmlu
Zyhjb250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1f
cGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBq
dXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpT
T2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9u
b3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1
bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0
cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAg
ICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBu
YW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAg
ICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJn
dW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNh
dGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7
CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNh
dGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107
CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwog
ICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAg
IGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2Jq
ZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3Rp
ZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9
Cg==
</data>
<flag name="review"
          id="275857"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251187</attachid>
            <date>2015-04-20 13:59:26 -0700</date>
            <delta_ts>2015-04-20 14:28:46 -0700</delta_ts>
            <desc>Update based on review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>220594</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDI4MjA5YjQzZDlhNjc3NzlkZTcwOTdhZmQyYTVlMzFmZjAzNzk2ZWUKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICAgICAgQVg6IHJpY2hl
ciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQogICAgCiAgICAgICAgUmljaGVyIGFj
Y2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRF
ZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFs
c28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29y
ZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUg
Y2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sg
cG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRm
MjFiNmYuLjUxNDk1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0yMCAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBu
b3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0
byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2Vk
IHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAg
ICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBz
IG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBj
b250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9u
IHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5m
by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2Ut
dXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQuCisKIDIwMTUtMDQt
MTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNl
IGV2ZW50cyBzaG91bGQgZ28gdGhyb3VnaCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29k
ZSBwYXRocwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhNmY4Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRh
dGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5n
ZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZh
bHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmlu
Zm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTBkZTMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5w
dXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1dCB0eXBlPSJwYXNzd29y
ZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZh
bHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworICAg
IDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRz
IG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAg
ICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7
CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAg
ICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAg
ICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZv
KSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIpIHsKKworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUlu
c2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3JkIG5vdGlmaWNhdGlvbnMg
d2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3aWxsIGJlIHdoaXRlc3Bh
Y2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKworICAgICAg
ICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBz
ZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2YWx1ZXRl
c3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNldHNlY3Vy
ZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY3VyZXZh
bHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisKKyAgICAgICAg
aWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAg
ICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRB
dEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5h
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAg
ICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICBz
ZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgpOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4
LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90
aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBp
cyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11
c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiByb2xl
PSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4K
KzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2ZW4gZWlnaHQgbmlu
ZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCis8c2NyaXB0Pgor
CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcg
KyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyArIDE7CisKKyAgICB2YXIg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggKyAy
OworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwgInNlbnRlbmNlIiwgImxp
bmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5jZWJvdW5kYXJ5IiwgInBh
cmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAgICB2YXIgd2ViQXJlYSA9
IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgIHZhciBy
ZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZp
Y2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVj
dGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYg
KHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAg
ICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7CisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblBy
ZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURv
Y3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5v
dGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgIHdlYkFyZWEgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmlj
YXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgLy8g
VHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgIGZv
ciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2Fy
ZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBn
cmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAg
ICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICBzLm1vZGlmeSgi
ZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5
M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkg
QEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNl
ciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVk
Tm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVDdXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlz
ICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1b
IkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFY
VGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJd
IGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBpbmcKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRt
bApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250
ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAgPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPGRpdiBpZD0ibm90
aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAgICAgIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIp
OworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5
cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAgICAgIHZhciBBWFRleHRF
ZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgKyAxOworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiArIDEKKyAg
ICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0VHlwZUN1dCArIDE7CisK
KyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAg
ICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAg
ICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7
CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAg
ICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2Vy
SW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsKKworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUN1dCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFs
dWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVc
Il0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0i
LCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxl
dGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAg
ICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJB
cmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAg
ICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKKyAg
ICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAgZXhlY1NldFNlbGVjdGlv
bkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0ZW5kU2VsZWN0aW9uUmln
aHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENvbW1hbmQoKTsKKyAgICAg
ICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAg
ICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YTY5MDUxNS4uMmY0YmU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0ODMsMTAgKzE0ODMs
MTIgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRp
b25BbHRlcm5hdGl2ZS5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisgICAg
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMTUxMCw2ICsxNTEyLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUyNSw2ICsxNTI5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvVGV4
dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAog
ICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjc4ZDQ2Mi4uMjgyM2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMyBA
QAorMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAg
ICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
YW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5n
IHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBUZXN0czog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0
bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhP
YmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4
dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmll
bGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25S
YW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9y
VGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpT
T05UeXBlcyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21t
YW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4
dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmVk
aXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpzZXRBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGlu
Z0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZv
cm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRG
cmFnbWVudCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdB
cHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29y
ZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6
ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnNldEFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRD
b21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJhbWVT
ZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlv
bik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCisyMDE1
LTA0LTE3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vz
c2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNv
bnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24u
IEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMu
CisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSaWNo
ZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFY
VGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBh
c3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5n
IHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRo
ZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQg
dmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gVGhpcyBjb21taXQgaXMg
YWxsIGluZnJhc3RydWN0dXJlIGFuZCBkb2Vzbid0IGNvbnRhaW4gYW55IGFjY2Vzc2liaWxpdHkg
c3BlY2lmaWMgY2hhbmdlcy4KKwogMjAxNS0wNC0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRm9yY2UgbW91c2UgZXZlbnRzIHNob3VsZCBnbyB0aHJvdWdoIG5v
cm1hbCBtb3VzZSBldmVudCBoYW5kbGluZyBjb2RlIHBhdGhzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBkMDc3YTAyLi5hYTkxNmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAg
LTE0MzY2LDYgKzE0MzY2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTE0NDIyLDYgKzE0NDM2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFu
ZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAt
MTQ3NzMsNiArMTQ4MDEsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDk5Nyw2ICsxNTA1
MywyMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1MjIsNiArMTk1OTIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vz
c2liaWxpdHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdl
XEFkanVzdFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBh
Z2VcQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA0MSwxMCArMjExMTIsMTIgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVM
aW5rQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24u
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgi
IC8+CkBAIC0yMTA3NSw2ICsyMTE0OCw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQu
aCIgLz4KQEAgLTIxMDkzLDYgKzIxMTY4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9zaXRpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlNDQ2
MDg3Li5mMDc0OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNDM4LDYgKzM0MzgsOSBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM0NTAsNiArMzQ1Myw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVk
aXRDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTM1MjgsNiArMzUzNCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM1NzYsNiArMzU4OCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtNzY1Niw2ICs3NjcxLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFj
Y2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIj4KKyAgICAgICAgPEZpbHRl
cj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0eVx3aW48L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KQEAgLTEwNTY2LDYgKzEwNTg0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDU3OCw2ICsxMDU5OSw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NjgsNiArMTA2
OTIsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3Np
dGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA3MjIsNiArMTA3NTIsMTIgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTExMGUwYi4uNTMyNTY0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzIzNSw2ICszMjM1LDcgQEAKIAkJOTAwMTc3NDExMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERl
cml2YXRpdmVzLmggKi87IH07CiAJCTkwMDE3ODgwMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAgKi87IH07CiAJCTkwMDE3ODgxMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCAqLzsgfTsKKwkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzAy
QjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQ
YWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdy
b3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAy
QjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNUIyNEQwOThGMUI2QjAwQzI4ODU1IC8q
IFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjM3OCw4ICs2Mzc5LDE0IEBACiAJCUY1MDY2
NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8q
IEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNs
aWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1
NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1
NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhE
QTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3
OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVC
M0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYy
NjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5
cGUuY3BwICovOyB9OwpAQCAtNjQyOSwxMCArNjQzNiwxNCBAQAogCQlGNTVCM0RERTEyNTFGMTJE
MDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBl
LmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFC
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAx
MjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9j
YWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUx
MTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxl
TWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9
OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0Mjgx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8q
IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovOyB9OwpAQCAtMTA0NjgsNiArMTA0NzksNyBAQAogCQk5MDAxNzczRjEyRTAz
NDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw7IHBhdGggPSBjYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3
ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdl
R3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3Vw
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdF
RTgzIC8qIFBhZ2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
R3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNUIyNEMwOThGMUI2QjAw
QzI4ODU1IC8qIFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwNiw4ICsxNDAxOCwxNCBAQAog
CQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qz
MDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZC
RTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2Fs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2Fs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRv
bklucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1Nyw2ICsx
NDA3NSw4IEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5w
dXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1
dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcy
QTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVG
cmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNl
dHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwpAQCAtMTQwNjcsNiArMTQwODcsOCBAQAogCQlGNTk3M0RERjE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlD
OTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2
MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTYxNSw2ICsx
NTYzNyw3IEBACiAJCQkJMjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlU
YWJsZVJvdy5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENh
Y2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNo
ZS5oICovLAorCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE3Njc5LDYgKzE3NzAyLDggQEAKIAkJCQk5MzMwOUQ4RTA5
OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2
NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1
NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywK
KwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAv
KiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Njg3LDYgKzE3NzEyLDggQEAK
IAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAq
LywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAg
Ki8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAq
LywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBF
ZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21t
YW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQu
aCAqLywKQEAgLTE3NzQzLDYgKzE3NzcwLDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIz
MkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlC
MzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1
MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAog
CQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzc4LDYgKzE3ODA5LDggQEAKIAkJCQk5
MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJ
CQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlG
QTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAor
CQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5o
ICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJ
CUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlE
MDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2NzEs
NiArMjM3MDQsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ3OTUsNiArMjQ4MjksNyBAQAogCQkJCUExOUQ5MzRCMUFBMTFCMUUw
MEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0OUIxMjM3
MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI1NTkzLDYgKzI1NjI4LDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4
MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNY
TUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2
YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8q
IEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY2NDUsNiArMjY2ODEsNyBA
QAogCQkJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyODE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNjkwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MjkxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDJBMTc4RDVB
QjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E2RDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjcsNiArMjY4NjQsNyBAQAogCQkJCTE4
NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVt
b3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY5NTAsNiArMjY5ODgsNyBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAz
NDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkx
NzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNGMTk5QTgwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzgwNCw2ICsyNzg0Myw3IEBA
CiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmlj
ZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMw
MkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODE5OCw2ICsyODIzOCw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVy
YXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1
NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5
RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1
IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQw
MEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM5
Nyw2ICsyODQzOCw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5
RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1
MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyog
SW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAw
RjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTQsNiAr
Mjg4OTYsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1Bl
cmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUx
NUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJp
b2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4
IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5
RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjk4NDAsNiArMjk4ODMsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAv
KiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJF
NkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1
OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IGEwMGIxNWMuLmJmYWFhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTAsNiAr
OTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CiAKKy8vIFBvc3QgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgZm9yIHBhc3N3b3JkIGZpZWxk
cyBvciBlbGVtZW50cyBjb250YWluZWQgaW4gcGFzc3dvcmQgZmllbGRzIGF0IGEgNDBoeiBpbnRl
cnZhbCB0byB0aHdhcnQgYW5hbHlzaXMgb2YgdHlwaW5nIGNhZGVuY2UKK3N0YXRpYyBkb3VibGUg
QWNjZXNzaWJpbGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZhbCA9IDAu
MDI1OworCiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFYQ29tcHV0ZWRPYmplY3RBdHRy
aWJ1dGVDYWNoZTo6Z2V0SWdub3JlZChBWElEIGlkKSBjb25zdAogewogICAgIEhhc2hNYXA8QVhJ
RCwgQ2FjaGVkQVhPYmplY3RBdHRyaWJ1dGVzPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2lkTWFw
cGluZy5maW5kKGlkKTsKQEAgLTEyOSw2ICsxMzIsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNl
dEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9vbCBmbGFnKQogQVhPYmplY3RD
YWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50
KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVj
dENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAgICAsIG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03MDUsNyArNzA5LDcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgUmVmPERvY3VtZW50
PiBwcm90ZWN0b3JGb3JDYWNoZU93bmVyKG1fZG9jdW1lbnQpOwogICAgIG1fbm90aWZpY2F0aW9u
UG9zdFRpbWVyLnN0b3AoKTsKICAgICAKLSAgICAvLyBJbiBEUlQsIHBvc3Rpbmcgbm90aWZpY2F0
aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmlj
YXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gSW4g
dGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVs
eSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVj
dGVkIGJlaGF2aW9yCiAgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJl
ZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFydC4KICAgICBh
dXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9ub3RpZmljYXRpb25zVG9Qb3N0KTsKICAg
ICAKQEAgLTc0Miw2ICs3NDYsMTggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Q
b3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNoYW5nZWQob2JqLT5wYXJlbnRP
YmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0
VGltZXIuc3RvcCgpOworCisgICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBo
YXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25z
LCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUg
bm90aWZpY2F0aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhp
cyBsaXN0IGF0IHRoZSBzdGFydC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUo
bV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBu
b3RpZmljYXRpb24gOiBub3RpZmljYXRpb25zKQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRFZGl0VHlwZUlu
c2VydCwgIiAiLCBWaXNpYmxlUG9zaXRpb24oKSk7Cit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRp
b24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBl
KQogewpAQCAtODUwLDE2ICs4NjYsMjIzIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0
aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxl
UGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hl
OjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7Cisg
ICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
VW5rbm93bjoKKyAgICAgICAgZGF0YUxvZygiVW5rbm93biIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIGRhdGFMb2coIkVkaXQ6
OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmU6CisgICAgICAgIGRhdGFMb2coIk1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgZGF0
YUxvZygiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50
ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtu
b3duOgorICAgICAgICAgICAgZGF0YUxvZygiVW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgICAgICBkYXRhTG9n
KCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlSW5zZXJ0OgorICAgICAgICAgICAgZGF0YUxvZygiSW5zZXJ0Iik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAg
IGRhdGFMb2coIkRpY3RhdGlvbkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgICAgICBkYXRhTG9nKCJUeXBpbmdJ
bnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
Q3V0OgorICAgICAgICAgICAgZGF0YUxvZygiQ3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICAgICAgZGF0YUxvZygiUGFz
dGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblVua25vd246CisgICAgICAgICAgICBkYXRhTG9nKCJVbmtub3duOjoiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZzoKKyAgICAgICAgICAgIGRhdGFMb2coIkJlZ2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAg
ICBkYXRhTG9nKCJFbmQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBkYXRhTG9nKCJQcmV2
aW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgZGF0YUxvZygiTmV4dDo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzOgorICAgICAgICAgICAgZGF0YUxvZygiRGlzY29udGlndW91czo6Iik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3Jh
bnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlVua25vd24iKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXI6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZDoKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJXb3JkIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZToKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6
CisgICAgICAgICAgICAgICAgZGF0YUxvZygiU2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3Jh
cGg6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFn
ZToKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6
CisgICAgICAgICAgICAgICAgZGF0YUxvZygiRG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6Cisg
ICAgICAgICAgICAgICAgZGF0YUxvZygiQWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5n
KQorICAgICAgICBkYXRhTG9nKCItU3luYyIpOworICAgIGRhdGFMb2coIlxuIik7Cit9CisjZW5k
aWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBp
bnRlbnQ7Cit9CisKK3N0YXRpYyBib29sIGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNz
d29yZEZpZWxkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2Jq
ZWN0ICYmIChvYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQoKSk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5v
ZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRl
bnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQg
PSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0
QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVsZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCi0g
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwg
dGV4dCk7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9k
ZSk7CisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoaXNQYXNzd29yZEZpZWxkT3JDb250
YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxl
Y3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFY
T2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVu
dCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlv
bik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVV
bmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisK
KyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChlbnF1ZXVl
UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmplY3QpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBvYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9
CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0
eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5k
aWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0
aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5n
JiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5n
JiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBB
WFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0
RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8
fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5
cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2Jq
ZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0
T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgewor
ICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iamVjdCwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlw
ZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25U
eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgp
LCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihv
YmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVl
cEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOwor
I2VuZGlmCit9CisKK2Jvb2wgQVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFu
Z2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQoreworICAgIGlmICgh
aXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9i
amVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9i
amVjdCkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgLy8gcmV0dXJu
IHRydWUgZXZlbiB0aG91Z2ggdGhlIGVucXVldWUgZGlkbid0IGhhcHBlbiBiZWNhdXNlIHRoaXMg
aXMgYSBwYXNzd29yZCBmaWVsZCBhbmQgY2FsbGVyIHNob3VsZG4ndCBwb3N0IGEgbm90aWZpY2F0
aW9uCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICghbV9wYXNzd29yZE5v
dGlmaWNhdGlvbnNUb1Bvc3QuY29udGFpbnMob2JzZXJ2YWJsZU9iamVjdCkpIHsKKyAgICAgICAg
bV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOwor
ICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90
KEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOwor
ICAgIH0KKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1l
TG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9h
ZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzA3LDE2IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUo
Tm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3Qq
IEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiByb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVjdCgpOworICAgIGlmICghcm9vdE9iamVjdCkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJp
bGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJs
ZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li5h
ZmZlNmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDEx
LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gK
ICNkZWZpbmUgQVhPYmplY3RDYWNoZV9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1l
ci5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgpAQCAtMTg5LDEyICsxOTAsMTggQEAgcHVibGljOgog
ICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJn
ZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAg
dm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFY
Tm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0
QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRl
eHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKLSAgICB9OworI2lmbmRlZiBOREVC
VUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsK
KyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICAvLyBT
aW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21wb3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZv
aWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUg
ZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBp
bnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisgICAgLy8gU2VsZWN0aW9uIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAg
ICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjEzLDEyICsyMjAsNDMgQEAgcHVibGljOgogICAgIEFY
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSogY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNo
ZSgpIHsgcmV0dXJuIG1fY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZS5nZXQoKTsgfQogCiAg
ICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQotICAg
IAorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShpT1MpCisgICAgc3RhdGljIHZv
aWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2Vu
ZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3
Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisg
ICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAgICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAg
QVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAgIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRp
dFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkg
eworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVk
aXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgcmV0dXJuIEFYVGV4dERlbGV0ZWQ7CisgICAgICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVE
aWN0YXRpb246CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgICAgIHJldHVybiBBWFRleHRJbnNlcnRl
ZDsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBBWFRleHRJbnNlcnRlZDsKKyAg
ICAgICAgfQorICAgIH0KKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lk
IHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdl
ZChFbGVtZW50Kik7CkBAIC0yMjksNiArMjY3LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNO
b2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7
IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOwor
ICAgIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRy
PEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmpl
Y3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMjg0LDExIEBAIHBy
aXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0
ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9u
b3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQo
KTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVj
dG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisK
ICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJl
Z2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2Rl
Kik7CkBAIC0yNTEsNiArMjk2LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxp
dHlPYmplY3QqIGZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAg
ICAKICAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgYm9vbCBl
bnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7
CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzM1Nyw5IEBA
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxW
aWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7
IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KLWlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZp
Y2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlw
ZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpAQCAtMzIwLDYgKzM3
MCwxMyBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoTm9kZSopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKFdpZGdldCopIHsgfQogaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KikgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChOb2Rl
KikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCitpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKSB7IH0KKyNlbmRpZgogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45NWMyNjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCkBAIC0wLDAgKzEs
MTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBBWFRleHRTdGF0ZUNoYW5nZUludGVudF9oCisjZGVmaW5lIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorZW51bSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgeworICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorfTsKKworZW51
bSBBWFRleHRFZGl0VHlwZSB7CisgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgIEFYVGV4
dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgQVhUZXh0RWRpdFR5
cGVJbnNlcnQsIC8vIEdlbmVyaWMgdGV4dCBpbnNlcnQKKyAgICBBWFRleHRFZGl0VHlwZVR5cGlu
ZywgLy8gSW5zZXJ0IHZpYSB0eXBpbmcKKyAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8g
SW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZp
YSBDdXQKKyAgICBBWFRleHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKK307CisK
K2VudW0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25Vbmtub3duLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXMsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzCit9OworCitlbnVtIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5IHsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24s
CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZSwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFnZSwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50LAorICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRz
IHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBh
Y3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRp
bCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEg
YWxsIGdyYW51bGFyaXR5IG5vdGlmaWNhdGlvbi4KK307CisKK3N0cnVjdCBBWFRleHRTZWxlY3Rp
b24geworICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7Cit9OworCitzdHJ1Y3QgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgeworICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAgIHVu
aW9uIHsKKyAgICAgICAgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgQVhUZXh0
RWRpdFR5cGUgY2hhbmdlOworICAgIH07CisgICAgYm9vbCBpc1N5bmNocm9uaXppbmcgeyBmYWxz
ZSB9OworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
IHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rpb24gc2Vs
ZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9uKCkpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAg
ICAsIHNlbGVjdGlvbihzZWxlY3Rpb24pCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudChBWFRleHRFZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgIDogdHlwZShBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0KQorICAgICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgeyB9CisKKyAg
ICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9v
bCBpc1N5bmNocm9uaXppbmcpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVj
dGlvbigpCisgICAgICAgICwgaXNTeW5jaHJvbml6aW5nKGlzU3luY2hyb25pemluZykKKyAgICB7
CisgICAgICAgIEFTU0VSVCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAg
IH0KK307CisKK30KKworI2VuZGlmIC8vIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAKaW5kZXggZDhkMjZkZS4uMjAwM2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1
Miw2ICs1NTIsMjcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZp
ZWxkKCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsK
IH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3
b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkKK3sKKyAgICBOb2RlKiBub2RlID0g
dGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBpZiAoSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVs
ZW1lbnQoKSkgeworICAgICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkK
KyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4o
dGhpcyk7CisgICAgfQorCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3Qo
KTsKKyAgICBpZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENh
Y2hlKCkpCisgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJ
bnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCmluZGV4IDNlNzU3MmYuLmE4MmJkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWlu
aW5nUGFzc3dvcmRGaWVsZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNz
SW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmll
bGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmNiMzM4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMjY0
Niw0ICsyNjQ2LDE3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2V0UHJldmVudEtleWJv
YXJkRE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQogI2VuZGlmCiAKK2Jvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5v
ZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCk7CisgICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpICYm
IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1Bhc3N3b3JkRmllbGQoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJhLi44MTZjMzEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRp
dmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1h
Z2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bh
c3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNDb250YWlu
ZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgeyByZXR1cm4gbnVs
bHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xl
VmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5
Ni4uZjY1NWQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE3IEBA
IFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJh
bmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRU
ZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2
ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhP
YmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQo
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wg
PSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJv
bEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uu
c3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3Np
dGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
ciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFZp
c2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQ
b3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgUG9zaXRpb24obm9kZSwgcmFuZ2Uu
c3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBET1dOU1RSRUFNKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBuZXdJbnRlbnQocmFu
Z2UubGVuZ3RoID8gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSk7CisgICAgbV9yZW5kZXJlci0+ZnJh
bWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgbmV3SW50ZW50KTsKIH0KIAogVVJMIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgpIGNvbnN0CkBAIC0xOTYwLDEzICsxOTYzLDE2
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9z
aXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7CiAgICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVs
bCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAg
Ly8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQn
cyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24KLSAgICBpZiAocmFuZ2Uu
c3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpIHsK
KyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAg
ICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5nZS5zdGFydCwgVXNl
clRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9u
IG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7
Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4IGM2
MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYgKzQzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7CiAgICAgdmlydHVhbCB2b2lk
IGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqKSBvdmVy
cmlkZTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyhTY3JvbGxW
aWV3Kik7CiAgICAgCkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhpc3RzKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlT
Y3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZvaWQgcmVtb3Zl
Q2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBi
MDAuLmI2MjMzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9z
L0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtOTUsOCArOTUsMTkgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBB
WE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNh
dGlvbjpub3RpZmljYXRpb25TdHJpbmddOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVU
ZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4
dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JikKIHsKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFNlbGVjdGVkVGV4
dENoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworICAgIHBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYVmFsdWVDaGFuZ2VkKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
Cit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQp
OwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZl
bnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KaW5kZXggYjMwMGU3Ny4uNmVjYWRhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
CkBAIC00NCw2ICs0NCw1MyBAQAogI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3Jl
YXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRl
ZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5k
aWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVk
aXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
IEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZh
bHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdlVmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3Rh
cnRNYXJrZXIiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENo
YW5nZUVsZW1lbnQiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRl
eHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRl
eHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBAIkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5k
aWYKKworLy8gVmVyeSBsYXJnZSBzdHJpbmdzIGNhbiBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcGVy
Zm9ybWFuY2Ugb2Ygbm90aWZpY2F0aW9ucywgc28gdGhpcyBsZW5ndGggaXMgY2hvc2VuIHRvIHRy
eSB0byBmaXQgYW4gYXZlcmFnZSBwYXJhZ3JhcGggb3IgbGluZSBvZiB0ZXh0LCBidXQgbm90IGFs
bG93IHN0cmluZ3MgdG8gYmUgbGFyZ2UgZW5vdWdoIHRvIGh1cnQgcGVyZm9ybWFuY2UuCitzdGF0
aWMgTlNVSW50ZWdlciBjb25zdCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZVRydW5jYXRpb25M
ZW5ndGggPSAxMDAwOworCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBk
b24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MCw2ICsx
MDcsMTkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaikKICAgICBvYmotPnNldFdyYXBwZXIod3JhcHBlci5nZXQoKSk7CiB9CiAKK3N0
YXRpYyBCT09MIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gZmFsc2U7Cit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhi
b29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0g
dmFsdWU7Cit9CitzdGF0aWMgdm9pZCBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8oaWQg
b2JqZWN0LCBOU1N0cmluZyAqbm90aWZpY2F0aW9uLCBpZCB1c2VySW5mbykKK3sKKyAgICBOU0Fj
Y2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdCwgbm90aWZpY2F0
aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVG8gc2ltcGxpZnkgbW9uaXRvcmluZyBmb3Igbm90aWZp
Y2F0aW9ucyBpbiB0ZXN0cywgcmVwb3N0IGFzIGEgc2ltcGxlIE5TTm90aWZpY2F0aW9uIGluc3Rl
YWQgb2YgZm9yY2luZyB0ZXN0IGluZnJhc3R1Y3R1cmUgdG8gc2V0dXAgYW4gSVBDIGNsaWVudCBh
bmQgZG8gYWxsIHRoZSB0cmFuc2xhdGlvbiBiZXR3ZWVuIFdlYkNvcmUgdHlwZXMgYW5kIHBsYXRm
b3JtIHNwZWNpZmljIElQQyB0eXBlcyBhbmQgYmFjaworICAgIGlmIChVTkxJS0VMWShheFNob3Vs
ZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cykpCisgICAgICAgIFtvYmplY3QgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOwor
fQorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKIHsKICAgICBp
ZiAoIW9iaikKQEAgLTE0OSwxNSArMjA5LDEzOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwog
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgQVNTRVJUKFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkXSB8
fCB0cnVlKTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAKLSAgICBOU0FjY2Vz
c2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24p
OwotICAgIAotICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFy
ZSBwb3N0ZWQuCi0gICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmlj
YXRpb246bWFjTm90aWZpY2F0aW9uXTsKKworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyhvYmotPndyYXBwZXIoKSwgbWFjTm90aWZpY2F0aW9uLCBuaWwpOwogfQogCi12b2lkIEFY
T2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogeworICAgIGlmICghb2JqZWN0
KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmplY3QpCisg
ICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tO
U011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChp
bnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7CisgICAgaWYgKGludGVudC50eXBlICE9IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd24pIHsKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKGludGVudC50eXBlKTsKKyAgICAgICAgc3dpdGNo
IChpbnRlbnQudHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmU6CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kOgorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRp
cmVjdGlvbl0gPSBAKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIHN3
aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eV0gPSBAKGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYg
KCFzZWxlY3Rpb24uaXNOb25lKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXJSYW5nZSA9
IFtvYmplY3QtPndyYXBwZXIoKSB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczpz
ZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkgZW5kUG9zaXRpb246c2VsZWN0aW9uLnZpc2libGVFbmQo
KV0pCisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0TWFya2VyUmFuZ2U7CisgICAgfQorCisgICAgaWYgKGlk
IHdyYXBwZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldp
dGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25X
aXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dENoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07
Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBOU1N0cmluZyAqdGV4dCA9IChOU1N0cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2VyIGxl
bmd0aCA9IFt0ZXh0IGxlbmd0aF07CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBu
aWw7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqY2hhbmdlID0gW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxp
dHlUZXh0RWRpdFR5cGVdID0gQCh0eXBlKTsKKyAgICBpZiAobGVuZ3RoID4gTlNBY2Nlc3NpYmls
aXR5VmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0
ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZVRydW5j
YXRpb25MZW5ndGhdOworICAgIH0KKyAgICBpZiAobGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdl
W05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV0gPSB0ZXh0OworICAgIGlmIChwb3NpdGlv
bi5pc05vdE51bGwoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlciA9IFtvYmplY3QtPndy
YXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOnBvc2l0aW9uXSkKKyAgICAgICAg
ICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcl0gPSB0
ZXh0TWFya2VyOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAg
IGlmICghb2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAgaWYg
KCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05T
TXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6M107CisgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQpOworCisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIHR5cGUsIHRleHQsIHBvc2l0aW9uKSkK
KyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBAW2No
YW5nZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOwor
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7CisgICAg
QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNBY2Nl
c3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgQVhQb3N0
Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxp
dHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVs
ZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5
cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlw
ZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgb2JqZWN0
ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm47CisK
KyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFy
eSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7
CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4
dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIGRlbGV0aW9uVHlwZSwgZGVsZXRl
ZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmplY3QsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAg
ICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07
CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworCisgICAg
QWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBOU0Fj
Y2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIo
KSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7Cisg
ICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4K
KyAgICBbd2ViQXJlYS0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZv
XTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2Jq
ZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwg
dXNlckluZm8pOworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25z
IGFyZSBwb3N0ZWQuCisgICAgW29iamVjdC0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJ
bmZvOnVzZXJJbmZvXTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9i
amVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4uYjkz
NDE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU2LDgg
KzU2LDkgQEAgY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogLSAoTlNTdHJpbmcgKilhcmlhTGFuZG1h
cmtSb2xlRGVzY3JpcHRpb247CiAKIC0gKGlkKWF0dGFjaG1lbnRWaWV3OwotLy8gVXNlZCB0byBp
bmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVz
ZWQgYnkgRFJULgorLy8gVXNlZCB0byBpbmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0
aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgdGVzdHMuCiAtICh2b2lkKWFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZTsKKy0gKHZv
aWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRp
b25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbzsKIAogLSAoQ0dQYXRoUmVm
KWNvbnZlcnRQYXRoVG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6UGF0aCAmKXBhdGg7CiAtIChDR1Bv
aW50KWNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6OkZsb2F0UG9pbnQgJilwb2lu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQppbmRleCA1ZGRmYzNh
Li5jNDcyYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBA
IC0zODMsMTMgKzM4Myw2OSBAQCBzdGF0aWMgQk9PTCBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uczsKICsgKHZvaWQpYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlm
aWNhdGlvbnM6KEJPT0wpcmVwb3N0CiB7CiAgICAgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5v
dGlmaWNhdGlvbnMgPSByZXBvc3Q7CisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShp
T1MpCisgICAgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRl
c3RzKHJlcG9zdCk7CisjZW5kaWYKIH0KIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUKIHsKKyAgICBpZiAoYWNjZXNz
aWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpCisgICAgICAgIFtzZWxmIGFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzpuaWxdOwor
fQorCitzdGF0aWMgTlNBcnJheSAqYXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyhOU0FycmF5ICph
cnJheSkKK3sKKyAgICBBU1NFUlQoW2FycmF5IGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3Nd
XSk7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJheSA9IFthcnJheSBtdXRhYmxlQ29w
eV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgW211dGFibGVBcnJheSBjb3VudF07
KSB7CisgICAgICAgIGlkIHZhbHVlID0gbXV0YWJsZUFycmF5W2ldOworICAgICAgICBpZiAoW3Zh
bHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211
dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppIHdpdGhPYmplY3Q6ZGljdGlvbmFyeVJl
bW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tp
bmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJl
cGxhY2VPYmplY3RBdEluZGV4Omkgd2l0aE9iamVjdDphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVz
KHZhbHVlKV07CisgICAgICAgIGVsc2UgaWYgKCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3Ry
aW5nIGNsYXNzXV0gfHwgW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pKSB7
CisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aV07CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpKys7CisgICAgfQorICAgIHJl
dHVybiBbbXV0YWJsZUFycmF5IGF1dG9yZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFy
eSAqZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKE5TRGljdGlvbmFyeSAqZGljdGlvbmFy
eSkKK3sKKyAgICBBU1NFUlQoW2RpY3Rpb25hcnkgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5
IGNsYXNzXV0pOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKm11dGFibGVEaWN0aW9uYXJ5ID0g
W2RpY3Rpb25hcnkgbXV0YWJsZUNvcHldOworICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBkaWN0
aW9uYXJ5KSB7CisgICAgICAgIGlkIHZhbHVlID0gZGljdGlvbmFyeVtrZXldOworICAgICAgICBp
ZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAg
ICAgbXV0YWJsZURpY3Rpb25hcnlba2V5XSA9IGRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBl
cyh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5
IGNsYXNzXV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gYXJyYXlSZW1v
dmluZ05vbkpTT05UeXBlcyh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKCEoW3ZhbHVlIGlzS2lu
ZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVt
YmVyIGNsYXNzXV0pKQorICAgICAgICAgICAgW211dGFibGVEaWN0aW9uYXJ5IHJlbW92ZU9iamVj
dEZvcktleTprZXldOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVEaWN0aW9uYXJ5IGF1dG9y
ZWxlYXNlXTsKK30KKworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihO
U1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJ
bmZvCit7CiAgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zKSB7
Ci0gICAgICAgIE5TRGljdGlvbmFyeSogdXNlckluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25h
cnlXaXRoT2JqZWN0c0FuZEtleXM6bm90aWZpY2F0aW9uTmFtZSwgQCJub3RpZmljYXRpb25OYW1l
IiwgbmlsXTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBw
b3N0Tm90aWZpY2F0aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2Vy
SW5mbzp1c2VySW5mb107CisgICAgICAgIEFTU0VSVChub3RpZmljYXRpb25OYW1lKTsKKyAgICAg
ICAgTlNEaWN0aW9uYXJ5ICppbmZvID0gbmlsOworICAgICAgICBpZiAodXNlckluZm8pIHsKKyAg
ICAgICAgICAgIE5TRGF0YSAqdXNlckluZm9EYXRhID0gW05TSlNPTlNlcmlhbGl6YXRpb24gZGF0
YVdpdGhKU09OT2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh1c2VySW5mbykg
b3B0aW9uczooTlNKU09OV3JpdGluZ09wdGlvbnMpMCBlcnJvcjpuaWxdOworICAgICAgICAgICAg
aWYgKHVzZXJJbmZvRGF0YSkgeworICAgICAgICAgICAgICAgIE5TU3RyaW5nICp1c2VySW5mb1N0
cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTp1c2VySW5mb0RhdGEgZW5jb2Rp
bmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOworICAgICAgICAgICAgICAgIGlmICh1c2VySW5mb1N0
cmluZykKKyAgICAgICAgICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6
IG5vdGlmaWNhdGlvbk5hbWUsIEAidXNlckluZm8iIDogdXNlckluZm9TdHJpbmd9OworICAgICAg
ICAgICAgICAgIFt1c2VySW5mb1N0cmluZyByZWxlYXNlXTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBpZiAoIWluZm8pCisgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlmaWNh
dGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZX07CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNh
dGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86aW5mb107CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi45MjIyOGU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGlu
dGVyZmFjZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0
aW9uczooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246
KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJG
b3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJs
ZVBvczsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAx
ZGViNGRiLi4zYmY3OTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNp
bmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0
bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDE3ICs0NiwyNiBAQCBB
cHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJO
b2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVCghbV9ub2RlLT5wYXJlbnROb2RlKCkp
OwogCiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50
LT5yZW5kZXJlcigpKTsKKyAgICBzZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlSW5zZXJ0
KTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0
aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2Rl
VmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRl
ciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikK
KyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFu
Z2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBw
b3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNo
ZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNp
YmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc1LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4
dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkp
OwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICgh
bV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAK
KwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRo
ZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0g
ICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBt
X25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uNjcxYTk1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAK
QEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRl
ICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAj
aW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDYgKzE2NCwxMyBAQCB2b2lkIEVk
aXRDb21tYW5kQ29tcG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBu
b2RlcykKIH0KICNlbmRpZgogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZENvbXBvc2l0aW9u
Ojp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIGlmICghbV9jb21tYW5kcy5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBtX2NvbW1hbmRzLmxhc3QoKS0+dW5hcHBseUVkaXRUeXBlKCk7CisgICAg
cmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwogdm9pZCBhcHBseUNvbW1hbmQoUGFz
c1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsKICAgICBjb21tYW5kLT5h
cHBseSgpOwpAQCAtMzIwLDkgKzMyOSwzMCBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
c1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CitzdGF0aWMgdm9pZCBzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rpb24oU2lt
cGxlRWRpdENvbW1hbmQgKmNvbW1hbmQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK3sKKyAg
ICBpZiAoIWNvbW1hbmQpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rp
b24pIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgICAgIGNvbW1hbmQtPnNl
dEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgY29tbWFuZC0+c2V0QXBwbHlFZGl0
VHlwZShBWFRleHRFZGl0VHlwZVBhc3RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFZGl0
QWN0aW9uVHlwaW5nOgorICAgICAgICBjb21tYW5kLT5zZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVk
aXRUeXBlVHlwaW5nKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorfQorCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVm
b3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hp
bGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIFJlZlB0cjxJbnNlcnROb2RlQmVm
b3JlQ29tbWFuZD4gY29tbWFuZCA9IEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5z
ZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CisgICAgc2V0Q29tbWFuZEFwcGx5RWRpdFR5cGVGb3JFZGl0aW5nQWN0aW9uKGNvbW1hbmQuZ2V0
KCksIGVkaXRpbmdBY3Rpb24oKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFu
ZCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAt
MzczLDcgKzQwMyw5IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdChQ
YXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQb3NpCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1JlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJlbkZvckVk
aXRpbmcocGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5k
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUpKTsKKyAgICBSZWZQdHI8QXBwZW5kTm9k
ZUNvbW1hbmQ+IGNvbW1hbmQgPSBBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9k
ZSk7CisgICAgc2V0Q29tbWFuZEFwcGx5RWRpdFR5cGVGb3JFZGl0aW5nQWN0aW9uKGNvbW1hbmQu
Z2V0KCksIGVkaXRpbmdBY3Rpb24oKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29t
bWFuZCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZUNoaWxkcmVuSW5S
YW5nZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQpA
QCAtMzk3LDcgKzQyOSw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGUo
UGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50CiAKIHZvaWQgQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9
CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVBbmRQcnVuZUFuY2VzdG9y
cyhQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCkBAIC01MjQsMjEgKzU1NiwzMSBAQCB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVj
dEluc2VydGVkVGV4dAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50
b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKIHsKLSAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7CisgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkgeworICAgICAgICBSZWZQdHI8
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY29tbWFuZCA9IEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpOworICAgICAgICBzZXRDb21tYW5kQXBw
bHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rpb24oY29tbWFuZC5nZXQoKSwgZWRpdGluZ0FjdGlvbigp
KTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCk7CisgICAgfQogfQog
CiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0
cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShu
b2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNvbW1hbmQgPSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCk7CisgICAgaWYgKGVkaXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQor
ICAgICAgICBjb21tYW5kLT5zZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlQ3V0KTsKKyAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kKTsKIH0KIAogdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50
VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOwotICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgUmVmUHRyPERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOworICAgIGlmICghcmVwbGFjZW1lbnRUZXh0Lmlz
RW1wdHkoKSkgeworICAgICAgICBSZWZQdHI8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ+IGNvbW1hbmQgPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5v
ZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgp
KTsKKyAgICAgICAgc2V0Q29tbWFuZEFwcGx5RWRpdFR5cGVGb3JFZGl0aW5nQWN0aW9uKGNvbW1h
bmQuZ2V0KCksIGVkaXRpbmdBY3Rpb24oKSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKGNvbW1hbmQpOworICAgIH0KIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5vZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0
ICsxNTY1LDExIEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVs
ZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAKK0FYVGV4dEVkaXRUeXBlIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICBpZiAoIW1fY29tbWFuZHMuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gbV9jb21tYW5kcy5sYXN0KCktPmFwcGx5RWRpdFR5cGUoKTsKKyAgICBy
ZXR1cm4gRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5o
CmluZGV4IGMyYjQ4OWQuLjY1OGU3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOwogY2xhc3MgRWRpdGluZ1N0
eWxlOwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAtNTksNiAr
NjAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIEFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlw
ZSgpOworCiBwcml2YXRlOgogICAgIEVkaXRDb21tYW5kQ29tcG9zaXRpb24oRG9jdW1lbnQmLCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzdGFydGluZ1NlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uLCBFZGl0QWN0aW9uKTsKIApAQCAtODcsNiArOTAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5k
aWNhdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3Jy
ZWN0aW9uSW5kaWNhdG9yKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRC
bGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBBWFRleHRFZGl0
VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNp
dCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZmE5ZjQyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0
aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRl
bGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBz
YW5pdGl6ZU1hcmt1cCkKKyAgICA6IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNt
YXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVj
aWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKQoreworfQorCitFZGl0QWN0aW9uIEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBF
ZGl0QWN0aW9uQ3V0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyN2ViOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisjZGVmaW5lIEN1dERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBw
dWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxD
dXREZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29s
IHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUs
IGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZh
bHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVs
ZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIEN1dERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAy
ZWE5NmQ1Li5jNTg4ZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDggQEAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxl
ZGl0aW5nLmgiCiAKQEAgLTQzLDYgKzQ1LDEyIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAg
ICAgQVNTRVJUKG1fbm9kZSk7CiAgICAgQVNTRVJUKG1fb2Zmc2V0IDw9IG1fbm9kZS0+bGVuZ3Ro
KCkpOwogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7
CisgICAgc2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZURlbGV0ZSk7Cit9CisKK1N0cmlu
ZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVy
biBtX3RleHQ7CiB9CiAKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgp
CkBAIC01OCw4ICs2Niw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBs
eSgpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJl
Zm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxl
UG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVs
ZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODEsOCBAQCB2b2lk
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmlu
c2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBl
KCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7
CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLjI2ZDlkMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYs
IDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKIAor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCBjb3VudCkpOwogICAgIH0KIAotcHJpdmF0ZToKKyAgICBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7
CisKK3Byb3RlY3RlZDoKICAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOwogCitwcml2YXRlOgorCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9V
bmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAg
LTg4NiwxMCArODg2LDcgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkK
IAogRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29u
c3QKIHsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVz
ZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0
aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGlu
Z0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRv
IFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlv
bkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUg
dHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0
Li5kNTNlNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5j
cHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNp
bmNsdWRlICJBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0xMTUsNyAr
MTE2LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xp
bmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9u
QWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0
ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGlu
ZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENv
bW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2Vy
dC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxp
ZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENv
bW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1h
cmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3Rh
cnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0
aXZlc0luTGluZSkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGlu
Z1NlbGVjdGlvbigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41MWI0NjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRl
ICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRl
eHQsIG1hcmtlclN1cHBsaWVyKQoreworfQorCitFZGl0QWN0aW9uIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlv
bkRpY3RhdGlvbjsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjE1YjYwNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2Vy
dFRleHRDb21tYW5kX2gKKyNkZWZpbmUgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorCisj
aW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFu
ZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZD4g
Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3Vw
cGxpZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25z
dCBTdHJpbmcmLCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworCisg
ICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1
NjUzMi4uYTQyNzk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFu
ZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVk
aXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
QEAgLTExMiw2ICsxMTMsMjggQEAgdm9pZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0
ZUVkaXRDb21tYW5kKiBwYXJlbnQpCiAgICAgfQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5rbm93
bjsKK30KKworQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7
CisgICAgc3dpdGNoIChhcHBseUVkaXRUeXBlKCkpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VW5rbm93bjoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5rbm93bjsKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
ICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAg
IHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0ZTsKKyAgICB9CisgICAgcmV0dXJuIEFYVGV4dEVk
aXRUeXBlVW5rbm93bjsKK30KKwogdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6ZG9SZWFwcGx5KCkK
IHsKICAgICBkb0FwcGx5KCk7CkBAIC0xMjUsNCArMTQ4LDI0IEBAIHZvaWQgU2ltcGxlRWRpdENv
bW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9k
ZSo+JiBuCiB9CiAjZW5kaWYKIAorQVhUZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OmFw
cGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBtX2FwcGx5RWRpdFR5cGU7Cit9CisKK3ZvaWQg
U2ltcGxlRWRpdENvbW1hbmQ6OnNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgYXBwbHlF
ZGl0VHlwZSkKK3sKKyAgICBtX2FwcGx5RWRpdFR5cGUgPSBhcHBseUVkaXRUeXBlOworfQorCit2
b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShO
b2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICgh
Y2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3
Li5kZDdiMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisj
aW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNs
dWRlICJWaXNpYmxlU2VsZWN0aW9uLmgiCiAKQEAgLTU5LDYgKzYwLDkgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUo
KTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAg
ICAgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYpOwpAQCAtOTAsNiArOTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JikgPSAwOwogI2VuZGlmCiAK
KyAgICB2aXJ0dWFsIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUpOworCiBwcm90ZWN0ZWQ6CiAg
ICAgZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRD
b21tYW5kKGRvY3VtZW50KSB7IH0KIApAQCAtOTcsOCArMTA0LDExIEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIGFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNl
bmRpZgogCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJik7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgQVhUZXh0RWRpdFR5cGUgbV9h
cHBseUVkaXRUeXBlIHsgQVhUZXh0RWRpdFR5cGVVbmtub3duIH07CiB9OwogCiBpbmxpbmUgU2lt
cGxlRWRpdENvbW1hbmQqIHRvU2ltcGxlRWRpdENvbW1hbmQoRWRpdENvbW1hbmQqIGNvbW1hbmQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKaW5kZXggZGMzYWUz
My4uMzk2YTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxs
SW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNw
cApAQCAtMzIsMTAgKzMyLDEyIEBACiAjaW5jbHVkZSA8QnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPENyZWF0
ZUxpbmtDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cD4KICNpbmNsdWRlIDxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEaWN0YXRpb25BbHRlcm5hdGl2
ZS5jcHA+CiAjaW5jbHVkZSA8RGljdGF0aW9uQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8RGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRDb21tYW5kLmNwcD4KICNp
bmNsdWRlIDxFZGl0aW5nU3R5bGUuY3BwPgogI2luY2x1ZGUgPEVkaXRvci5jcHA+CkBAIC01OSw2
ICs2MSw4IEBACiAjaW5jbHVkZSA8UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJl
ZFBvc2l0aW9uLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1h
bmQuY3BwPgpAQCAtNzcsNiArODEsNyBAQAogI2luY2x1ZGUgPFRleHRJbnNlcnRpb25CYXNlQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8VGV4dEl0ZXJhdG9yLmNwcD4KICNpbmNsdWRlIDxUeXBpbmdD
b21tYW5kLmNwcD4KKyNpbmNsdWRlIDxUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA+CiAjaW5j
bHVkZSA8VW5saW5rQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VmlzaWJsZVBvc2l0aW9uLmNwcD4K
ICNpbmNsdWRlIDxWaXNpYmxlU2VsZWN0aW9uLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAppbmRleCA3MTBhYTM5Li5mZjBmMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJD
b21wb3NpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNs
dWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVy
LmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRpY3Rh
dGlvbkFsdGVybmF0aXZlLmgiCkBAIC0zNzQsMTIgKzM3NSwxNSBAQCBib29sIEVkaXRvcjo6ZGVs
ZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVs
YXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGlmIChlZGl0aW5nQWN0aW9u
ID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBlbHNlCisg
ICAgICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgc21hcnREZWxldGUpKTsKIH0KIAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCkBAIC0x
MDAxLDcgKzEwMDUsNyBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxD
b21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGlu
ZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBl
bHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25P
cHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rp
b246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21t
YW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21t
YW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoY21kLT5h
cHBseUVkaXRUeXBlKCkpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVu
dHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlv
bi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93
SWZTY2hlZHVsZWQoKTsKQEAgLTEwMzIsNyArMTAzNiw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxp
ZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5v
dGlmeVRleHRGcm9tQ29udHJvbHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwg
Y21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlv
biBuZXdTZWxlY3Rpb24oY21kLT5zdGFydGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGNtZC0+dW5hcHBseUVkaXRUeXBlKCkpKTsKICAgICBk
aXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0
YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAg
dXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9p
ZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikK
IAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9
PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5T
bWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVk
aXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3ND
b3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
ci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9
CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0
U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQp
CiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3Qg
dXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3Jw
aGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYs
NyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3
MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBm
b3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlv
bkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0
aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVj
dGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBv
cGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5n
IGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlv
dSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBe
KToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLjg3NjM3ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9u
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBM
QVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0
eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3Np
dGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAg
dm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwog
Ci0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7
CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAog
ICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07
CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCA1MTFjYjAyLi4zZDY2YWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE5Miw3ICsx
OTIsOSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGcmFtZSYgZnJh
bWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLAogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2Vy
dEZyYWdtZW50KEZyYW1lJiBmcmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudCkKIHsKICAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgYXBwbHlDb21tYW5k
KFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdt
ZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25V
bnNwZWNpZmllZCkpOworICAgIFJlZlB0cjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY29tbWFu
ZCA9IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZy
YWdtZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rp
b25VbnNwZWNpZmllZCk7CisgICAgY29tbWFuZC0+c2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0
VHlwZUluc2VydCk7CisgICAgYXBwbHlDb21tYW5kKGNvbW1hbmQpOwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDU3
NDUxNzAuLjhiMWM5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCkBAIC0xMzksNyArMTM5LDcgQEAgRWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0
YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiB2b2lkIEZyYW1lU2VsZWN0aW9u
Ojptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJU
cmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24pCiB7CiAgICAgc2V0U2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVu
dCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwKLSAgICAg
ICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGFsaWduKTsKKyAg
ICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRT
ZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpt
b3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24g
JmV4dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNzAsOCBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3Np
dGlvbiYgYmFzZSwgY29uc3QgUG9zaXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0
aW9uOwogICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQp
OwogICAgIG5ld1NlbGVjdGlvbi5zZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlv
bik7Ci0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSB8IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3Vs
ZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpLCBpbnRlbnQpOwogfQogCiB2b2lkIERyYWdD
YXJldENvbnRyb2xsZXI6OnNldENhcmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBw
b3NpdGlvbikKQEAgLTI1NCw3ICsyNTUsMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2Vs
ZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAg
ICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVu
dCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJl
dCgpKQorICAgICAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duIH0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQgPSBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQgPSBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRT
ZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJz
b3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rp
b25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxh
cml0eSBncmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODYsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxl
Y3RpbwogICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rp
b24uYmFzZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2Vs
ZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAg
ICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1l
bnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlv
bkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBh
bGlnbiwgZ3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0U2V0
U2VsZWN0aW9uSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAg
Ly8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhp
cyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8v
IHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUg
c2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRo
ZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNs
ZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzMwLDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2Vs
ZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2Vs
ZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0
aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwg
VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxh
cml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNTEsNyBAQCB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBT
ZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5n
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOwor
ICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1
cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0z
NjAsNyArMzcwLDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRh
dGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2Vs
ZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkK
IHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzgwLDcgKzM5MCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbigpCiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVu
dCk7CiAgICAgfQogCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
OworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIAog
ICAgIGlmIChhdXRvKiBjbGllbnQgPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKSkKICAgICAg
ICAgY2xpZW50LT5kaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsKQEAgLTEwMjEs
NyArMTAzMSw4MCBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmlu
Z0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3Vu
ZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFy
aXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8
fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKK0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVj
dGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7
CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9u
OjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAg
ICAgIGlmIChkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBm
bGlwID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51
bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50
LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFj
dGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAg
IGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5
OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1l
bnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAg
IGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6Cisg
ICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5Ogor
ICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFy
aXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2Fz
ZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERv
Y3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdo
dDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAg
ICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlw
ID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAg
Y2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlm
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNl
clRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3Nyw2ICsxMTYwLDExIEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0
ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQo
YWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9m
IHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRp
b24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0
IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0
aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpA
QCAtMTcxMCw4ICsxNzk4LDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxl
Y3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsK
KyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZCwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlz
Y29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgfSk7CisgICAgICAgIHNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBG
aXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29s
IGNsb3NlVHlwaW5nKQpAQCAtMjQyMyw3ICsyNTEzLDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFt
ZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBW
aXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24u
c2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29y
ZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZO
ZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0UG9z
KGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9uIGVuZFBv
cyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uMDU2ZDIzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFt
ZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICByZXR1cm4gQ2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwg
KHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFsU2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDAp
OwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaW5saW5lIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGlj
aXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUqID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlv
biYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hv
dWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGln
bkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51
bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbklu
dGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3Nl
VHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9
OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0
ZUFuZFJldmVhbFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRT
ZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0
aW9uKCk7CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Uo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWdu
T25TY3JvbGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBAIHByaXZhdGU6
CiAgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmln
YXRpb24oRVBvc2l0aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9p
ZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9u
RGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRT
ZWxlY3Rpb25JbnRlbnQoKSk7CiAjZWxzZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNl
bGVjdGlvbkNoYW5nZShBWFRleHRTZWxlY3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2
b2lkIHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRy
b2woRVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUp
CiAKICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVG
TCkpCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJh
bWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLjUz
NjVkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTQ4LDYgKzQ5LDEy
IEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fbm9kZSk7CiAgICAgQVNT
RVJUKG1fb2Zmc2V0IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwogICAgIEFTU0VSVCghbV90ZXh0Lmlz
RW1wdHkoKSk7CisgICAgc2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZUluc2VydCk7Cit9
CisKK1N0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKK3sK
KyAgICByZXR1cm4gbV90ZXh0OwogfQogCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmRvQXBwbHkoKQpAQCAtNjYsOCArNzMsOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQs
IElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5z
ZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTg0LDggKzkxLDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHko
KQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMg
YmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUt
PmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCmluZGV4IDMxMGJiYjMuLjFhZDk0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
aWZuZGVmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJF
ZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmlu
ZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJ
T1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwCmluZGV4IGQxNmI1ZDYuLmU2NmQyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0yNiw5ICsyNiwxMSBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgi
CiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDYgKzQ4LDcgQEAg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFAKICAgICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9k
ZSgpKTsKIAogICAgIEFTU0VSVChtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCktPmhhc0VkaXRhYmxl
U3R5bGUoKSB8fCAhbV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpKTsKKyAgICBz
ZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlSW5zZXJ0KTsKIH0KIAogdm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC01Nyw4ICs2MCwxMCBAQCB2b2lkIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3Jl
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04p
OwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBt
X2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0
PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0
Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENo
aWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2Rl
VmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzIsMTAgQEAgdm9p
ZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwg
bV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4
dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2Vy
dENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRD
aGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5u
b2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9p
bnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjlh
MjU3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmRfaAogI2RlZmluZSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzgsOSArMzksMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0
QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAot
cHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJl
Zm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogCitwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRv
VW5hcHBseSgpIG92ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5oCmluZGV4IGYxMGQyZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTU5LDEwICs1OSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0
ZXh0LCBtYXJrZXJTdXBwbGllcikpOwogICAgIH0KIAotcHJpdmF0ZToKLQotICAgIEluc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4dENvbW1h
bmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlv
bk1hcmtlclN1cHBsaWVyPik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25z
dCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsK
KworcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZC5jcHAKaW5kZXggMmMwNjNjMC4uZWEwNmY1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZC5jcHAKQEAgLTMxLDEwICszMSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQor
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5vZGUt
PmRvY3VtZW50KCkpCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
CisgICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQobV9u
b2RlKTsKIH0KQEAgLTU0LDQgKzU1LDkgQEAgdm9pZCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgcmVtb3ZlTm9kZShtX25vZGUsIG1fc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwogfQogCitFZGl0QWN0aW9uIFJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9lZGl0aW5nQWN0aW9uOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKaW5k
ZXggNGI5MTk3NC4uMjJjMDQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaApAQCAtMzIsMTgg
KzMyLDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBS
ZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRp
dGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KTsKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOworICAg
IEVkaXRBY3Rpb24gbV9lZGl0aW5nQWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41YTYxMzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTg1ODcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0w
LDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0Owor
CitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBj
b3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZh
dGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5v
ZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYTNjN2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDog
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2Rl
bGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworICAgIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRp
dFR5cGVJbnNlcnQpOworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVy
bjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoK
KyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlUGFzdGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FjaGUt
PnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxl
dGUsIG1fZGVsZXRlZFRleHQsIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE0MmFiNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAor
I2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJs
aWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0
KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworCisgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGZiMzg4MGMuLjMxNzMxYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNp
bmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVEZWNs
YXJhdGlvbi5oIgorI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCkBAIC00Nyw2ICs0OCw4IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgi
CiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1
cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVBy
b3BlcnRpZXMuaCIKQEAgLTE0MzIsNiArMTQzNSwxNiBAQCBFZGl0QWN0aW9uIFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKICAgICByZXR1cm4gbV9lZGl0QWN0
aW9uOwogfQogCitBWFRleHRFZGl0VHlwZSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6YXBwbHlF
ZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIG1fYXBwbHlFZGl0VHlwZTsKK30KKwordm9pZCBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6c2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZSBhcHBs
eUVkaXRUeXBlKQoreworICAgIG1fYXBwbHlFZGl0VHlwZSA9IGFwcGx5RWRpdFR5cGU7Cit9CisK
IC8vIElmIHRoZSB1c2VyIGlzIGluc2VydGluZyBhIGxpc3QgaW50byBhbiBleGlzdGluZyBsaXN0
LCBpbnN0ZWFkIG9mIG5lc3RpbmcgdGhlIGxpc3QsCiAvLyB3ZSBwdXQgdGhlIGxpc3QgaXRlbXMg
aW50byB0aGUgZXhpc3RpbmcgbGlzdC4KIE5vZGUqIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpp
bnNlcnRBc0xpc3RJdGVtcyhQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBwcnBMaXN0RWxlbWVudCwg
Tm9kZSogaW5zZXJ0aW9uQmxvY2ssIGNvbnN0IFBvc2l0aW9uJiBpbnNlcnRQb3MsIEluc2VydGVk
Tm9kZXMmIGluc2VydGVkTm9kZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uOGM0ZDE2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtNTMsNiAr
NTMsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgYWN0aW9uKSk7CiAgICAg
fQogCisgICAgdmlydHVhbCBBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKTsKKwogcHJpdmF0ZToK
ICAgICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4sIENvbW1hbmRPcHRpb25zLCBFZGl0QWN0aW9uKTsKIApAQCAtMTIxLDYgKzEy
NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByZXZlbnROZXN0aW5nOwogICAgIGJvb2wgbV9t
b3ZpbmdQYXJhZ3JhcGg7CiAgICAgRWRpdEFjdGlvbiBtX2VkaXRBY3Rpb247CisgICAgQVhUZXh0
RWRpdFR5cGUgbV9hcHBseUVkaXRUeXBlIHsgQVhUZXh0RWRpdFR5cGVQYXN0ZSB9OwogICAgIGJv
b2wgbV9zYW5pdGl6ZUZyYWdtZW50OwogICAgIGJvb2wgbV9zaG91bGRNZXJnZUVuZDsKICAgICBi
b29sIG1faWdub3JlTWFpbEJsb2NrcXVvdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcAppbmRleCA5MzI5Y2RmLi44YzBmYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJNYXRoTUxF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAi
VmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtMzczLDcgKzM3
NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRl
eHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2Vy
dGVkVGV4dCkKIHsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNl
cnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4
dCwKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwK
ICAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2Vy
dFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IElu
c2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CiAKICAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxlY3Rpb24oKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5YzczNzEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQu
aCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmVi
YWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1l
bnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworRWRp
dEFjdGlvbiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIEVkaXRBY3Rpb25UeXBpbmc7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi44ZWNjMmQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZF9oCisjZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gK
KworI2luY2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1h
bmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQgPSBmYWxzZSwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxh
bmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAg
IFR5cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwg
UmViYWxhbmNlVHlwZSk7CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBj
b25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
YXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li4zMzJlMGFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03
OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJh
bWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLmZkNDE5OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00
NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJl
Y3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAot
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0
YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAg
ICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rp
b24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpB
WFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAg
ICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3Rh
cnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNp
ZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi4zNjg0ZTI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4
LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJU
ZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNT
RVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVl
ICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNW
YWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0No
YW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8
ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkg
JiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJl
cigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90
aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNl
cnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0
SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFs
dWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBp
bm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRG
T1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7Cisg
ICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVl
LCBBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0
aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2Vu
ZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBjOGJlZTllLi5iYjRlZWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMjEwLDcgKzMyMTAsOCBA
QCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBz
ZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
QVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgIHNlbGVjdGlvbi5zZXRT
ZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIGhh
bmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50
KiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2Mw
N2ZlLi5kOGQyNWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBA
IC0zNDAsOCArMzQwLDEwIEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRv
Y3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXliCiAgICAgaWYgKGNhcmV0
QnJvd3NpbmcpIHsKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBmaXJzdFBvc2l0aW9uSW5P
ckJlZm9yZU5vZGUoZWxlbWVudC5nZXQoKSk7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3
U2VsZWN0aW9uKHBvc2l0aW9uLCBwb3NpdGlvbiwgRE9XTlNUUkVBTSk7Ci0gICAgICAgIGlmIChm
cmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAg
ICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOwor
ICAgICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbikpIHsKKyAgICAgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVVua25vd24gfSk7CisgICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoVXNlclRyaWdnZXJlZCksIGludGVudCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBlbGVt
ZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMTNkNzlhLi4yNGIwODQzIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTUtMDQtMjAgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzIwMTY5MDU4PiBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgKDE0MjcxOSkKKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24g
YW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVj
aCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGlu
IHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNo
YW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2Fy
dCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNj
ZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlv
bi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxk
cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgor
ICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9u
UmVjZWl2ZWQ6XSk6CisKIDIwMTUtMDQtMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIE5vdCBhYmxlIHRvIGJ1aWxkIFdlYktpdCBhZ2FpbnN0IGlPUyBTaW11
bGF0b3IgOC4zIFNESwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLjdiMDE3
YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTExMiwxNiArMTEyLDI3IEBACiAgICAg
aWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRp
b24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNP
TlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5h
bWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVB
cmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpz
Tm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJn
dW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAg
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBb
dXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBn
bG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlm
IChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1l
bnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAg
ICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90
aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0
aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAg
ICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1l
IGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAg
IGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1l
bnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxs
QXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0
aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Ly8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUg
YW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAg
YXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0
eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3Rp
ZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFt
ZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBh
cmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEy
NSwxOSArMTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1F
bGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
TlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNl
ckluZm8iXTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdl
R2V0TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFn
ZSgpKTsKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2Ny
aXB0Q29udGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpz
Tm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0p
OwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNl
ckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVl
IGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9K
U09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwor
ICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0
cmluZyhjb250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYg
KG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVu
dCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAg
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4o
bV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVB
cmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIg
Z2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4K
KyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlv
biBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07Cisg
ICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAg
YXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmpl
Y3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlm
aWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxz
ZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlm
aWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
M107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkp
OwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAg
ICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpT
T2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9u
b3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251190</attachid>
            <date>2015-04-20 14:28:46 -0700</date>
            <delta_ts>2015-04-20 14:39:05 -0700</delta_ts>
            <desc>Update based on review (fixed iOS/GTK build)</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>220570</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDRkZGRmODU3MzYyOTJjNTMzNjEzOGI1ZTU2MzRjOTFhYTliYTFkNTMKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICAgICAgQVg6IHJpY2hl
ciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQogICAgCiAgICAgICAgUmljaGVyIGFj
Y2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRF
ZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFs
c28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29y
ZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUg
Y2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sg
cG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRm
MjFiNmYuLjUxNDk1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0yMCAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBu
b3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0
byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2Vk
IHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAg
ICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBz
IG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBj
b250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9u
IHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5m
by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2Ut
dXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQuCisKIDIwMTUtMDQt
MTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNl
IGV2ZW50cyBzaG91bGQgZ28gdGhyb3VnaCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29k
ZSBwYXRocwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhNmY4Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRh
dGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5n
ZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZh
bHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmlu
Zm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTBkZTMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5w
dXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1dCB0eXBlPSJwYXNzd29y
ZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZh
bHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworICAg
IDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRz
IG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAg
ICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7
CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAg
ICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAg
ICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZv
KSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIpIHsKKworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUlu
c2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3JkIG5vdGlmaWNhdGlvbnMg
d2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3aWxsIGJlIHdoaXRlc3Bh
Y2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKworICAgICAg
ICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBz
ZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2YWx1ZXRl
c3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNldHNlY3Vy
ZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY3VyZXZh
bHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisKKyAgICAgICAg
aWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAg
ICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRB
dEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5h
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAg
ICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICBz
ZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgpOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4
LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90
aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBp
cyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11
c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiByb2xl
PSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4K
KzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2ZW4gZWlnaHQgbmlu
ZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCis8c2NyaXB0Pgor
CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcg
KyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyArIDE7CisKKyAgICB2YXIg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggKyAy
OworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwgInNlbnRlbmNlIiwgImxp
bmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5jZWJvdW5kYXJ5IiwgInBh
cmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAgICB2YXIgd2ViQXJlYSA9
IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgIHZhciBy
ZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZp
Y2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVj
dGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYg
KHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAg
ICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7CisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblBy
ZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURv
Y3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5v
dGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgIHdlYkFyZWEgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmlj
YXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgLy8g
VHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgIGZv
ciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2Fy
ZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBn
cmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAg
ICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICBzLm1vZGlmeSgi
ZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5
M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkg
QEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNl
ciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVk
Tm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVDdXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlz
ICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1b
IkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFY
VGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJd
IGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBpbmcKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRt
bApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250
ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAgPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPGRpdiBpZD0ibm90
aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAgICAgIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIp
OworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5
cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAgICAgIHZhciBBWFRleHRF
ZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgKyAxOworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiArIDEKKyAg
ICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0VHlwZUN1dCArIDE7CisK
KyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAg
ICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAg
ICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7
CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAg
ICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2Vy
SW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsKKworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUN1dCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFs
dWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVc
Il0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0i
LCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxl
dGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAg
ICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJB
cmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAg
ICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKKyAg
ICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAgZXhlY1NldFNlbGVjdGlv
bkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0ZW5kU2VsZWN0aW9uUmln
aHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENvbW1hbmQoKTsKKyAgICAg
ICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAg
ICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YTY5MDUxNS4uMmY0YmU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0ODMsMTAgKzE0ODMs
MTIgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRp
b25BbHRlcm5hdGl2ZS5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisgICAg
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMTUxMCw2ICsxNTEyLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUyNSw2ICsxNTI5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvVGV4
dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAog
ICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjc4ZDQ2Mi4uMjgyM2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMyBA
QAorMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAg
ICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
YW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5n
IHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBUZXN0czog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0
bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhP
YmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4
dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmll
bGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25S
YW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9y
VGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpT
T05UeXBlcyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21t
YW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4
dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmVk
aXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpzZXRBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGlu
Z0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZv
cm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRG
cmFnbWVudCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdB
cHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29y
ZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6
ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnNldEFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRD
b21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJhbWVT
ZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlv
bik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCisyMDE1
LTA0LTE3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vz
c2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNv
bnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24u
IEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMu
CisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSaWNo
ZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFY
VGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBh
c3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5n
IHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRo
ZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQg
dmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gVGhpcyBjb21taXQgaXMg
YWxsIGluZnJhc3RydWN0dXJlIGFuZCBkb2Vzbid0IGNvbnRhaW4gYW55IGFjY2Vzc2liaWxpdHkg
c3BlY2lmaWMgY2hhbmdlcy4KKwogMjAxNS0wNC0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRm9yY2UgbW91c2UgZXZlbnRzIHNob3VsZCBnbyB0aHJvdWdoIG5v
cm1hbCBtb3VzZSBldmVudCBoYW5kbGluZyBjb2RlIHBhdGhzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBkMDc3YTAyLi5hYTkxNmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAg
LTE0MzY2LDYgKzE0MzY2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTE0NDIyLDYgKzE0NDM2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFu
ZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAt
MTQ3NzMsNiArMTQ4MDEsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDk5Nyw2ICsxNTA1
MywyMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1MjIsNiArMTk1OTIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vz
c2liaWxpdHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdl
XEFkanVzdFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBh
Z2VcQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA0MSwxMCArMjExMTIsMTIgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVM
aW5rQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24u
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgi
IC8+CkBAIC0yMTA3NSw2ICsyMTE0OCw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQu
aCIgLz4KQEAgLTIxMDkzLDYgKzIxMTY4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9zaXRpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlNDQ2
MDg3Li5mMDc0OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNDM4LDYgKzM0MzgsOSBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM0NTAsNiArMzQ1Myw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVk
aXRDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTM1MjgsNiArMzUzNCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM1NzYsNiArMzU4OCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtNzY1Niw2ICs3NjcxLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFj
Y2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIj4KKyAgICAgICAgPEZpbHRl
cj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0eVx3aW48L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KQEAgLTEwNTY2LDYgKzEwNTg0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDU3OCw2ICsxMDU5OSw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NjgsNiArMTA2
OTIsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3Np
dGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA3MjIsNiArMTA3NTIsMTIgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTExMGUwYi4uNTMyNTY0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzIzNSw2ICszMjM1LDcgQEAKIAkJOTAwMTc3NDExMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERl
cml2YXRpdmVzLmggKi87IH07CiAJCTkwMDE3ODgwMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAgKi87IH07CiAJCTkwMDE3ODgxMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCAqLzsgfTsKKwkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzAy
QjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQ
YWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdy
b3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAy
QjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNUIyNEQwOThGMUI2QjAwQzI4ODU1IC8q
IFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjM3OCw4ICs2Mzc5LDE0IEBACiAJCUY1MDY2
NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8q
IEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNs
aWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1
NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1
NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhE
QTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3
OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVC
M0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYy
NjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5
cGUuY3BwICovOyB9OwpAQCAtNjQyOSwxMCArNjQzNiwxNCBAQAogCQlGNTVCM0RERTEyNTFGMTJE
MDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBl
LmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFC
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAx
MjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9j
YWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUx
MTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxl
TWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9
OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0Mjgx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8q
IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovOyB9OwpAQCAtMTA0NjgsNiArMTA0NzksNyBAQAogCQk5MDAxNzczRjEyRTAz
NDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw7IHBhdGggPSBjYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3
ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdl
R3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3Vw
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdF
RTgzIC8qIFBhZ2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
R3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNUIyNEMwOThGMUI2QjAw
QzI4ODU1IC8qIFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwNiw4ICsxNDAxOCwxNCBAQAog
CQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qz
MDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZC
RTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2Fs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2Fs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRv
bklucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1Nyw2ICsx
NDA3NSw4IEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5w
dXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1
dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcy
QTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVG
cmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNl
dHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwpAQCAtMTQwNjcsNiArMTQwODcsOCBAQAogCQlGNTk3M0RERjE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlD
OTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2
MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTYxNSw2ICsx
NTYzNyw3IEBACiAJCQkJMjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlU
YWJsZVJvdy5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENh
Y2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNo
ZS5oICovLAorCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE3Njc5LDYgKzE3NzAyLDggQEAKIAkJCQk5MzMwOUQ4RTA5
OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2
NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1
NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywK
KwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAv
KiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Njg3LDYgKzE3NzEyLDggQEAK
IAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAq
LywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAg
Ki8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAq
LywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBF
ZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21t
YW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQu
aCAqLywKQEAgLTE3NzQzLDYgKzE3NzcwLDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIz
MkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlC
MzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1
MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAog
CQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzc4LDYgKzE3ODA5LDggQEAKIAkJCQk5
MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJ
CQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlG
QTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAor
CQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5o
ICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJ
CUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlE
MDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2NzEs
NiArMjM3MDQsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ3OTUsNiArMjQ4MjksNyBAQAogCQkJCUExOUQ5MzRCMUFBMTFCMUUw
MEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0OUIxMjM3
MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI1NTkzLDYgKzI1NjI4LDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4
MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNY
TUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2
YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8q
IEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY2NDUsNiArMjY2ODEsNyBA
QAogCQkJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyODE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNjkwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MjkxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDJBMTc4RDVB
QjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E2RDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjcsNiArMjY4NjQsNyBAQAogCQkJCTE4
NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVt
b3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY5NTAsNiArMjY5ODgsNyBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAz
NDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkx
NzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNGMTk5QTgwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzgwNCw2ICsyNzg0Myw3IEBA
CiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmlj
ZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMw
MkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODE5OCw2ICsyODIzOCw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVy
YXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1
NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5
RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1
IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQw
MEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM5
Nyw2ICsyODQzOCw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5
RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1
MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyog
SW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAw
RjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTQsNiAr
Mjg4OTYsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1Bl
cmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUx
NUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJp
b2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4
IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5
RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjk4NDAsNiArMjk4ODMsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAv
KiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJF
NkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1
OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IGEwMGIxNWMuLjFmZTZiNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDYg
KzkwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogCisvLyBQb3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVs
ZHMgb3IgZWxlbWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50
ZXJ2YWwgdG8gdGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCitzdGF0aWMgZG91Ymxl
IEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwgPSAw
LjAyNTsKKwogQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBWENvbXB1dGVkT2JqZWN0QXR0
cmlidXRlQ2FjaGU6OmdldElnbm9yZWQoQVhJRCBpZCkgY29uc3QKIHsKICAgICBIYXNoTWFwPEFY
SUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9pZE1h
cHBpbmcuZmluZChpZCk7CkBAIC0xMjksNiArMTMyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpz
ZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0
Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVu
dChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90
aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzA1LDcgKzcwOSw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIFJlZjxEb2N1bWVu
dD4gcHJvdGVjdG9yRm9yQ2FjaGVPd25lcihtX2RvY3VtZW50KTsKICAgICBtX25vdGlmaWNhdGlv
blBvc3RUaW1lci5zdG9wKCk7CiAgICAgCi0gICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNh
dGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZp
Y2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIElu
IHRlc3RzLCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRl
bHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBl
Y3RlZCBiZWhhdmlvcgogICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFy
ZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCiAgICAg
YXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fbm90aWZpY2F0aW9uc1RvUG9zdCk7CiAg
ICAgCkBAIC03NDIsNiArNzQ2LDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50
T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIHRlc3RzLCBw
b3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUg
dXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhh
dmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhl
IGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3Rp
ZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKwor
ICAgIGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5n
ZXQoKSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2Vu
ZGlmCit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVy
T2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjgsMjIzIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFu
Z2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgewor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgZGF0YUxvZygi
VW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQ6CisgICAgICAgIGRhdGFMb2coIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGRhdGFMb2co
Ik1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgZGF0YUxvZygiRXh0ZW5kOjoiKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7Cisg
ICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygi
VW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEZWxldGU6CisgICAgICAgICAgICBkYXRhTG9nKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgZGF0
YUxvZygiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpY3RhdGlvbkluc2VydCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6
CisgICAgICAgICAgICBkYXRhTG9nKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgZGF0YUxvZygi
Q3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBh
c3RlOgorICAgICAgICAgICAgZGF0YUxvZygiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBk
YXRhTG9nKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIkJl
Z2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBkYXRhTG9nKCJFbmQ6OiIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBkYXRhTG9nKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAg
ICAgZGF0YUxvZygiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgZGF0YUxv
ZygiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAg
ICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIGRh
dGFMb2coIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAg
ZGF0YUxvZygiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBk
YXRhTG9nKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgZGF0YUxv
ZygiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxs
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICBkYXRhTG9nKCItU3luYyIp
OworICAgIGRhdGFMb2coIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpz
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sK
KyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3N0YXRpYyBib29sIGlz
UGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0ICYmIChvYmplY3QtPmlzUGFzc3dvcmRG
aWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSk7Cit9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBu
b2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisK
ICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVs
ZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iamVjdCkgeworICAg
ICAgICBpZiAoaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90
aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0
Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVu
dCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Cit9CisKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAo
b2JqZWN0KSB7CisgICAgICAgIGlmIChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmpl
Y3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxz
ZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRU
eXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5
cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47
CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAg
QVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9u
VHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVk
aXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7
CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3Jk
VmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAg
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgZGVsZXRpb25U
eXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7
CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0
ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxl
bnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlw
ZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRp
dGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK2Jvb2wgQVhPYmplY3RD
YWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0KQoreworICAgIGlmICghaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRC
eVBhc3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9i
amVjdCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkgeworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgLy8gcmV0dXJuIHRydWUgZXZlbiB0aG91Z2ggdGhlIGVucXVl
dWUgZGlkbid0IGhhcHBlbiBiZWNhdXNlIHRoaXMgaXMgYSBwYXNzd29yZCBmaWVsZCBhbmQgY2Fs
bGVyIHNob3VsZG4ndCBwb3N0IGEgbm90aWZpY2F0aW9uCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuY29udGFpbnMo
b2JzZXJ2YWJsZU9iamVjdCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bv
c3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOwog
fQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZy
YW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzA5
LDE2IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVh
KCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290T2JqZWN0ID0gdGhpcy0+cm9vdE9i
amVjdCgpOworICAgIGlmICghcm9vdE9iamVjdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAg
cmV0dXJuIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2Vi
QXJlYU9iamVjdCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hl
RW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAg
ICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li4yOTA4NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZpbmUgQVhPYmplY3RDYWNoZV9oCiAK
KyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgpA
QCAtMTg5LDEyICsxOTAsMTggQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihO
b2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0g
VGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51
bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0
RGVsZXRlZCwKLSAgICB9OworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0
U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KTsKIAotICAgIHZvaWQgbm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21w
b3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gU2VsZWN0aW9u
IGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAg
IGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjEz
LDEyICsyMjAsNDIgQEAgcHVibGljOgogICAgIEFYQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNo
ZSogY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSgpIHsgcmV0dXJuIG1fY29tcHV0ZWRPYmpl
Y3RBdHRyaWJ1dGVDYWNoZS5nZXQoKTsgfQogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQotICAgIAorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
ICFQTEFURk9STShpT1MpCisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAg
IEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAg
cmV0dXJuIEFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgICAgIHJldHVybiBBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldHVybiBBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2
b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxp
dHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiAr
MjY2LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyByZXR1
cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIAogICAgIERvY3VtZW50JiBtX2Rv
Y3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBt
X29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVj
dE1hcHBpbmc7CkBAIC0yNDQsNiArMjgzLDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9ub3Rp
ZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OwogICAg
IHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKworICAgIFRpbWVyIG1fcGFzc3dv
cmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
T2JqZWN0Pj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Q7CisgICAgdm9pZCBwYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisKICAgICB2b2lkIGhhbmRsZU1lbnVPcGVu
ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOwogICAg
IHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKik7CkBAIC0yNTEsNiArMjk1LDEwIEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZvY3VzZWRJbWFnZU1h
cFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAgICAKICAgICBBWElEIGdldEFYSUQoQWNj
ZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgYm9vbCBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5n
ZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0
ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzM1Niw5IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxWaWV3KikgeyB9CiBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZWNvbXB1dGVJc0ln
bm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVu
c2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
VGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQoraW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmlj
YXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CiBpbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBE
b2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIEFY
Tm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRh
cmdldCwgUG9zdFR5cGUpIHsgfQpAQCAtMzIwLDYgKzM2OSwxMyBAQCBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpyZW1vdmUoTm9kZSopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
cmVtb3ZlKFdpZGdldCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChOb2RlKikgeyB9CisjaWYgUExBVEZPUk0oQ09D
T0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRpZgogI2VuZGlm
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWMy
NjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRl
eHRTdGF0ZUNoYW5nZUludGVudC5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudF9oCisjZGVmaW5lIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAgIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCwKKyAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorfTsKKworZW51bSBBWFRleHRFZGl0VHlwZSB7CisgICAg
QVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAvLyBHZW5l
cmljIHRleHQgZGVsZXRlCisgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdlbmVyaWMgdGV4
dCBpbnNlcnQKKyAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0eXBpbmcK
KyAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRpb24KKyAg
ICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICBBWFRleHRFZGl0VHlw
ZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKK307CisKK2VudW0gQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAgIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisgICAgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNj
b250aWd1b3VzCit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkLAor
ICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVNlbnRlbmNlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50LAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2VsZWN0aW5n
IHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBzZWxlY3Rp
b24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0aGUgd2hv
bGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5vdGlmaWNh
dGlvbi4KK307CisKK3N0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHk7Cit9OworCitzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgeworICAgIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAgIHVuaW9uIHsKKyAgICAgICAgQVhUZXh0U2Vs
ZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOworICAgIH07
CisgICAgYm9vbCBpc1N5bmNocm9uaXppbmcgeyBmYWxzZSB9OworCisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0U2VsZWN0aW9u
KCkpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbihzZWxlY3Rpb24p
CisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0VHlwZSBj
aGFuZ2UpCisgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQorICAgICAg
ICAsIGNoYW5nZShjaGFuZ2UpCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBpc1N5bmNocm9uaXppbmcpCisgICAg
ICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbigpCisgICAgICAgICwgaXNTeW5j
aHJvbml6aW5nKGlzU3luY2hyb25pemluZykKKyAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlID09
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAgIH0KK307CisKK30KKworI2VuZGlmIC8v
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZDhkMjZkZS4u
MjAwM2IzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsMjcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAgICByZXR1cm4g
aW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVj
dCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNz
d29yZEZpZWxkKCkKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICgh
bm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElucHV0RWxlbWVu
dCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAgICAgICBpZiAo
aW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVybiBjb25z
dF9jYXN0PEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Kj4odGhpcyk7CisgICAgfQorCisgICAgRWxl
bWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICBpZiAoIWlzPEhUTUxJbnB1
dEVsZW1lbnQ+KCplbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgIHJldHVybiBj
YWNoZS0+Z2V0T3JDcmVhdGUoZWxlbWVudCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwog
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAg
ICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLmE4
MmJkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDVh
MjdlYTguLmNiMzM4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMjY0Niw0ICsyNjQ2LDE3IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29s
IG9uKQogfQogI2VuZGlmCiAKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRC
eVBhc3N3b3JkRmllbGQoKSBjb25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFy
aWFSb2xlQXR0cmlidXRlKCkgIT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCk7CisgICAgcmV0dXJu
IGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1l
bnQ+KCplbGVtZW50KS5pc1Bhc3N3b3JkRmllbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAppbmRleCAzNTg2ZjJhLi44MTZjMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9v
bCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggMmQ5Mjk5Ni4uZjY1NWQ1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCkBAIC0xNDg4LDE0ICsxNDg4LDE3IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0
UmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyAgICAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAg
ICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
cmFuZ2UubGVuZ3RoID8gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29u
dHJvbD4oKm1fcmVuZGVyZXIpLnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4
dENvbnRyb2wuc2V0U2VsZWN0aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFu
Z2UubGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBt
X3JlbmRlcmVyLT5ub2RlKCk7Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwg
UG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5v
ZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNl
dEluQW5jaG9yKSwgRE9XTlNUUkVBTSkpOworICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0
aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNl
dEluQW5jaG9yKSwgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBv
c2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKTsKKyAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBuZXdJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgdHJ1ZSk7CisgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSwgbmV3SW50ZW50KTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnVybCgpIGNvbnN0CkBAIC0xOTYwLDEzICsxOTYzLDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxl
UG9zCiB7CiAgICAgaWYgKHJhbmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRl
bGwgdGhlIGRvY3VtZW50IHRvIHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3Zl
IHRvIHRoYXQgcG9zaXRpb24KLSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAg
IGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNl
bGVjdGlvbigpLm1vdmVUbyhyYW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAg
IGVsc2UgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVT
ZWxlY3Rpb24ocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1f
cmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
RnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmgKQEAgLTQzLDYgKzQzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3KCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0
YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqKSBvdmVycmlkZTsKIAorICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCkBAIC03MSw3ICs3
Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRP
YmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhcmVudE9iamVjdElmRXhpc3RzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eU9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFy
ZWFPYmplY3QoKTsgfQogICAgIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xs
YmFyKFNjcm9sbGJhciopOwogICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJp
bGl0eU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9z
L0FYT2JqZWN0Q2FjaGVJT1MubW0KaW5kZXggMTE5ZTBiMDAuLmI2MjMzNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpA
QCAtOTUsOCArOTUsMTkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFw
cGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJpbmdd
OwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKIHsKKyAgICBwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqZWN0LCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihv
YmplY3QsIEFYVmFsdWVDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ZWN0LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQpOwogfQogCiB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0K
aW5kZXggYjMwMGU3Ny4uNmVjYWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC00NCw2ICs0NCw1MyBAQAogI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlMaXZlUmVnaW9uQ3JlYXRlZE5vdGlmaWNhdGlvbiBAIkFYTGl2
ZVJlZ2lvbkNyZWF0ZWQiCiAjZW5kaWYKIAorI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5
cGVLZXkgQCJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0
ZVN5bmNLZXkgQCJBWFRleHRTdGF0ZVN5bmMiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24gQCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IEAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5
cGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlIEAiQVhUZXh0RWRpdFR5cGUi
CisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMgQCJBWFRleHRDaGFuZ2VWYWx1ZXMi
CisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlIEAiQVhUZXh0Q2hhbmdlVmFsdWUiCisj
ZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoIEAiQVhUZXh0Q2hhbmdl
VmFsdWVMZW5ndGgiCisjZW5kaWYKKworI2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVTdGFydE1hcmtlcgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVT
dGFydE1hcmtlciBAIkFYVGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIiCisjZW5kaWYKKworI2lm
bmRlZiBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudAorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlRWxlbWVudCBAIkFYVGV4dENoYW5nZUVsZW1lbnQiCisjZW5kaWYKKwor
I2lmbmRlZiBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZSBA
IkFYU2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2UiCisjZW5kaWYKKworLy8gVmVyeSBsYXJnZSBzdHJp
bmdzIGNhbiBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcGVyZm9ybWFuY2Ugb2Ygbm90aWZpY2F0aW9u
cywgc28gdGhpcyBsZW5ndGggaXMgY2hvc2VuIHRvIHRyeSB0byBmaXQgYW4gYXZlcmFnZSBwYXJh
Z3JhcGggb3IgbGluZSBvZiB0ZXh0LCBidXQgbm90IGFsbG93IHN0cmluZ3MgdG8gYmUgbGFyZ2Ug
ZW5vdWdoIHRvIGh1cnQgcGVyZm9ybWFuY2UuCitzdGF0aWMgTlNVSW50ZWdlciBjb25zdCBOU0Fj
Y2Vzc2liaWxpdHlWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOworCiAvLyBUaGUg
c2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MCw2ICsxMDcsMTkgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICBvYmotPnNl
dFdyYXBwZXIod3JhcHBlci5nZXQoKSk7CiB9CiAKK3N0YXRpYyBCT09MIGF4U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gZmFsc2U7Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNo
b3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQoreworICAgIGF4U2hv
dWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9CitzdGF0aWMgdm9pZCBB
WFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8oaWQgb2JqZWN0LCBOU1N0cmluZyAqbm90aWZp
Y2F0aW9uLCBpZCB1c2VySW5mbykKK3sKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0
aW9uV2l0aFVzZXJJbmZvKG9iamVjdCwgbm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8g
VG8gc2ltcGxpZnkgbW9uaXRvcmluZyBmb3Igbm90aWZpY2F0aW9ucyBpbiB0ZXN0cywgcmVwb3N0
IGFzIGEgc2ltcGxlIE5TTm90aWZpY2F0aW9uIGluc3RlYWQgb2YgZm9yY2luZyB0ZXN0IGluZnJh
c3R1Y3R1cmUgdG8gc2V0dXAgYW4gSVBDIGNsaWVudCBhbmQgZG8gYWxsIHRoZSB0cmFuc2xhdGlv
biBiZXR3ZWVuIFdlYkNvcmUgdHlwZXMgYW5kIHBsYXRmb3JtIHNwZWNpZmljIElQQyB0eXBlcyBh
bmQgYmFjaworICAgIGlmIChVTkxJS0VMWShheFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JU
ZXN0cykpCisgICAgICAgIFtvYmplY3QgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpu
b3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworfQorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90
aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKIHsKICAgICBpZiAoIW9iaikKQEAgLTE0OSwxNSArMjA5
LDEzOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgQVNTRVJUKFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkXSB8fCB0cnVlKTsKICNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLSAgICAKLSAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9u
KG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24pOwotICAgIAotICAgIC8vIFVzZWQgYnkg
RFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCi0gICAgW29iai0+d3Jh
cHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bWFjTm90aWZpY2F0aW9uXTsK
KworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmotPndyYXBwZXIoKSwgbWFj
Tm90aWZpY2F0aW9uLCBuaWwpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmpl
Y3QsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uKQogeworICAgIGlmICghb2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290
V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5T
TXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9j
XSBpbml0V2l0aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XSA9IEBZRVM7
CisgICAgaWYgKGludGVudC50eXBlICE9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pIHsK
KyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0g
PSBAKGludGVudC50eXBlKTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbl0gPSBAKGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5r
bm93bjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
OgorICAgICAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25H
cmFudWxhcml0eV0gPSBAKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25E
aXNjb250aWd1b3VzOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
bjoKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkpIHsK
KyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXJSYW5nZSA9IFtvYmplY3QtPndyYXBwZXIoKSB0ZXh0
TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczpzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCkg
ZW5kUG9zaXRpb246c2VsZWN0aW9uLnZpc2libGVFbmQoKV0pCisgICAgICAgICAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV0gPSB0ZXh0
TWFya2VyUmFuZ2U7CisgICAgfQorCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmplY3QtPndyYXBw
ZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRd
ID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSByb290V2Vi
QXJlYSgpOworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFw
cGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVz
ZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53cmFw
cGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWROb3RpZmljYXRpb24sIHVz
ZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25h
cnkgKnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBOU1N0cmluZyAqdGV4dCA9IChOU1N0
cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxlbmd0aF07Cisg
ICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgTlNNdXRhYmxlRGljdGlv
bmFyeSAqY2hhbmdlID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFj
aXR5OjRdOworICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGVdID0gQCh0eXBl
KTsKKyAgICBpZiAobGVuZ3RoID4gTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VUcnVuY2F0aW9u
TGVuZ3RoKSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVM
ZW5ndGhdID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRl
eDpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAg
ICBpZiAobGVuZ3RoID4gMCkKKyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZV0gPSB0ZXh0OworICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSkgeworICAgICAg
ICBpZiAoaWQgdGV4dE1hcmtlciA9IFtvYmplY3QtPndyYXBwZXIoKSB0ZXh0TWFya2VyRm9yVmlz
aWJsZVBvc2l0aW9uOnBvc2l0aW9uXSkKKyAgICAgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlcl0gPSB0ZXh0TWFya2VyOworICAgIH0KKyAgICBy
ZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqZWN0KQorICAgICAgICBv
YmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNN
dXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoQ2FwYWNpdHk6M107CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAg
aWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFy
eShvYmplY3QsIHR5cGUsIHRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBAW2NoYW5nZV07CisKKyAgICBpZiAoaWQgd3Jh
cHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVz
ZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90
aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KG9iamVjdC0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRp
b24sIHVzZXJJbmZvKTsKKyAgICBbdXNlckluZm8gcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBT
dHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBT
dHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sK
KyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAg
IGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5
ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eTo0XTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5
XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAq
Y2hhbmdlcyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07Cisg
ICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShvYmplY3QsIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAg
ICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hh
bmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIGluc2VydGlvblR5
cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6
Y2hhbmdlXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9
IGNoYW5nZXM7CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9
IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0
Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2Vi
QXJlYSA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0
aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVD
aGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25v
dyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbd2ViQXJlYS0+d3JhcHBlcigp
IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFu
Z2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIE5TQWNjZXNzaWJpbGl0
eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFVzZWQg
YnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW29iamVj
dC0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246TlNBY2Nlc3NpYmls
aXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKKworICAgIFt1
c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdF
dmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmpl
Y3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4uYjkzNDE4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU2LDggKzU2LDkgQEAgY2xhc3MgVmlzaWJsZVBv
c2l0aW9uOwogLSAoTlNTdHJpbmcgKilhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb247CiAKIC0g
KGlkKWF0dGFjaG1lbnRWaWV3OwotLy8gVXNlZCB0byBpbmZvcm0gYW4gZWxlbWVudCB3aGVuIGEg
bm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgRFJULgorLy8gVXNlZCB0byBp
bmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVz
ZWQgYnkgdGVzdHMuCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5T
U3RyaW5nICopbm90aWZpY2F0aW9uTmFtZTsKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rp
b25hcnkgKil1c2VySW5mbzsKIAogLSAoQ0dQYXRoUmVmKWNvbnZlcnRQYXRoVG9TY3JlZW5TcGFj
ZTooV2ViQ29yZTo6UGF0aCAmKXBhdGg7CiAtIChDR1BvaW50KWNvbnZlcnRQb2ludFRvU2NyZWVu
U3BhY2U6KFdlYkNvcmU6OkZsb2F0UG9pbnQgJilwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFz
ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbQppbmRleCA1ZGRmYzNhLi5jNDcyYTcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0zODMsMTMgKzM4Myw2OSBAQCBzdGF0
aWMgQk9PTCBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczsKICsgKHZvaWQp
YWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6KEJPT0wpcmVwb3N0CiB7
CiAgICAgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMgPSByZXBvc3Q7Cisj
aWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShpT1MpCisgICAgQVhPYmplY3RDYWNoZTo6
c2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKHJlcG9zdCk7CisjZW5kaWYKIH0K
IAogLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5v
dGlmaWNhdGlvbk5hbWUKIHsKKyAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlm
aWNhdGlvbnMpCisgICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246
bm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzpuaWxdOworfQorCitzdGF0aWMgTlNBcnJheSAqYXJy
YXlSZW1vdmluZ05vbkpTT05UeXBlcyhOU0FycmF5ICphcnJheSkKK3sKKyAgICBBU1NFUlQoW2Fy
cmF5IGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlQXJyYXkg
Km11dGFibGVBcnJheSA9IFthcnJheSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2Vy
IGkgPSAwOyBpIDwgW211dGFibGVBcnJheSBjb3VudF07KSB7CisgICAgICAgIGlkIHZhbHVlID0g
bXV0YWJsZUFycmF5W2ldOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGlj
dGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0
QXRJbmRleDppIHdpdGhPYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVl
KV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNz
XV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkgd2l0
aE9iamVjdDphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVsc2Ug
aWYgKCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3ZhbHVlIGlz
S2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pKSB7CisgICAgICAgICAgICBbbXV0YWJsZUFy
cmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aV07CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorICAgICAgICBpKys7CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZUFycmF5IGF1dG9y
ZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeVJlbW92aW5nTm9u
SlNPTlR5cGVzKE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKK3sKKyAgICBBU1NFUlQoW2RpY3Rp
b25hcnkgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pOworICAgIE5TTXV0YWJs
ZURpY3Rpb25hcnkgKm11dGFibGVEaWN0aW9uYXJ5ID0gW2RpY3Rpb25hcnkgbXV0YWJsZUNvcHld
OworICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBkaWN0aW9uYXJ5KSB7CisgICAgICAgIGlkIHZh
bHVlID0gZGljdGlvbmFyeVtrZXldOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6
W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgbXV0YWJsZURpY3Rpb25hcnlba2V5
XSA9IGRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSk7CisgICAgICAgIGVsc2Ug
aWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgICAgICBt
dXRhYmxlRGljdGlvbmFyeVtrZXldID0gYXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSk7
CisgICAgICAgIGVsc2UgaWYgKCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNz
XV0gfHwgW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pKQorICAgICAgICAg
ICAgW211dGFibGVEaWN0aW9uYXJ5IHJlbW92ZU9iamVjdEZvcktleTprZXldOworICAgIH0KKyAg
ICByZXR1cm4gW211dGFibGVEaWN0aW9uYXJ5IGF1dG9yZWxlYXNlXTsKK30KKworLSAodm9pZClh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5h
bWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvCit7CiAgICAgaWYgKGFjY2Vzc2li
aWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zKSB7Ci0gICAgICAgIE5TRGljdGlvbmFyeSog
dXNlckluZm8gPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6bm90
aWZpY2F0aW9uTmFtZSwgQCJub3RpZmljYXRpb25OYW1lIiwgbmlsXTsKLSAgICAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpAIkFY
RFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzp1c2VySW5mb107CisgICAgICAg
IEFTU0VSVChub3RpZmljYXRpb25OYW1lKTsKKyAgICAgICAgTlNEaWN0aW9uYXJ5ICppbmZvID0g
bmlsOworICAgICAgICBpZiAodXNlckluZm8pIHsKKyAgICAgICAgICAgIE5TRGF0YSAqdXNlcklu
Zm9EYXRhID0gW05TSlNPTlNlcmlhbGl6YXRpb24gZGF0YVdpdGhKU09OT2JqZWN0OmRpY3Rpb25h
cnlSZW1vdmluZ05vbkpTT05UeXBlcyh1c2VySW5mbykgb3B0aW9uczooTlNKU09OV3JpdGluZ09w
dGlvbnMpMCBlcnJvcjpuaWxdOworICAgICAgICAgICAgaWYgKHVzZXJJbmZvRGF0YSkgeworICAg
ICAgICAgICAgICAgIE5TU3RyaW5nICp1c2VySW5mb1N0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2Nd
IGluaXRXaXRoRGF0YTp1c2VySW5mb0RhdGEgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rpbmdd
OworICAgICAgICAgICAgICAgIGlmICh1c2VySW5mb1N0cmluZykKKyAgICAgICAgICAgICAgICAg
ICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlvbk5hbWUsIEAidXNl
ckluZm8iIDogdXNlckluZm9TdHJpbmd9OworICAgICAgICAgICAgICAgIFt1c2VySW5mb1N0cmlu
ZyByZWxlYXNlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWluZm8p
CisgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlmaWNhdGlvbk5hbWUiIDogbm90aWZpY2F0aW9u
TmFtZX07CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9z
dE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlcklu
Zm86aW5mb107CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
aAppbmRleCAzOGM1Y2QwLi45MjIyOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVyZmFjZSBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZQogCistIChp
ZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooV2ViQ29yZTo6VmlzaWJsZVBv
c2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFdlYkNvcmU6OlZpc2libGVQb3NpdGlv
billbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246KGNvbnN0
IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAogCiAjZW5kaWYg
Ly8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAppbmRleCAxZGViNGRiLi4zYmY3OTc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcApAQCAtMjYsMTAgKzI2
LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwZW5kTm9kZUNvbW1hbmQu
aCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTQ0LDE3ICs0NiwyNiBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5k
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAog
ICAgIEFTU0VSVCghbV9ub2RlLT5wYXJlbnROb2RlKCkpOwogCiAgICAgQVNTRVJUKG1fcGFyZW50
LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKKyAgICBzZXRB
cHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlSW5zZXJ0KTsKIH0KIAotc3RhdGljIHZvaWQgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlKQogewot
ICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIHRleHQgPSBub2RlLT5u
b2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29t
bWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQog
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUp
ID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGlu
Z1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsK
KyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTgg
Kzc1LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJl
bnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5
bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5
IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdl
dCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhD
RVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uNjcxYTk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNs
dWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1
ZS5oIgpAQCAtMTYyLDYgKzE2NCwxMyBAQCB2b2lkIEVkaXRDb21tYW5kQ29tcG9zaXRpb246Omdl
dE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgogCitBWFRl
eHRFZGl0VHlwZSBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIGlmICghbV9jb21tYW5kcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRz
Lmxhc3QoKS0+dW5hcHBseUVkaXRUeXBlKCk7CisgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5r
bm93bjsKK30KKwogdm9pZCBhcHBseUNvbW1hbmQoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29t
bWFuZD4gY29tbWFuZCkKIHsKICAgICBjb21tYW5kLT5hcHBseSgpOwpAQCAtMzIwLDkgKzMyOSwz
MCBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5v
ZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgdm9pZCBzZXRDb21tYW5k
QXBwbHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rpb24oU2ltcGxlRWRpdENvbW1hbmQgKmNvbW1hbmQs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKK3sKKyAgICBpZiAoIWNvbW1hbmQpCisgICAgICAg
IHJldHVybjsKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRBY3Rp
b25EaWN0YXRpb246CisgICAgICAgIGNvbW1hbmQtPnNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRp
dFR5cGVEaWN0YXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0
ZToKKyAgICAgICAgY29tbWFuZC0+c2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZVBhc3Rl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICBj
b21tYW5kLT5zZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlVHlwaW5nKTsKKyAgICAgICAg
YnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5z
ZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewot
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVh
dGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkpOworICAgIFJlZlB0cjxJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY29tbWFuZCA9IElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgc2V0Q29tbWFuZEFwcGx5RWRp
dFR5cGVGb3JFZGl0aW5nQWN0aW9uKGNvbW1hbmQuZ2V0KCksIGVkaXRpbmdBY3Rpb24oKSk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxk
LCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtMzczLDcgKzQwMyw5IEBAIHZvaWQgQ29t
cG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENo
aWxkLCBjb25zdCBQb3NpCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKFBh
c3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQpCiB7
CiAgICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJlbkZvckVkaXRpbmcocGFyZW50LmdldCgpKSk7Ci0g
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJl
bnQsIG5vZGUpKTsKKyAgICBSZWZQdHI8QXBwZW5kTm9kZUNvbW1hbmQ+IGNvbW1hbmQgPSBBcHBl
bmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSk7CisgICAgc2V0Q29tbWFuZEFwcGx5
RWRpdFR5cGVGb3JFZGl0aW5nQWN0aW9uKGNvbW1hbmQuZ2V0KCksIGVkaXRpbmdBY3Rpb24oKSk7
CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCk7CiB9CiAKIHZvaWQgQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlbW92ZUNoaWxkcmVuSW5SYW5nZShQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQpAQCAtMzk3LDcgKzQyOSw3IEBAIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBT
aG91bGRBc3N1bWVDb250ZW50CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OnJlbW92ZU5vZGVBbmRQcnVuZUFuY2VzdG9ycyhQYXNzUmVmUHRyPE5vZGU+IG5vZGUp
CkBAIC01MjQsMjEgKzU1NiwzMSBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dAogCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSAgICBpZiAoIXRl
eHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgaWYgKCF0
ZXh0LmlzRW1wdHkoKSkgeworICAgICAgICBSZWZQdHI8SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZD4gY29tbWFuZCA9IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpOworICAgICAgICBzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rp
b24oY29tbWFuZC5nZXQoKSwgZWRpdGluZ0FjdGlvbigpKTsKKyAgICAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoY29tbWFuZCk7CisgICAgfQogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7Cisg
ICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNvbW1hbmQgPSBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgaWYgKGVk
aXRpbmdBY3Rpb24oKSA9PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBjb21tYW5kLT5zZXRBcHBs
eUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlQ3V0KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShjb21tYW5kKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJ
bk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8VGV4
dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwotICAgIGlmICgh
cmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFj
ZW1lbnRUZXh0KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGRlbGV0
ZUNvbW1hbmQgPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1h
bmQpOworICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkgeworICAgICAgICBSZWZQ
dHI8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNvbW1hbmQgPSBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRU
ZXh0LCBkZWxldGVDb21tYW5kLT5kZWxldGVkVGV4dCgpKTsKKyAgICAgICAgc2V0Q29tbWFuZEFw
cGx5RWRpdFR5cGVGb3JFZGl0aW5nQWN0aW9uKGNvbW1hbmQuZ2V0KCksIGVkaXRpbmdBY3Rpb24o
KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQpOworICAgIH0KIH0K
IAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VTZWxlY3RlZFRleHRJbk5v
ZGUoY29uc3QgU3RyaW5nJiB0ZXh0KQpAQCAtMTUyMyw0ICsxNTY1LDExIEBAIFBhc3NSZWZQdHI8
RWxlbWVudD4gY3JlYXRlQmxvY2tQbGFjZWhvbGRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJyVGFnLCBmYWxzZSk7CiB9CiAK
K0FYVGV4dEVkaXRUeXBlIENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sK
KyAgICBpZiAoIW1fY29tbWFuZHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbV9jb21tYW5k
cy5sYXN0KCktPmFwcGx5RWRpdFR5cGUoKTsKKyAgICByZXR1cm4gRWRpdENvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmluZGV4IGMyYjQ4OWQuLjY1OGU3MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAg
LTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOwogY2xhc3MgRWRpdGluZ1N0eWxlOwogY2xhc3MgSFRNTEVsZW1lbnQ7
CiBjbGFzcyBTdHlsZWRFbGVtZW50OwpAQCAtNTksNiArNjAsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAor
ICAgIEFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworCiBwcml2YXRlOgogICAgIEVk
aXRDb21tYW5kQ29tcG9zaXRpb24oRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
dGFydGluZ1NlbGVjdGlvbiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9u
LCBFZGl0QWN0aW9uKTsKIApAQCAtODcsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHNldFNob3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGJvb2wpOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3Zl
cnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChE
b2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE5
ZjQyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21h
cnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKKyAgICA6IERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFy
a3VwKQoreworfQorCitFZGl0QWN0aW9uIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRp
bmdBY3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmQyN2ViOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZF9oCisjZGVmaW5lIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorCisjaW5jbHVk
ZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5k
PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBi
b29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3Vw
ID0gdHJ1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1dERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7
CisgICAgfQorCitwcml2YXRlOgorICAgIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1l
bnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wg
cmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1
cCk7CisKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJy
aWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ3V0RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1Li5jNTg4ZjIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTQzLDYgKzQ1
LDEyIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fbm9kZSk7CiAgICAg
QVNTRVJUKG1fb2Zmc2V0IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwogICAgIEFTU0VSVChtX29mZnNl
dCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CisgICAgc2V0QXBwbHlFZGl0VHlwZShB
WFRleHRFZGl0VHlwZURlbGV0ZSk7Cit9CisKK1N0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7CiB9CiAKIHZvaWQgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC01OCw4ICs2Niw4IEBAIHZvaWQg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAg
ICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0
aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0
LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3Vu
dCwgZWMpOwogfQpAQCAtNzMsOCArODEsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4
dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJ
bnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0
aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CmluZGV4IDI0OTFmMDUuLjI2ZDlkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAogI2RlZmlu
ZSBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
OSw5ICs0MCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwogICAgIH0KIAotcHJp
dmF0ZToKKyAgICBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKICAgICBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQpOwogCitwcml2YXRlOgorCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCAyYmJjNmVkLi40OWYwMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTg4NiwxMCArODg2LDcgQEAgdm9pZCBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKIAogRWRpdEFjdGlvbiBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICAvLyBOb3RlIHRoYXQg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2Vz
IHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGlu
Z0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRo
ZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRp
dEFjdGlvbkN1dDsKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRlbGV0ZTsKIH0KIAogLy8gTm9ybWFs
bHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHBy
ZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0Li5kNTNlNDlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJEaWN0YXRpb25Db21tYW5kLmgiCiAKICNpbmNsdWRlICJBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0xMTUsNyArMTE2LDcgQEAgdm9pZCBEaWN0YXRpb25D
b21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNp
emVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZl
c0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3Rh
cnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRl
eHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJT
dXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBs
aW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJ
bkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCks
IG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRp
b25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwogICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MWI0NjQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKyAgICAKK0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjpEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFz
c1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAg
IDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKQorewor
fQorCitFZGl0QWN0aW9uIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kOjplZGl0aW5nQWN0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvbkRpY3RhdGlvbjsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1YjYwNDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5k
LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUg
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1h
bmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZCA6IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVy
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJ
bnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwg
dGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGljdGF0aW9u
SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPFRl
eHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworCisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUzMi4uYTQyNzk4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTExMiw2ICsxMTMsMjggQEAgdm9p
ZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKiBwYXJlbnQpCiAg
ICAgfQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7
CisgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKworQVhUZXh0RWRpdFR5cGUg
RWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgc3dpdGNoIChhcHBseUVkaXRU
eXBlKCkpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgcmV0dXJu
IEFYVGV4dEVkaXRUeXBlVW5rbm93bjsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlw
ZUluc2VydDsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURl
bGV0ZTsKKyAgICB9CisgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwogdm9p
ZCBTaW1wbGVFZGl0Q29tbWFuZDo6ZG9SZWFwcGx5KCkKIHsKICAgICBkb0FwcGx5KCk7CkBAIC0x
MjUsNCArMTQ4LDI0IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5k
YW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiB9CiAjZW5kaWYKIAorQVhU
ZXh0RWRpdFR5cGUgU2ltcGxlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJl
dHVybiBtX2FwcGx5RWRpdFR5cGU7Cit9CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OnNldEFw
cGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSkKK3sKKyAgICBtX2FwcGx5
RWRpdFR5cGUgPSBhcHBseUVkaXRUeXBlOworfQorCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsK
KyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0
ZXh0LCBwb3NpdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li5kZDdiMjM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21t
YW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9uLmgi
CiAKQEAgLTU5LDYgKzYwLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KSA9IDA7CiAKKyAgICB2aXJ0dWFsIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAg
ICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKwogcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CiAgICAgRWRpdENvbW1hbmQoRG9jdW1lbnQm
LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwpAQCAt
OTAsNiArOTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5k
KEhhc2hTZXQ8Tm9kZSo+JikgPSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIEFYVGV4dEVkaXRU
eXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEFwcGx5RWRpdFR5cGUo
QVhUZXh0RWRpdFR5cGUpOworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgU2ltcGxlRWRpdENv
bW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21tYW5kKGRvY3VtZW50KSB7IH0KIApA
QCAtOTcsOCArMTA0LDExIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZE5vZGVBbmREZXNjZW5k
YW50cyhOb2RlKiwgSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisKIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGlzU2ltcGxlRWRpdENvbW1hbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CisgICAgQVhUZXh0RWRpdFR5cGUgbV9hcHBseUVkaXRUeXBlIHsgQVhUZXh0RWRp
dFR5cGVVbmtub3duIH07CiB9OwogCiBpbmxpbmUgU2ltcGxlRWRpdENvbW1hbmQqIHRvU2ltcGxl
RWRpdENvbW1hbmQoRWRpdENvbW1hbmQqIGNvbW1hbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdBbGxJbk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uMzk2YTk5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtMzIsMTAgKzMyLDEyIEBACiAj
aW5jbHVkZSA8QnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8Q29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPENyZWF0ZUxpbmtDb21tYW5kLmNwcD4KKyNpbmNs
dWRlIDxDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cD4KICNpbmNsdWRlIDxEaWN0YXRpb25BbHRlcm5hdGl2ZS5jcHA+CiAjaW5jbHVkZSA8RGljdGF0
aW9uQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
PgogI2luY2x1ZGUgPEVkaXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxFZGl0aW5nU3R5bGUuY3Bw
PgogI2luY2x1ZGUgPEVkaXRvci5jcHA+CkBAIC01OSw2ICs2MSw4IEBACiAjaW5jbHVkZSA8UmVt
b3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KKyNpbmNsdWRl
IDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA+
CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwPgpAQCAtNzcsNiArODEsNyBA
QAogI2luY2x1ZGUgPFRleHRJbnNlcnRpb25CYXNlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VGV4
dEl0ZXJhdG9yLmNwcD4KICNpbmNsdWRlIDxUeXBpbmdDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8VW5saW5rQ29tbWFuZC5jcHA+
CiAjaW5jbHVkZSA8VmlzaWJsZVBvc2l0aW9uLmNwcD4KICNpbmNsdWRlIDxWaXNpYmxlU2VsZWN0
aW9uLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3MTBhYTM5Li5mZjBmMDM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiQ2xpcGJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJDb21wb3NpdGlvbkV2ZW50LmgiCiAjaW5j
bHVkZSAiQ3JlYXRlTGlua0NvbW1hbmQuaCIKKyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRpY3RhdGlvbkFsdGVybmF0aXZlLmgiCkBAIC0z
NzQsMTIgKzM3NSwxNSBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rp
b25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wg
c21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
KGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAo
bV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBw
bHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFy
dERlbGV0ZSkpOworICAgIGlmIChlZGl0aW5nQWN0aW9uID09IEVkaXRBY3Rpb25DdXQpCisgICAg
ICAgIGFwcGx5Q29tbWFuZChDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBlbHNlCisgICAgICAgIGFwcGx5Q29tbWFuZChEZWxl
dGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKIH0K
IAogdm9pZCBFZGl0b3I6OmNsZWFyVGV4dCgpCkBAIC0xMDAxLDcgKzEwMDUsNyBAQCB2b2lkIEVk
aXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21k
KQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0
aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5Lgog
ICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlz
RGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6
IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9u
cyk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9u
cywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoY21kLT5hcHBseUVkaXRUeXBlKCkpKTsKICAgICBk
aXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5n
Um9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxl
bWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEwMzIs
NyArMTAzNiw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRp
dENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJvbHMoY21k
LT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVF
bGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21kLT5zdGFy
dGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSk7Cisg
ICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KGNtZC0+dW5hcHBseUVkaXRUeXBlKCkpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENo
YW5nZWRFdmVudHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRp
bmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVk
dWxlZCgpOwpAQCAtMTI2Niw3ICsxMjcwLDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNv
cHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9u
VG9QYXN0ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRl
bGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAg
ICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRl
KCksIEVkaXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjg1MCw3
ICsyODU0LDcgQEAgdm9pZCBFZGl0b3I6OmRpc21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQo
KQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNt
aXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9u
LCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRp
dG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
bmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBz
ZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4gZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAg
ICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgpLmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVu
ZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcgKzI4NjYsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdl
U2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlv
biwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJhbmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBu
byBsb25nZXIgdmFsaWQKICAgICBib29sIHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9u
ID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAg
aWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9u
KCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAg
IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywg
aW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2Vs
ZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhl
IERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZv
bGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtlZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CmluZGV4IDc5MmJjNDYuLjg3NjM3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0
LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBk
ZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBi
b29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5nQWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29s
IHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRl
KTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtNDY4LDcgKzQ2OCw3
IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9z
aXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25z
dCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rp
b25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rp
b25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
PSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3Bl
Y2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JD
b3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcAppbmRleCA1MTFjYjAyLi4zZDY2YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE5Miw3ICsxOTIsOSBAQCBzdGF0aWMgYm9vbCBleGVj
dXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGcmFtZSYgZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ug
c291cmNlLAogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZyYW1lJiBmcmFtZSwg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCkKIHsKICAgICBBU1NFUlQoZnJh
bWUuZG9jdW1lbnQoKSk7Ci0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25VbnNwZWNpZmllZCkpOworICAgIFJlZlB0
cjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY29tbWFuZCA9IFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CisgICAgY29t
bWFuZC0+c2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZUluc2VydCk7CisgICAgYXBwbHlD
b21tYW5kKGNvbW1hbmQpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDU3NDUxNzAuLjhiMWM5NTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzksNyArMTM5LDcgQEAg
RWxlbWVudCogRnJhbWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxl
bWVudCgpIGNvbnN0CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25T
Y3JvbGwgYWxpZ24pCiB7CiAgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRl
ZXBFcXVpdmFsZW50KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9z
ZWxlY3Rpb24uaXNEaXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnModXNlclRyaWdnZXJlZCksIGFsaWduKTsKKyAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnModXNlclRyaWdnZXJlZCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxp
Z24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0
aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJUcmlnZ2VyZWQg
dXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNzAsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpt
b3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFzZSwgY29uc3QgUG9zaXRp
bwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAgIG5ld1NlbGVjdGlvbi5z
ZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5ld1NlbGVjdGlvbi5zZXRJ
c0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAgc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1
cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0
Rm9jdXMpLCBpbnRlbnQpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xsZXI6OnNldENhcmV0
UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAgLTI1NCw3ICsyNTUs
MTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3
U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElm
TmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7
CisgICAgICAgIGlmIChuZXdTZWxlY3Rpb24uaXNDYXJldCgpKQorICAgICAgICAgICAgaW50ZW50
ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGln
dW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIH0g
ZWxzZQorICAgICAgICBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIHNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBG
aXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFu
dWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRV
cGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uUG9z
c2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNv
ckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKQEAgLTI3
Niw3ICsyODYsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIGlmIChEb2N1bWVudCog
bmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFzZSgpLmRvY3VtZW50KCkpIHsK
ICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9uRnJhbWUgPSBuZXdTZWxlY3Rp
b25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYgKG5ld1NlbGVjdGlvbkZyYW1l
ICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQo
KSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOworICAg
ICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBvcHRpb25zLCBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIGFsaWdu
LCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1
cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVl
biBtb2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFy
ZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2
YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBk
ZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0z
MjAsNyArMzMwLDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGln
bk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShz
ZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsK
QEAgLTM0MSw3ICszNTEsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFt
ZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5n
TGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzcwLDcgQEAgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVh
clNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxT
ZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1Nl
bGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM5MCw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVh
bFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIAogICAgIGlmIChhdXRvKiBjbGllbnQgPSBt
X2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5kaWRDaGFuZ2VTZWxl
Y3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsKQEAgLTEwMjEsNyArMTAzMSw4MCBAQCBWaXNpYmxlUG9z
aXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0
eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBn
cmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVu
dEJvdW5kYXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVu
dChFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGlu
dGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7
CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAg
ICAgICBpbnRlbnQudHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7Cisg
ICAgICAgIGlmIChpc1JhbmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb25PZlNlbGVj
dGlvbigpID09IFJUTCkKKyAgICAgICAgICAgICAgICBmbGlwID0gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFy
YWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFy
aXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdy
YW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91
bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1
bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9j
dW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7
CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJp
dHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFy
aXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2Fz
ZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAg
IGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGly
ZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZv
cndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXMgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoK
KyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246
Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwg
VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVk
KQogewpAQCAtMTA3Nyw2ICsxMTYwLDExIEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShF
QWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAg
ICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24g
PT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
eworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2Vs
ZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVs
YXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRoZSBhYm92ZSBvcGVyYXRpb25zIHNl
dCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAgICAgLy8gU2V0dGluZyBhIHNl
bGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0
ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJl
Y2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcxMCw4ICsxNzk4LDEwIEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5l
d1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUo
cm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rp
b24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBpZiAoc2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgQVhUZXh0U2VsZWN0
aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlBbGwgfSk7CisgICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCk7
CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdl
KiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKQpAQCAtMjQyMyw3
ICsyNTEzLDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlv
bkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBWaXMKIAogICAgIFZpc2libGVTZWxlY3Rp
b24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCk7CiAgICAgbmV3U2Vs
ZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51bGFyaXR5KTsKLSAgICBmcmFt
ZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdy
YW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRl
bnQoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxh
cml0eSgpKTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlv
bigpLnN0YXJ0KCkpOwogICAgIFBvc2l0aW9uIGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rp
b24oKS5lbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXgg
MGU0ZTI4ZS4uMDU2ZDIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
aApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZy
YW1lU2VsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJF
ZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVj
dC5oIgpAQCAtMTMxLDYgKzEzMiwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4g
Q2xvc2VUeXBpbmcgfCBDbGVhclR5cGluZ1N0eWxlIHwgKHVzZXJUcmlnZ2VyZWQgPyAoUmV2ZWFs
U2VsZWN0aW9uIHwgRmlyZVNlbGVjdEV2ZW50KSA6IDApOwogICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgaW5saW5lIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRl
bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cisg
ICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgRnJhbWVTZWxlY3Rpb24oRnJhbWUq
ID0gbnVsbHB0cik7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3Zl
V2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9v
bCBzZWxlY3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rp
b247IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0
aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFy
YWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJh
bmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsK
QEAgLTI3Miw3ICsyNzgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9u
VHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAgICAg
dm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNldFNl
bGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxhcml0
eSk7CkBAIC0yOTgsOSArMzA0LDEwIEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBsaW5lRGly
ZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oRVBvc2l0aW9uVHlwZSk7CiAK
ICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgVGV4dFNlbGVj
dGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJp
dHkpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSk7CiAjZWxz
ZQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQor
ICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTZWxl
Y3Rpb25JbnRlbnQpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNhY2hl
c0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpAQCAt
MzY3LDcgKzM3NCw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHls
ZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JNKENPQ09B
KSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLjUzNjVkYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlRleHQuaCIKQEAgLTQ4LDYgKzQ5LDEyIEBAIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpCiAgICAgQVNTRVJUKG1fbm9kZSk7CiAgICAgQVNTRVJUKG1fb2Zmc2V0IDw9IG1fbm9kZS0+
bGVuZ3RoKCkpOwogICAgIEFTU0VSVCghbV90ZXh0LmlzRW1wdHkoKSk7CisgICAgc2V0QXBwbHlF
ZGl0VHlwZShBWFRleHRFZGl0VHlwZUluc2VydCk7Cit9CisKK1N0cmluZyYgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OwogfQog
CiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjYsOCArNzMs
OCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9u
b2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQp
OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNl
dCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTg0LDggKzkxLDggQEAgdm9pZCBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5n
IHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZz
ZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQo
KSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1f
bm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1f
dGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLjFh
ZDk0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKIAorI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0zOSw5ICs0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0
KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAgIFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90
ZWN0ZWQ6CiAgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKIAorcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGQxNmI1ZDYuLmU2
NmQyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuY3BwCkBAIC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkluc2VydE5vZGVCZWZvcmVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxh
Y2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDYgKzQ4LDcgQEAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFAK
ICAgICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpKTsKIAogICAgIEFTU0VSVChtX3Jl
ZkNoaWxkLT5wYXJlbnROb2RlKCktPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9yZWZDaGlsZC0+
cGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpKTsKKyAgICBzZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVk
aXRUeXBlSW5zZXJ0KTsKIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBs
eSgpCkBAIC01Nyw4ICs2MCwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0Fw
cGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1f
cmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUo
KSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAg
ICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/
IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBw
bHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9u
KHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpk
b1VuYXBwbHkoKQpAQCAtNjcsOCArNzIsMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTmVlZCB0byBub3RpZnkg
dGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVl
KCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7Cisg
ICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkg
PyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVh
dGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAg
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVu
YXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0
aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9S
RV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjlhMjU3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNpZm5kZWYgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogI2RlZmluZSBJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAi
RWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsOSArMzksMTAgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAg
ICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQs
IFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4IGYxMGQy
ZmUuLmJmYTE4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5k
LmgKQEAgLTU5LDEwICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwog
ICAgIH0KIAotcHJpdmF0ZToKLQotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7
Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7CisgICAg
SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKKworcHJpdmF0ZToKIAogICAgIHZvaWQg
ZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKaW5kZXggMmMw
NjNjMC4uZWEwNmY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKQEAgLTMxLDEwICsz
MSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVm
UHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikK
ICAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCkpCiAgICAgLCBtX25v
ZGUobm9kZSkKICAgICAsIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgLCBtX2VkaXRpbmdBY3Rpb24o
ZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQobV9ub2RlKTsKIH0KQEAgLTU0LDQgKzU1LDkg
QEAgdm9pZCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6ZG9BcHBseSgpCiAg
ICAgcmVtb3ZlTm9kZShtX25vZGUsIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpOwogfQogCitFZGl0QWN0aW9uIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjplZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lZGl0aW5nQWN0aW9uOwor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKaW5kZXggNGI5MTk3NC4uMjJjMDQ5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuaApAQCAtMzIsMTggKzMyLDIwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQgOiBwdWJs
aWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChub2RlLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChub2RlLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CisgICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rp
b24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKKyAgICB2aXJ0dWFsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPE5vZGU+IG1f
bm9kZTsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOworICAgIEVkaXRBY3Rpb24gbV9lZGl0aW5nQWN0
aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTYxMzQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50KQor
eworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
OTg1ODcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVj
dGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjVhYTNjN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDY2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQpCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQor
eworICAgIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGVJbnNlcnQpOworfQorCit2b2lk
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
OworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
Q3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2Rl
LCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVs
ZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHR5cGUs
IHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYWE0MmFiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6
CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJy
aWRlOworCisgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IGZiMzg4MGMuLjMxNzMxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJCcmVha0Jsb2NrcXVvdGVD
b21tYW5kLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC00Nyw2ICs0
OCw4IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIKICNpbmNsdWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJT
bWFydFJlcGxhY2UuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKQEAgLTE0MzIsNiAr
MTQzNSwxNiBAQCBFZGl0QWN0aW9uIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0
aW9uKCkgY29uc3QKICAgICByZXR1cm4gbV9lZGl0QWN0aW9uOwogfQogCitBWFRleHRFZGl0VHlw
ZSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJu
IG1fYXBwbHlFZGl0VHlwZTsKK30KKwordm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6c2V0
QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKQoreworICAgIG1fYXBw
bHlFZGl0VHlwZSA9IGFwcGx5RWRpdFR5cGU7Cit9CisKIC8vIElmIHRoZSB1c2VyIGlzIGluc2Vy
dGluZyBhIGxpc3QgaW50byBhbiBleGlzdGluZyBsaXN0LCBpbnN0ZWFkIG9mIG5lc3RpbmcgdGhl
IGxpc3QsCiAvLyB3ZSBwdXQgdGhlIGxpc3QgaXRlbXMgaW50byB0aGUgZXhpc3RpbmcgbGlzdC4K
IE5vZGUqIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRBc0xpc3RJdGVtcyhQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBwcnBMaXN0RWxlbWVudCwgTm9kZSogaW5zZXJ0aW9uQmxvY2ssIGNv
bnN0IFBvc2l0aW9uJiBpbnNlcnRQb3MsIEluc2VydGVkTm9kZXMmIGluc2VydGVkTm9kZXMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5k
ZXggZDg3YzNmZi4uOGM0ZDE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtNTMsNiArNTMsOSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBm
cmFnbWVudCwgb3B0aW9ucywgYWN0aW9uKSk7CiAgICAgfQogCisgICAgdmlydHVhbCBBWFRleHRF
ZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRBcHBseUVkaXRU
eXBlKEFYVGV4dEVkaXRUeXBlKTsKKwogcHJpdmF0ZToKICAgICBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZChEb2N1bWVudCYsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIENvbW1hbmRPcHRp
b25zLCBFZGl0QWN0aW9uKTsKIApAQCAtMTIxLDYgKzEyNCw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3ByZXZlbnROZXN0aW5nOwogICAgIGJvb2wgbV9tb3ZpbmdQYXJhZ3JhcGg7CiAgICAgRWRp
dEFjdGlvbiBtX2VkaXRBY3Rpb247CisgICAgQVhUZXh0RWRpdFR5cGUgbV9hcHBseUVkaXRUeXBl
IHsgQVhUZXh0RWRpdFR5cGVQYXN0ZSB9OwogICAgIGJvb2wgbV9zYW5pdGl6ZUZyYWdtZW50Owog
ICAgIGJvb2wgbV9zaG91bGRNZXJnZUVuZDsKICAgICBib29sIG1faWdub3JlTWFpbEJsb2NrcXVv
dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCA5MzI5Y2Rm
Li44YzBmYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKQEAg
LTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlR5cGlu
Z0luc2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVk
ZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtMzczLDcgKzM3NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFu
ZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0
KQogCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29u
c3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKLSAgICBSZWZQdHI8
SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKKyAgICBSZWZQdHI8SW5zZXJ0VGV4
dENvbW1hbmQ+IGNvbW1hbmQgPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3Vt
ZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKICAgICAgICAgbV9jb21wb3NpdGlvblR5
cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VM
ZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFu
Y2VBbGxXaGl0ZXNwYWNlcyk7CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5k
LCBlbmRpbmdTZWxlY3Rpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA5YzczNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OlR5
cGluZ0luc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBl
KQorICAgIDogSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVk
VGV4dCwgcmViYWxhbmNlVHlwZSkKK3sKK30KKworRWRpdEFjdGlvbiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25U
eXBpbmc7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWNjMmQw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisj
ZGVmaW5lIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydFRleHRD
b21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwgUmVi
YWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hp
dGVzcGFjZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFu
Y2VUeXBlKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFR5cGluZ0luc2VydFRleHRDb21tYW5k
KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgUmViYWxhbmNlVHlwZSk7CisgICAgdmly
dHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGluZ0luc2VydFRleHRDb21tYW5k
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9u
QXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNw
cAppbmRleCA3YzIxMzY1Li4zMzJlMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyB2b2lk
IG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+
IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiAg
ICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVj
dGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFj
Lm1tCmluZGV4IDliZGVlMWMuLmZkNDE5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENH
UmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRp
ZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9z
ZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAg
Y2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9k
ZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRh
cmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBp
bnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRl
eCAxZTZjNmIyLi4zNjg0ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkp
OwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgq
aW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJv
bSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91
c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9k
ZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAg
ICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0
Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAg
fQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFs
dWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhU
TUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisK
KyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAo
dGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAg
ICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFY
VGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWFRleHRFZGl0VHlwZUluc2VydCwg
dmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25J
c0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9y
bUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCBjOGJlZTllLi5iYjRlZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC0zMjEwLDcgKzMyMTAsOCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFs
S2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0
aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZp
c2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlVbmtub3duIH0pOworICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJl
ZCksIGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92
ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2MwN2ZlLi5kOGQyNWNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zNDAsOCArMzQwLDEwIEBAIGJvb2wg
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBLZXliCiAgICAgaWYgKGNhcmV0QnJvd3NpbmcpIHsKICAgICAgICAgUG9z
aXRpb24gcG9zaXRpb24gPSBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZWxlbWVudC5nZXQo
KSk7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKHBvc2l0aW9uLCBwb3Np
dGlvbiwgRE9XTlNUUkVBTSk7Ci0gICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBpZiAoZnJhbWUuc2VsZWN0
aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgICAg
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNj
b250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24gfSk7CisgICAgICAg
ICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNl
bGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIGludGVu
dCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBlbGVtZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0
aW9uKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhMTNkNzlhLi4yNGIwODQzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDQtMjAgIERvdWcgUnVzc2VsbCAg
PGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIwMTY5MDU4
PiBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKworICAgICAg
ICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmls
aXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUs
IHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29u
dGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxl
bWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBm
aWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ug
b2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5k
IGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBh
c3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0
byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNl
bGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAg
KC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVk
Ol0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisKIDIwMTUtMDQt
MTcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCBhYmxl
IHRvIGJ1aWxkIFdlYktpdCBhZ2FpbnN0IGlPUyBTaW11bGF0b3IgOC4zIFNESwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLjdiMDE3YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0KQEAgLTExMiwxNiArMTEyLDI3IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYm
IG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVz
ZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05v
dGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsK
ICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3Ry
aW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAg
ICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1
c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRl
SlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFs
dWVNYWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNVc2VySW5m
b0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewot
ICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVu
dCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9u
KFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFj
aywgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlm
aWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBl
bGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFs
dWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGds
b2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3Vt
ZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0
cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGds
b2JhbENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0
XSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7Cisg
ICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAg
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3Rp
ZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0K
aW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwxOSArMTI1LDMwIEBACiAgICAgaWYg
KG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24g
b2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZh
bHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIFdLQnVuZGxl
RnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKFdUUjo6SW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsKICAgICBKU0NvbnRleHRSZWYg
Y29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwog
CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90
aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZp
Y2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNOb3RpZmlj
YXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9
IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5m
b0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1
ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBqc1VzZXJJbmZv
SlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0g
ICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50
LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24o
Y29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNh
bGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhl
IG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9y
IG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAg
ICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5v
dGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0
LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2sp
LCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFs
IGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5m
by4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50c1sw
XSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwogICAgICAgICBhcmd1bWVudHNbMV0g
PSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJ
bmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29u
dGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxi
YWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251191</attachid>
            <date>2015-04-20 14:39:05 -0700</date>
            <delta_ts>2015-04-20 15:18:31 -0700</delta_ts>
            <desc>Update based on review (fixed iOS/GTK build take 2)</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>220617</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGViNDA0N2E2ZmRkNmVmN2ZkODllNGFlNzU0MDBiMmFmMDM3YjA5ZjUKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICAgICAgQVg6IHJpY2hl
ciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQogICAgCiAgICAgICAgUmljaGVyIGFj
Y2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRF
ZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFs
c28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29y
ZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUg
Y2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sg
cG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRm
MjFiNmYuLjUxNDk1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0yMCAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBu
b3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0
byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2Vk
IHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAg
ICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBz
IG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBj
b250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9u
IHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5m
by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2Ut
dXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQuCisKIDIwMTUtMDQt
MTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNl
IGV2ZW50cyBzaG91bGQgZ28gdGhyb3VnaCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29k
ZSBwYXRocwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhNmY4Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRh
dGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5n
ZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZh
bHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmlu
Zm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTBkZTMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5w
dXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1dCB0eXBlPSJwYXNzd29y
ZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZh
bHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworICAg
IDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRz
IG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAg
ICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7
CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAg
ICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAg
ICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZv
KSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIpIHsKKworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUlu
c2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3JkIG5vdGlmaWNhdGlvbnMg
d2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3aWxsIGJlIHdoaXRlc3Bh
Y2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKworICAgICAg
ICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBz
ZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2YWx1ZXRl
c3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNldHNlY3Vy
ZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY3VyZXZh
bHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisKKyAgICAgICAg
aWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAg
ICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRB
dEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5h
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAg
ICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICBz
ZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgpOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4
LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90
aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBp
cyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11
c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiByb2xl
PSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4K
KzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2ZW4gZWlnaHQgbmlu
ZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCis8c2NyaXB0Pgor
CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcg
KyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyArIDE7CisKKyAgICB2YXIg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggKyAy
OworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwgInNlbnRlbmNlIiwgImxp
bmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5jZWJvdW5kYXJ5IiwgInBh
cmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAgICB2YXIgd2ViQXJlYSA9
IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgIHZhciBy
ZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZp
Y2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVj
dGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYg
KHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAg
ICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7CisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblBy
ZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURv
Y3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5v
dGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgIHdlYkFyZWEgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmlj
YXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgLy8g
VHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgIGZv
ciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2Fy
ZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBn
cmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAg
ICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICBzLm1vZGlmeSgi
ZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5
M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkg
QEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNl
ciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVk
Tm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVDdXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlz
ICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1b
IkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFY
VGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJd
IGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBpbmcKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRt
bApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250
ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAgPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPGRpdiBpZD0ibm90
aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAgICAgIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIp
OworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5
cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAgICAgIHZhciBBWFRleHRF
ZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgKyAxOworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiArIDEKKyAg
ICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0VHlwZUN1dCArIDE7CisK
KyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAg
ICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAg
ICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7
CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAg
ICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2Vy
SW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsKKworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUN1dCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFs
dWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVc
Il0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0i
LCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxl
dGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAg
ICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJB
cmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAg
ICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKKyAg
ICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAgZXhlY1NldFNlbGVjdGlv
bkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0ZW5kU2VsZWN0aW9uUmln
aHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENvbW1hbmQoKTsKKyAgICAg
ICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAg
ICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YTY5MDUxNS4uMmY0YmU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0ODMsMTAgKzE0ODMs
MTIgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRp
b25BbHRlcm5hdGl2ZS5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisgICAg
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMTUxMCw2ICsxNTEyLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUyNSw2ICsxNTI5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvVGV4
dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAog
ICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjc4ZDQ2Mi4uMjgyM2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMyBA
QAorMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAg
ICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
YW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5n
IHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBUZXN0czog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0
bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhP
YmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4
dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmll
bGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25S
YW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9y
VGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpT
T05UeXBlcyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21t
YW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4
dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmVk
aXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpzZXRBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGlu
Z0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZv
cm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRG
cmFnbWVudCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdB
cHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29y
ZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6
ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnNldEFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRD
b21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJhbWVT
ZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlv
bik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCisyMDE1
LTA0LTE3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vz
c2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNv
bnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24u
IEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMu
CisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSaWNo
ZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFY
VGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBh
c3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5n
IHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRo
ZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQg
dmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gVGhpcyBjb21taXQgaXMg
YWxsIGluZnJhc3RydWN0dXJlIGFuZCBkb2Vzbid0IGNvbnRhaW4gYW55IGFjY2Vzc2liaWxpdHkg
c3BlY2lmaWMgY2hhbmdlcy4KKwogMjAxNS0wNC0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRm9yY2UgbW91c2UgZXZlbnRzIHNob3VsZCBnbyB0aHJvdWdoIG5v
cm1hbCBtb3VzZSBldmVudCBoYW5kbGluZyBjb2RlIHBhdGhzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBkMDc3YTAyLi5hYTkxNmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAg
LTE0MzY2LDYgKzE0MzY2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTE0NDIyLDYgKzE0NDM2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFu
ZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAt
MTQ3NzMsNiArMTQ4MDEsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDk5Nyw2ICsxNTA1
MywyMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1MjIsNiArMTk1OTIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vz
c2liaWxpdHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdl
XEFkanVzdFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBh
Z2VcQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA0MSwxMCArMjExMTIsMTIgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVM
aW5rQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24u
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgi
IC8+CkBAIC0yMTA3NSw2ICsyMTE0OCw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQu
aCIgLz4KQEAgLTIxMDkzLDYgKzIxMTY4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9zaXRpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlNDQ2
MDg3Li5mMDc0OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNDM4LDYgKzM0MzgsOSBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM0NTAsNiArMzQ1Myw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVk
aXRDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTM1MjgsNiArMzUzNCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM1NzYsNiArMzU4OCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtNzY1Niw2ICs3NjcxLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFj
Y2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIj4KKyAgICAgICAgPEZpbHRl
cj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0eVx3aW48L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KQEAgLTEwNTY2LDYgKzEwNTg0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDU3OCw2ICsxMDU5OSw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NjgsNiArMTA2
OTIsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3Np
dGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA3MjIsNiArMTA3NTIsMTIgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTExMGUwYi4uNTMyNTY0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzIzNSw2ICszMjM1LDcgQEAKIAkJOTAwMTc3NDExMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERl
cml2YXRpdmVzLmggKi87IH07CiAJCTkwMDE3ODgwMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAgKi87IH07CiAJCTkwMDE3ODgxMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCAqLzsgfTsKKwkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzAy
QjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQ
YWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdy
b3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAy
QjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNUIyNEQwOThGMUI2QjAwQzI4ODU1IC8q
IFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjM3OCw4ICs2Mzc5LDE0IEBACiAJCUY1MDY2
NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8q
IEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNs
aWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1
NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1
NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhE
QTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3
OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVC
M0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYy
NjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5
cGUuY3BwICovOyB9OwpAQCAtNjQyOSwxMCArNjQzNiwxNCBAQAogCQlGNTVCM0RERTEyNTFGMTJE
MDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBl
LmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFC
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAx
MjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9j
YWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUx
MTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxl
TWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9
OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0Mjgx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8q
IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovOyB9OwpAQCAtMTA0NjgsNiArMTA0NzksNyBAQAogCQk5MDAxNzczRjEyRTAz
NDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw7IHBhdGggPSBjYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3
ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdl
R3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3Vw
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdF
RTgzIC8qIFBhZ2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
R3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNUIyNEMwOThGMUI2QjAw
QzI4ODU1IC8qIFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwNiw4ICsxNDAxOCwxNCBAQAog
CQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qz
MDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZC
RTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2Fs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2Fs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRv
bklucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1Nyw2ICsx
NDA3NSw4IEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5w
dXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1
dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcy
QTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVG
cmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNl
dHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwpAQCAtMTQwNjcsNiArMTQwODcsOCBAQAogCQlGNTk3M0RERjE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlD
OTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2
MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTYxNSw2ICsx
NTYzNyw3IEBACiAJCQkJMjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlU
YWJsZVJvdy5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENh
Y2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNo
ZS5oICovLAorCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE3Njc5LDYgKzE3NzAyLDggQEAKIAkJCQk5MzMwOUQ4RTA5
OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2
NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1
NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywK
KwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAv
KiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Njg3LDYgKzE3NzEyLDggQEAK
IAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAq
LywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAg
Ki8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAq
LywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBF
ZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21t
YW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQu
aCAqLywKQEAgLTE3NzQzLDYgKzE3NzcwLDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIz
MkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlC
MzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1
MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAog
CQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzc4LDYgKzE3ODA5LDggQEAKIAkJCQk5
MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJ
CQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlG
QTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAor
CQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5o
ICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJ
CUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlE
MDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2NzEs
NiArMjM3MDQsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ3OTUsNiArMjQ4MjksNyBAQAogCQkJCUExOUQ5MzRCMUFBMTFCMUUw
MEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0OUIxMjM3
MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI1NTkzLDYgKzI1NjI4LDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4
MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNY
TUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2
YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8q
IEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY2NDUsNiArMjY2ODEsNyBA
QAogCQkJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyODE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNjkwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MjkxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDJBMTc4RDVB
QjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E2RDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjcsNiArMjY4NjQsNyBAQAogCQkJCTE4
NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVt
b3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY5NTAsNiArMjY5ODgsNyBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAz
NDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkx
NzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNGMTk5QTgwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzgwNCw2ICsyNzg0Myw3IEBA
CiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmlj
ZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMw
MkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODE5OCw2ICsyODIzOCw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVy
YXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1
NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5
RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1
IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQw
MEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM5
Nyw2ICsyODQzOCw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5
RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1
MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyog
SW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAw
RjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTQsNiAr
Mjg4OTYsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1Bl
cmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUx
NUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJp
b2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4
IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5
RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjk4NDAsNiArMjk4ODMsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAv
KiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJF
NkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1
OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IGEwMGIxNWMuLjFmZTZiNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDYg
KzkwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogCisvLyBQb3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVs
ZHMgb3IgZWxlbWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50
ZXJ2YWwgdG8gdGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCitzdGF0aWMgZG91Ymxl
IEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwgPSAw
LjAyNTsKKwogQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBWENvbXB1dGVkT2JqZWN0QXR0
cmlidXRlQ2FjaGU6OmdldElnbm9yZWQoQVhJRCBpZCkgY29uc3QKIHsKICAgICBIYXNoTWFwPEFY
SUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9pZE1h
cHBpbmcuZmluZChpZCk7CkBAIC0xMjksNiArMTMyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpz
ZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0
Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVu
dChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90
aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzA1LDcgKzcwOSw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIFJlZjxEb2N1bWVu
dD4gcHJvdGVjdG9yRm9yQ2FjaGVPd25lcihtX2RvY3VtZW50KTsKICAgICBtX25vdGlmaWNhdGlv
blBvc3RUaW1lci5zdG9wKCk7CiAgICAgCi0gICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNh
dGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZp
Y2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIElu
IHRlc3RzLCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRl
bHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBl
Y3RlZCBiZWhhdmlvcgogICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFy
ZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCiAgICAg
YXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fbm90aWZpY2F0aW9uc1RvUG9zdCk7CiAg
ICAgCkBAIC03NDIsNiArNzQ2LDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50
T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIHRlc3RzLCBw
b3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUg
dXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhh
dmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhl
IGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3Rp
ZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKwor
ICAgIGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5n
ZXQoKSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2Vu
ZGlmCit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVy
T2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjgsMjIzIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFu
Z2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgewor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgZGF0YUxvZygi
VW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQ6CisgICAgICAgIGRhdGFMb2coIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGRhdGFMb2co
Ik1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgZGF0YUxvZygiRXh0ZW5kOjoiKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7Cisg
ICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygi
VW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEZWxldGU6CisgICAgICAgICAgICBkYXRhTG9nKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgZGF0
YUxvZygiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpY3RhdGlvbkluc2VydCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6
CisgICAgICAgICAgICBkYXRhTG9nKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgZGF0YUxvZygi
Q3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBh
c3RlOgorICAgICAgICAgICAgZGF0YUxvZygiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBk
YXRhTG9nKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIkJl
Z2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBkYXRhTG9nKCJFbmQ6OiIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBkYXRhTG9nKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAg
ICAgZGF0YUxvZygiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgZGF0YUxv
ZygiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAg
ICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIGRh
dGFMb2coIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAg
ZGF0YUxvZygiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBk
YXRhTG9nKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgZGF0YUxv
ZygiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxs
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICBkYXRhTG9nKCItU3luYyIp
OworICAgIGRhdGFMb2coIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpz
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sK
KyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3N0YXRpYyBib29sIGlz
UGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0ICYmIChvYmplY3QtPmlzUGFzc3dvcmRG
aWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSk7Cit9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBu
b2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisK
ICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVs
ZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iamVjdCkgeworICAg
ICAgICBpZiAoaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90
aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0
Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVu
dCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Cit9CisKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAo
b2JqZWN0KSB7CisgICAgICAgIGlmIChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmpl
Y3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxz
ZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRU
eXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5
cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47
CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAg
QVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9u
VHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVk
aXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7
CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3Jk
VmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAg
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgZGVsZXRpb25U
eXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7
CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0
ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxl
bnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlw
ZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRp
dGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK2Jvb2wgQVhPYmplY3RD
YWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0KQoreworICAgIGlmICghaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRC
eVBhc3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9i
amVjdCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkgeworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgLy8gcmV0dXJuIHRydWUgZXZlbiB0aG91Z2ggdGhlIGVucXVl
dWUgZGlkbid0IGhhcHBlbiBiZWNhdXNlIHRoaXMgaXMgYSBwYXNzd29yZCBmaWVsZCBhbmQgY2Fs
bGVyIHNob3VsZG4ndCBwb3N0IGEgbm90aWZpY2F0aW9uCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuY29udGFpbnMo
b2JzZXJ2YWJsZU9iamVjdCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bv
c3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOwog
fQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZy
YW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzA5
LDE2IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVh
KCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290T2JqZWN0ID0gdGhpcy0+cm9vdE9i
amVjdCgpOworICAgIGlmICghcm9vdE9iamVjdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAg
cmV0dXJuIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2Vi
QXJlYU9iamVjdCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hl
RW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAg
ICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li5kMjkzNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZpbmUgQVhPYmplY3RDYWNoZV9oCiAK
KyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgpA
QCAtMTg5LDEyICsxOTAsMTggQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihO
b2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0g
VGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51
bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0
RGVsZXRlZCwKLSAgICB9OworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0
U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KTsKIAotICAgIHZvaWQgbm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21w
b3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gU2VsZWN0aW9u
IGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAg
IGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjEz
LDEyICsyMjAsNDQgQEAgcHVibGljOgogICAgIEFYQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNo
ZSogY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSgpIHsgcmV0dXJuIG1fY29tcHV0ZWRPYmpl
Y3RBdHRyaWJ1dGVDYWNoZS5nZXQoKTsgfQogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQotICAgIAorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
ICFQTEFURk9STShpT1MpCisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAg
IEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAg
cmV0dXJuIEFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgICAgIHJldHVybiBBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVM
b2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhM
b2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCop
OwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsyNjgsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRN
YXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAg
ICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsK
ICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsK
QEAgLTI0NCw2ICsyODUsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBv
c3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0
PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3Rp
ZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7
CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5k
bGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyOTcsMTAgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50
KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CisKKyAgICBib29sIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFi
bGVyCkBAIC0zMDgsOCArMzU4LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxl
U2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQq
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5k
ZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVk
VG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50Kiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRp
b24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CkBAIC0zMjAsNiArMzcxLDEzIEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnJlbW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lk
Z2V0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVj
dGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQorI2Vsc2UKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiAjZW5kaWYKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUlu
dGVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUlu
dGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzI2NGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKyNk
ZWZpbmUgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCitlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93biwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kCit9OworCitlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICBBWFRleHRFZGl0
VHlwZVVua25vd24sCisgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBk
ZWxldGUKKyAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAor
ICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgIEFYVGV4
dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgIEFYVGV4dEVk
aXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8g
SW5zZXJ0IHZpYSBQYXN0ZQorfTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gewor
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0LAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMK
K307CisKK2VudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxs
IGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xl
IGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21l
IG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVu
dCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorfTsK
Kworc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbjsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eTsK
K307CisKK3N0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIHR5cGU7CisgICAgdW5pb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2Vs
ZWN0aW9uOworICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgfTsKKyAgICBib29s
IGlzU3luY2hyb25pemluZyB7IGZhbHNlIH07CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAg
ICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICB7IH0K
KworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAg
ICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICwgY2hhbmdl
KGNoYW5nZSkKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIGlzU3luY2hyb25pemluZykKKyAgICAgICAgOiB0eXBl
KHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKCkKKyAgICAgICAgLCBpc1N5bmNocm9uaXppbmco
aXNTeW5jaHJvbml6aW5nKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi4yMDAzYjNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1l
bnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQo
KQoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVs
ZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1l
bnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisKKyAgICBFbGVtZW50KiBlbGVt
ZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIGlmICghaXM8SFRNTElucHV0RWxlbWVudD4o
KmVsZW1lbnQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRP
ckNyZWF0ZShlbGVtZW50KTsKKworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5v
ZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uYTgyYmQ4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
TmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVU
ZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3Jk
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uY2Iz
MzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAj
ZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAo
IW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRy
aWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxl
bWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICByZXR1cm4gaXM8SFRNTElu
cHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1l
bnQpLmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmlu
ZGV4IDM1ODZmMmEuLjgxNmMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
VGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJl
YSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li5mNjU1ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
QEAgLTE0ODgsMTQgKzE0ODgsMTcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFu
Z2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5n
dGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9y
ZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5z
ZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXIt
Pm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6
UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uu
c3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBET1dOU1RSRUFNKSk7CisgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBv
c2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pOworICAgIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IG5ld0ludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVl
KTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBu
ZXdJbnRlbnQpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29u
c3QKQEAgLTE5NjAsMTMgKzE5NjMsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAg
ICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9j
dW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBw
b3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdl
LnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbklu
dGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
bW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAg
ICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihy
YW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+
ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAt
NDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlw
ZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
d2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2Jq
ZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgp
OyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xs
YmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVj
dENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw4ICs5
NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZv
aWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQs
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhW
YWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVM
b2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZy
YW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAw
ZTc3Li42ZWNhZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3Jl
YXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5
cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBA
IkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0
aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0
TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2Vy
IEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3Rl
ZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5l
Z2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlz
IGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBs
aW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8g
aHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBOU1VJbnRlZ2VyIGNvbnN0IE5TQWNjZXNzaWJpbGl0
eVZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisKIC8vIFRoZSBzaW1wbGUgQ29j
b2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTYwLDYgKzEwNywxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFj
aFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQogICAgIG9iai0+c2V0V3JhcHBlcih3
cmFwcGVyLmdldCgpKTsKIH0KIAorc3RhdGljIEJPT0wgYXhTaG91bGRSZXBvc3ROb3RpZmljYXRp
b25zRm9yVGVzdHMgPSBmYWxzZTsKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCit7CisgICAgYXhTaG91bGRSZXBvc3RO
b3RpZmljYXRpb25zRm9yVGVzdHMgPSB2YWx1ZTsKK30KK3N0YXRpYyB2b2lkIEFYUG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24sIGlk
IHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1wbGlm
eSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBzaW1w
bGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVyZSB0
byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdlZW4g
V2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNrCisg
ICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkKKyAg
ICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlv
biB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24g
bm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMDksMTM5IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53cmFw
cGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8ga25v
dyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAgQVhQ
b3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRp
b24sIG5pbCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24pCiB7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAo
aW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICB1
c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50
LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAg
ICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBp
ZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5n
ZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlv
bjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5n
ZTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVy
OworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7Cisg
ICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFY
VGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3Ry
aW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07Cisg
ICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIGlm
IChsZW5ndGggPiBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGgpIHsK
KyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBA
KGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4Ok5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aF07CisgICAgfQorICAgIGlmIChsZW5n
dGggPiAwKQorICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXSA9
IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAgIGlmIChpZCB0
ZXh0TWFya2VyID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRp
b246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJldHVybiBbY2hh
bmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJv
b3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0
aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhD
YXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAoTlNEaWN0
aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwg
dHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2Jq
ZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVh
ID0gcm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2Vi
QXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24s
IHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53
cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlcklu
Zm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5z
ZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICgh
b2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmpl
Y3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZv
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0g
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNE
aWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVj
dCwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdl
cyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOwor
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsK
KyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53
cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9v
dFdlYkFyZWEoKTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90
aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmlj
YXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFs
dWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8g
a25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqZWN0LT53cmFwcGVy
KCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNo
YW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2Fk
aW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAt
IChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKIAogLSAoaWQpYXR0YWNo
bWVudFZpZXc7Ci0vLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRp
b24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBVc2VkIHRvIGluZm9ybSBhbiBl
bGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSB0ZXN0
cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilu
b3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9u
OihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVz
ZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNwYWNlOihXZWJDb3Jl
OjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTooV2Vi
Q29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLmM0NzJhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDY5IEBAIHN0YXRpYyBCT09MIGFj
Y2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogKyAodm9pZClhY2Nlc3NpYmls
aXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTClyZXBvc3QKIHsKICAgICBhY2Nl
c3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJlcG9zdDsKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgIVBMQVRGT1JNKGlPUykKKyAgICBBWE9iamVjdENhY2hlOjpzZXRTaG91bGRS
ZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMocmVwb3N0KTsKKyNlbmRpZgogfQogCiAtICh2b2lk
KWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9u
TmFtZQogeworICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykK
KyAgICAgICAgW3NlbGYgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRp
b25OYW1lIHVzZXJJbmZvOm5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICphcnJheVJlbW92aW5n
Tm9uSlNPTlR5cGVzKE5TQXJyYXkgKmFycmF5KQoreworICAgIEFTU0VSVChbYXJyYXkgaXNLaW5k
T2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKTsKKyAgICBOU011dGFibGVBcnJheSAqbXV0YWJsZUFy
cmF5ID0gW2FycmF5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkg
PCBbbXV0YWJsZUFycmF5IGNvdW50XTspIHsKKyAgICAgICAgaWQgdmFsdWUgPSBtdXRhYmxlQXJy
YXlbaV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNs
YXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkg
d2l0aE9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAg
ICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAg
ICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aSB3aXRoT2JqZWN0OmFy
cmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNOdW1iZXIgY2xhc3NdXSkpIHsKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVtb3Zl
T2JqZWN0QXRJbmRleDppXTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAg
ICAgIGkrKzsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOwor
fQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMo
TlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIEFTU0VSVChbZGljdGlvbmFyeSBpc0tp
bmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFy
eSAqbXV0YWJsZURpY3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRhYmxlQ29weV07CisgICAgZm9y
IChOU1N0cmluZyAqa2V5IGluIGRpY3Rpb25hcnkpIHsKKyAgICAgICAgaWQgdmFsdWUgPSBkaWN0
aW9uYXJ5W2tleV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9u
YXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gZGljdGlv
bmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVl
IGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0
aW9uYXJ5W2tleV0gPSBhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAg
ZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJs
ZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBb
bXV0YWJsZURpY3Rpb25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5m
bzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3Vs
ZFJlcG9zdE5vdGlmaWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9
IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25O
YW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmlj
YXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5v
dGlmaWNhdGlvbk5hbWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAg
ICAgIGlmICh1c2VySW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBb
TlNKU09OU2VyaWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5n
Tm9uSlNPTlR5cGVzKHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVy
cm9yOm5pbF07CisgICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAg
ICAgTlNTdHJpbmcgKnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhE
YXRhOnVzZXJJbmZvRGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAg
ICAgICAgICAgaWYgKHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0g
QHtAIm5vdGlmaWNhdGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1
c2VySW5mb1N0cmluZ307CisgICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2Vd
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaW5mbykKKyAgICAgICAg
ICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lfTsKKyAg
ICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0
aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzppbmZvXTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4
YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApA
QCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJr
ZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3Rh
cnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0
aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6
VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjNiZjc5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDQsMTcgKzQ2LDI2IEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJU
KCFtX25vZGUtPnBhcmVudE5vZGUoKSk7CiAKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRh
YmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOworICAgIHNldEFwcGx5RWRpdFR5
cGUoQVhUZXh0RWRpdFR5cGVJbnNlcnQpOwogfQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hh
bmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRD
aGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5n
IG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgp
OwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAg
aWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3Rp
ZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlv
bihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
bm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0K
IAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02NCwxOCArNzUsMTYgQEAg
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5k
Q2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dElu
c2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
Z2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZv
cmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xp
bmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAg
ICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBw
bHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApp
bmRleCA4NDYxZWU3Li42NzFhOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNTgsNiArNTgsOCBAQAogI2luY2x1ZGUgIlJlbmRl
ckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJl
ZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0x
NjIsNiArMTY0LDEzIEBAIHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYVGV4dEVkaXRUeXBl
IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgaWYgKCFt
X2NvbW1hbmRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHMubGFzdCgpLT51
bmFwcGx5RWRpdFR5cGUoKTsKKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQor
CiB2b2lkIGFwcGx5Q29tbWFuZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjb21t
YW5kKQogewogICAgIGNvbW1hbmQtPmFwcGx5KCk7CkBAIC0zMjAsOSArMzI5LDMwIEBAIGJvb2wg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyB2b2lkIHNldENvbW1hbmRBcHBseUVkaXRU
eXBlRm9yRWRpdGluZ0FjdGlvbihTaW1wbGVFZGl0Q29tbWFuZCAqY29tbWFuZCwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQoreworICAgIGlmICghY29tbWFuZCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlv
bjoKKyAgICAgICAgY29tbWFuZC0+c2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZURpY3Rh
dGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAg
ICBjb21tYW5kLT5zZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlUGFzdGUpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIGNvbW1hbmQtPnNl
dEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGVUeXBpbmcpOworICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7Cisg
ICAgUmVmUHRyPEluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVk
aXRpbmdBY3Rpb24oY29tbWFuZC5nZXQoKSwgZWRpdGluZ0FjdGlvbigpKTsKKyAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC0zNzMsNyArNDAzLDkgQEAgdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIGNvbnN0
IFBvc2kKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCkKIHsKICAgICBBU1NF
UlQoY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhwYXJlbnQuZ2V0KCkpKTsKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSkp
OworICAgIFJlZlB0cjxBcHBlbmROb2RlQ29tbWFuZD4gY29tbWFuZCA9IEFwcGVuZE5vZGVDb21t
YW5kOjpjcmVhdGUocGFyZW50LCBub2RlKTsKKyAgICBzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZv
ckVkaXRpbmdBY3Rpb24oY29tbWFuZC5nZXQoKSwgZWRpdGluZ0FjdGlvbigpKTsKKyAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgdW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgdG8pCkBAIC0zOTcsNyArNDI5LDcgQEAgdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnQKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsK
KyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
LCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVt
b3ZlTm9kZUFuZFBydW5lQW5jZXN0b3JzKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKQEAgLTUyNCwy
MSArNTU2LDMxIEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0CiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIGlmICghdGV4dC5pc0VtcHR5
KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICBpZiAoIXRleHQuaXNFbXB0
eSgpKSB7CisgICAgICAgIFJlZlB0cjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjb21tYW5k
ID0gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7
CisgICAgICAgIHNldENvbW1hbmRBcHBseUVkaXRUeXBlRm9yRWRpdGluZ0FjdGlvbihjb21tYW5k
LmdldCgpLCBlZGl0aW5nQWN0aW9uKCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShjb21tYW5kKTsKKyAgICB9CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY29tbWFuZCA9IERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBpZiAoZWRpdGluZ0FjdGlv
bigpID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGNvbW1hbmQtPnNldEFwcGx5RWRpdFR5cGUo
QVhUZXh0RWRpdFR5cGVDdXQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQp
OwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNz
UmVmUHRyPFRleHQ+IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNv
bnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBy
cE5vZGUpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7Ci0gICAgaWYgKCFyZXBsYWNlbWVu
dFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQp
KTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBj
b3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CisgICAg
aWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY29tbWFuZCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0
ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpOworICAgICAgICBzZXRDb21tYW5kQXBwbHlFZGl0VHlw
ZUZvckVkaXRpbmdBY3Rpb24oY29tbWFuZC5nZXQoKSwgZWRpdGluZ0FjdGlvbigpKTsKKyAgICAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCk7CisgICAgfQogfQogCiBQb3NpdGlv
biBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBT
dHJpbmcmIHRleHQpCkBAIC0xNTIzLDQgKzE1NjUsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBj
cmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0
dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KIAorQVhUZXh0RWRp
dFR5cGUgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIGlmICgh
bV9jb21tYW5kcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzLmxhc3QoKS0+
YXBwbHlFZGl0VHlwZSgpOworICAgIHJldHVybiBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNjU4ZTczMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0
eWxlZEVsZW1lbnQ7CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgQVhUZXh0
RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRD
b21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2Vs
ZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rp
b24pOwogCkBAIC04Nyw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
UmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKIAog
cHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTlmNDJkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwg
Ym9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9y
U3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQorICAgIDogRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUs
IHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApCit7Cit9
CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI3ZWI5YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gK
KyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxh
Y2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wg
c21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBi
b29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAg
IHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDJlYTk2ZDUuLmM1ODhmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4LCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJU
ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtNDMsNiArNDUsMTIgQEAgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBBU1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQobV9v
ZmZzZXQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3Vu
dCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKKyAgICBzZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRU
eXBlRGVsZXRlKTsKK30KKworU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxl
dGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKIH0KIAogdm9pZCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTU4LDggKzY2LDggQEAgdm9pZCBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIC8v
IE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7
CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAg
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0
VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0
KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9
CkBAIC03Myw4ICs4MSw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVf
RVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBt
X29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRp
b24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5
MWYwNS4uMjZkOWQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcg
QEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDEz
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAg
IFN0cmluZyYgZGVsZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgogICAgIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCk7CiAKK3ByaXZhdGU6CisKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDJi
YmM2ZWQuLjQ5ZjAwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERlbGV0
ZSBrZXksCi0gICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFuZCB0
aGF0IHN1cHBsaWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8gbWVu
dSBjb3JyZWN0bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0
OworICAgIHJldHVybiBFZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxldGlv
biBkb2Vzbid0IHByZXNlcnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZv
cmUgaXQuICBGb3IgZXhhbXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNv
bW1hbmQuY3BwCmluZGV4IGMxNzNkZjQuLmQ1M2U0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkRp
Y3RhdGlvbkNvbW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKQEAgLTExNSw3ICsxMTYsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omlu
c2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgog
ewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwog
ICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxl
bmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRv
Y3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgp
LCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwor
ICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9J
bnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1
cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxYjQ2NDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRl
eHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRU
ZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpCit7Cit9CisKK0VkaXRB
Y3Rpb24gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAor
eworICAgIHJldHVybiBFZGl0QWN0aW9uRGljdGF0aW9uOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTViNjA0NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDog
cHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJr
ZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlv
bk1hcmtlclN1cHBsaWVyPik7CisKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi5hNDI3OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTEyLDYgKzExMywyOCBAQCB2b2lkIEVkaXRDb21t
YW5kOjpzZXRQYXJlbnQoQ29tcG9zaXRlRWRpdENvbW1hbmQqIHBhcmVudCkKICAgICB9CiB9CiAK
K0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBzd2l0Y2ggKGFwcGx5RWRpdFR5cGUoKSkgewor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRp
dFR5cGVVbmtub3duOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgY2FzZSBB
WFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0Owor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAg
IH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCiB2b2lkIFNpbXBsZUVk
aXRDb21tYW5kOjpkb1JlYXBwbHkoKQogewogICAgIGRvQXBwbHkoKTsKQEAgLTEyNSw0ICsxNDgs
MjQgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
IHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KIH0KICNlbmRpZgogCitBWFRleHRFZGl0VHlw
ZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIG1fYXBw
bHlFZGl0VHlwZTsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6c2V0QXBwbHlFZGl0VHlw
ZShBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKQoreworICAgIG1fYXBwbHlFZGl0VHlwZSA9
IGFwcGx5RWRpdFR5cGU7Cit9CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhY2hl
LT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0
aW9uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLmRkN2IyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1hbmRfaAogI2Rl
ZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNTks
NiArNjAsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAor
ICAgIHZpcnR1YWwgQVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIEFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRWRp
dENvbW1hbmQoRG9jdW1lbnQmKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CkBAIC05MCw2ICs5NCw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mKSA9IDA7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhUZXh0RWRpdFR5cGUgYXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0
VHlwZSk7CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsgfQogCkBAIC05Nyw4ICsx
MDQsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
LCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
KyAgICBBWFRleHRFZGl0VHlwZSBtX2FwcGx5RWRpdFR5cGUgeyBBWFRleHRFZGl0VHlwZVVua25v
d24gfTsKIH07CiAKIGlubGluZSBTaW1wbGVFZGl0Q29tbWFuZCogdG9TaW1wbGVFZGl0Q29tbWFu
ZChFZGl0Q29tbWFuZCogY29tbWFuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0Fs
bEluT25lLmNwcAppbmRleCBkYzNhZTMzLi4zOTZhOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpbmNsdWRlIDxC
cmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxDb21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8Q3JlYXRlTGlua0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1
ZGUgPERpY3RhdGlvbkFsdGVybmF0aXZlLmNwcD4KICNpbmNsdWRlIDxEaWN0YXRpb25Db21tYW5k
LmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA+CiAjaW5jbHVk
ZSA8RWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRpbmdTdHlsZS5jcHA+CiAjaW5jbHVk
ZSA8RWRpdG9yLmNwcD4KQEAgLTU5LDYgKzYxLDggQEAKICNpbmNsdWRlIDxSZW1vdmVOb2RlQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQu
Y3BwPgogI2luY2x1ZGUgPFJlbmRlcmVkUG9zaXRpb24uY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRl
IDxTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHA+CkBAIC03Nyw2ICs4MSw3IEBACiAjaW5jbHVk
ZSA8VGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3Iu
Y3BwPgogI2luY2x1ZGUgPFR5cGluZ0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxVbmxpbmtDb21tYW5kLmNwcD4KICNpbmNsdWRl
IDxWaXNpYmxlUG9zaXRpb24uY3BwPgogI2luY2x1ZGUgPFZpc2libGVTZWxlY3Rpb24uY3BwPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDcxMGFhMzkuLmZmMGYwMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDbGlwYm9h
cmRFdmVudC5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJDcmVh
dGVMaW5rQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIK
ICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21t
YW5kLmgiCiAjaW5jbHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKQEAgLTM3NCwxMiArMzc1
LDE1IEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlv
biBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0
ZSkKK3ZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFy
dERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNl
bGVjdGlvbigpLmlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQo
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7
CisgICAgaWYgKGVkaXRpbmdBY3Rpb24gPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgYXBwbHlD
b21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFy
dERlbGV0ZSkpOworICAgIGVsc2UKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCiB2b2lkIEVk
aXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTEwMDEsNyArMTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBs
aWVkRWRpdGluZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAv
LyBEb24ndCBjbGVhciB0aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdl
LiAgV2UgZG8gdGhvc2UgdGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVT
ZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25D
b21tYW5kKCkgPyBGcmFtZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBj
aGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBj
aGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudChjbWQtPmFwcGx5RWRpdFR5cGUoKSkpOwogICAgIGRpc3BhdGNoRWRp
dGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFi
bGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwog
CiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAzMiw3ICsxMDM2LDcg
QEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENv
bXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhjbWQtPnN0YXJ0aW5n
Um9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7
CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0YXJ0aW5nU2VsZWN0
aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIEZy
YW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsKKyAgICBjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoY21kLT51bmFw
cGx5RWRpdFR5cGUoKSkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50
cyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0
YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBA
IC0xMjY2LDcgKzEyNzAsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JB
Y3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoKTsKICAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFj
dGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBA
QCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9h
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRl
cm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFm
dGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBp
cyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3
U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBo
YW4oKSkKQEAgLTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8v
IFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2
YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxl
Y3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0
aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwog
CiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlz
dWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAg
IC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0
aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzky
YmM0Ni4uODc2MzdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhE
aXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJp
bmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxl
dGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZv
aWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0
ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2Fu
Y2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYs
IFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBD
dXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9y
QWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3Bw
CmluZGV4IDUxMWNiMDIuLjNkNjZhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcApAQCAtMTkyLDcgKzE5Miw5IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVBcHBseVBh
cmFncmFwaFN0eWxlKEZyYW1lJiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsCiBz
dGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50KQogewogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVu
dCgpKTsKLSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgq
ZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2
ZW50TmVzdGluZywgRWRpdEFjdGlvblVuc3BlY2lmaWVkKSk7CisgICAgUmVmUHRyPFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kPiBjb21tYW5kID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQ
cmV2ZW50TmVzdGluZywgRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKKyAgICBjb21tYW5kLT5zZXRB
cHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlSW5zZXJ0KTsKKyAgICBhcHBseUNvbW1hbmQoY29t
bWFuZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKaW5kZXggNTc0NTE3MC4uOGIxYzk1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBFbGVtZW50KiBG
cmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29u
c3QKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGln
bikKIHsKICAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxl
bnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5p
c0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2Vy
VHJpZ2dlcmVkKSwgYWxpZ24pOworICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1
c2VyVHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAK
IHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2Us
IGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dl
cmVkKQpAQCAtMTcwLDcgKzE3MCw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlz
aWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRW
YWxpZGF0aW9uKGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9u
YWwoc2VsZWN0aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERv
Tm90U2V0Rm9jdXMpKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duIH0pOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIGlu
dGVudCk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1NSwxNiBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24g
fHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47
CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdy
YW51bGFyaXR5KTsKKyAgICAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAg
aWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAgICBpbnRlbnQgPSBBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRl
eHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24gfSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAg
ICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RF
dmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsK
IH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBw
ZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhv
dXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNj
cm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4Niw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVh
cmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rp
b25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBp
ZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50
LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFt
ZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAg
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAg
ICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFy
aXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBh
Ym92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVk
IGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5
U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNl
CiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4g
SWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMzAs
NyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwg
YWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVj
dGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAg
ICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwg
b3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcg
KzM1MSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBm
cmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVu
dCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0
eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNzAsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9u
KCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBk
YXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzkwLDcgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9u
KGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVk
aXRvcigpLmNsaWVudCgpKQogICAgICAgICBjbGllbnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVw
ZGF0ZUxheW91dCgpOwpAQCAtMTAyMSw3ICsxMDMxLDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFt
ZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkK
IHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5
ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7
Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0
aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkpCit7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAo
YWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVu
dC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYg
KGlzUmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0g
UlRMKQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNl
CisgICAgICAgIGludGVudC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51
bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV29y
ZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNl
bnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBp
bnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVs
YXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0
aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0
Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBj
YXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAg
ICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vu
dGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFw
aEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkg
PSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsK
KyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAg
ICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rp
b24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
cyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBp
ZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZs
aXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJl
dHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVB
bHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0x
MDc3LDYgKzExNjAsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9u
IGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3
YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5h
bFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9m
cmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRl
bnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOwor
ICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NG
b3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdp
bGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAv
LyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBp
cyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzEwLDggKzE3OTgsMTAgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgp
KSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKSkgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWFRleHRTZWxlY3Rpb24geyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUFsbCB9KTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAgICB9CiB9
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBF
QWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yNDIzLDcgKzI1MTMsNyBA
QCBWaXNpYmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmlu
Z0NhcmV0U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb24gPSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24uZXhw
YW5kVXNpbmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHko
KSk7CisgICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBBbGln
bkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwog
CiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQo
KSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi4w
NTZkMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rp
b25faAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHls
ZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0x
MzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGlu
ZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24g
fCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpCisgICAg
eworICAgICAgICByZXR1cm4gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRy
KTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFs
aWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlv
bkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vy
c29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51
bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25z
ID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
PSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGln
bkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51
bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2Uq
LCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcg
KzI3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RB
UlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0
ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0
aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5
OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2lu
dEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50
KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNlCi0gICAgdm9p
ZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFNlbGVjdGlvbkludGVu
dCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rp
b25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0
LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQ
dHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxp
bmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKaW5kZXggNTM5NGU3ZS4uNTM2NWRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgpAQCAtNDgsNiArNDksMTIgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBB
U1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQobV9vZmZzZXQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7
CiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKKyAgICBzZXRBcHBseUVkaXRUeXBlKEFY
VGV4dEVkaXRUeXBlSW5zZXJ0KTsKK30KKworU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7CiB9CiAKIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02Niw4ICs3Myw4IEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2Vy
dERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBB
WE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBt
X3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQog
CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODQsOCArOTEsOCBAQCB2b2lkIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0
KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0
aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uMWFkOTQ3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKICAgICB9
CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3RlZDoKICAg
ICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92
ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uZTY2ZDIyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNs
dWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDYsNiArNDgsNyBAQCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUAogICAgIEFTU0VS
VChtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCkpOwogCiAgICAgQVNTRVJUKG1fcmVmQ2hpbGQtPnBh
cmVudE5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3JlZkNoaWxkLT5wYXJlbnROb2Rl
KCktPnJlbmRlcmVyKCkpOworICAgIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGVJbnNl
cnQpOwogfQogCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTU3
LDggKzYwLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAg
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5n
ZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBl
KCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CkBAIC02Nyw4ICs3MiwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBw
bHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9y
ZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9z
aXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9u
KGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRp
b24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKaW5kZXggZDRiNzYyZC4uOWEyNTcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFu
ZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw5ICszOSwxMCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxk
VG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0
cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uYmZhMTgx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNTks
MTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0
VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CiAgICAgfQogCi1w
cml2YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
IHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKK3Byb3RlY3Rl
ZDoKICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwg
UGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICBJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRl
ZFRleHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFy
YWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAppbmRleCAyYzA2M2MwLi5lYTA2
ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcApAQCAtMzEsMTAgKzMxLDExIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCitSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZDo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBu
b2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogQ29t
cG9zaXRlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKICAgICAsIG1fbm9kZShub2RlKQog
ICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0
aW9uKQogewogICAgIEFTU0VSVChtX25vZGUpOwogfQpAQCAtNTQsNCArNTUsOSBAQCB2b2lkIFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpkb0FwcGx5KCkKICAgICByZW1vdmVO
b2RlKG1fbm9kZSwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiB9CiAK
K0VkaXRBY3Rpb24gUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2VkaXRpbmdBY3Rpb247Cit9CisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQuaAppbmRleCA0YjkxOTc0Li4yMmMwNDk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZC5oCkBAIC0zMiwxOCArMzIsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCA6IHB1YmxpYyBDb21wb3Np
dGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBleHBs
aWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5n
QWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOwogICAg
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGU7CisgICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb247CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNjEzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwgY291bnQpCit7Cit9CisKK3Zv
aWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ODU4NzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NWFhM2M3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7CisgICAgc2V0
QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZUluc2VydCk7Cit9CisKK3ZvaWQgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYg
KCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAg
ICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVk
aXRUeXBlRGVsZXRlLCB0ZXh0LCBBWFRleHRFZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwg
cG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0
OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihu
b2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgdHlwZSwgdGV4dCwgcG9z
aXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
YTQyYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAg
ICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIz
ODgwYy4uMzE3MzFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZvcmVU
ZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ3LDYgKzQ4LDggQEAKICNp
bmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFj
ZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpAQCAtMTQzMiw2ICsxNDM1LDE2IEBA
IEVkaXRBY3Rpb24gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dAogICAgIHJldHVybiBtX2VkaXRBY3Rpb247CiB9CiAKK0FYVGV4dEVkaXRUeXBlIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gbV9hcHBseUVk
aXRUeXBlOworfQorCit2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpzZXRBcHBseUVkaXRU
eXBlKEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUpCit7CisgICAgbV9hcHBseUVkaXRUeXBl
ID0gYXBwbHlFZGl0VHlwZTsKK30KKwogLy8gSWYgdGhlIHVzZXIgaXMgaW5zZXJ0aW5nIGEgbGlz
dCBpbnRvIGFuIGV4aXN0aW5nIGxpc3QsIGluc3RlYWQgb2YgbmVzdGluZyB0aGUgbGlzdCwKIC8v
IHdlIHB1dCB0aGUgbGlzdCBpdGVtcyBpbnRvIHRoZSBleGlzdGluZyBsaXN0LgogTm9kZSogUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IHBycExpc3RFbGVtZW50LCBOb2RlKiBpbnNlcnRpb25CbG9jaywgY29uc3QgUG9zaXRp
b24mIGluc2VydFBvcywgSW5zZXJ0ZWROb2RlcyYgaW5zZXJ0ZWROb2RlcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2Zm
Li44YzRkMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oCkBAIC01Myw2ICs1Myw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIGZyYWdtZW50LCBv
cHRpb25zLCBhY3Rpb24pKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIEFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0
RWRpdFR5cGUpOworCiBwcml2YXRlOgogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3Vt
ZW50JiwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgQ29tbWFuZE9wdGlvbnMsIEVkaXRB
Y3Rpb24pOwogCkBAIC0xMjEsNiArMTI0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmVu
dE5lc3Rpbmc7CiAgICAgYm9vbCBtX21vdmluZ1BhcmFncmFwaDsKICAgICBFZGl0QWN0aW9uIG1f
ZWRpdEFjdGlvbjsKKyAgICBBWFRleHRFZGl0VHlwZSBtX2FwcGx5RWRpdFR5cGUgeyBBWFRleHRF
ZGl0VHlwZVBhc3RlIH07CiAgICAgYm9vbCBtX3Nhbml0aXplRnJhZ21lbnQ7CiAgICAgYm9vbCBt
X3Nob3VsZE1lcmdlRW5kOwogICAgIGJvb2wgbV9pZ25vcmVNYWlsQmxvY2txdW90ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRU
ZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQg
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcg
JnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0
Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
dGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4
dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0
Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRU
cmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRl
c3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1Nl
bGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDljNzM3
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCisgICAgOiBJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJh
bGFuY2VUeXBlKQoreworfQorCitFZGl0QWN0aW9uIFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpl
ZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvblR5cGluZzsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlY2MyZDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCA6
IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLCBSZWJhbGFuY2VUeXBl
IHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydFRleHRDb21t
YW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJhbGFuY2VUeXBlKTsKKyAgICB2aXJ0dWFsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCmluZGV4IDdj
MjEzNjUuLjMzMmUwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0Zy
YW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFt
ZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgbWF5YmVFbWl0
VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0
KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKICAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXgg
OWJkZWUxYy4uZmQ0MTk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vz
c2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFU
Rk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAK
ICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5l
bmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9z
dE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRl
cmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2
YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9z
ZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIu
LjM2ODRlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
ICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9v
bCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQp
OworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRl
eHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAg
ICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7Cisj
aWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0
ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAg
ICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhW
YWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYK
ICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0
aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFu
Z2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhUZXh0RWRpdFR5
cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5j
aG9yKSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZh
bHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CmluZGV4IGM4YmVlOWUuLmJiNGVlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTMyMTAsNyArMzIxMCw4IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNl
bGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdn
ZXJlZCkpOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24g
fSk7CisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2Vs
ZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50
KTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFt
ZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDc3YzA3ZmUuLmQ4ZDI1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTM0MCw4ICszNDAsMTAgQEAgYm9vbCBGb2N1c0NvbnRy
b2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24sIEtleWIKICAgICBpZiAoY2FyZXRCcm93c2luZykgewogICAgICAgICBQb3NpdGlvbiBwb3Np
dGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShlbGVtZW50LmdldCgpKTsKICAgICAg
ICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24ocG9zaXRpb24sIHBvc2l0aW9uLCBET1dO
U1RSRUFNKTsKLSAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVj
dGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91
bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUs
IEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMs
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICAgICAgICAgIGZyYW1l
LnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50KTsKKyAgICAg
ICAgfQogICAgIH0KIAogICAgIGVsZW1lbnQtPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGExM2Q3OWEu
LjI0YjA4NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorCisgICAgICAgIEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
biB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciBy
ZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVj
aGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBj
b2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2Vz
LgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3Zlcmxv
YWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0
ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNo
YW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKwogMjAxNS0wNC0xNyAgRGFuaWVs
IEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgTm90IGFibGUgdG8gYnVpbGQg
V2ViS2l0IGFnYWluc3QgaU9TIFNpbXVsYXRvciA4LjMgU0RLCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
bW0KaW5kZXggYWRhNjg3YS4uN2IwMTdiYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAt
MTEyLDE2ICsxMTIsMjcgQEAKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9y
bUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1
c2VySW5mbyJdOworCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9u
KEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFs
dWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoW21haW5G
cmFtZSBnbG9iYWxDb250ZXh0XSwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVS
ZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNP
TlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNl
ckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1Jl
Zl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9t
SlNPTlN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc1VzZXJJbmZvSlNPTlZhbHVl
LmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8v
IExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90
aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFt
ZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAxLCAm
bm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBB
IGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9uIG5h
bWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQgZ2V0
cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFtZUFy
Z3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50
OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAwKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVt
ZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYg
YXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVudHNbMF0gPSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjptYWtlSlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoW25vdGlmaWNhdGlvbiBvYmplY3RdKSk7CiAgICAg
ICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJn
dW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1
bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCA2NTFi
NTkxLi4yOGNhMDNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5tbQpAQCAtMTI1LDE5ICsxMjUsMzAgQEAKICAgICBpZiAobV9wbGF0Zm9y
bUVsZW1lbnQgJiYgbV9wbGF0Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3Rp
ZmljYXRpb24udXNlckluZm9bQCJ1c2VySW5mbyJdOworCiAgICAgV0tCdW5kbGVGcmFtZVJlZiBt
YWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoV1RSOjpJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOwogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0g
V0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KG1haW5GcmFtZSk7CiAKICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25O
YW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1l
QXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc05vdGlmaWNhdGlvbi5nZXQo
KSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gbmlsOworICAg
IGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZvSlNPTlZhbHVl
IGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQg
PSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIGpzVXNlckluZm9KU09OVmFsdWUu
Z2V0KCkpOworICAgIH0KICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8g
TGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3Rp
ZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBj
b25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAw
LCAxLCAmbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0
aW9uIG5hbWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1l
bnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9u
TmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFy
Z3VtZW50OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nh
c3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFy
Z3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIg
Z2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAg
ICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gdG9KUyhj
b250ZXh0LCBXVEY6OmdldFB0cihXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShb
bm90aWZpY2F0aW9uIG9iamVjdF0pKSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFs
dWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25z
dF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAy
LCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251192</attachid>
            <date>2015-04-20 15:18:31 -0700</date>
            <delta_ts>2015-04-20 16:26:32 -0700</delta_ts>
            <desc>Update based on review (fixed iOS/GTK build take 3)</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>220617</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGE3NmI3MDZiOWNhZDQwODY1ZmE4ZWZkMjAxOGIzODdiYmVjMmViMWMKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICAgICAgQVg6IHJpY2hl
ciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQogICAgCiAgICAgICAgUmljaGVyIGFj
Y2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRF
ZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFs
c28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29y
ZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUg
Y2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sg
cG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRm
MjFiNmYuLjUxNDk1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0yMCAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBu
b3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0
byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2Vk
IHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAg
ICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBz
IG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBj
b250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9u
IHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5m
by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2Ut
dXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQuCisKIDIwMTUtMDQt
MTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNl
IGV2ZW50cyBzaG91bGQgZ28gdGhyb3VnaCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29k
ZSBwYXRocwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhNmY4Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRh
dGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5n
ZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZh
bHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmlu
Zm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTBkZTMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5w
dXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1dCB0eXBlPSJwYXNzd29y
ZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZh
bHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworICAg
IDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRz
IG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAg
ICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7
CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAg
ICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAg
ICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZv
KSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIpIHsKKworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUlu
c2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3JkIG5vdGlmaWNhdGlvbnMg
d2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3aWxsIGJlIHdoaXRlc3Bh
Y2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKworICAgICAg
ICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBz
ZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2YWx1ZXRl
c3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNldHNlY3Vy
ZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY3VyZXZh
bHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisKKyAgICAgICAg
aWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAg
ICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRB
dEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5h
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAg
ICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICBz
ZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgpOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4
LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90
aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBp
cyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11
c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiByb2xl
PSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4K
KzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2ZW4gZWlnaHQgbmlu
ZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCis8c2NyaXB0Pgor
CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcg
KyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyArIDE7CisKKyAgICB2YXIg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggKyAy
OworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwgInNlbnRlbmNlIiwgImxp
bmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5jZWJvdW5kYXJ5IiwgInBh
cmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAgICB2YXIgd2ViQXJlYSA9
IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgIHZhciBy
ZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZp
Y2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVj
dGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYg
KHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAg
ICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7CisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblBy
ZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURv
Y3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5v
dGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgIHdlYkFyZWEgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmlj
YXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgLy8g
VHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgIGZv
ciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2Fy
ZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBn
cmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAg
ICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICBzLm1vZGlmeSgi
ZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5
M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkg
QEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNl
ciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVk
Tm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVDdXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlz
ICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1b
IkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFY
VGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJd
IGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBpbmcKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRt
bApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250
ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAgPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPGRpdiBpZD0ibm90
aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAgICAgIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIp
OworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5
cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAgICAgIHZhciBBWFRleHRF
ZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgKyAxOworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiArIDEKKyAg
ICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0VHlwZUN1dCArIDE7CisK
KyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAg
ICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAg
ICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7
CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAg
ICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2Vy
SW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsKKworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUN1dCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFs
dWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVc
Il0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0i
LCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxl
dGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAg
ICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJB
cmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAg
ICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKKyAg
ICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAgZXhlY1NldFNlbGVjdGlv
bkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0ZW5kU2VsZWN0aW9uUmln
aHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENvbW1hbmQoKTsKKyAgICAg
ICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAg
ICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YTY5MDUxNS4uMmY0YmU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0ODMsMTAgKzE0ODMs
MTIgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRp
b25BbHRlcm5hdGl2ZS5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisgICAg
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMTUxMCw2ICsxNTEyLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUyNSw2ICsxNTI5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvVGV4
dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAog
ICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjc4ZDQ2Mi4uMjgyM2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMyBA
QAorMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAg
ICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
YW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5n
IHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBUZXN0czog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0
bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhP
YmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4
dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmll
bGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25S
YW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9y
VGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpT
T05UeXBlcyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21t
YW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4
dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmVk
aXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpzZXRBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGlu
Z0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZv
cm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRG
cmFnbWVudCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdB
cHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29y
ZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6
ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnNldEFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRD
b21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJhbWVT
ZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlv
bik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCisyMDE1
LTA0LTE3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vz
c2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNv
bnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24u
IEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMu
CisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSaWNo
ZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFY
VGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBh
c3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5n
IHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRo
ZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQg
dmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gVGhpcyBjb21taXQgaXMg
YWxsIGluZnJhc3RydWN0dXJlIGFuZCBkb2Vzbid0IGNvbnRhaW4gYW55IGFjY2Vzc2liaWxpdHkg
c3BlY2lmaWMgY2hhbmdlcy4KKwogMjAxNS0wNC0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRm9yY2UgbW91c2UgZXZlbnRzIHNob3VsZCBnbyB0aHJvdWdoIG5v
cm1hbCBtb3VzZSBldmVudCBoYW5kbGluZyBjb2RlIHBhdGhzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBkMDc3YTAyLi5hYTkxNmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAg
LTE0MzY2LDYgKzE0MzY2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTE0NDIyLDYgKzE0NDM2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFu
ZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAt
MTQ3NzMsNiArMTQ4MDEsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDk5Nyw2ICsxNTA1
MywyMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1MjIsNiArMTk1OTIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vz
c2liaWxpdHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdl
XEFkanVzdFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBh
Z2VcQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA0MSwxMCArMjExMTIsMTIgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVM
aW5rQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24u
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgi
IC8+CkBAIC0yMTA3NSw2ICsyMTE0OCw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQu
aCIgLz4KQEAgLTIxMDkzLDYgKzIxMTY4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9zaXRpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlNDQ2
MDg3Li5mMDc0OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNDM4LDYgKzM0MzgsOSBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM0NTAsNiArMzQ1Myw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVk
aXRDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTM1MjgsNiArMzUzNCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM1NzYsNiArMzU4OCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtNzY1Niw2ICs3NjcxLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFj
Y2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIj4KKyAgICAgICAgPEZpbHRl
cj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0eVx3aW48L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KQEAgLTEwNTY2LDYgKzEwNTg0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDU3OCw2ICsxMDU5OSw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NjgsNiArMTA2
OTIsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3Np
dGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA3MjIsNiArMTA3NTIsMTIgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTExMGUwYi4uNTMyNTY0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzIzNSw2ICszMjM1LDcgQEAKIAkJOTAwMTc3NDExMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERl
cml2YXRpdmVzLmggKi87IH07CiAJCTkwMDE3ODgwMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAgKi87IH07CiAJCTkwMDE3ODgxMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCAqLzsgfTsKKwkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzAy
QjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQ
YWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdy
b3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAy
QjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNUIyNEQwOThGMUI2QjAwQzI4ODU1IC8q
IFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjM3OCw4ICs2Mzc5LDE0IEBACiAJCUY1MDY2
NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8q
IEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNs
aWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1
NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1
NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhE
QTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3
OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVC
M0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYy
NjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5
cGUuY3BwICovOyB9OwpAQCAtNjQyOSwxMCArNjQzNiwxNCBAQAogCQlGNTVCM0RERTEyNTFGMTJE
MDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBl
LmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFC
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAx
MjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9j
YWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUx
MTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxl
TWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9
OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0Mjgx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8q
IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovOyB9OwpAQCAtMTA0NjgsNiArMTA0NzksNyBAQAogCQk5MDAxNzczRjEyRTAz
NDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw7IHBhdGggPSBjYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3
ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdl
R3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3Vw
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdF
RTgzIC8qIFBhZ2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
R3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNUIyNEMwOThGMUI2QjAw
QzI4ODU1IC8qIFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwNiw4ICsxNDAxOCwxNCBAQAog
CQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qz
MDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZC
RTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2Fs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2Fs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRv
bklucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1Nyw2ICsx
NDA3NSw4IEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5w
dXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1
dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcy
QTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVG
cmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNl
dHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwpAQCAtMTQwNjcsNiArMTQwODcsOCBAQAogCQlGNTk3M0RERjE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlD
OTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2
MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTYxNSw2ICsx
NTYzNyw3IEBACiAJCQkJMjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlU
YWJsZVJvdy5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENh
Y2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNo
ZS5oICovLAorCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE3Njc5LDYgKzE3NzAyLDggQEAKIAkJCQk5MzMwOUQ4RTA5
OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2
NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1
NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywK
KwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAv
KiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Njg3LDYgKzE3NzEyLDggQEAK
IAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAq
LywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAg
Ki8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAq
LywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBF
ZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21t
YW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQu
aCAqLywKQEAgLTE3NzQzLDYgKzE3NzcwLDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIz
MkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlC
MzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1
MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAog
CQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzc4LDYgKzE3ODA5LDggQEAKIAkJCQk5
MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJ
CQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlG
QTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAor
CQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5o
ICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJ
CUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlE
MDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2NzEs
NiArMjM3MDQsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ3OTUsNiArMjQ4MjksNyBAQAogCQkJCUExOUQ5MzRCMUFBMTFCMUUw
MEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0OUIxMjM3
MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI1NTkzLDYgKzI1NjI4LDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4
MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNY
TUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2
YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8q
IEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY2NDUsNiArMjY2ODEsNyBA
QAogCQkJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyODE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNjkwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MjkxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDJBMTc4RDVB
QjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E2RDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjcsNiArMjY4NjQsNyBAQAogCQkJCTE4
NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVt
b3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY5NTAsNiArMjY5ODgsNyBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAz
NDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkx
NzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNGMTk5QTgwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzgwNCw2ICsyNzg0Myw3IEBA
CiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmlj
ZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMw
MkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODE5OCw2ICsyODIzOCw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVy
YXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1
NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5
RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1
IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQw
MEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM5
Nyw2ICsyODQzOCw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5
RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1
MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyog
SW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAw
RjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTQsNiAr
Mjg4OTYsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1Bl
cmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUx
NUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJp
b2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4
IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5
RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjk4NDAsNiArMjk4ODMsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAv
KiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJF
NkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1
OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IGEwMGIxNWMuLjFmZTZiNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDYg
KzkwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogCisvLyBQb3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVs
ZHMgb3IgZWxlbWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50
ZXJ2YWwgdG8gdGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCitzdGF0aWMgZG91Ymxl
IEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwgPSAw
LjAyNTsKKwogQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBWENvbXB1dGVkT2JqZWN0QXR0
cmlidXRlQ2FjaGU6OmdldElnbm9yZWQoQVhJRCBpZCkgY29uc3QKIHsKICAgICBIYXNoTWFwPEFY
SUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9pZE1h
cHBpbmcuZmluZChpZCk7CkBAIC0xMjksNiArMTMyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpz
ZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0
Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVu
dChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90
aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzA1LDcgKzcwOSw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIFJlZjxEb2N1bWVu
dD4gcHJvdGVjdG9yRm9yQ2FjaGVPd25lcihtX2RvY3VtZW50KTsKICAgICBtX25vdGlmaWNhdGlv
blBvc3RUaW1lci5zdG9wKCk7CiAgICAgCi0gICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNh
dGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZp
Y2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIElu
IHRlc3RzLCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRl
bHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBl
Y3RlZCBiZWhhdmlvcgogICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFy
ZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCiAgICAg
YXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fbm90aWZpY2F0aW9uc1RvUG9zdCk7CiAg
ICAgCkBAIC03NDIsNiArNzQ2LDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50
T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIHRlc3RzLCBw
b3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUg
dXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhh
dmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhl
IGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3Rp
ZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKwor
ICAgIGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5n
ZXQoKSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2Vu
ZGlmCit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVy
T2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjgsMjIzIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFu
Z2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgewor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgZGF0YUxvZygi
VW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQ6CisgICAgICAgIGRhdGFMb2coIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGRhdGFMb2co
Ik1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgZGF0YUxvZygiRXh0ZW5kOjoiKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7Cisg
ICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygi
VW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEZWxldGU6CisgICAgICAgICAgICBkYXRhTG9nKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgZGF0
YUxvZygiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpY3RhdGlvbkluc2VydCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6
CisgICAgICAgICAgICBkYXRhTG9nKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgZGF0YUxvZygi
Q3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBh
c3RlOgorICAgICAgICAgICAgZGF0YUxvZygiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBk
YXRhTG9nKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIkJl
Z2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBkYXRhTG9nKCJFbmQ6OiIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBkYXRhTG9nKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAg
ICAgZGF0YUxvZygiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgZGF0YUxv
ZygiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAg
ICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIGRh
dGFMb2coIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAg
ZGF0YUxvZygiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBk
YXRhTG9nKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgZGF0YUxv
ZygiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxs
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICBkYXRhTG9nKCItU3luYyIp
OworICAgIGRhdGFMb2coIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpz
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sK
KyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3N0YXRpYyBib29sIGlz
UGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0ICYmIChvYmplY3QtPmlzUGFzc3dvcmRG
aWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSk7Cit9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBu
b2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisK
ICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVs
ZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iamVjdCkgeworICAg
ICAgICBpZiAoaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90
aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0
Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVu
dCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Cit9CisKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAo
b2JqZWN0KSB7CisgICAgICAgIGlmIChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmpl
Y3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxz
ZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRU
eXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5
cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47
CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAg
QVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9u
VHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVk
aXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7
CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3Jk
VmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAg
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgZGVsZXRpb25U
eXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7
CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0
ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxl
bnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlw
ZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRp
dGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK2Jvb2wgQVhPYmplY3RD
YWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0KQoreworICAgIGlmICghaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRC
eVBhc3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9i
amVjdCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkgeworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgLy8gcmV0dXJuIHRydWUgZXZlbiB0aG91Z2ggdGhlIGVucXVl
dWUgZGlkbid0IGhhcHBlbiBiZWNhdXNlIHRoaXMgaXMgYSBwYXNzd29yZCBmaWVsZCBhbmQgY2Fs
bGVyIHNob3VsZG4ndCBwb3N0IGEgbm90aWZpY2F0aW9uCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuY29udGFpbnMo
b2JzZXJ2YWJsZU9iamVjdCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bv
c3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOwog
fQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZy
YW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzA5
LDE2IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVh
KCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290T2JqZWN0ID0gdGhpcy0+cm9vdE9i
amVjdCgpOworICAgIGlmICghcm9vdE9iamVjdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAg
cmV0dXJuIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2Vi
QXJlYU9iamVjdCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hl
RW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAg
ICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li43OTg3Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZpbmUgQVhPYmplY3RDYWNoZV9oCiAK
KyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgpA
QCAtMTg5LDEyICsxOTAsMTggQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihO
b2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0g
VGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51
bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0
RGVsZXRlZCwKLSAgICB9OworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0
U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KTsKIAotICAgIHZvaWQgbm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21w
b3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gU2VsZWN0aW9u
IGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAg
IGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjEz
LDEyICsyMjAsNDQgQEAgcHVibGljOgogICAgIEFYQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNo
ZSogY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSgpIHsgcmV0dXJuIG1fY29tcHV0ZWRPYmpl
Y3RBdHRyaWJ1dGVDYWNoZS5nZXQoKTsgfQogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQotICAgIAorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
ICFQTEFURk9STShJT1MpCisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAg
IEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAg
cmV0dXJuIEFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgICAgIHJldHVybiBBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVM
b2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhM
b2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCop
OwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsyNjgsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRN
YXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAg
ICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsK
ICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsK
QEAgLTI0NCw2ICsyODUsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBv
c3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0
PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3Rp
ZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7
CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5k
bGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyOTcsMTAgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50
KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CisKKyAgICBib29sIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFi
bGVyCkBAIC0zMDgsOCArMzU4LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxl
U2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQq
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5k
ZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVk
VG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50Kiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRp
b24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CkBAIC0zMjAsNiArMzcxLDEzIEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnJlbW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lk
Z2V0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVj
dGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQorI2Vsc2UKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiAjZW5kaWYKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUlu
dGVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUlu
dGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzI2NGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKyNk
ZWZpbmUgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCitlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93biwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kCit9OworCitlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICBBWFRleHRFZGl0
VHlwZVVua25vd24sCisgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBk
ZWxldGUKKyAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAor
ICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgIEFYVGV4
dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgIEFYVGV4dEVk
aXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8g
SW5zZXJ0IHZpYSBQYXN0ZQorfTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gewor
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0LAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMK
K307CisKK2VudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxs
IGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xl
IGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21l
IG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVu
dCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorfTsK
Kworc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbjsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eTsK
K307CisKK3N0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIHR5cGU7CisgICAgdW5pb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2Vs
ZWN0aW9uOworICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgfTsKKyAgICBib29s
IGlzU3luY2hyb25pemluZyB7IGZhbHNlIH07CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAg
ICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICB7IH0K
KworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAg
ICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICwgY2hhbmdl
KGNoYW5nZSkKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIGlzU3luY2hyb25pemluZykKKyAgICAgICAgOiB0eXBl
KHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKCkKKyAgICAgICAgLCBpc1N5bmNocm9uaXppbmco
aXNTeW5jaHJvbml6aW5nKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi4yMDAzYjNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1l
bnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQo
KQoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVs
ZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1l
bnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisKKyAgICBFbGVtZW50KiBlbGVt
ZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIGlmICghaXM8SFRNTElucHV0RWxlbWVudD4o
KmVsZW1lbnQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRP
ckNyZWF0ZShlbGVtZW50KTsKKworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5v
ZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uYTgyYmQ4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
TmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVU
ZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3Jk
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uY2Iz
MzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAj
ZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAo
IW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRy
aWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxl
bWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICByZXR1cm4gaXM8SFRNTElu
cHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1l
bnQpLmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmlu
ZGV4IDM1ODZmMmEuLjgxNmMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
VGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJl
YSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li5mNjU1ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
QEAgLTE0ODgsMTQgKzE0ODgsMTcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFu
Z2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5n
dGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9y
ZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5z
ZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXIt
Pm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6
UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uu
c3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBET1dOU1RSRUFNKSk7CisgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBv
c2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pOworICAgIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IG5ld0ludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVl
KTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBu
ZXdJbnRlbnQpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29u
c3QKQEAgLTE5NjAsMTMgKzE5NjMsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAg
ICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9j
dW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBw
b3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdl
LnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbklu
dGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
bW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAg
ICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihy
YW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+
ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAt
NDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlw
ZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
d2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2Jq
ZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgp
OyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xs
YmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVj
dENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw4ICs5
NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZv
aWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQs
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhW
YWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVM
b2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZy
YW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAw
ZTc3Li42ZWNhZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3Jl
YXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5
cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBA
IkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0
aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0
TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2Vy
IEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3Rl
ZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5l
Z2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlz
IGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBs
aW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8g
aHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBOU1VJbnRlZ2VyIGNvbnN0IE5TQWNjZXNzaWJpbGl0
eVZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisKIC8vIFRoZSBzaW1wbGUgQ29j
b2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTYwLDYgKzEwNywxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFj
aFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQogICAgIG9iai0+c2V0V3JhcHBlcih3
cmFwcGVyLmdldCgpKTsKIH0KIAorc3RhdGljIEJPT0wgYXhTaG91bGRSZXBvc3ROb3RpZmljYXRp
b25zRm9yVGVzdHMgPSBmYWxzZTsKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCit7CisgICAgYXhTaG91bGRSZXBvc3RO
b3RpZmljYXRpb25zRm9yVGVzdHMgPSB2YWx1ZTsKK30KK3N0YXRpYyB2b2lkIEFYUG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24sIGlk
IHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1wbGlm
eSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBzaW1w
bGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVyZSB0
byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdlZW4g
V2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNrCisg
ICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkKKyAg
ICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlv
biB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24g
bm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMDksMTM5IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53cmFw
cGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8ga25v
dyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAgQVhQ
b3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRp
b24sIG5pbCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24pCiB7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAo
aW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICB1
c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50
LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAg
ICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBp
ZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5n
ZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlv
bjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5n
ZTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVy
OworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7Cisg
ICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFY
VGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3Ry
aW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07Cisg
ICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIGlm
IChsZW5ndGggPiBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGgpIHsK
KyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBA
KGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4Ok5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aF07CisgICAgfQorICAgIGlmIChsZW5n
dGggPiAwKQorICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXSA9
IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAgIGlmIChpZCB0
ZXh0TWFya2VyID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRp
b246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJldHVybiBbY2hh
bmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJv
b3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0
aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhD
YXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAoTlNEaWN0
aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwg
dHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2Jq
ZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVh
ID0gcm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2Vi
QXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24s
IHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53
cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlcklu
Zm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5z
ZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICgh
b2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmpl
Y3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZv
ID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0g
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNE
aWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVj
dCwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdl
cyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0
ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOwor
ICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsK
KyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53
cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9v
dFdlYkFyZWEoKTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90
aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmlj
YXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFs
dWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8g
a25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqZWN0LT53cmFwcGVy
KCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNo
YW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2Fk
aW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAt
IChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKIAogLSAoaWQpYXR0YWNo
bWVudFZpZXc7Ci0vLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRp
b24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBVc2VkIHRvIGluZm9ybSBhbiBl
bGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSB0ZXN0
cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilu
b3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9u
OihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVz
ZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNwYWNlOihXZWJDb3Jl
OjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTooV2Vi
Q29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLjg3MTBkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDY5IEBAIHN0YXRpYyBCT09MIGFj
Y2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogKyAodm9pZClhY2Nlc3NpYmls
aXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTClyZXBvc3QKIHsKICAgICBhY2Nl
c3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJlcG9zdDsKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgIVBMQVRGT1JNKElPUykKKyAgICBBWE9iamVjdENhY2hlOjpzZXRTaG91bGRS
ZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMocmVwb3N0KTsKKyNlbmRpZgogfQogCiAtICh2b2lk
KWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9u
TmFtZQogeworICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykK
KyAgICAgICAgW3NlbGYgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRp
b25OYW1lIHVzZXJJbmZvOm5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICphcnJheVJlbW92aW5n
Tm9uSlNPTlR5cGVzKE5TQXJyYXkgKmFycmF5KQoreworICAgIEFTU0VSVChbYXJyYXkgaXNLaW5k
T2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKTsKKyAgICBOU011dGFibGVBcnJheSAqbXV0YWJsZUFy
cmF5ID0gW2FycmF5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkg
PCBbbXV0YWJsZUFycmF5IGNvdW50XTspIHsKKyAgICAgICAgaWQgdmFsdWUgPSBtdXRhYmxlQXJy
YXlbaV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNs
YXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkg
d2l0aE9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAg
ICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAg
ICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aSB3aXRoT2JqZWN0OmFy
cmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNOdW1iZXIgY2xhc3NdXSkpIHsKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVtb3Zl
T2JqZWN0QXRJbmRleDppXTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAg
ICAgIGkrKzsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOwor
fQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMo
TlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIEFTU0VSVChbZGljdGlvbmFyeSBpc0tp
bmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFy
eSAqbXV0YWJsZURpY3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRhYmxlQ29weV07CisgICAgZm9y
IChOU1N0cmluZyAqa2V5IGluIGRpY3Rpb25hcnkpIHsKKyAgICAgICAgaWQgdmFsdWUgPSBkaWN0
aW9uYXJ5W2tleV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9u
YXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gZGljdGlv
bmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVl
IGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0
aW9uYXJ5W2tleV0gPSBhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAg
ZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJs
ZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBb
bXV0YWJsZURpY3Rpb25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5m
bzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3Vs
ZFJlcG9zdE5vdGlmaWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9
IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25O
YW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmlj
YXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5v
dGlmaWNhdGlvbk5hbWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAg
ICAgIGlmICh1c2VySW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBb
TlNKU09OU2VyaWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5n
Tm9uSlNPTlR5cGVzKHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVy
cm9yOm5pbF07CisgICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAg
ICAgTlNTdHJpbmcgKnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhE
YXRhOnVzZXJJbmZvRGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAg
ICAgICAgICAgaWYgKHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0g
QHtAIm5vdGlmaWNhdGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1
c2VySW5mb1N0cmluZ307CisgICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2Vd
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaW5mbykKKyAgICAgICAg
ICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lfTsKKyAg
ICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0
aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzppbmZvXTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4
YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApA
QCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJr
ZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3Rh
cnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0
aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6
VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjNiZjc5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBlbmROb2RlQ29tbWFuZC5oIgogCi0jaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDQsMTcgKzQ2LDI2IEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJU
KCFtX25vZGUtPnBhcmVudE5vZGUoKSk7CiAKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRh
YmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOworICAgIHNldEFwcGx5RWRpdFR5
cGUoQVhUZXh0RWRpdFR5cGVJbnNlcnQpOwogfQogCi1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hh
bmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRD
aGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdM
aW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5n
IG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgp
OwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAg
aWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlmICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3Rp
ZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlv
bihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
bm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0K
IAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02NCwxOCArNzUsMTYgQEAg
dm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5k
Q2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dElu
c2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
Z2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZv
cmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xp
bmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAg
ICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBw
bHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApp
bmRleCA4NDYxZWU3Li42NzFhOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNTgsNiArNTgsOCBAQAogI2luY2x1ZGUgIlJlbmRl
ckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJl
ZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0x
NjIsNiArMTY0LDEzIEBAIHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYVGV4dEVkaXRUeXBl
IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSgpCit7CisgICAgaWYgKCFt
X2NvbW1hbmRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG1fY29tbWFuZHMubGFzdCgpLT51
bmFwcGx5RWRpdFR5cGUoKTsKKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQor
CiB2b2lkIGFwcGx5Q29tbWFuZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjb21t
YW5kKQogewogICAgIGNvbW1hbmQtPmFwcGx5KCk7CkBAIC0zMjAsOSArMzI5LDMwIEBAIGJvb2wg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyB2b2lkIHNldENvbW1hbmRBcHBseUVkaXRU
eXBlRm9yRWRpdGluZ0FjdGlvbihTaW1wbGVFZGl0Q29tbWFuZCAqY29tbWFuZCwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQoreworICAgIGlmICghY29tbWFuZCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbikgeworICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlv
bjoKKyAgICAgICAgY29tbWFuZC0+c2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZURpY3Rh
dGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgICAg
ICBjb21tYW5kLT5zZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlUGFzdGUpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIGNvbW1hbmQtPnNl
dEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGVUeXBpbmcpOworICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7Cisg
ICAgUmVmUHRyPEluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVk
aXRpbmdBY3Rpb24oY29tbWFuZC5nZXQoKSwgZWRpdGluZ0FjdGlvbigpKTsKKyAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQ
dHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC0zNzMsNyArNDAzLDkgQEAgdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIGNvbnN0
IFBvc2kKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCkKIHsKICAgICBBU1NF
UlQoY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhwYXJlbnQuZ2V0KCkpKTsKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSkp
OworICAgIFJlZlB0cjxBcHBlbmROb2RlQ29tbWFuZD4gY29tbWFuZCA9IEFwcGVuZE5vZGVDb21t
YW5kOjpjcmVhdGUocGFyZW50LCBub2RlKTsKKyAgICBzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZv
ckVkaXRpbmdBY3Rpb24oY29tbWFuZC5nZXQoKSwgZWRpdGluZ0FjdGlvbigpKTsKKyAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgdW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgdG8pCkBAIC0zOTcsNyArNDI5LDcgQEAgdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnQKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsK
KyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
LCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVt
b3ZlTm9kZUFuZFBydW5lQW5jZXN0b3JzKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKQEAgLTUyNCwy
MSArNTU2LDMxIEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0CiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIGlmICghdGV4dC5pc0VtcHR5
KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICBpZiAoIXRleHQuaXNFbXB0
eSgpKSB7CisgICAgICAgIFJlZlB0cjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjb21tYW5k
ID0gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCk7
CisgICAgICAgIHNldENvbW1hbmRBcHBseUVkaXRUeXBlRm9yRWRpdGluZ0FjdGlvbihjb21tYW5k
LmdldCgpLCBlZGl0aW5nQWN0aW9uKCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShjb21tYW5kKTsKKyAgICB9CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY29tbWFuZCA9IERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBpZiAoZWRpdGluZ0FjdGlv
bigpID09IEVkaXRBY3Rpb25DdXQpCisgICAgICAgIGNvbW1hbmQtPnNldEFwcGx5RWRpdFR5cGUo
QVhUZXh0RWRpdFR5cGVDdXQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQp
OwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNz
UmVmUHRyPFRleHQ+IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNv
bnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBy
cE5vZGUpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7Ci0gICAgaWYgKCFyZXBsYWNlbWVu
dFRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQp
KTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBj
b3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CisgICAg
aWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY29tbWFuZCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0
ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCkpOworICAgICAgICBzZXRDb21tYW5kQXBwbHlFZGl0VHlw
ZUZvckVkaXRpbmdBY3Rpb24oY29tbWFuZC5nZXQoKSwgZWRpdGluZ0FjdGlvbigpKTsKKyAgICAg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCk7CisgICAgfQogfQogCiBQb3NpdGlv
biBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBT
dHJpbmcmIHRleHQpCkBAIC0xNTIzLDQgKzE1NjUsMTEgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBj
cmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0
dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYnJUYWcsIGZhbHNlKTsKIH0KIAorQVhUZXh0RWRp
dFR5cGUgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIGlmICgh
bV9jb21tYW5kcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBtX2NvbW1hbmRzLmxhc3QoKS0+
YXBwbHlFZGl0VHlwZSgpOworICAgIHJldHVybiBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uNjU4ZTczMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0
eWxlZEVsZW1lbnQ7CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgQVhUZXh0
RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRD
b21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2Vs
ZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rp
b24pOwogCkBAIC04Nyw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
UmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvdWxkUmV0YWluQXV0b2NvcnJlY3Rpb25JbmRpY2F0b3IoYm9vbCk7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFN0b3BDYXJldEJsaW5raW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKIAog
cHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTlmNDJkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIgorI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxl
dGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwg
Ym9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9y
U3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQorICAgIDogRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUs
IHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApCit7Cit9
CisKK0VkaXRBY3Rpb24gQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI3ZWI5YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kX2gK
KyNkZWZpbmUgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3V0RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxh
Y2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wg
c21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBi
b29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKworICAg
IHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDJlYTk2ZDUuLmM1ODhmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4LCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJU
ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIApAQCAtNDMsNiArNDUsMTIgQEAgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBBU1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQobV9v
ZmZzZXQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3Vu
dCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKKyAgICBzZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRU
eXBlRGVsZXRlKTsKK30KKworU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxl
dGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKIH0KIAogdm9pZCBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTU4LDggKzY2LDggQEAgdm9pZCBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIC8v
IE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7
CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAg
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0
VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0
KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9
CkBAIC03Myw4ICs4MSw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVf
RVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBt
X29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRp
b24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5
MWYwNS4uMjZkOWQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcg
QEAKICNpZm5kZWYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAjZGVmaW5lIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDkgKzQwLDEz
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CiAgICAgfQogCi1wcml2YXRlOgorICAg
IFN0cmluZyYgZGVsZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgogICAgIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCk7CiAKK3ByaXZhdGU6CisKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDJi
YmM2ZWQuLjQ5ZjAwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtODg2LDEwICs4ODYsNyBAQCB2b2lkIERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogCiBFZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAogewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVTZWxl
Y3Rpb25Db21tYW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERlbGV0
ZSBrZXksCi0gICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFuZCB0
aGF0IHN1cHBsaWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8gbWVu
dSBjb3JyZWN0bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9uQ3V0
OworICAgIHJldHVybiBFZGl0QWN0aW9uRGVsZXRlOwogfQogCiAvLyBOb3JtYWxseSBkZWxldGlv
biBkb2Vzbid0IHByZXNlcnZlIHRoZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZv
cmUgaXQuICBGb3IgZXhhbXBsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNv
bW1hbmQuY3BwCmluZGV4IGMxNzNkZjQuLmQ1M2U0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkRp
Y3RhdGlvbkNvbW1hbmQuaCIKIAogI2luY2x1ZGUgIkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKQEAgLTExNSw3ICsxMTYsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omlu
c2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgog
ewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwog
ICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxl
bmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRv
Y3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgp
LCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwor
ICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IERpY3RhdGlvbkluc2VydFRl
eHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9J
bnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1
cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CiAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxYjQ2NDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGljdGF0aW9uSW5zZXJ0VGV4
dENvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIAorRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OkRpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRl
eHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgOiBJbnNlcnRU
ZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpCit7Cit9CisKK0VkaXRB
Y3Rpb24gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAor
eworICAgIHJldHVybiBFZGl0QWN0aW9uRGljdGF0aW9uOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkluc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTViNjA0NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kIDog
cHVibGljIEluc2VydFRleHRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPERpY3Rh
dGlvbkluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJr
ZXJTdXBwbGllcikpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlv
bk1hcmtlclN1cHBsaWVyPik7CisKKyAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi5hNDI3OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMTEyLDYgKzExMywyOCBAQCB2b2lkIEVkaXRDb21t
YW5kOjpzZXRQYXJlbnQoQ29tcG9zaXRlRWRpdENvbW1hbmQqIHBhcmVudCkKICAgICB9CiB9CiAK
K0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1
cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFu
ZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBzd2l0Y2ggKGFwcGx5RWRpdFR5cGUoKSkgewor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRp
dFR5cGVVbmtub3duOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgY2FzZSBB
WFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0Owor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAg
IH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCiB2b2lkIFNpbXBsZUVk
aXRDb21tYW5kOjpkb1JlYXBwbHkoKQogewogICAgIGRvQXBwbHkoKTsKQEAgLTEyNSw0ICsxNDgs
MjQgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
IHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KIH0KICNlbmRpZgogCitBWFRleHRFZGl0VHlw
ZSBTaW1wbGVFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgcmV0dXJuIG1fYXBw
bHlFZGl0VHlwZTsKK30KKwordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6c2V0QXBwbHlFZGl0VHlw
ZShBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKQoreworICAgIG1fYXBwbHlFZGl0VHlwZSA9
IGFwcGx5RWRpdFR5cGU7Cit9CisKK3ZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIGNhY2hl
LT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIHBvc2l0
aW9uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5oCmluZGV4IDAzZTZjMzcuLmRkN2IyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRWRpdENvbW1hbmRfaAogI2Rl
ZmluZSBFZGl0Q29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNTks
NiArNjAsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAor
ICAgIHZpcnR1YWwgQVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIEFYVGV4dEVk
aXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRWRp
dENvbW1hbmQoRG9jdW1lbnQmKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CkBAIC05MCw2ICs5NCw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mKSA9IDA7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgQVhUZXh0RWRpdFR5cGUgYXBwbHlF
ZGl0VHlwZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0
VHlwZSk7CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsgfQogCkBAIC05Nyw4ICsx
MDQsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
LCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
KyAgICBBWFRleHRFZGl0VHlwZSBtX2FwcGx5RWRpdFR5cGUgeyBBWFRleHRFZGl0VHlwZVVua25v
d24gfTsKIH07CiAKIGlubGluZSBTaW1wbGVFZGl0Q29tbWFuZCogdG9TaW1wbGVFZGl0Q29tbWFu
ZChFZGl0Q29tbWFuZCogY29tbWFuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0Fs
bEluT25lLmNwcAppbmRleCBkYzNhZTMzLi4zOTZhOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBAIC0zMiwxMCArMzIsMTIgQEAKICNpbmNsdWRlIDxC
cmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxDb21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8Q3JlYXRlTGlua0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPEN1dERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1
ZGUgPERpY3RhdGlvbkFsdGVybmF0aXZlLmNwcD4KICNpbmNsdWRlIDxEaWN0YXRpb25Db21tYW5k
LmNwcD4KKyNpbmNsdWRlIDxEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHA+CiAjaW5jbHVk
ZSA8RWRpdENvbW1hbmQuY3BwPgogI2luY2x1ZGUgPEVkaXRpbmdTdHlsZS5jcHA+CiAjaW5jbHVk
ZSA8RWRpdG9yLmNwcD4KQEAgLTU5LDYgKzYxLDggQEAKICNpbmNsdWRlIDxSZW1vdmVOb2RlQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQu
Y3BwPgogI2luY2x1ZGUgPFJlbmRlcmVkUG9zaXRpb24uY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcD4KICNpbmNsdWRl
IDxTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHA+CkBAIC03Nyw2ICs4MSw3IEBACiAjaW5jbHVk
ZSA8VGV4dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxUZXh0SXRlcmF0b3Iu
Y3BwPgogI2luY2x1ZGUgPFR5cGluZ0NvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFR5cGluZ0luc2Vy
dFRleHRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxVbmxpbmtDb21tYW5kLmNwcD4KICNpbmNsdWRl
IDxWaXNpYmxlUG9zaXRpb24uY3BwPgogI2luY2x1ZGUgPFZpc2libGVTZWxlY3Rpb24uY3BwPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDcxMGFhMzkuLmZmMGYwMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDbGlwYm9h
cmRFdmVudC5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJDcmVh
dGVMaW5rQ29tbWFuZC5oIgorI2luY2x1ZGUgIkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIK
ICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21t
YW5kLmgiCiAjaW5jbHVkZSAiRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCIKQEAgLTM3NCwxMiArMzc1
LDE1IEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlv
biBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZv
aWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0
ZSkKK3ZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFy
dERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNl
bGVjdGlvbigpLmlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQo
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7
CisgICAgaWYgKGVkaXRpbmdBY3Rpb24gPT0gRWRpdEFjdGlvbkN1dCkKKyAgICAgICAgYXBwbHlD
b21tYW5kKEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFy
dERlbGV0ZSkpOworICAgIGVsc2UKKyAgICAgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwogfQogCiB2b2lkIEVk
aXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTEwMDEsNyArMTAwNSw3IEBAIHZvaWQgRWRpdG9yOjphcHBs
aWVkRWRpdGluZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAv
LyBEb24ndCBjbGVhciB0aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdl
LiAgV2UgZG8gdGhvc2UgdGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVT
ZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25D
b21tYW5kKCkgPyBGcmFtZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBj
aGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICBj
aGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudChjbWQtPmFwcGx5RWRpdFR5cGUoKSkpOwogICAgIGRpc3BhdGNoRWRp
dGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFi
bGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwog
CiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAzMiw3ICsxMDM2LDcg
QEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENv
bXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhjbWQtPnN0YXJ0aW5n
Um9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7
CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0YXJ0aW5nU2VsZWN0
aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIEZy
YW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsKKyAgICBjaGFuZ2VT
ZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoY21kLT51bmFw
cGx5RWRpdFR5cGUoKSkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50
cyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0
YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBA
IC0xMjY2LDcgKzEyNzAsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JB
Y3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoKTsKICAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0
aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFj
dGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yODUwLDcgKzI4NTQsNyBA
QCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9h
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRl
cm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFm
dGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBp
cyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3
U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBo
YW4oKSkKQEAgLTI4NjIsNyArMjg2Niw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8v
IFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2
YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxl
Y3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0
aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwog
CiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlz
dWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAg
IC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0
aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzky
YmM0Ni4uODc2MzdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhE
aXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJp
bmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxl
dGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZv
aWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0
ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2Fu
Y2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYs
IFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBD
dXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9y
QWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3Bw
CmluZGV4IDUxMWNiMDIuLjNkNjZhZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcApAQCAtMTkyLDcgKzE5Miw5IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVBcHBseVBh
cmFncmFwaFN0eWxlKEZyYW1lJiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsCiBz
dGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50KQogewogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVu
dCgpKTsKLSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgq
ZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2
ZW50TmVzdGluZywgRWRpdEFjdGlvblVuc3BlY2lmaWVkKSk7CisgICAgUmVmUHRyPFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kPiBjb21tYW5kID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQ
cmV2ZW50TmVzdGluZywgRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKKyAgICBjb21tYW5kLT5zZXRB
cHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlSW5zZXJ0KTsKKyAgICBhcHBseUNvbW1hbmQoY29t
bWFuZCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKaW5kZXggNTc0NTE3MC4uOGIxYzk1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBFbGVtZW50KiBG
cmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29u
c3QKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGln
bikKIHsKICAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxl
bnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5p
c0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2Vy
VHJpZ2dlcmVkKSwgYWxpZ24pOworICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1
c2VyVHJpZ2dlcmVkKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBhbGlnbik7CiB9CiAK
IHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2Us
IGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dl
cmVkKQpAQCAtMTcwLDcgKzE3MCw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlz
aWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRW
YWxpZGF0aW9uKGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9u
YWwoc2VsZWN0aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERv
Tm90U2V0Rm9jdXMpKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duIH0pOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIGlu
dGVudCk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1NSwxNiBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24g
fHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47
CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdy
YW51bGFyaXR5KTsKKyAgICAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAg
aWYgKG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgICAgICBpbnRlbnQgPSBBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRl
eHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24gfSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgfSBlbHNlCisgICAg
ICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RF
dmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsK
IH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBw
ZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhv
dXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNj
cm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4Niw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVh
cmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rp
b25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBp
ZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50
LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFt
ZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAg
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAg
ICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFy
aXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBh
Ym92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVk
IGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5
U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNl
CiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4g
SWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMzAs
NyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwg
YWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVj
dGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAg
ICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwg
b3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcg
KzM1MSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBm
cmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVu
dCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0
eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNzAsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9u
KCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBk
YXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzkwLDcgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9u
KGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVk
aXRvcigpLmNsaWVudCgpKQogICAgICAgICBjbGllbnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVw
ZGF0ZUxheW91dCgpOwpAQCAtMTAyMSw3ICsxMDMxLDgwIEBAIFZpc2libGVQb3NpdGlvbiBGcmFt
ZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkK
IHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5
ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7
Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0
aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkpCit7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAo
YWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVu
dC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgaWYg
KGlzUmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0g
UlRMKQorICAgICAgICAgICAgICAgIGZsaXAgPSB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNl
CisgICAgICAgIGludGVudC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51
bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV29y
ZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNl
bnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBp
bnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAg
ICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVs
YXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0
aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0
Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBj
YXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAg
ICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vu
dGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFw
aEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkg
PSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsK
KyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAg
ICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rp
b24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
cyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBp
ZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZs
aXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJl
dHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVB
bHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0x
MDc3LDYgKzExNjAsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9u
IGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3
YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5h
bFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9m
cmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRl
bnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOwor
ICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NG
b3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdp
bGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAv
LyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBp
cyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzEwLDggKzE3OTgsMTAgQEAgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgp
KSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKSkgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWFRleHRTZWxlY3Rpb24geyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUFsbCB9KTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAgICB9CiB9
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBF
QWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yNDIzLDcgKzI1MTMsNyBA
QCBWaXNpYmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmlu
Z0NhcmV0U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb24gPSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24uZXhw
YW5kVXNpbmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHko
KSk7CisgICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpLCBBbGln
bkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwog
CiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQo
KSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi4w
NTZkMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rp
b25faAogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHls
ZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0x
MzEsNiArMTMyLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBDbG9zZVR5cGlu
ZyB8IENsZWFyVHlwaW5nU3R5bGUgfCAodXNlclRyaWdnZXJlZCA/IChSZXZlYWxTZWxlY3Rpb24g
fCBGaXJlU2VsZWN0RXZlbnQpIDogMCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBpbmxpbmUg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpCisgICAg
eworICAgICAgICByZXR1cm4gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICB9CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBGcmFtZVNlbGVjdGlvbihGcmFtZSogPSBudWxscHRy
KTsKIApAQCAtMTQ0LDcgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFs
aWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlv
bkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vy
c29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51
bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25z
ID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
PSBkZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGln
bkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51
bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2Uq
LCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcg
KzI3OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RB
UlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICAgICB2b2lkIHVwZGF0
ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0
aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5
OCw5ICszMDQsMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2lu
dEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50
KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gZGVmYXVsdFNldFNlbGVjdGlvbkludGVudCgpKTsKICNlbHNlCi0gICAgdm9p
ZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFNlbGVjdGlvbkludGVu
dCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rp
b25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzc0
LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQ
dHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxp
bmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKaW5kZXggNTM5NGU3ZS4uNTM2NWRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgpAQCAtNDgsNiArNDksMTIgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBB
U1NFUlQobV9ub2RlKTsKICAgICBBU1NFUlQobV9vZmZzZXQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7
CiAgICAgQVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKKyAgICBzZXRBcHBseUVkaXRUeXBlKEFY
VGV4dEVkaXRUeXBlSW5zZXJ0KTsKK30KKworU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7CiB9CiAKIHZvaWQgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02Niw4ICs3Myw4IEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2Vy
dERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBB
WE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBt
X3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQog
CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODQsOCArOTEsOCBAQCB2b2lkIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0
KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0
aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uMWFkOTQ3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9o
CiAjZGVmaW5lIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTM5LDkgKzQwLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKICAgICB9
CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3RlZDoKICAg
ICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92
ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uZTY2ZDIyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKQEAgLTI2LDkgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNs
dWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDYsNiArNDgsNyBAQCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUAogICAgIEFTU0VS
VChtX3JlZkNoaWxkLT5wYXJlbnROb2RlKCkpOwogCiAgICAgQVNTRVJUKG1fcmVmQ2hpbGQtPnBh
cmVudE5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3JlZkNoaWxkLT5wYXJlbnROb2Rl
KCktPnJlbmRlcmVyKCkpOworICAgIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGVJbnNl
cnQpOwogfQogCiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTU3
LDggKzYwLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAg
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5n
ZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBl
KCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CkBAIC02Nyw4ICs3MiwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBw
bHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9y
ZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9z
aXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9u
KGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRp
b24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKaW5kZXggZDRiNzYyZC4uOWEyNTcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRl
ZiBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZF9oCiAjZGVmaW5lIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kX2gKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFu
ZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw5ICszOSwxMCBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxk
VG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKSk7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0
cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uYmZhMTgx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNTks
MTAgKzU5LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0
VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CiAgICAgfQogCi1w
cml2YXRlOgotCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
IHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKK3Byb3RlY3Rl
ZDoKICAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwg
UGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKyAgICBJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRl
ZFRleHQsIFJlYmFsYW5jZVR5cGUpOworCitwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFy
YWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAppbmRleCAyYzA2M2MwLi5lYTA2
ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcApAQCAtMzEsMTAgKzMxLDExIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCitSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZDo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBu
b2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogQ29t
cG9zaXRlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKICAgICAsIG1fbm9kZShub2RlKQog
ICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0
aW9uKQogewogICAgIEFTU0VSVChtX25vZGUpOwogfQpAQCAtNTQsNCArNTUsOSBAQCB2b2lkIFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpkb0FwcGx5KCkKICAgICByZW1vdmVO
b2RlKG1fbm9kZSwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CiB9CiAK
K0VkaXRBY3Rpb24gUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2VkaXRpbmdBY3Rpb247Cit9CisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQuaAppbmRleCA0YjkxOTc0Li4yMmMwNDk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZC5oCkBAIC0zMiwxOCArMzIsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCA6IHB1YmxpYyBDb21wb3Np
dGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBleHBs
aWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5n
QWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOwogICAg
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGU7CisgICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb247CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNjEzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwgY291bnQpCit7Cit9CisKK3Zv
aWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ODU4NzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAor
CisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNz
UmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWdu
ZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NWFhM2M3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQpCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCkKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7CisgICAgc2V0
QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZUluc2VydCk7Cit9CisKK3ZvaWQgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYg
KCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAg
ICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVk
aXRUeXBlRGVsZXRlLCB0ZXh0LCBBWFRleHRFZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwg
cG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0
OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihu
b2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9kZWxldGVkVGV4dCwgdHlwZSwgdGV4dCwgcG9z
aXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
YTQyYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgdGV4dCwgZGVsZXRlZFRleHQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAg
ICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIz
ODgwYy4uMzE3MzFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJCZWZvcmVU
ZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkJyZWFrQmxvY2txdW90ZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTQ3LDYgKzQ4LDggQEAKICNp
bmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFj
ZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpAQCAtMTQzMiw2ICsxNDM1LDE2IEBA
IEVkaXRBY3Rpb24gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dAogICAgIHJldHVybiBtX2VkaXRBY3Rpb247CiB9CiAKK0FYVGV4dEVkaXRUeXBlIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjphcHBseUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gbV9hcHBseUVk
aXRUeXBlOworfQorCit2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpzZXRBcHBseUVkaXRU
eXBlKEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUpCit7CisgICAgbV9hcHBseUVkaXRUeXBl
ID0gYXBwbHlFZGl0VHlwZTsKK30KKwogLy8gSWYgdGhlIHVzZXIgaXMgaW5zZXJ0aW5nIGEgbGlz
dCBpbnRvIGFuIGV4aXN0aW5nIGxpc3QsIGluc3RlYWQgb2YgbmVzdGluZyB0aGUgbGlzdCwKIC8v
IHdlIHB1dCB0aGUgbGlzdCBpdGVtcyBpbnRvIHRoZSBleGlzdGluZyBsaXN0LgogTm9kZSogUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IHBycExpc3RFbGVtZW50LCBOb2RlKiBpbnNlcnRpb25CbG9jaywgY29uc3QgUG9zaXRp
b24mIGluc2VydFBvcywgSW5zZXJ0ZWROb2RlcyYgaW5zZXJ0ZWROb2RlcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2Zm
Li44YzRkMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oCkBAIC01Myw2ICs1Myw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIGZyYWdtZW50LCBv
cHRpb25zLCBhY3Rpb24pKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIEFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0
RWRpdFR5cGUpOworCiBwcml2YXRlOgogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3Vt
ZW50JiwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgQ29tbWFuZE9wdGlvbnMsIEVkaXRB
Y3Rpb24pOwogCkBAIC0xMjEsNiArMTI0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJldmVu
dE5lc3Rpbmc7CiAgICAgYm9vbCBtX21vdmluZ1BhcmFncmFwaDsKICAgICBFZGl0QWN0aW9uIG1f
ZWRpdEFjdGlvbjsKKyAgICBBWFRleHRFZGl0VHlwZSBtX2FwcGx5RWRpdFR5cGUgeyBBWFRleHRF
ZGl0VHlwZVBhc3RlIH07CiAgICAgYm9vbCBtX3Nhbml0aXplRnJhZ21lbnQ7CiAgICAgYm9vbCBt
X3Nob3VsZE1lcmdlRW5kOwogICAgIGJvb2wgbV9pZ25vcmVNYWlsQmxvY2txdW90ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLjhjMGZiMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCkBAIC0zNzMsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRU
ZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiAKIHZvaWQg
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcg
JnRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewotICAgIFJlZlB0cjxJbnNlcnRUZXh0
Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
dGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAorICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4
dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LAogICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0
Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRU
cmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRl
c3BhY2VzKTsKIAogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1Nl
bGVjdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5z
ZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDljNzM3
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgCitUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZDo6VHlwaW5nSW5zZXJ0
VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCisgICAgOiBJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJh
bGFuY2VUeXBlKQoreworfQorCitFZGl0QWN0aW9uIFR5cGluZ0luc2VydFRleHRDb21tYW5kOjpl
ZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRpdEFjdGlvblR5cGluZzsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlY2MyZDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5k
LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFR5cGluZ0luc2VydFRleHRDb21tYW5kX2gKKyNkZWZpbmUgVHlw
aW5nSW5zZXJ0VGV4dENvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0VGV4dENvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCA6
IHB1YmxpYyBJbnNlcnRUZXh0Q29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLCBSZWJhbGFuY2VUeXBl
IHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGluZ0luc2VydFRleHRDb21t
YW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmLCBib29sLCBSZWJhbGFuY2VUeXBlKTsKKyAgICB2aXJ0dWFsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCmluZGV4IDdj
MjEzNjUuLjMzMmUwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0Zy
YW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFt
ZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQgbWF5YmVFbWl0
VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gcHJwT2JqZWN0
KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKICAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXgg
OWJkZWUxYy4uZmQ0MTk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RnJhbWVTZWxlY3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJh
bWVTZWxlY3Rpb25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vz
c2liaWxpdHlDb252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFU
Rk9STShJT1MpCiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAK
ICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5l
bmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9z
dE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRl
cmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2
YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9z
ZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIu
LjM2ODRlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
ICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9v
bCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQp
OworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRl
eHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAg
ICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7Cisj
aWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0
ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAg
ICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhW
YWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYK
ICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0
aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFu
Z2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhUZXh0RWRpdFR5
cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5j
aG9yKSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZh
bHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CmluZGV4IGM4YmVlOWUuLmJiNGVlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTMyMTAsNyArMzIxMCw4IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNl
bGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdn
ZXJlZCkpOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24g
fSk7CisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2Vs
ZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50
KTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFt
ZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCmluZGV4IDc3YzA3ZmUuLmQ4ZDI1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTM0MCw4ICszNDAsMTAgQEAgYm9vbCBGb2N1c0NvbnRy
b2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24sIEtleWIKICAgICBpZiAoY2FyZXRCcm93c2luZykgewogICAgICAgICBQb3NpdGlvbiBwb3Np
dGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShlbGVtZW50LmdldCgpKTsKICAgICAg
ICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24ocG9zaXRpb24sIHBvc2l0aW9uLCBET1dO
U1RSRUFNKTsKLSAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVj
dGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91
bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICAgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUs
IEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMs
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICAgICAgICAgIGZyYW1l
LnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50KTsKKyAgICAg
ICAgfQogICAgIH0KIAogICAgIGVsZW1lbnQtPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGExM2Q3OWEu
LjI0YjA4NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorCisgICAgICAgIEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
biB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciBy
ZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVj
aGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBj
b2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2Vz
LgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3Zlcmxv
YWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0
ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNo
YW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKwogMjAxNS0wNC0xNyAgRGFuaWVs
IEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgTm90IGFibGUgdG8gYnVpbGQg
V2ViS2l0IGFnYWluc3QgaU9TIFNpbXVsYXRvciA4LjMgU0RLCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
bW0KaW5kZXggYWRhNjg3YS4uN2IwMTdiYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAt
MTEyLDE2ICsxMTIsMjcgQEAKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9y
bUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1
c2VySW5mbyJdOworCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9u
KEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFs
dWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoW21haW5G
cmFtZSBnbG9iYWxDb250ZXh0XSwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVS
ZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNP
TlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNl
ckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1Jl
Zl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9t
SlNPTlN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc1VzZXJJbmZvSlNPTlZhbHVl
LmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8v
IExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90
aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFt
ZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAxLCAm
bm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBB
IGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9uIG5h
bWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQgZ2V0
cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFtZUFy
Z3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50
OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAwKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVt
ZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYg
YXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVudHNbMF0gPSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjptYWtlSlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoW25vdGlmaWNhdGlvbiBvYmplY3RdKSk7CiAgICAg
ICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJn
dW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1
bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCA2NTFi
NTkxLi4yOGNhMDNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5tbQpAQCAtMTI1LDE5ICsxMjUsMzAgQEAKICAgICBpZiAobV9wbGF0Zm9y
bUVsZW1lbnQgJiYgbV9wbGF0Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3Rp
ZmljYXRpb24udXNlckluZm9bQCJ1c2VySW5mbyJdOworCiAgICAgV0tCdW5kbGVGcmFtZVJlZiBt
YWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoV1RSOjpJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOwogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0g
V0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KG1haW5GcmFtZSk7CiAKICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25O
YW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1l
QXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc05vdGlmaWNhdGlvbi5nZXQo
KSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gbmlsOworICAg
IGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZvSlNPTlZhbHVl
IGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQg
PSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIGpzVXNlckluZm9KU09OVmFsdWUu
Z2V0KCkpOworICAgIH0KICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8g
TGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3Rp
ZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBj
b25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAw
LCAxLCAmbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0
aW9uIG5hbWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1l
bnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9u
TmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFy
Z3VtZW50OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nh
c3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFy
Z3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIg
Z2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAg
ICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gdG9KUyhj
b250ZXh0LCBXVEY6OmdldFB0cihXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShb
bm90aWZpY2F0aW9uIG9iamVjdF0pKSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFs
dWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25z
dF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAy
LCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251203</attachid>
            <date>2015-04-20 16:26:32 -0700</date>
            <delta_ts>2015-04-23 13:17:11 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>220592</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGI2MzI4NzkwOWQ1MzdkN2NhYTJjMDRiOGI4MGJlNGY2YjQ2OTMwZTAKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICAgICAgQVg6IHJpY2hl
ciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCiAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQogICAgCiAgICAgICAgUmljaGVyIGFj
Y2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRF
ZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFs
c28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29y
ZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUg
Y2FkZW5jZSBvZiBjaGFuZ2VzLgogICAgCiAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2Vs
ZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sg
cG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRm
MjFiNmYuLjUxNDk1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNC0yMCAgRG91ZyBS
dXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBu
b3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0
byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2Vk
IHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAg
ICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBz
IG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBj
b250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9u
IHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5m
by5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxl
Y3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2Ut
dXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQuCisKIDIwMTUtMDQt
MTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNl
IGV2ZW50cyBzaG91bGQgZ28gdGhyb3VnaCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29k
ZSBwYXRocwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhNmY4Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRh
dGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5n
ZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZh
bHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmlu
Zm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTBkZTMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5w
dXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1dCB0eXBlPSJwYXNzd29y
ZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZh
bHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworICAg
IDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRz
IG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAg
ICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7
CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAg
ICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAg
ICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZv
KSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIpIHsKKworICAgICAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUlu
c2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3JkIG5vdGlmaWNhdGlvbnMg
d2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3aWxsIGJlIHdoaXRlc3Bh
Y2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBd
W1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKworICAgICAg
ICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBz
ZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2YWx1ZXRl
c3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNldHNlY3Vy
ZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY3VyZXZh
bHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisKKyAgICAgICAg
aWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRv
dy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAg
ICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRB
dEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5h
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAg
ICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICBz
ZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgpOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4
LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90
aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBp
cyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5l
eHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11
c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiByb2xl
PSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4K
KzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+c2V2ZW4gZWlnaHQgbmlu
ZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCis8c2NyaXB0Pgor
CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcg
KyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA9IEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyArIDE7CisKKyAgICB2YXIg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOworICAgIHZhciBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJh
Y3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggKyAy
OworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwgInNlbnRlbmNlIiwgImxp
bmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5jZWJvdW5kYXJ5IiwgInBh
cmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAgICB2YXIgd2ViQXJlYSA9
IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgIHZhciBy
ZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZp
Y2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVj
dGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYg
KHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAg
ICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7CisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdy
YXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblBy
ZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURv
Y3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIp
OworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5v
dGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgIHdlYkFyZWEgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAg
ICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmlj
YXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgLy8g
VHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgIGZv
ciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2Fy
ZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBn
cmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAg
ICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAgICAgICBzLm1vZGlmeSgi
ZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5
M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkg
QEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNl
ciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVk
Tm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVDdXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlz
ICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1b
IkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFY
VGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJd
IGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBpbmcKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRt
bApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250
ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAgPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPGRpdiBpZD0ibm90
aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAgICAgIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIp
OworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5
cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAgICAgIHZhciBBWFRleHRF
ZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgKyAxOworICAgICAg
ICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiArIDEKKyAg
ICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0VHlwZUN1dCArIDE7CisK
KyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAg
ICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAg
ICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7
CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAg
ICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2Vy
SW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsKKworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNc
Il1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUN1dCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4
dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFs
dWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVc
Il0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0i
LCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdElu
ZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxl
dGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAg
ICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5j
aGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJB
cmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAg
ICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKKyAg
ICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAgZXhlY1NldFNlbGVjdGlv
bkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0ZW5kU2VsZWN0aW9uUmln
aHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENvbW1hbmQoKTsKKyAgICAg
ICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAg
ICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAgICAgIH0KKyAgICA8L3Nj
cmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YTY5MDUxNS4uMmY0YmU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0ODMsMTAgKzE0ODMs
MTIgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29t
bWFuZC5jcHAKICAgICBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAogICAgIGVkaXRp
bmcvQ3JlYXRlTGlua0NvbW1hbmQuY3BwCisgICAgZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9EaWN0YXRp
b25BbHRlcm5hdGl2ZS5jcHAKICAgICBlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisgICAg
ZWRpdGluZy9EaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAogICAgIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAogICAgIGVkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMTUxMCw2ICsxNTEyLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
CisgICAgZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBl
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApA
QCAtMTUyNSw2ICsxNTI5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvVGV4
dEluc2VydGlvbkJhc2VDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAog
ICAgIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1R5cGluZ0luc2VydFRl
eHRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvVW5saW5rQ29tbWFuZC5jcHAKICAgICBlZGl0aW5n
L1Zpc2libGVQb3NpdGlvbi5jcHAKICAgICBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjc4ZDQ2Mi4uMjgyM2U3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMyBA
QAorMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAg
ICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5
cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGlt
cGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9y
bSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVu
Y2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwg
YW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5n
IHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICBUZXN0czog
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0
bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1j
aGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhP
YmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4
dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBWFRl
eHRTdGF0ZUNoYW5nZUludGVudDo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnBhc3N3b3JkRmll
bGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25S
YW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9y
VGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFJlcGxhY2Vt
ZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERl
bGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6
XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpT
T05UeXBlcyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21t
YW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1Vu
YXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRDb21tYW5kQXBwbHlFZGl0VHlwZUZvckVkaXRpbmdBY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4
dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aDoKKyAgICAgICAgKiBlZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAg
ICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmguCisgICAgICAgIChXZWJDb3JlOjpDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6
CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChX
ZWJDb3JlOjpEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmVk
aXRpbmdBY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1h
bmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5oLgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0
ZVdpdGhNYXJrZXJTdXBwbGllcik6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNpbXBsZUVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpzZXRBcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6Cisg
ICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGlu
Z0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBlcmZv
cm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRG
cmFnbWVudCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdB
cHBlYXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29y
ZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgICogZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6
ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRp
dGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnNldEFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgICogZWRpdGluZy9UeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0luc2VydFRleHRD
b21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBp
bmdJbnNlcnRUZXh0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRpdGluZy9U
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYWMvRnJhbWVT
ZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2UvRXZlbnRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlv
bik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCisyMDE1
LTA0LTE3ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vz
c2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNv
bnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24u
IEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMu
CisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSaWNo
ZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFY
VGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3Jl
IHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVu
dC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBh
c3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5n
IHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKzIwMTUtMDQtMTQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBOZXcgRWRpdENvbW1hbmQgc3ViY2xhc3NlcyB0byBnaXZlIHRo
ZSBjb250ZXh0IHRoYXQgYWNjZXNzaWJpbGl0eSBuZWVkcyB0byBwb3N0IG1vcmUgZGV0YWlsZWQg
dmFsdWUgYW5kIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gVGhpcyBjb21taXQgaXMg
YWxsIGluZnJhc3RydWN0dXJlIGFuZCBkb2Vzbid0IGNvbnRhaW4gYW55IGFjY2Vzc2liaWxpdHkg
c3BlY2lmaWMgY2hhbmdlcy4KKwogMjAxNS0wNC0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRm9yY2UgbW91c2UgZXZlbnRzIHNob3VsZCBnbyB0aHJvdWdoIG5v
cm1hbCBtb3VzZSBldmVudCBoYW5kbGluZyBjb2RlIHBhdGhzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBkMDc3YTAyLi5hYTkxNmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAg
LTE0MzY2LDYgKzE0MzY2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCI+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KQEAgLTE0NDIyLDYgKzE0NDM2LDIwIEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xFZGl0Q29tbWFu
ZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAt
MTQ3NzMsNiArMTQ4MDEsMzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNDk5Nyw2ICsxNTA1
MywyMCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1MjIsNiArMTk1OTIsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFi
bGVIZWFkZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vz
c2liaWxpdHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdl
XEFkanVzdFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBh
Z2VcQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA0MSwxMCArMjExMTIsMTIgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcQnJlYWtCbG9ja3F1b3RlQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDb21wb3NpdGVFZGl0
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVM
aW5rQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDdXRE
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25BbHRlcm5hdGl2ZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRpb25Db21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkluc2VydFRleHRDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVkaXRBY3Rpb24u
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdENvbW1hbmQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdGluZ0JlaGF2aW9yLmgi
IC8+CkBAIC0yMTA3NSw2ICsyMTE0OCw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQu
aCIgLz4KQEAgLTIxMDkzLDYgKzIxMTY4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcVGV4dEl0ZXJhdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFRleHRJdGVyYXRvckJlaGF2aW9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFR5cGluZ0NvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcVW5kb1N0ZXAuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcVW5saW5rQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xWaXNpYmxlUG9zaXRpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlNDQ2
MDg3Li5mMDc0OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNDM4LDYgKzM0MzgsOSBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xDcmVhdGVMaW5rQ29tbWFuZC5jcHAiPgogICAg
ICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM0NTAsNiArMzQ1Myw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERp
Y3RhdGlvbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXEVk
aXRDb21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTM1MjgsNiArMzUzNCwxMiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVk
aXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNw
cCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTM1NzYsNiArMzU4OCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFR5
cGluZ0NvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNl
cnRUZXh0Q29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVubGlua0Nv
bW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtNzY1Niw2ICs3NjcxLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFj
Y2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIj4KKyAgICAgICAgPEZpbHRl
cj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0eVx3aW48L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KQEAgLTEwNTY2LDYgKzEwNTg0LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcQ3JlYXRlTGlua0NvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRp
bmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGVkaXRpbmdcQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBAIC0xMDU3OCw2ICsxMDU5OSw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXERpY3RhdGlvbkNvbW1hbmQuaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQu
aCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcRWRpdEFjdGlvbi5oIj4KICAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NjgsNiArMTA2
OTIsMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3Np
dGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA3MjIsNiArMTA3NTIsMTIgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVHlwaW5nQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xUeXBpbmdSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuLmgi
PgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFVuZG9TdGVwLmgiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTExMGUwYi4uNTMyNTY0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzIzNSw2ICszMjM1LDcgQEAKIAkJOTAwMTc3NDExMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERl
cml2YXRpdmVzLmggKi87IH07CiAJCTkwMDE3ODgwMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAgKi87IH07CiAJCTkwMDE3ODgxMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCAqLzsgfTsKKwkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzAy
QjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQ
YWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdy
b3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAy
QjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNUIyNEQwOThGMUI2QjAwQzI4ODU1IC8q
IFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjM3OCw4ICs2Mzc5LDE0IEBACiAJCUY1MDY2
NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdGNTJEQzAwQUMyMjZGIC8q
IEZvcm1Db250cm9sbGVyLmggKi87IH07CiAJCUY1MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNs
aWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CisJCUY1
NDNENjAxMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENUZGMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLzsgfTsKKwkJ
RjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDNENjAwMUFD
QjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggKi87IH07CiAJCUY1
NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMz
QTggLyogUGxhdGZvcm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5o
ICovOyB9OworCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1
NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhE
QTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Ki87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3
OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVC
M0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYy
NjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5
cGUuY3BwICovOyB9OwpAQCAtNjQyOSwxMCArNjQzNiwxNCBAQAogCQlGNTVCM0RERTEyNTFGMTJE
MDAzRUYyNjkgLyogVVJMSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQTEyNTFGMTJEMDAzRUYyNjkgLyogVVJMSW5wdXRUeXBl
LmggKi87IH07CiAJCUY1NUIzRERGMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFC
MTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNERTAx
MjUxRjEyRDAwM0VGMjY5IC8qIFdlZWtJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzREFDMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVr
SW5wdXRUeXBlLmggKi87IH07CisJCUY1ODcyQTc0MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRp
b25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQuY3BwICovOyB9OworCQlGNTg3MkE3NTFBQjc1QTJCMDA4MEY0NTcgLyogRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNl
cnRUZXh0Q29tbWFuZC5oICovOyB9OwogCQlGNTk3M0RFMDE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9j
YWxlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTk3M0RERTE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxlTWFjLmggKi87IH07CiAJCUY1OTczREUx
MTVDRkIyMDMwMDI3RjgwNCAvKiBMb2NhbGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTk3M0RERjE1Q0ZCMjAzMDAyN0Y4MDQgLyogTG9jYWxl
TWFjLm1tICovOyB9OwogCQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1OUM5NUZEMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwICovOyB9OwogCQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmggKi87IH07CisJCUY1OUZBNDcwMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTlGQTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
ICovOyB9OworCQlGNTlGQTQ3MTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovOyB9
OwogCQlGNUExNTQyNzEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVBMTU0MjUxMjc5
NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCAqLzsgfTsKIAkJRjVBMTU0Mjgx
Mjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyog
VmFsaWRhdGlvbk1lc3NhZ2UuaCAqLzsgfTsKIAkJRjVDMDQxREEwRkZDQTdDRTAwODM5RDRBIC8q
IEhUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovOyB9OwpAQCAtMTA0NjgsNiArMTA0NzksNyBAQAogCQk5MDAxNzczRjEyRTAz
NDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw7IHBhdGggPSBjYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3
ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdl
R3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3Vw
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdF
RTgzIC8qIFBhZ2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
R3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNUIyNEMwOThGMUI2QjAw
QzI4ODU1IC8qIFRpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwNiw4ICsxNDAxOCwxNCBAQAog
CQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmFuZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qz
MDQwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTJBRDVFMzE1MzQyNDVGMDA1OUZC
RTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTQzRDYwMDFBQ0IwQzgzMDA2
MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2Fs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2Fs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFG
MzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQbGF0Zm9ybUxvY2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMz
RTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2
OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRv
bklucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDA1Nyw2ICsx
NDA3NSw4IEBACiAJCUY1NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMSW5wdXRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzREFCMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5w
dXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlZWtJbnB1
dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0RBQzEyNTFGMTJE
MDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWVrSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcy
QTcyMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29t
bWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1ODcyQTczMUFCNzVBMkIw
MDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODRGMDAyREUzNzU5MDFFQTQxMjIgLyogQ3Vyc29yTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ3Vyc29yTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg1NEMwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVG
cmFtZVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29yZUZyYW1lVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNl
dHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwpAQCAtMTQwNjcsNiArMTQwODcsOCBAQAogCQlGNTk3M0RERjE1Q0ZCMjAz
MDAyN0Y4MDQgLyogTG9jYWxlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9jYWxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTlD
OTVGRDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1OUM5NUZFMTI1NUIyM0YwMDA2
MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY1OUZBNDZFMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBpbmdJ
bnNlcnRUZXh0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1OUZB
NDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUExNTQyNTEyNzk1MzREMDBEMEIwQzAgLyogVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsaWRhdGlvbk1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDcwRkZDQTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFM
aXN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTYxNSw2ICsx
NTYzNyw3IEBACiAJCQkJMjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlU
YWJsZVJvdy5oICovLAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENh
Y2hlLmNwcCAqLywKIAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNo
ZS5oICovLAorCQkJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE3Njc5LDYgKzE3NzAyLDggQEAKIAkJCQk5MzMwOUQ4RTA5
OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuaCAqLywKIAkJCQlEMEIwNTU2
NzA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwICovLAogCQkJCUQwQjA1
NTY2MDlDNjcwMDEwMDMwN0U0MyAvKiBDcmVhdGVMaW5rQ29tbWFuZC5oICovLAorCQkJCUY1NDNE
NUZGMUFDQjBDODMwMDYzNkQ1RCAvKiBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywK
KwkJCQlGNTQzRDYwMDFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5oICovLAogCQkJCTkzMzA5RDhGMDk5RTY0OTEwMDU2RTU4MSAvKiBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5MDA5OUU2NDkxMDA1NkU1ODEgLyogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkxMDk5RTY0OTEwMDU2RTU4MSAv
KiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Njg3LDYgKzE3NzEyLDggQEAK
IAkJCQlDRUNBREZDMzE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAq
LywKIAkJCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQ29tbWFuZC5jcHAg
Ki8sCiAJCQkJQ0VDQURGQzUxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkNvbW1hbmQuaCAq
LywKKwkJCQlGNTg3MkE3MjFBQjc1QTJCMDA4MEY0NTcgLyogRGljdGF0aW9uSW5zZXJ0VGV4dENv
bW1hbmQuY3BwICovLAorCQkJCUY1ODcyQTczMUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25J
bnNlcnRUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5RDkzMDk5RTY0OTEwMDU2RTU4MSAvKiBF
ZGl0QWN0aW9uLmggKi8sCiAJCQkJOTMzMDlEOTQwOTlFNjQ5MTAwNTZFNTgxIC8qIEVkaXRDb21t
YW5kLmNwcCAqLywKIAkJCQk5MzMwOUQ5NTA5OUU2NDkxMDA1NkU1ODEgLyogRWRpdENvbW1hbmQu
aCAqLywKQEAgLTE3NzQzLDYgKzE3NzcwLDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIz
MkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlC
MzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1
MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAog
CQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTE3Nzc4LDYgKzE3ODA5LDggQEAKIAkJCQk5
MzkyMTQ2ODE4QTZENzkxMDAwRUU2ODggLyogVGV4dEl0ZXJhdG9yQmVoYXZpb3IuaCAqLywKIAkJ
CQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5jcHAgKi8sCiAJCQkJ
OTMzMDlEQ0IwOTlFNjQ5MTAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuaCAqLywKKwkJCQlGNTlG
QTQ2RTFBQ0NCNTBFMDA2MjMwN0EgLyogVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwICovLAor
CQkJCUY1OUZBNDZGMUFDQ0I1MEUwMDYyMzA3QSAvKiBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5o
ICovLAogCQkJCTlCMkQ4QTc4MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oICovLAogCQkJ
CUQwODZGRTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLywKIAkJCQlE
MDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovLApAQCAtMjM2NzEs
NiArMjM3MDQsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ3OTUsNiArMjQ4MjksNyBAQAogCQkJCUExOUQ5MzRCMUFBMTFCMUUw
MEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThFQTdEMkIwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1ODcyQTc1MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0OUIxMjM3
MEE0QjAwMEM2MTYxIC8qIEhUTUxJbnB1dFN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMz
MDlERTYwOTlFNjQ5MjAwNTZFNTgxIC8qIEhUTUxJbnRlcmNoYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgxMzY5RTQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTI1NTkzLDYgKzI1NjI4LDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4
MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNY
TUxIdHRwUmVxdWVzdFVwbG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlE
RjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUNFNTNGNzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2
YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8q
IEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY2NDUsNiArMjY2ODEsNyBA
QAogCQkJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyODE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNjkwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MjkxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDJBMTc4RDVB
QjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyN0E2RDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjcsNiArMjY4NjQsNyBAQAogCQkJCTE4
NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBQTNBNjlBMTk0QTY0RTcwMDFDQkQyNCAvKiBUaWxlQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUY3MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVt
b3J5SGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5RkE0NzExQUNDQjUwRTAwNjIz
MDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEz
QTZBNDE5NEI1QzIyMDAxQ0JEMjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUY4OUE0MjE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUEzQTY5QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY5NTAsNiArMjY5ODgsNyBAQAogCQkJCTJEM0VGNDQ4MTkxNzkxNUMwMDAz
NDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1QTdBQTQzMTMyRjBFQ0MwMEQzQTNDMiAvKiBXZWJBdXRvY2FwaXRhbGl6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU2QzVCOUIxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU0M0Q2MDIxQUNCMEM4MzAwNjM2RDVEIC8qIEN1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDRBMTkx
NzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNGMTk5QTgwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVGcmFtZVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVl
blBsYWNlaG9sZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzgwNCw2ICsyNzg0Myw3IEBA
CiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBBNUQwNjAwREMwMkEwIC8qIERldmlj
ZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUMxMjBBNUQwNjAwREMw
MkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1ODcyQTc0
MUFCNzVBMkIwMDgwRjQ1NyAvKiBEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzMTQwMzc5RTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1OTMwOUExMTExRjRBRTU4MDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTI2OTM5NzI2MUE0QTVGQkQwMEU4MzQ5RCAvKiBORkEuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODE5OCw2ICsyODIzOCw3IEBACiAJCQkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVy
YXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0Mjk1
NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYyMzE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU5
RkE0NzAxQUNDQjUwRTAwNjIzMDdBIC8qIFR5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3NDZBRjI2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNjI1MkUxOERFMUIxNTAwQTA3QzA1
IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQUZGQzgzMEQw
MEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VNYWMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODM5
Nyw2ICsyODQzOCw3IEBACiAJCQkJNTEwMTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29u
dHJvbHNSb290RWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5
RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1
MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyog
SW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAw
RjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjg4NTQsNiAr
Mjg4OTYsNyBAQAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1Bl
cmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQzQzg1RjE4OUUx
NUE2MDAwMTlBRTIgLyogSlNQZXJmb3JtYW5jZVRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNTQzRDYwMTFBQ0IwQzgzMDA2MzZENUQgLyogQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREVBNjI0NjE1MjEwMkZDMDA0NzlERjAgLyogSlNQZXJp
b2RpY1dhdmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNzBENkIwOUVCMEM3QzAwOUQ4NDY4
IC8qIEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg5
RjAxRDEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjk4NDAsNiArMjk4ODMsNyBAQAogCQkJCUZFMzZGRDE2MTZDNzgyNjUwMEY4ODdDMSAv
KiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJF
NkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVyYXRvcklPUy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMTlBRTYwODI0NUU1
OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCmluZGV4IGEwMGIxNWMuLjFmZTZiNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDYg
KzkwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogCisvLyBQb3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVs
ZHMgb3IgZWxlbWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50
ZXJ2YWwgdG8gdGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCitzdGF0aWMgZG91Ymxl
IEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwgPSAw
LjAyNTsKKwogQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBWENvbXB1dGVkT2JqZWN0QXR0
cmlidXRlQ2FjaGU6OmdldElnbm9yZWQoQVhJRCBpZCkgY29uc3QKIHsKICAgICBIYXNoTWFwPEFY
SUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9pZE1h
cHBpbmcuZmluZChpZCk7CkBAIC0xMjksNiArMTMyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpz
ZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0
Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVu
dChkb2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90
aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzA1LDcgKzcwOSw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIFJlZjxEb2N1bWVu
dD4gcHJvdGVjdG9yRm9yQ2FjaGVPd25lcihtX2RvY3VtZW50KTsKICAgICBtX25vdGlmaWNhdGlv
blBvc3RUaW1lci5zdG9wKCk7CiAgICAgCi0gICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNh
dGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZp
Y2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIElu
IHRlc3RzLCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRl
bHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBl
Y3RlZCBiZWhhdmlvcgogICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFy
ZWQgYXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCiAgICAg
YXV0byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fbm90aWZpY2F0aW9uc1RvUG9zdCk7CiAg
ICAgCkBAIC03NDIsNiArNzQ2LDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50
T2JqZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIHRlc3RzLCBw
b3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUg
dXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhh
dmlvcgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhl
IGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3Rp
ZmljYXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKwor
ICAgIGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5n
ZXQoKSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2Vu
ZGlmCit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVy
T2JqZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
IHBvc3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjgsMjIzIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFu
Z2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgewor
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgZGF0YUxvZygi
VW5rbm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQ6CisgICAgICAgIGRhdGFMb2coIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGRhdGFMb2co
Ik1vdmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgZGF0YUxvZygiRXh0ZW5kOjoiKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7Cisg
ICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygi
VW5rbm93biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEZWxldGU6CisgICAgICAgICAgICBkYXRhTG9nKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgZGF0
YUxvZygiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpY3RhdGlvbkluc2VydCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6
CisgICAgICAgICAgICBkYXRhTG9nKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgZGF0YUxvZygi
Q3V0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBh
c3RlOgorICAgICAgICAgICAgZGF0YUxvZygiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBk
YXRhTG9nKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIkJl
Z2lubmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBkYXRhTG9nKCJFbmQ6OiIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBkYXRhTG9nKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAg
ICAgZGF0YUxvZygiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgZGF0YUxv
ZygiRGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAg
ICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIGRh
dGFMb2coIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAg
ZGF0YUxvZygiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBk
YXRhTG9nKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJMaW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgZGF0YUxv
ZygiUGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJQYWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxs
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICBkYXRhTG9nKCItU3luYyIp
OworICAgIGRhdGFMb2coIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpz
ZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sK
KyAgICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3N0YXRpYyBib29sIGlz
UGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0ICYmIChvYmplY3QtPmlzUGFzc3dvcmRG
aWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSk7Cit9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBu
b2RlLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisK
ICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVs
ZWdhdGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ID0gZ2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iamVjdCkgeworICAg
ICAgICBpZiAoaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90
aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0
Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVu
dCk7CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Cit9CisKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5n
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAo
b2JqZWN0KSB7CisgICAgICAgIGlmIChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmpl
Y3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxz
ZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRU
eXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5
cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47
CisgICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAg
QVNTRVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9u
VHlwZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVk
aXRUeXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7
CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3Jk
VmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAg
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgZGVsZXRpb25U
eXBlLCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7
CisjZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0
ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxl
bnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlw
ZShpbnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRp
dGluZ09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK2Jvb2wgQVhPYmplY3RD
YWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0KQoreworICAgIGlmICghaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRC
eVBhc3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9i
amVjdCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkgeworICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgLy8gcmV0dXJuIHRydWUgZXZlbiB0aG91Z2ggdGhlIGVucXVl
dWUgZGlkbid0IGhhcHBlbiBiZWNhdXNlIHRoaXMgaXMgYSBwYXNzd29yZCBmaWVsZCBhbmQgY2Fs
bGVyIHNob3VsZG4ndCBwb3N0IGEgbm90aWZpY2F0aW9uCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuY29udGFpbnMo
b2JzZXJ2YWJsZU9iamVjdCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bv
c3QuYXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3Rp
ZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOwog
fQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZy
YW1lKiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzA5
LDE2IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVh
KCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290T2JqZWN0ID0gdGhpcy0+cm9vdE9i
amVjdCgpOworICAgIGlmICghcm9vdE9iamVjdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKHJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAg
cmV0dXJuIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2Vi
QXJlYU9iamVjdCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCiBBWEF0dHJpYnV0ZUNhY2hl
RW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCiAg
ICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li43OTg3Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZpbmUgQVhPYmplY3RDYWNoZV9oCiAK
KyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgpA
QCAtMTg5LDEyICsxOTAsMTggQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihO
b2RlKiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlw
ZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0g
VGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51
bSBBWFRleHRDaGFuZ2UgewotICAgICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0
RGVsZXRlZCwKLSAgICB9OworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0
U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KTsKIAotICAgIHZvaWQgbm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmKTsKKyAgICAvLyBTaW1wbGUgdGV4dCB2YWx1ZSBjaGFuZ2UKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICAvLyBDb21w
b3VuZCB0ZXh0IHZhbHVlIGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgLy8gU2VsZWN0aW9u
IGNoYW5nZQorICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAg
IGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjEz
LDEyICsyMjAsNDQgQEAgcHVibGljOgogICAgIEFYQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNo
ZSogY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSgpIHsgcmV0dXJuIG1fY29tcHV0ZWRPYmpl
Y3RBdHRyaWJ1dGVDYWNoZS5nZXQoKTsgfQogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQotICAgIAorCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
ICFQTEFURk9STShJT1MpCisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgZW51bSBBWFRleHRDaGFuZ2UgeworICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKKyAgICAgICAgQVhUZXh0RGVsZXRlZCwKKyAgICB9OworICAg
IEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlQ3V0OgorICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAg
cmV0dXJuIEFYVGV4dERlbGV0ZWQ7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgICAgIHJldHVybiBBWFRleHRJbnNlcnRlZDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7CisgICAgfQorICAgIHZvaWQgbm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hh
bmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVM
b2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhM
b2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCop
OwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsyNjgsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRN
YXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAg
ICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsK
ICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsK
QEAgLTI0NCw2ICsyODUsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBv
c3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0
PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3Rp
ZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBt
X3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7
CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5k
bGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyOTcsMTAgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50
KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5
T2JqZWN0Kik7CisKKyAgICBib29sIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFi
bGVyCkBAIC0zMDgsOCArMzU4LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxl
U2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQq
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5k
ZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVk
VG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50Kiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRp
b24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0
VHlwZSkgeyB9CkBAIC0zMjAsNiArMzcxLDEzIEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnJlbW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lk
Z2V0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVj
dGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQorI2Vsc2UKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5n
ZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiAjZW5kaWYKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUlu
dGVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUlu
dGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzI2NGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKyNk
ZWZpbmUgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCitlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93biwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kCit9OworCitlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICBBWFRleHRFZGl0
VHlwZVVua25vd24sCisgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBk
ZWxldGUKKyAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAor
ICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgIEFYVGV4
dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgIEFYVGV4dEVk
aXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8g
SW5zZXJ0IHZpYSBQYXN0ZQorfTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gewor
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAg
ICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0LAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMK
K307CisKK2VudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlciwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxs
IGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xl
IGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21l
IG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVu
dCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorfTsK
Kworc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
IGRpcmVjdGlvbjsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eTsK
K307CisKK3N0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIHR5cGU7CisgICAgdW5pb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2Vs
ZWN0aW9uOworICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgfTsKKyAgICBib29s
IGlzU3luY2hyb25pemluZyB7IGZhbHNlIH07CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25v
d24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAg
ICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICB7IH0K
KworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAg
ICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICwgY2hhbmdl
KGNoYW5nZSkKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIGlzU3luY2hyb25pemluZykKKyAgICAgICAgOiB0eXBl
KHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKCkKKyAgICAgICAgLCBpc1N5bmNocm9uaXppbmco
aXNTeW5jaHJvbml6aW5nKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi4yMDAzYjNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1l
bnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQo
KQoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVs
ZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1l
bnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8QWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKTsKKyAgICB9CisKKyAgICBFbGVtZW50KiBlbGVt
ZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIGlmICghaXM8SFRNTElucHV0RWxlbWVudD4o
KmVsZW1lbnQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRP
ckNyZWF0ZShlbGVtZW50KTsKKworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5v
ZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uYTgyYmQ4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
TmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVU
ZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3Jk
RmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uY2Iz
MzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAj
ZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAo
IW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRy
aWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxl
bWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICByZXR1cm4gaXM8SFRNTElu
cHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1l
bnQpLmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmlu
ZGV4IDM1ODZmMmEuLjgxNmMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
VGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJl
YSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li5mNjU1ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
QEAgLTE0ODgsMTQgKzE0ODgsMTcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFu
Z2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5n
dGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9y
ZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5z
ZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXIt
Pm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6
UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uu
c3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBET1dOU1RSRUFNKSk7CisgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3Ip
LCBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBv
c2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pOworICAgIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IG5ld0ludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVl
KTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBu
ZXdJbnRlbnQpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29u
c3QKQEAgLTE5NjAsMTMgKzE5NjMsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAg
ICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9j
dW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBw
b3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdl
LnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbklu
dGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
bW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAg
ICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihy
YW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+
ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAt
NDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlw
ZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
d2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2Jq
ZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgp
OyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xs
YmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVj
dENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw4ICs5
NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZv
aWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQs
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhW
YWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVM
b2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZy
YW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAw
ZTc3Li40NmNlNjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3Jl
YXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5
cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBA
IkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2li
aWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0
aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0
TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2Vy
IEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3Rl
ZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5l
Z2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlz
IGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBs
aW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8g
aHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBOU1VJbnRlZ2VyIGNvbnN0IE5TQWNjZXNzaWJpbGl0
eVZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCA9IDEwMDA7CisKIC8vIFRoZSBzaW1wbGUgQ29j
b2EgY2FsbHMgaW4gdGhpcyBmaWxlIGRvbid0IHRocm93IGV4Y2VwdGlvbnMuCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTYwLDYgKzEwNywxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFj
aFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQogICAgIG9iai0+c2V0V3JhcHBlcih3
cmFwcGVyLmdldCgpKTsKIH0KIAorc3RhdGljIEJPT0wgYXhTaG91bGRSZXBvc3ROb3RpZmljYXRp
b25zRm9yVGVzdHMgPSBmYWxzZTsKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCit7CisgICAgYXhTaG91bGRSZXBvc3RO
b3RpZmljYXRpb25zRm9yVGVzdHMgPSB2YWx1ZTsKK30KK3N0YXRpYyB2b2lkIEFYUG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24sIGlk
IHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1wbGlm
eSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBzaW1w
bGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVyZSB0
byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdlZW4g
V2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNrCisg
ICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkKKyAg
ICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlv
biB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24g
bm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMDksMTM4IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFj
Y2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53cmFw
cGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8ga25v
dyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkgYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAgQVhQ
b3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRp
b24sIG5pbCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24pCiB7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGlj
dGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAo
aW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICB1
c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50
LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAg
ICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBp
ZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5n
ZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlv
bjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5n
ZTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVy
OworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7Cisg
ICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNB
Y2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJl
cGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFY
VGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3Ry
aW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07Cisg
ICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIGlm
IChsZW5ndGggPiBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGgpIHsK
KyAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF0gPSBA
KGxlbmd0aCk7CisgICAgICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4Ok5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aF07CisgICAgfQorICAgIGNoYW5nZVtO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24u
aXNOb3ROdWxsKCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqZWN0LT53cmFw
cGVyKCkgdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAg
ICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4
dE1hcmtlcjsKKyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBp
ZiAoIW9iamVjdCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICgh
b2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011
dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNo
YW5nZVR5cGVFZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBs
YWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFu
Z2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKwor
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworICAgIEFY
UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIEFYUG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5
VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVh
c2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBl
IGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUg
aW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9
IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOwor
CisgICAgTlNNdXRhYmxlQXJyYXkgKmNoYW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBp
bml0V2l0aENhcGFjaXR5OjJdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRS
ZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRU
ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAg
IGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkob2JqZWN0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAg
ICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlc10gPSBjaGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOwor
CisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgdXNlcklu
Zm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworCisgICAgTlNBY2Nl
c3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCks
IE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAg
IC8vIFVzZWQgYnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisg
ICAgW3dlYkFyZWEtPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5T
QWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107
CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVj
dC0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVz
ZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBh
cmUgcG9zdGVkLgorICAgIFtvYmplY3QtPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5m
bzp1c2VySW5mb107CisKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CiB9CiAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oCmluZGV4IDVlMDZjMzUuLmI5MzQx
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oCkBAIC01Niw4ICs1
Niw5IEBAIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIC0gKE5TU3RyaW5nICopYXJpYUxhbmRtYXJr
Um9sZURlc2NyaXB0aW9uOwogCiAtIChpZClhdHRhY2htZW50VmlldzsKLS8vIFVzZWQgdG8gaW5m
b3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2Vk
IGJ5IERSVC4KKy8vIFVzZWQgdG8gaW5mb3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlv
biBpcyBwb3N0ZWQgZm9yIGl0LiBVc2VkIGJ5IHRlc3RzLgogLSAodm9pZClhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWU7CistICh2b2lk
KWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9u
TmFtZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm87CiAKIC0gKENHUGF0aFJlZilj
b252ZXJ0UGF0aFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6OlBhdGggJilwYXRoOwogLSAoQ0dQb2lu
dCljb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpGbG9hdFBvaW50ICYpcG9pbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KaW5kZXggNWRkZmMzYS4u
ODcxMGRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQpAQCAt
MzgzLDEzICszODMsNjkgQEAgc3RhdGljIEJPT0wgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5v
dGlmaWNhdGlvbnM7CiArICh2b2lkKWFjY2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmlj
YXRpb25zOihCT09MKXJlcG9zdAogewogICAgIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3Rp
ZmljYXRpb25zID0gcmVwb3N0OworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9T
KQorICAgIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0
cyhyZXBvc3QpOworI2VuZGlmCiB9CiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlm
aWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2li
aWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmls
aXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30K
Kworc3RhdGljIE5TQXJyYXkgKmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJy
YXkpCit7CisgICAgQVNTRVJUKFthcnJheSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0p
OworICAgIE5TTXV0YWJsZUFycmF5ICptdXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHld
OworICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IFttdXRhYmxlQXJyYXkgY291bnRdOykg
eworICAgICAgICBpZCB2YWx1ZSA9IG11dGFibGVBcnJheVtpXTsKKyAgICAgICAgaWYgKFt2YWx1
ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRh
YmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aSB3aXRoT2JqZWN0OmRpY3Rpb25hcnlSZW1v
dmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5k
T2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBs
YWNlT2JqZWN0QXRJbmRleDppIHdpdGhPYmplY3Q6YXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2
YWx1ZSldOworICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmlu
ZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkgewor
ICAgICAgICAgICAgW211dGFibGVBcnJheSByZW1vdmVPYmplY3RBdEluZGV4OmldOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaSsrOworICAgIH0KKyAgICByZXR1
cm4gW211dGFibGVBcnJheSBhdXRvcmVsZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkg
KmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyhOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkp
Cit7CisgICAgQVNTRVJUKFtkaWN0aW9uYXJ5IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBj
bGFzc11dKTsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtk
aWN0aW9uYXJ5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZGljdGlv
bmFyeSkgeworICAgICAgICBpZCB2YWx1ZSA9IGRpY3Rpb25hcnlba2V5XTsKKyAgICAgICAgaWYg
KFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAg
IG11dGFibGVEaWN0aW9uYXJ5W2tleV0gPSBkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMo
dmFsdWUpOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBj
bGFzc11dKQorICAgICAgICAgICAgbXV0YWJsZURpY3Rpb25hcnlba2V5XSA9IGFycmF5UmVtb3Zp
bmdOb25KU09OVHlwZXModmFsdWUpOworICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJl
ciBjbGFzc11dKSkKKyAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RG
b3JLZXk6a2V5XTsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVs
ZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNT
dHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5m
bworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewot
ICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5
V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIs
IG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9z
dE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlcklu
Zm86dXNlckluZm9dOworICAgICAgICBBU1NFUlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAg
IE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAg
ICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFX
aXRoSlNPTk9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModXNlckluZm8pIG9w
dGlvbnM6KE5TSlNPTldyaXRpbmdPcHRpb25zKTAgZXJyb3I6bmlsXTsKKyAgICAgICAgICAgIGlm
ICh1c2VySW5mb0RhdGEpIHsKKyAgICAgICAgICAgICAgICBOU1N0cmluZyAqdXNlckluZm9TdHJp
bmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6dXNlckluZm9EYXRhIGVuY29kaW5n
Ok5TVVRGOFN0cmluZ0VuY29kaW5nXTsKKyAgICAgICAgICAgICAgICBpZiAodXNlckluZm9TdHJp
bmcpCisgICAgICAgICAgICAgICAgICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBu
b3RpZmljYXRpb25OYW1lLCBAInVzZXJJbmZvIiA6IHVzZXJJbmZvU3RyaW5nfTsKKyAgICAgICAg
ICAgICAgICBbdXNlckluZm9TdHJpbmcgcmVsZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgaWYgKCFpbmZvKQorICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRp
b25OYW1lIiA6IG5vdGlmaWNhdGlvbk5hbWV9OworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRp
b24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRl
cmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlv
bnM6KFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihX
ZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFya2VyRm9y
VmlzaWJsZVBvc2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQ
b3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMWRl
YjRkYi4uM2JmNzk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkFwcGVuZE5vZGVDb21tYW5kLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCwxNyArNDYsMjYgQEAgQXBw
ZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQoIW1fbm9kZS0+cGFyZW50Tm9kZSgpKTsK
IAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+
cmVuZGVyZXIoKSk7CisgICAgc2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZUluc2VydCk7
CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5v
ZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQorc3RhdGlj
IHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhU
ZXh0RWRpdFR5cGUgdHlwZSkKIHsKLSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZh
bHVlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIUFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIg
bGluZWJyZWFrcyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJcbiIpCisg
ICAgaWYgKHRleHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0g
ICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdl
LCAwLCBub2RlVmFsdWUpOworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9z
aXRpb24gPSBpczxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAw
KSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUt
PnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJs
ZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKQEAgLTY0LDE4ICs3NSwxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpk
b0FwcGx5KCkKIAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9S
RV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRD
aGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsK
IH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1f
cGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisK
ICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUg
dGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAg
ICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3Jp
bmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9u
b2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLjY3MWE5NTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBA
IC01OCw2ICs1OCw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKKyNpbmNs
dWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTE2Miw2ICsxNjQsMTMgQEAgdm9pZCBFZGl0
Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9k
ZXMpCiB9CiAjZW5kaWYKIAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6
dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBpZiAoIW1fY29tbWFuZHMuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gbV9jb21tYW5kcy5sYXN0KCktPnVuYXBwbHlFZGl0VHlwZSgpOworICAgIHJl
dHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NS
ZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBw
bHkoKTsKQEAgLTMyMCw5ICszMjksMzAgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNS
ZW1vdmFibGVCbG9jayhjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
c3RhdGljIHZvaWQgc2V0Q29tbWFuZEFwcGx5RWRpdFR5cGVGb3JFZGl0aW5nQWN0aW9uKFNpbXBs
ZUVkaXRDb21tYW5kICpjb21tYW5kLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCit7CisgICAg
aWYgKCFjb21tYW5kKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9u
KSB7CisgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgorICAgICAgICBjb21tYW5kLT5zZXRB
cHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIGNvbW1hbmQtPnNldEFwcGx5RWRpdFR5
cGUoQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRWRpdEFj
dGlvblR5cGluZzoKKyAgICAgICAgY29tbWFuZC0+c2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0
VHlwZVR5cGluZyk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFr
OworICAgIH0KK30KKwogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9y
ZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxk
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2Vy
dENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOwor
ICAgIHNldENvbW1hbmRBcHBseUVkaXRUeXBlRm9yRWRpdGluZ0FjdGlvbihjb21tYW5kLmdldCgp
LCBlZGl0aW5nQWN0aW9uKCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQp
OwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTM3
Myw3ICs0MDMsOSBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFz
c1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6YXBwZW5kTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50KQogewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0
aW5nKHBhcmVudC5nZXQoKSkpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5v
ZGVDb21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlKSk7CisgICAgUmVmUHRyPEFwcGVuZE5vZGVD
b21tYW5kPiBjb21tYW5kID0gQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUp
OworICAgIHNldENvbW1hbmRBcHBseUVkaXRUeXBlRm9yRWRpdGluZ0FjdGlvbihjb21tYW5kLmdl
dCgpLCBlZGl0aW5nQWN0aW9uKCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1h
bmQpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFu
Z2UoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAg
LTM5Nyw3ICs0MjksNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBh
c3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKFBhc3NSZWZQdHI8Tm9k
ZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpjcmVhdGUobm9kZSwgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQog
CiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMo
UGFzc1JlZlB0cjxOb2RlPiBub2RlKQpAQCAtNTI0LDIxICs1NTYsMzEgQEAgdm9pZCBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9O
b2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQpCiB7Ci0gICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgdGV4dCkpOworICAgIGlmICghdGV4dC5pc0VtcHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KTsKKyAgICAgICAgc2V0Q29tbWFuZEFwcGx5
RWRpdFR5cGVGb3JFZGl0aW5nQWN0aW9uKGNvbW1hbmQuZ2V0KCksIGVkaXRpbmdBY3Rpb24oKSk7
CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQpOworICAgIH0KIH0KIAog
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9k
ZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
PiBjb21tYW5kID0gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgY291bnQpOworICAgIGlmIChlZGl0aW5nQWN0aW9uKCkgPT0gRWRpdEFjdGlvbkN1dCkKKyAg
ICAgICAgY29tbWFuZC0+c2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZUN1dCk7CisgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRl
eHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgY291bnQpKTsKLSAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0
ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgIFJlZlB0cjxEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShkZWxldGVDb21tYW5kKTsKKyAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgUmVmUHRyPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
PiBjb21tYW5kID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSk7
CisgICAgICAgIHNldENvbW1hbmRBcHBseUVkaXRUeXBlRm9yRWRpdGluZ0FjdGlvbihjb21tYW5k
LmdldCgpLCBlZGl0aW5nQWN0aW9uKCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShjb21tYW5kKTsKKyAgICB9CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpy
ZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTE1MjMsNCAr
MTU2NSwxMSBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVt
ZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dChiclRhZywgZmFsc2UpOwogfQogCitBWFRleHRFZGl0VHlwZSBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgaWYgKCFtX2NvbW1hbmRzLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIG1fY29tbWFuZHMubGFzdCgpLT5hcHBseUVkaXRUeXBlKCk7CisgICAgcmV0
dXJuIEVkaXRDb21tYW5kOjphcHBseUVkaXRUeXBlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApp
bmRleCBjMmI0ODlkLi42NThlNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHls
ZTsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTU5LDYgKzYw
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUo
KTsKKwogcHJpdmF0ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKQEAgLTg3LDYgKzkwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGlj
YXRvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRhaW5BdXRvY29ycmVj
dGlvbkluZGljYXRvcihib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0Qmxp
bmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQVhUZXh0RWRpdFR5
cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQg
Q29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmZhOWY0MmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCisK
KyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdGlu
Z1N0eWxlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1
dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxl
dGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2Fu
aXRpemVNYXJrdXApCisgICAgOiBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFy
dERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkKK3sKK30KKworRWRpdEFjdGlvbiBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRWRp
dEFjdGlvbkN1dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0N1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjdlYjlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DdXREZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTAsMCArMSw0
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaAorI2RlZmluZSBDdXREZWxldGVTZWxlY3Rp
b25Db21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVi
bGljIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8Q3V0
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBz
bWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBi
b29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxz
ZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBDdXREZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0
ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBDdXREZWxldGVT
ZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzLCBib29sIHNhbnRpemVNYXJrdXApOworCisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEN1dERlbGV0ZVNlbGVjdGlvbkNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVh
OTZkNS4uYzU4OGYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCkBAIC00Myw2ICs0NSwxMiBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAg
IEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VSVChtX29mZnNldCA8PSBtX25vZGUtPmxlbmd0aCgp
KTsKICAgICBBU1NFUlQobV9vZmZzZXQgKyBtX2NvdW50IDw9IG1fbm9kZS0+bGVuZ3RoKCkpOwor
ICAgIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGVEZWxldGUpOworfQorCitTdHJpbmcm
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4g
bV90ZXh0OwogfQogCiB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpA
QCAtNTgsOCArNjYsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZv
cmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpB
WFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBv
c2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0
ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzgxLDggQEAgdm9pZCBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNl
cnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgp
LCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwog
fQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li4yNmQ5ZDFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAy
MDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCiAKKyNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOSArNDAsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwg
Y291bnQpKTsKICAgICB9CiAKLXByaXZhdGU6CisgICAgU3RyaW5nJiBkZWxldGVkVGV4dCgpOwor
Citwcm90ZWN0ZWQ6CiAgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKIAorcHJpdmF0ZToKKwogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5h
cHBseSgpIG92ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uNDlmMDBkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC04
ODYsMTAgKzg4Niw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAK
IEVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0
CiB7Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2Vk
IHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhh
dCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdB
Y3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBU
eXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25E
ZWxldGU7CiB9CiAKIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5
cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4u
ZDUzZTQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRGljdGF0aW9uQ29tbWFuZC5oIgogCiAjaW5j
bHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRpY3RhdGlvbklu
c2VydFRleHRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMTE1LDcgKzEx
Niw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5l
cyhzaXplX3QgbGluZVN0YXJ0LCBzaXplX3QgbGluCiB7CiAgICAgVmVjdG9yPERpY3RhdGlvbkFs
dGVybmF0aXZlPiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAgICAgY29sbGVjdERpY3RhdGlvbkFsdGVy
bmF0aXZlc0luUmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVuZ3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUp
OwotICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21t
YW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQu
c3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVy
OjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CisgICAgUmVmUHRyPEluc2VydFRleHRDb21t
YW5kPiBjb21tYW5kID0gRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJr
ZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0
LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2
ZXNJbkxpbmUpKTsKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdT
ZWxlY3Rpb24oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNTFiNDY0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEaWN0YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oIgorCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZDo6RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVy
PiBtYXJrZXJTdXBwbGllcikKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBtYXJrZXJTdXBwbGllcikKK3sKK30KKworRWRpdEFjdGlvbiBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEVkaXRBY3Rpb25E
aWN0YXRpb247Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGlj
dGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0
aW9uSW5zZXJ0VGV4dENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xNWI2MDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEaWN0YXRpb25JbnNlcnRU
ZXh0Q29tbWFuZF9oCisjZGVmaW5lIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kX2gKKworI2lu
Y2x1ZGUgIkluc2VydFRleHRDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0VGV4dENvbW1hbmQg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGljdGF0aW9uSW5zZXJ0VGV4dENvbW1hbmQ+IGNy
ZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBs
aWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uSW5zZXJ0
VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIERpY3RhdGlvbkluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKKworICAg
IHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEaWN0YXRpb25JbnNlcnRUZXh0
Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1
MzIuLmE0Mjc5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQu
aCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0
Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBA
IC0xMTIsNiArMTEzLDI4IEBAIHZvaWQgRWRpdENvbW1hbmQ6OnNldFBhcmVudChDb21wb3NpdGVF
ZGl0Q29tbWFuZCogcGFyZW50KQogICAgIH0KIH0KIAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1h
bmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247
Cit9CisKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQorewor
ICAgIHN3aXRjaCAoYXBwbHlFZGl0VHlwZSgpKSB7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVu
a25vd246CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247CisgICAgY2FzZSBB
WFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAg
ICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUlu
c2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICBy
ZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0
VHlwZVVua25vd247Cit9CisKIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmRvUmVhcHBseSgpCiB7
CiAgICAgZG9BcHBseSgpOwpAQCAtMTI1LDQgKzE0OCwyNCBAQCB2b2lkIFNpbXBsZUVkaXRDb21t
YW5kOjphZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSogc3RhcnROb2RlLCBIYXNoU2V0PE5vZGUq
PiYgbgogfQogI2VuZGlmCiAKK0FYVGV4dEVkaXRUeXBlIFNpbXBsZUVkaXRDb21tYW5kOjphcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICByZXR1cm4gbV9hcHBseUVkaXRUeXBlOworfQorCit2b2lkIFNp
bXBsZUVkaXRDb21tYW5kOjpzZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUpCit7CisgICAgbV9hcHBseUVkaXRUeXBlID0gYXBwbHlFZGl0VHlwZTsKK30KKwordm9p
ZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9k
ZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNh
Y2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4u
ZGQ3YjIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVk
ZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBAIC01OSw2ICs2MCw5IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisgICAgdmlydHVhbCBBWFRleHRFZGl0VHlw
ZSBhcHBseUVkaXRUeXBlKCk7CisgICAgQVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7
CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAg
IEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKTsKQEAgLTkwLDYgKzk0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpID0gMDsKICNlbmRpZgogCisg
ICAgdmlydHVhbCBBWFRleHRFZGl0VHlwZSBhcHBseUVkaXRUeXBlKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKTsKKwogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkgOiBFZGl0Q29t
bWFuZChkb2N1bWVudCkgeyB9CiAKQEAgLTk3LDggKzEwNCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5k
aWYKIAorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShO
b2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIEFYVGV4dEVkaXRUeXBlIG1fYXBw
bHlFZGl0VHlwZSB7IEFYVGV4dEVkaXRUeXBlVW5rbm93biB9OwogfTsKIAogaW5saW5lIFNpbXBs
ZUVkaXRDb21tYW5kKiB0b1NpbXBsZUVkaXRDb21tYW5kKEVkaXRDb21tYW5kKiBjb21tYW5kKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCmluZGV4IGRjM2FlMzMu
LjM5NmE5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAK
QEAgLTMyLDEwICszMiwxMiBAQAogI2luY2x1ZGUgPEJyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3Bw
PgogI2luY2x1ZGUgPENvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxDcmVhdGVM
aW5rQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8Q3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+
CiAjaW5jbHVkZSA8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8RGljdGF0aW9uQWx0ZXJuYXRpdmUu
Y3BwPgogI2luY2x1ZGUgPERpY3RhdGlvbkNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPERpY3RhdGlv
bkluc2VydFRleHRDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxFZGl0Q29tbWFuZC5jcHA+CiAjaW5j
bHVkZSA8RWRpdGluZ1N0eWxlLmNwcD4KICNpbmNsdWRlIDxFZGl0b3IuY3BwPgpAQCAtNTksNiAr
NjEsOCBAQAogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQ
b3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNp
bmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5k
LmNwcD4KQEAgLTc3LDYgKzgxLDcgQEAKICNpbmNsdWRlIDxUZXh0SW5zZXJ0aW9uQmFzZUNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFRleHRJdGVyYXRvci5jcHA+CiAjaW5jbHVkZSA8VHlwaW5nQ29t
bWFuZC5jcHA+CisjaW5jbHVkZSA8VHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuY3BwPgogI2luY2x1
ZGUgPFVubGlua0NvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFZpc2libGVQb3NpdGlvbi5jcHA+CiAj
aW5jbHVkZSA8VmlzaWJsZVNlbGVjdGlvbi5jcHA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
aW5kZXggNzEwYWEzOS4uZmYwZjAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAt
MzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29t
cG9zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCisjaW5jbHVk
ZSAiQ3V0RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIkRhdGFUcmFuc2Zlci5o
IgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEaWN0YXRp
b25BbHRlcm5hdGl2ZS5oIgpAQCAtMzc0LDEyICszNzUsMTUgQEAgYm9vbCBFZGl0b3I6OmRlbGV0
ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFy
aXR5IGcKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBFZGl0b3I6OmRlbGV0ZVNlbGVjdGlv
bldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKQordm9pZCBFZGl0b3I6OmRlbGV0ZVNl
bGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24pCiB7CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuaXNOb25lKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUpKTsKKyAgICBpZiAoZWRpdGluZ0FjdGlvbiA9
PSBFZGl0QWN0aW9uQ3V0KQorICAgICAgICBhcHBseUNvbW1hbmQoQ3V0RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgZWxzZQorICAg
ICAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIHNtYXJ0RGVsZXRlKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtMTAw
MSw3ICsxMDA1LDcgQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29t
cG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcg
c3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxz
ZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0
aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9u
OjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KGNtZC0+YXBw
bHlFZGl0VHlwZSgpKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRz
KGNvbXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY29tcG9zaXRpb24t
PmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lm
U2NoZWR1bGVkKCk7CkBAIC0xMDMyLDcgKzEwMzYsNyBAQCB2b2lkIEVkaXRvcjo6dW5hcHBsaWVk
RWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAgICBub3Rp
ZnlUZXh0RnJvbUNvbnRyb2xzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNt
ZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIFZpc2libGVTZWxlY3Rpb24g
bmV3U2VsZWN0aW9uKGNtZC0+c3RhcnRpbmdTZWxlY3Rpb24oKSk7Ci0gICAgY2hhbmdlU2VsZWN0
aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKCkpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudChjbWQtPnVuYXBwbHlFZGl0VHlwZSgpKSk7CiAgICAgZGlz
cGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFi
bGVFbGVtZW50KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVw
ZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjYsNyArMTI3MCw3IEBAIHZvaWQg
RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAK
ICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0g
Q3V0QWN0aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21h
cnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0
b3I6OnBhc3RlKCkKQEAgLTI4NTAsNyArMjg1NCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29y
cmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIt
PmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQog
Ci12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNl
bGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQog
ewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVw
ZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhh
bigpIHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg2Miw3ICsyODY2LDcg
QEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5
MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9y
IHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25E
aWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlv
bigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlv
biB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rp
b24pKQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3Bl
cmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBp
dHMgcG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3Ug
cHJlc3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li44NzYzN2QyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rp
b24sIFRleHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUo
Ym9vbCBzbWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rp
b25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHls
ZXMoKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU2V0Q29tcG9zaXRp
b25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9OwogICAgIHZv
aWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9zaXRpb25Nb2RlKTsKIAot
ICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMpOwor
ICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMsIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAg
ICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFjdGlvbiB9Owog
ICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggNTExY2IwMi4uM2Q2NmFlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xOTIsNyArMTky
LDkgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUFwcGx5UGFyYWdyYXBoU3R5bGUoRnJhbWUmIGZyYW1l
LCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwKIHN0YXRpYyBib29sIGV4ZWN1dGVJbnNlcnRG
cmFnbWVudChGcmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21l
bnQpCiB7CiAgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwotICAgIGFwcGx5Q29tbWFuZChS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBmcmFnbWVu
dCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBFZGl0QWN0aW9uVW5z
cGVjaWZpZWQpKTsKKyAgICBSZWZQdHI8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNvbW1hbmQg
PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBmcmFn
bWVudCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBFZGl0QWN0aW9u
VW5zcGVjaWZpZWQpOworICAgIGNvbW1hbmQtPnNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5
cGVJbnNlcnQpOworICAgIGFwcGx5Q29tbWFuZChjb21tYW5kKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA1NzQ1
MTcwLi44YjFjOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cApAQCAtMTM5LDcgKzEzOSw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290RWRpdGFi
bGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6
bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJp
Z2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewogICAgIHNldFNlbGVjdGlvbihW
aXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQo
KSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAg
IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAg
ICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBkZWZhdWx0U2V0
U2VsZWN0aW9uSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92
ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICZl
eHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCkBAIC0xNzAsNyArMTcwLDggQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRp
b24mIGJhc2UsIGNvbnN0IFBvc2l0aW8KICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlv
bjsKICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlkYXRpb24oYmFzZSwgZXh0ZW50KTsK
ICAgICBuZXdTZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25hbChzZWxlY3Rpb25IYXNEaXJlY3Rpb24p
OwotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cykpOworICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1
b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24gfSk7CisgICAgc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRT
ZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSwgaW50ZW50KTsKIH0KIAogdm9pZCBEcmFnQ2Fy
ZXRDb250cm9sbGVyOjpzZXRDYXJldFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCkBAIC0yNTQsNyArMjU1LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBwYXNzCiAgICAg
aWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAhc2hvdWxkQ2hhbmdlU2VsZWN0aW9u
KG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQs
IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOworICAgIAorICAgIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAobmV3U2VsZWN0aW9uLmlzQ2FyZXQo
KSkKKyAgICAgICAgICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5r
bm93biB9KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29y
T25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg2LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0
aW8KICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9u
LmJhc2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVj
dGlvbkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAg
IGlmIChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50
ICE9IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25G
cmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxp
Z24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2Vs
ZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgZGVmYXVsdFNldFNl
bGVjdGlvbkludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8v
IEl0J3MgcG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMg
RnJhbWVTZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBz
ZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNl
bGVjdGlvbiBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUg
ZnJhbWUgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVh
ciBvdXIgc2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMzMCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVj
dGlvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlv
bnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRl
eHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhv
dXRVcGRhdGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJp
dHkpKQogICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzUxLDcgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0
U2VsZWN0aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAg
ICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBk
YXRlU2VsZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYw
LDcgKzM3MCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRl
KCkKICAgICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7
CiAgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAg
LTM4MCw3ICszOTAsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oKQogICAgICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQp
OwogICAgIH0KIAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsK
KyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiAKICAg
ICBpZiAoYXV0byogY2xpZW50ID0gbV9mcmFtZS0+ZWRpdG9yKCkuY2xpZW50KCkpCiAgICAgICAg
IGNsaWVudC0+ZGlkQ2hhbmdlU2VsZWN0aW9uQW5kVXBkYXRlTGF5b3V0KCk7CkBAIC0xMDIxLDcg
KzEwMzEsODAgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdC
YWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRh
cnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0
eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwg
Z3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCitBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rp
b246OlRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOwor
ICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6
QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBpZiAoaXNSYW5nZSgpKSB7CisgICAgICAgICAg
ICBpZiAoZGlyZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEwpCisgICAgICAgICAgICAgICAgZmxp
cCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxh
cml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
cjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdv
cmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBj
YXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJp
dHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToK
KyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdy
YW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50
Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Ym9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBj
YXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAg
IGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAg
ICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0
eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2Ug
TGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1
bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6
CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAg
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNh
c2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgog
CiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlv
bkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJU
cmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE2MCwxMSBAQCBib29sIEZy
YW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlv
biBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVy
YXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAg
ICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFs
dGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0
aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9u
LgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0
byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlv
biB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAg
LTE3MTAsOCArMTc5OCwxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAg
ICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0
aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7Cisg
ICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2Nv
bnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIH0pOworICAgICAgICBzZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmly
ZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBj
bG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUxMyw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVT
ZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlz
CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNl
bGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRH
cmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVl
ZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwg
ZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhm
cmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3Mo
ZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjA1NmQyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVT
ZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWE9iamVj
dENhY2hlLmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTEzMSw2ICsxMzIsMTEgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgcmV0dXJuIENsb3NlVHlwaW5nIHwgQ2xlYXJUeXBpbmdTdHlsZSB8ICh1
c2VyVHJpZ2dlcmVkID8gKFJldmVhbFNlbGVjdGlvbiB8IEZpcmVTZWxlY3RFdmVudCkgOiAwKTsK
ICAgICB9CisgICAgCisgICAgc3RhdGljIGlubGluZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBk
ZWZhdWx0U2V0U2VsZWN0aW9uSW50ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IEZyYW1lU2VsZWN0aW9uKEZyYW1lKiA9IG51bGxwdHIpOwogCkBAIC0xNDQsNyArMTUwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24m
LCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3Vs
ZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxh
cml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IGRlZmF1bHRTZXRTZWxlY3Rpb25JbnRl
bnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwg
VGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5
cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjc4LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsK
IAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlv
bigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzMwNCwxMCBAQCBwcml2YXRlOgog
ICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0
aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRp
cmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBkZWZhdWx0U2V0U2Vs
ZWN0aW9uSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoQVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9p
ZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9s
KEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICszNzQsNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQog
CiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwp
KQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdlLi41MzY1
ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBAIC00OCw2ICs0OSwxMiBA
QCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX25vZGUpOwogICAgIEFTU0VS
VChtX29mZnNldCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKICAgICBBU1NFUlQoIW1fdGV4dC5pc0Vt
cHR5KCkpOworICAgIHNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGVJbnNlcnQpOworfQor
CitTdHJpbmcmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCgpCit7Cisg
ICAgcmV0dXJuIG1fdGV4dDsKIH0KIAogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpk
b0FwcGx5KCkKQEAgLTY2LDggKzczLDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04
NCw4ICs5MSw4IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJl
Zm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2li
bGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5k
ZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAppbmRleCAzMTBiYmIzLi4xYWQ5NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lm
bmRlZiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKICNkZWZpbmUgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZF9oCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWRp
dENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksOSArNDAsMTEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOwogICAgIH0KIAotcHJpdmF0ZToKKyAgICBTdHJpbmcm
IGluc2VydGVkVGV4dCgpOworcHJvdGVjdGVkOgogICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
dGV4dCk7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcAppbmRleCBkMTZiNWQ2Li5lNjZkMjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjYsOSArMjYsMTEgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIgog
Ci0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw2ICs0OCw3IEBAIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQCiAgICAgQVNTRVJUKG1fcmVmQ2hpbGQtPnBhcmVudE5vZGUo
KSk7CiAKICAgICBBU1NFUlQobV9yZWZDaGlsZC0+cGFyZW50Tm9kZSgpLT5oYXNFZGl0YWJsZVN0
eWxlKCkgfHwgIW1fcmVmQ2hpbGQtPnBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKSk7CisgICAgc2V0
QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZUluc2VydCk7CiB9CiAKIHZvaWQgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNTcsOCArNjAsMTAgQEAgdm9pZCBJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZSht
X2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbiht
X2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9p
bnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4o
bV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2VydENo
aWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGls
ZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZh
bHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKQEAgLTY3LDggKzcyLDEwIEBAIHZvaWQg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0
ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1f
aW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+
KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRD
aGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hp
bGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSht
X2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9k
ZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikpOworICAgIH0KIAogICAgIG1faW5z
ZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaAppbmRleCBkNGI3NjJkLi45YTI1
NzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
X2gKICNkZWZpbmUgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTM4LDkgKzM5LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJl
Zm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKICAgICB9CiAKLXBy
aXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0
cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZv
cmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAorcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4
dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi5iZmExODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC01OSwxMCArNTksMTEgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4
dCwgbWFya2VyU3VwcGxpZXIpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0KLSAgICBJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRl
ZFRleHQsIFJlYmFsYW5jZVR5cGUpOworcHJvdGVjdGVkOgogICAgIEluc2VydFRleHRDb21tYW5k
KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25N
YXJrZXJTdXBwbGllcj4pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7CisK
K3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCmluZGV4IDJjMDYzYzAuLmVhMDZmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuY3BwCkBAIC0zMSwxMCArMzEsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKK1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2RlLT5k
b2N1bWVudCgpKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3Nob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQor
ICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fbm9k
ZSk7CiB9CkBAIC01NCw0ICs1NSw5IEBAIHZvaWQgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIHJlbW92ZU5vZGUobV9ub2RlLCBtX3Nob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIH0KIAorRWRpdEFjdGlvbiBSZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZWRpdGluZ0FjdGlvbjsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCmluZGV4
IDRiOTE5NzQuLjIyYzA0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKQEAgLTMyLDE4ICsz
MiwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICBzdGF0aWMgUmVm
PFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRp
bmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7
CisgICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKKyAgICBF
ZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NWE2MTM0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
dGV4dCwgb2Zmc2V0LCBjb3VudCkKK3sKK30KKwordm9pZCBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYTk4NTg3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKwor
Y2xhc3MgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291
bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5zaWduZWQpOworCitwcml2YXRl
OgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
IG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWEzYzdjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCkKKyAgICA6IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KQorICAgICwgbV9kZWxl
dGVkVGV4dChkZWxldGVkVGV4dCkKK3sKKyAgICBzZXRBcHBseUVkaXRUeXBlKEFYVGV4dEVkaXRU
eXBlSW5zZXJ0KTsKK30KKwordm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47
CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0
aW9uOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYVGV4
dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVBhc3RlOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhY2hlLT5w
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRl
LCBtX2RlbGV0ZWRUZXh0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNDJhYjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNk
ZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFRleHQ7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGlj
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBkZWxldGVkVGV4dCkp
OworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi4zMTczMWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5j
bHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFy
YXRpb24uaCIKKyNpbmNsdWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgpAQCAtNDcsNiArNDgsOCBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgog
I2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNs
dWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBD
b21tYW5kLmgiCiAjaW5jbHVkZSAiU21hcnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9w
ZXJ0aWVzLmgiCkBAIC0xNDMyLDYgKzE0MzUsMTYgQEAgRWRpdEFjdGlvbiBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZWRpdEFjdGlv
bjsKIH0KIAorQVhUZXh0RWRpdFR5cGUgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmFwcGx5RWRp
dFR5cGUoKQoreworICAgIHJldHVybiBtX2FwcGx5RWRpdFR5cGU7Cit9CisKK3ZvaWQgUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OnNldEFwcGx5RWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgYXBwbHlF
ZGl0VHlwZSkKK3sKKyAgICBtX2FwcGx5RWRpdFR5cGUgPSBhcHBseUVkaXRUeXBlOworfQorCiAv
LyBJZiB0aGUgdXNlciBpcyBpbnNlcnRpbmcgYSBsaXN0IGludG8gYW4gZXhpc3RpbmcgbGlzdCwg
aW5zdGVhZCBvZiBuZXN0aW5nIHRoZSBsaXN0LAogLy8gd2UgcHV0IHRoZSBsaXN0IGl0ZW1zIGlu
dG8gdGhlIGV4aXN0aW5nIGxpc3QuCiBOb2RlKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5z
ZXJ0QXNMaXN0SXRlbXMoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gcHJwTGlzdEVsZW1lbnQsIE5v
ZGUqIGluc2VydGlvbkJsb2NrLCBjb25zdCBQb3NpdGlvbiYgaW5zZXJ0UG9zLCBJbnNlcnRlZE5v
ZGVzJiBpbnNlcnRlZE5vZGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYuLjhjNGQxNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTUzLDYgKzUz
LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZChkb2N1bWVudCwgZnJhZ21lbnQsIG9wdGlvbnMsIGFjdGlvbikpOwogICAgIH0K
IAorICAgIHZpcnR1YWwgQVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2V0QXBwbHlFZGl0VHlwZShBWFRleHRFZGl0VHlwZSk7CisKIHByaXZhdGU6CiAg
ICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+LCBDb21tYW5kT3B0aW9ucywgRWRpdEFjdGlvbik7CiAKQEAgLTEyMSw2ICsxMjQs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcmV2ZW50TmVzdGluZzsKICAgICBib29sIG1fbW92
aW5nUGFyYWdyYXBoOwogICAgIEVkaXRBY3Rpb24gbV9lZGl0QWN0aW9uOworICAgIEFYVGV4dEVk
aXRUeXBlIG1fYXBwbHlFZGl0VHlwZSB7IEFYVGV4dEVkaXRUeXBlUGFzdGUgfTsKICAgICBib29s
IG1fc2FuaXRpemVGcmFnbWVudDsKICAgICBib29sIG1fc2hvdWxkTWVyZ2VFbmQ7CiAgICAgYm9v
bCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uOGMwZmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0NvbW1hbmQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTWF0aE1MRWxl
bWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0
b3IuaCIKKyNpbmNsdWRlICJUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlZp
c2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKQEAgLTM3Myw3ICszNzQs
NyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoY29uc3QgU3RyaW5nICZ0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCkKIAogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0
UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRl
ZFRleHQpCiB7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQs
CisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gVHlwaW5nSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCiAg
ICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRU
ZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNl
cnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOwogCiAgICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWM3MzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdJbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlR5cGluZ0luc2VydFRleHRDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1R5cGlu
Z0luc2VydFRleHRDb21tYW5kOjpUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFs
YW5jZVR5cGUgcmViYWxhbmNlVHlwZSkKKyAgICA6IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50
LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpCit7Cit9CisKK0VkaXRB
Y3Rpb24gVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAorewor
ICAgIHJldHVybiBFZGl0QWN0aW9uVHlwaW5nOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0luc2VydFRleHRDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOGVjYzJkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwaW5n
SW5zZXJ0VGV4dENvbW1hbmRfaAorI2RlZmluZSBUeXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCisK
KyNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFR5cGluZ0luc2VydFRleHRDb21tYW5kIDogcHVibGljIEluc2VydFRleHRDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFR5cGluZ0luc2VydFRleHRDb21tYW5kPiBjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5z
ZXJ0ZWRUZXh0ID0gZmFsc2UsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFsYW5j
ZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVHlwaW5nSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVj
dEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYsIGJvb2wsIFJl
YmFsYW5jZVR5cGUpOworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29u
c3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBU
eXBpbmdJbnNlcnRUZXh0Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0
ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uMzMyZTBhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgs
NyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi5mZDQxOTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcs
MTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0
KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFy
dCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9u
LnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhT
ZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAg
IGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0
KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uMzY4NGUyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwx
NiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4
dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VS
VChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAh
PSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFs
dWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFu
Z2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAh
aW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYm
ICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIo
KSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlm
aWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2
YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpbm5lclRleHQtPnNldElu
bmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgaWYgKHZhbHVl
LmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQogICAgICAgICAgICAgaW5u
ZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAg
ICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbih0aGlzLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwg
QVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhp
cywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRp
ZgogICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggYzhiZWU5ZS4uYmI0ZWVhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIxMCw3ICszMjEwLDggQEAg
c3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2Vs
ZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFY
VGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZWxlY3Rpb24uc2V0U2Vs
ZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5k
bGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdm
ZS4uZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAt
MzQwLDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgIGlmIChjYXJldEJy
b3dzaW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbkluT3JC
ZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwotICAgICAgICBpZiAoZnJh
bWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAg
ICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlVbmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZWxlbWVu
dC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTEzZDc5YS4uMjRiMDg0MyAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1
LTA0LTIwICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRp
b25zICgxNDI3MTkpCisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRp
b25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50
cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFu
ZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2gg
YXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3
ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFu
Z2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQg
YW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vz
c2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNv
bnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24u
IEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMu
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
IF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAg
ICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJl
Y2VpdmVkOl0pOgorCiAyMDE1LTA0LTE3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBOb3QgYWJsZSB0byBidWlsZCBXZWJLaXQgYWdhaW5zdCBpT1MgU2ltdWxh
dG9yIDguMyBTREsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCBhZGE2ODdhLi43YjAxN2Jh
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMTIsMTYgKzExMiwyNyBAQAogICAgIGlm
IChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0aW9u
IG9iamVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pTT05W
YWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25OYW1l
IGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJn
dW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc05v
dGlmaWNhdGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3Vt
ZW50ID0gbmlsOworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAg
ICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3Vz
ZXJJbmZvSlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKFttYWluRnJhbWUgZ2xv
YmFsQ29udGV4dF0sIGpzVXNlckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAo
bV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50
IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAg
SlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlm
aWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQs
IDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhl
IGVsZW1lbnQgYW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAg
IC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBh
bmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBh
cmd1bWVudHNbMF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50
c1sxXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFz
RnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlv
bkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8v
IEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFu
ZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFy
Z3VtZW50c1swXSA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dChbbm90aWZpY2F0aW9uIG9iamVjdF0pKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZp
Y2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pTT05W
YWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUg
Z2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJn
dW1lbnRzLCAwKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IDY1MWI1OTEuLjI4Y2EwM2YgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjUs
MTkgKzEyNSwzMCBAQAogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxl
bWVudCAhPSBbbm90aWZpY2F0aW9uIG9iamVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5T
U3RyaW5nICp1c2VySW5mb0pTT05WYWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJ
bmZvIl07CisKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdl
dE1haW5GcmFtZShXVFI6OkluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2Uo
KSk7CiAgICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlw
dENvbnRleHQobWFpbkZyYW1lKTsKIAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05v
dGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsK
ICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3Ry
aW5nKGNvbnRleHQsIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJ
bmZvSlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBs
ZW5ndGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNP
TlZhbHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAg
ICAgICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJp
bmcoY29udGV4dCwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmICht
X3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQg
anVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBK
U09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1f
bm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJn
dW1lbnQsIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdl
dHMgdGhlIGVsZW1lbnQgYW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisg
ICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24g
bmFtZSBhbmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAg
ICAgICBhcmd1bWVudHNbMF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFy
Z3VtZW50c1sxXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmlj
YXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmlj
YXRpb24gbmFtZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNd
OwogICAgICAgICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkpKTsK
ICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAg
ICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09i
amVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90
aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251475</attachid>
            <date>2015-04-23 13:17:11 -0700</date>
            <delta_ts>2015-04-23 13:56:21 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>216419</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDhhZjk2ZTcyNzFiOTE5Y2E4ZGU2ZGRkMmQ0NDI0MWVlZTRkYWIwMjEKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzYyMjA4Ny4uOGVmZWI1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNWR0ZpdFRvVmlld0Jv
eDo6dmlld0JveFRvVmlld1RyYW5zZm9ybSgpIGhhcyB0byBjb3VudCBmb3IgemVybyBwaHlzaWNh
bCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBjYWxsaW5nIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86
OmdldENUTSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmE2Zjgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIw
IEBACisgIAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8g
ZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVudHMgb2YgYW4gaW5wdXQgZmllbGQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBp
cyBBWFRleHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVsxXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUluc2VydAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdl
VmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIiAiCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBB
WFRleHRFZGl0VHlwZUluc2VydAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2Vy
aW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMGRlMzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9p
bnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGlucHV0IHR5cGU9InBhc3N3
b3JkIiBpZD0ic2VjdXJldmFsdWV0ZXN0Ij4KKworICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
dmFsdWV0ZXN0Ij4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCisg
ICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB2YWx1ZSBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVu
dHMgb2YgYW4gaW5wdXQgZmllbGQuIik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQgPSAxOworCisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7Cisg
ICAgICAgIHZhciBBWFRleHRFZGl0VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsg
MTsKKworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7Cisg
ICAgICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7Cisg
ICAgICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlcklu
Zm8pIHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikg
eworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNo
KHVzZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMikgeworCisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBl
SW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gUGFzc3dvcmQgbm90aWZpY2F0aW9u
cyB3aWxsIGJlIGluc2VydCBvbmx5IGFuZCB0aGUgdmFsdWUgc3RyaW5nIHdpbGwgYmUgd2hpdGVz
cGFjZQorICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIiBcIiIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHNldHZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVl
dGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0c2Vj
dXJldmFsdWUoKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJl
dmFsdWV0ZXN0IikudmFsdWUgPSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKworICAgICAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAg
ICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGls
ZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVh
LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgICAg
IHNldHZhbHVlKCk7CisKKyAgICAgICAgICAgIHNldHNlY3VyZXZhbHVlKCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGQyMmZmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTUgQEAKK29uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBz
aXguCisKK3NldmVuIGVpZ2h0IG5pbmUuCisKK1RoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBu
b3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZwor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHki
XSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjU3NTM3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMCww
ICsxLDIxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IHJv
bGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVl
PgorPHA+b25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC48L3A+Cis8cD5zZXZlbiBlaWdodCBu
aW5lLjwvcD4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKzxzY3JpcHQ+
CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNh
dGlvbnMgdXNlciBpbmZvIGRhdGEuIik7CisKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSA9IDI7CisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgKyAxOworCisgICAg
dmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZyArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzID0gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lID0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSArIDE7
CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoID0gQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCAr
IDI7CisKKyAgICB2YXIgZ3JhbiA9IFsiY2hhcmFjdGVyIiwgIndvcmQiLCAic2VudGVuY2UiLCAi
bGluZSIsICJwYXJhZ3JhcGgiLCAibGluZWJvdW5kYXJ5IiwgInNlbnRlbmNlYm91bmRhcnkiLCAi
cGFyYWdyYXBoYm91bmRhcnkiLCAiZG9jdW1lbnRib3VuZGFyeSJdOworICAgIHZhciB3ZWJBcmVh
ID0gMDsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciByZXN1bHRzID0gW107CisgICAgdmFy
IHJlc3VsdEluZGV4ID0gMDsKKyAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3Rp
ZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2Vs
ZWN0ZWRUZXh0Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBp
ZiAodXNlckluZm8pCisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAg
ICAgICAgICAgIGlmIChjb3VudCA9PSBncmFuLmxlbmd0aCAqIDQpIHsKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
ciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0g
MjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAgICAgd2ViQXJlYSA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAg
ICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlm
aWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAv
LyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgorICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKKyAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAg
Zm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3
YXJkIiwgZ3JhbltpXSk7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIs
IGdyYW5baV0pOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIHMubW9kaWZ5
KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICB9CisgICAgfQorCis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11
c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzkzYWFiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OSBAQAorMDIzNDU2Nzg5MAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1
c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRk
ZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUN1dAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0g
aXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVBhc3RlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMjM0NTY3ODkwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVl
Il0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVR5cGluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhZDM0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5o
dG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9k
eSI+CisKKyAgICA8ZGl2IHJvbGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNv
bnRlbnRlZGl0YWJsZT10cnVlPjAxMjM0NTY3ODkwPC9kaXY+CisKKyAgICA8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJu
b3RpZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEu
Iik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQgPSAxOworCisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0
VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlVHlwaW5nID0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgKyAxOworICAgICAgICB2YXIg
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gPSBBWFRleHRFZGl0VHlwZVR5cGluZyArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZUN1dCA9IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uICsgMQor
ICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVQYXN0ZSA9IEFYVGV4dEVkaXRUeXBlQ3V0ICsgMTsK
KworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAg
ICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAg
ICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlckluZm8p
IHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikgewor
ICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVz
ZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gNikgeworCisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlQ3V0Iik7CisKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VW
YWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlw
ZVwiXSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIyMzQ1Njc4OTBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIx
XCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0
RWRpdFR5cGVUeXBpbmciKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURl
bGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKwor
ICAgICAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50
LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdl
YkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAg
ICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAg
ICAgICAgdmFyIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwor
ICAgICAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgICAgICBleGVjU2V0U2VsZWN0
aW9uQ29tbWFuZCh0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25S
aWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgY3V0Q29tbWFuZCgpOworICAg
ICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0ZXJDb21tYW5kKCk7Cisg
ICAgICAgICAgICBwYXN0ZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oIjEiKTsKKyAgICAgICAgICAgIGRlbGV0ZUNvbW1hbmQoKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAzZGY5NGVmLi44Y2NjNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUxMSw2ICsxNTEx
LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0MjcwOWUuLmMx
MTFmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTMgQEAKKzIwMTUtMDQtMjIgIERvdWcgUnVz
c2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNo
YW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKKyAg
ICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2Vy
aW5mby5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6aXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcik6IERlbGV0ZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFz
c3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBv
c3ROb3RpZmljYXRpb25zRm9yVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZp
Y2F0aW9uV2l0aFVzZXJJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKCtbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOl0pOgor
ICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpdKToKKyAgICAgICAgKGFycmF5UmVtb3ZpbmdOb25KU09OVHlw
ZXMpOgorICAgICAgICAoZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246dXNlckluZm86XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpB
cHBlbmROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpB
cHBseVN0eWxlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlCbG9ja1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjph
cHBlbmROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVC
cmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUF0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OnNob3VsZFN0b3BDYXJldEJsaW5raW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVk
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFu
ZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdEFjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRDb21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OlNp
bXBsZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZDo6c2V0UGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGll
ZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUluc2VydEZyYWdtZW50KToKKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRT
ZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlm
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1Nl
bGVjdGlvblVwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdv
cmRTdGFydCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Oklu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToK
KyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGlu
Zy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAg
ICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRW
YWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1c0luRG9jdW1lbnRPcmRlcik6CisKIDIwMTUtMDQtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBPdmVyd3JpdGUgZXhpc3RpbmcgZmls
ZXMgd2l0aCBtb3ZlRmlsZS4KQEAgLTM4Niw2ICs1OTYsMjEgQEAKICAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpjb21wdXRlZExpbmVIZWlnaHQpOiBDbGFtcCBsaW5lLWhlaWdodCB0byBh
bgogICAgICAgICAgICAgaW50IHRvIGF2b2lkIG92ZXJmbG93LgogCisyMDE1LTA0LTE0ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEg
bWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBp
biBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFu
Z2VzLgorCisyMDE1LTA0LTE0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAg
TmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vz
c2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY29tbWl0IGlzIGFsbCBpbmZyYXN0cnVjdHVyZSBh
bmQgZG9lc24ndCBjb250YWluIGFueSBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIGNoYW5nZXMuCis+
Pj4+Pj4+IDxyZGFyOi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisKIDIwMTUtMDQtMTcgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91bGQgZ28gdGhyb3Vn
aCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggM2ViZTZiOS4uNjVhNTg1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CkBAIC0xNDc3Myw2ICsxNDc3MywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE5NTIyLDYg
KzE5NTUwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQWNj
ZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdp
blxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccGFnZVxBZGp1c3RWaWV3U2l6ZU9yTm90LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwYWdlXEFsdGVybmF0aXZlVGV4dENsaWVudC5oIiAvPgpAQCAtMjEwNzQsNiAr
MjExMDMsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgiIC8+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
aW5kZXggZTJiYTJlNi4uMjYzYzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzUyOCw2ICszNTI4LDEy
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24u
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNzY1Niw2ICs3NjYyLDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAg
IDxGaWx0ZXI+YWNjZXNzaWJpbGl0eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVu
dC5oIj4KKyAgICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eVx3aW48L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjY1LDYgKzEwNjc0LDEyIEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4N2QyZTc3Li45NTdkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjM0LDYgKzMyMzQs
NyBAQAogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3
M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKIAkJ
OTAwMTc4ODAxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RTEy
RTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLzsgfTsKIAkJ
OTAwMTc4ODExMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0YxMkUw
MzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OworCQk5MUM5
RjJGOTFBRTNCRUIwMDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxQzlGMkY4MUFFM0JFMjQw
MDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07CiAJ
CTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDVCMjRDMDk4RjFCNkIwMEMyODg1
NSAvKiBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC02Mzc5LDYgKzYzODAsMTAgQEAKIAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsg
fTsKIAkJRjU0NEY3ODgxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggKi87IH07CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYx
MkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgKi87IH07CkBAIC0xMDQ2Niw2ICsxMDQ3MSw3IEBACiAJCTkwMDE3NzNG
MTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgcGF0aCA9IGNhbnZhcy9P
RVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RjEyRTAzNzA3
MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8q
IFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdl
R3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAyQjBCRTBENzlGODJD
MDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA1QjI0QzA5OEYx
QjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA2LDYgKzE0MDEyLDEw
IEBACiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRm
b3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
ODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAv
KiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
NjEzLDYgKzE1NjIzLDcgQEAKIAkJCQkyOUE4MTIxMzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmggKi8sCiAJCQkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFY
T2JqZWN0Q2FjaGUuY3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9i
amVjdENhY2hlLmggKi8sCisJCQkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGFjY2Vzc2liaWxpdHk7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTc3NDEsNiArMTc3NTIsMTAgQEAKIAkJCQk5
MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3Np
dGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NTI4REE3
MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCQTA5OUU2
NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMjM2Njgs
NiArMjM2ODMsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU1OTAsNiArMjU2MDYsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgw
MEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hN
TEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZh
bHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyog
SlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjY0Miw2ICsyNjY1OSw3IEBA
CiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQzFENDI4MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E2OTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyOTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aEFicy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MkExNzhENUFC
NDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTZEMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpYy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODM5Myw2ICsyODQxMSw3IEBACiAJCQkJNTEw
MTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFn
ZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1h
Yy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk4MzYsNiArMjk4NTUsNyBAQAogCQkJCUZFMzZGRDE2
MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVy
YXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0
ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLjI1NjhiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTAsNiArOTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKKy8vIFBvc3QgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
Zm9yIHBhc3N3b3JkIGZpZWxkcyBvciBlbGVtZW50cyBjb250YWluZWQgaW4gcGFzc3dvcmQgZmll
bGRzIGF0IGEgNDBoeiBpbnRlcnZhbCB0byB0aHdhcnQgYW5hbHlzaXMgb2YgdHlwaW5nIGNhZGVu
Y2UKK3N0YXRpYyBkb3VibGUgQWNjZXNzaWJpbGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb25JbnRlcnZhbCA9IDAuMDI1OworCiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFY
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZTo6Z2V0SWdub3JlZChBWElEIGlkKSBjb25zdAog
ewogICAgIEhhc2hNYXA8QVhJRCwgQ2FjaGVkQVhPYmplY3RBdHRyaWJ1dGVzPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX2lkTWFwcGluZy5maW5kKGlkKTsKQEAgLTEyOSw2ICsxMzIsNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGlt
ZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAg
ICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hl
OjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03MDUsNyAr
NzA5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgp
CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0b3JGb3JDYWNoZU93bmVyKG1fZG9jdW1lbnQpOwog
ICAgIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKICAgICAKLSAgICAvLyBJbiBEUlQs
IHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1
ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJl
aGF2aW9yCisgICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5k
ZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBj
YW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCiAgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0
aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0
IHRoZSBzdGFydC4KICAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9ub3RpZmlj
YXRpb25zVG9Qb3N0KTsKICAgICAKQEAgLTc0Miw2ICs3NDYsMjAgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNo
YW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOworCisg
ICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBp
bW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0
byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3Qg
aXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFy
dC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNh
dGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3Rp
ZmljYXRpb25zKQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxl
UG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5v
dGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmlj
YXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04
NTAsMTYgKzg2OCwyMjMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVy
ZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwog
fQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
IG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRl
bnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2gg
KGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgor
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgZGF0YUxvZygiRWRpdDo6Iik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICAgICAgZGF0YUxvZygiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBkYXRhTG9nKCJFeHRl
bmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkg
eworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGlu
dGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIGRhdGFMb2coIkRlbGV0ZSIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgICAgICBkYXRhTG9nKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgZGF0YUxvZygi
RGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIlR5cGluZ0luc2VydCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
ICAgICAgICBkYXRhTG9nKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBkYXRhTG9nKCJQYXN0ZSIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25vd246OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAg
ICAgICAgZGF0YUxvZygiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGRhdGFMb2co
IkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBkYXRhTG9nKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBkYXRhTG9nKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24p
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246Cisg
ICAgICAgICAgICAgICAgZGF0YUxvZygiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIGRhdGFMb2coIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IGRhdGFMb2coIi1TeW5jIik7CisgICAgZGF0YUxvZygiXG4iKTsKK30KKyNlbmRpZgorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30K
Kworc3RhdGljIGJvb2wgaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQoreworICAgIHJldHVybiBvYmplY3QgJiYgKG9i
amVjdC0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqZWN0LT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNl
bGVjdGlvbkludGVudDsKKwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KLSAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBp
ZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChpc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3Qg
PSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBpbnRlbnQsIHNlbGVjdGlvbik7Cisj
ZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNo
ZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRp
ZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHR5cGUsIHRleHQs
IHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZSh0eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2
YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0KTsKKyNlbmRpZgorfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSog
bm9kZSwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRU
eXBlRGVsZXRlKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUlu
c2VydCB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlv
blR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZVBhc3RlKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1
dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlm
IChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmplY3QpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRU
ZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKK30K
KworYm9vbCBBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCit7CisgICAgaWYgKCFpc1Bhc3N3b3Jk
RmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0gb2Jq
ZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAvLyByZXR1cm4gdHJ1ZSBldmVu
IHRob3VnaCB0aGUgZW5xdWV1ZSBkaWRuJ3QgaGFwcGVuIGJlY2F1c2UgdGhpcyBpcyBhIHBhc3N3
b3JkIGZpZWxkIGFuZCBjYWxsZXIgc2hvdWxkbid0IHBvc3QgYSBub3RpZmljYXRpb24KKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9u
c1RvUG9zdC5jb250YWlucyhvYnNlcnZhYmxlT2JqZWN0KSkgeworICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlm
ICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoQWNjZXNzaWJp
bGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZhbCk7CisgICAgfQorCisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQp
CkBAIC0xMDg0LDYgKzEzMDksMTQgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2Rl
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RD
YWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmpl
Y3QgPSB0aGlzLT5yb290T2JqZWN0KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2Jq
ZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmpl
Y3QpLndlYkFyZWFPYmplY3QoKTsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShj
YWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggYmZhOTI3Ny4uNWQ4YjMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
QVhPYmplY3RDYWNoZV9oCiAjZGVmaW5lIEFYT2JqZWN0Q2FjaGVfaAogCisjaW5jbHVkZSAiQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0Lmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KQEAgLTE4OSwxMiArMTkw
LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZp
Y2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNo
cm9ub3VzbHkpOwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQs
IFBvc3RUeXBlID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdl
IHsKLSAgICAgICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAg
fTsKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVu
dChBWFRleHRTdGF0ZUNoYW5nZUludGVudCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Cisg
ICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRU
eXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24o
Tm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7
CiAKICAgICBlbnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwK
QEAgLTIxMywxMiArMjE3LDI4IEBAIHB1YmxpYzoKICAgICBBWENvbXB1dGVkT2JqZWN0QXR0cmli
dXRlQ2FjaGUqIGNvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUoKSB7IHJldHVybiBtX2NvbXB1
dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUuZ2V0KCk7IH0KIAogICAgIERvY3VtZW50JiBkb2N1bWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KLSAgICAKKworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMo
Ym9vbCB2YWx1ZSk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAg
dm9pZCBwbGF0Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3Vz
ZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOworI2Vsc2UKKyAgICBlbnVtIEFYVGV4dENoYW5nZSB7CisgICAgICAgIEFYVGV4dElu
c2VydGVkLAorICAgICAgICBBWFRleHREZWxldGVkLAorICAgIH07CisgICAgc3RhdGljIEFYVGV4
dENoYW5nZSB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUpOworICAgIHZvaWQg
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZv
aWQgZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhMb2FkaW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0
eU9iamVjdCopOwogICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsy
NDksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVy
biBtX3RleHRNYXJrZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9j
dW1lbnQ7CiAgICAgSGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1f
b2JqZWN0czsKICAgICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0
TWFwcGluZzsKQEAgLTI0NCw2ICsyNjYsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlm
aWNhdGlvblBvc3RUaW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmls
aXR5T2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAg
dm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlP
YmplY3Q+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5l
ZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAg
dm9pZCBoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyNzgsMTAgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFw
VUlFbGVtZW50KEhUTUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nl
c3NpYmlsaXR5T2JqZWN0Kik7CisKKyAgICBib29sIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdl
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRl
Q2FjaGVFbmFibGVyCkBAIC0zMDgsOCArMzM5LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdu
b3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERv
Y3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CkBAIC0zMjAsNiArMzUyLDEzIEBAIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnJlbW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpy
ZW1vdmUoV2lkZ2V0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENo
aWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NP
QSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVu
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFY
VGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiAjZW5kaWYK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0
ZUNoYW5nZUludGVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0
ZUNoYW5nZUludGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzI2
NGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50X2gKKyNkZWZpbmUgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisgICAgCitlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAg
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kCit9OworCitlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICBB
WFRleHRFZGl0VHlwZVVua25vd24sCisgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVy
aWMgdGV4dCBkZWxldGUKKyAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0
IGluc2VydAorICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZwor
ICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAg
IEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgIEFYVGV4dEVkaXRUeXBl
UGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQorfTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24geworICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZCwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2Nv
bnRpZ3VvdXMKK307CisKK2VudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3RlciwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3Jh
cGgsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlB
bGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3Rpbmcg
dGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlv
biBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9s
ZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0
aW9uLgorfTsKKworc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFu
dWxhcml0eTsKK307CisKK3N0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgdW5pb24geworICAgICAgICBBWFRleHRTZWxl
Y3Rpb24gc2VsZWN0aW9uOworICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgfTsK
KyAgICBib29sIGlzU3luY2hyb25pemluZyB7IGZhbHNlIH07CisKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24o
KSkKKyAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikK
KyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNo
YW5nZSkKKyAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAg
ICwgY2hhbmdlKGNoYW5nZSkKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIGlzU3luY2hyb25pemluZykKKyAgICAg
ICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKCkKKyAgICAgICAgLCBpc1N5bmNo
cm9uaXppbmcoaXNTeW5jaHJvbml6aW5nKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0g
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8g
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi40
MzhlODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBp
bnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3
b3JkRmllbGQoKQoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChp
bnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7
CisgICAgfQorCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAg
ICBpZiAoIWVsZW1lbnQgfHwgIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2Jq
ZWN0Q2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsK
KworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uYTgyYmQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgs
NiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNv
bnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJv
Z3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFy
Y2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uY2IzMzgwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBA
IC0yNjQ2LDQgKzI2NDYsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50
S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7Cisg
ICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3du
Um9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5v
ZGUtPnNoYWRvd0hvc3QoKTsKKyAgICByZXR1cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVu
dCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmlzUGFzc3dvcmRGaWVs
ZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjgxNmMz
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSB7IHJldHVy
biBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJu
IHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAy
ZDkyOTk2Li5mNjU1ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgs
MTcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRU
ZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlz
TmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbklu
dGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29u
dHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1D
b250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShy
YW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3Jl
bmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
KFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldElu
QW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5n
dGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7Cisg
ICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3Rh
cnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBQb3NpdGlvbihub2RlLCBy
YW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFu
Y2hvciksIERPV05TVFJFQU0pOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG5ld0ludGVu
dChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKTsKKyAgICBtX3JlbmRlcmVy
LT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2Vs
ZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBuZXdJbnRlbnQpOwogfQogCiBV
UkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5
NjMsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2li
bGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQu
aXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisK
ICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBp
ZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChy
YW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVu
ZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkp
CisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAg
ICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0
LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxl
Y3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2Uu
ZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5k
ZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSop
IG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNv
bnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNj
cm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25z
dCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJp
bGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCBy
ZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4
IDU4NTJhMGYuLjczNjZlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0yNDMsNiArMjQzLDI0IEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIGNvcmVPYmplY3QsIEFYCiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KKyAgICAKK0FYVGV4
dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5
cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
Q3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIHJldHVybiBBWFRl
eHREZWxldGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEluc2VydGVk
OworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICB9
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYVGV4dEluc2VydGVkOwor
fQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTll
MGIwMC4uYjYyMzM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw4ICs5NSwxOSBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmos
IEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZp
Y2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9k
ZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKQogeworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRU
ZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0
RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAg
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQpOworfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdl
ZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdF
dmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li42Yjc5MGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25D
cmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZp
bmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZh
bHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVT
dGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VF
bGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0
Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVk
VGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVk
VGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNl
bmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBw
ZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8g
dHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3Qg
YWxsb3cgc3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4KK3N0
YXRpYyBjb25zdCBOU1VJbnRlZ2VyIEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAw
MDsKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cg
ZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsNiArMTA3LDIxIEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmop
CiAgICAgb2JqLT5zZXRXcmFwcGVyKHdyYXBwZXIuZ2V0KCkpOwogfQogCitzdGF0aWMgQk9PTCBh
eFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyA9IGZhbHNlOworCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVl
KQoreworICAgIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9
CisKK3N0YXRpYyB2b2lkIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3Qs
IE5TU3RyaW5nICpub3RpZmljYXRpb24sIGlkIHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJp
bGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVz
ZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1wbGlmeSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25z
IGluIHRlc3RzLCByZXBvc3QgYXMgYSBzaW1wbGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBm
b3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVyZSB0byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBh
bGwgdGhlIHRyYW5zbGF0aW9uIGJldHdlZW4gV2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3Bl
Y2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNrCisgICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkKKyAgICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9z
dGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2Jq
KQpAQCAtMTQ5LDE1ICsyMTEsMTM4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAg
ICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUp
OwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0
eVBvc3ROb3RpZmljYXRpb24ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAg
Ci0gICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3Rl
ZC4KLSAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpt
YWNOb3RpZmljYXRpb25dOworCisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9i
ai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24sIG5pbCk7CiB9CiAKLXZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CisgICAgaWYgKCFvYmplY3QpCisgICAg
ICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJs
ZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5p
c1N5bmNocm9uaXppbmcpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0
ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlVW5rbm93bikgeworICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVu
dC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6Cisg
ICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChp
bnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmls
aXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxh
cml0eSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVj
dGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVj
dC0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlv
bi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAg
ICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdl
QXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5nZTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBl
ciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
d2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJ
bmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdl
ZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdl
ZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwor
c3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3Ry
aW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0g
W3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAg
ICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxs
b2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRF
ZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIGlmIChsZW5ndGggPiBBWFZhbHVlQ2hhbmdlVHJ1bmNh
dGlvbkxlbmd0aCkgeworICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZh
bHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsKKyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1Rv
SW5kZXg6QVhWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBjaGFuZ2Vb
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9u
LmlzTm90TnVsbCgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0gW29iamVjdC0+d3Jh
cHBlcigpIHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAg
ICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRl
eHRNYXJrZXI7CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAg
aWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAo
IW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNN
dXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5m
b1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVw
bGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hh
bmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisK
KyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKyAgICBB
WFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vz
c2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3RO
b3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0
eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxl
YXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlw
ZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBl
IGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqZWN0KQorICAgICAgICBvYmplY3Qg
PSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKwor
ICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5
IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsK
KworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgZGVsZXRpb25UeXBlLCBkZWxldGVk
VGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAg
ICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9u
YXJ5KG9iamVjdCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAg
ICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsK
KworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJ
bmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKworICAgIE5TQWNj
ZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigp
LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAg
ICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgor
ICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpO
U0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9d
OworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmpl
Y3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1
c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMg
YXJlIHBvc3RlZC4KKyAgICBbb2JqZWN0LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlcklu
Zm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0
MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTYsOCAr
NTYsOSBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAtIChOU1N0cmluZyAqKWFyaWFMYW5kbWFy
a1JvbGVEZXNjcmlwdGlvbjsKIAogLSAoaWQpYXR0YWNobWVudFZpZXc7Ci0vLyBVc2VkIHRvIGlu
Zm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNl
ZCBieSBEUlQuCisvLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRp
b24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSB0ZXN0cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9p
ZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlv
bk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYp
Y29udmVydFBhdGhUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9p
bnQpY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2Eu
Ljg3MTBkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAg
LTM4MywxMyArMzgzLDY5IEBAIHN0YXRpYyBCT09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3RO
b3RpZmljYXRpb25zOwogKyAodm9pZClhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZp
Y2F0aW9uczooQk9PTClyZXBvc3QKIHsKICAgICBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90
aWZpY2F0aW9ucyA9IHJlcG9zdDsKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKElP
UykKKyAgICBBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVz
dHMocmVwb3N0KTsKKyNlbmRpZgogfQogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3Rp
ZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZQogeworICAgIGlmIChhY2Nlc3Np
YmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykKKyAgICAgICAgW3NlbGYgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOm5pbF07Cit9
CisKK3N0YXRpYyBOU0FycmF5ICphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKE5TQXJyYXkgKmFy
cmF5KQoreworICAgIEFTU0VSVChbYXJyYXkgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11d
KTsKKyAgICBOU011dGFibGVBcnJheSAqbXV0YWJsZUFycmF5ID0gW2FycmF5IG11dGFibGVDb3B5
XTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBbbXV0YWJsZUFycmF5IGNvdW50XTsp
IHsKKyAgICAgICAgaWQgdmFsdWUgPSBtdXRhYmxlQXJyYXlbaV07CisgICAgICAgIGlmIChbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0
YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkgd2l0aE9iamVjdDpkaWN0aW9uYXJ5UmVt
b3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2lu
ZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVw
bGFjZU9iamVjdEF0SW5kZXg6aSB3aXRoT2JqZWN0OmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMo
dmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJp
bmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpIHsK
KyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVtb3ZlT2JqZWN0QXRJbmRleDppXTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGkrKzsKKyAgICB9CisgICAgcmV0
dXJuIFttdXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5
ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5
KQoreworICAgIEFTU0VSVChbZGljdGlvbmFyeSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkg
Y2xhc3NdXSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0YWJsZURpY3Rpb25hcnkgPSBb
ZGljdGlvbmFyeSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIGRpY3Rp
b25hcnkpIHsKKyAgICAgICAgaWQgdmFsdWUgPSBkaWN0aW9uYXJ5W2tleV07CisgICAgICAgIGlm
IChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAg
ICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVz
KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkg
Y2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0gPSBhcnJheVJlbW92
aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5k
T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1i
ZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0
Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZURpY3Rpb25hcnkgYXV0b3Jl
bGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5T
U3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlcklu
Zm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpIHsK
LSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFy
eVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUi
LCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBv
c3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJ
bmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5vdGlmaWNhdGlvbk5hbWUpOworICAgICAg
ICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAgICAgIGlmICh1c2VySW5mbykgeworICAg
ICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBkYXRh
V2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHVzZXJJbmZvKSBv
cHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVycm9yOm5pbF07CisgICAgICAgICAgICBp
ZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKnVzZXJJbmZvU3Ry
aW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnVzZXJJbmZvRGF0YSBlbmNvZGlu
ZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAgICAgICAgICAgaWYgKHVzZXJJbmZvU3Ry
aW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlmaWNhdGlvbk5hbWUiIDog
bm90aWZpY2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1c2VySW5mb1N0cmluZ307CisgICAgICAg
ICAgICAgICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2VdOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIGlmICghaW5mbykKKyAgICAgICAgICAgIGluZm8gPSBAe0Aibm90aWZpY2F0
aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lfTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0
aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzppbmZvXTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50
ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRp
b25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjoo
V2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZv
clZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxl
UG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFk
ZWI0ZGIuLjgzNzkzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwCkBAIC0yOSwxMyArMjksMTYgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJo
dG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFwcGVuZE5vZGVDb21tYW5k
OjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0cjxOb2RlPiBub2RlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50LT5kb2N1
bWVudCgpKQorQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8
Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQo
KSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcGFyZW50KHBhcmVudCkKICAgICAsIG1fbm9kZShu
b2RlKQogewpAQCAtNDYsMTUgKzQ5LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAg
QVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJl
cigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitz
dGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2Rl
LCBBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5u
b2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25z
aWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxu
IikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRD
aGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9k
ZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlv
biBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9k
ZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBj
YWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBW
aXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc1LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwg
SUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
bV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBl
KCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlm
ICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5n
IHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
Ci0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJ
Z25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAg
ICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi5mNzgyOTc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1Ymxp
YyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVm
UHRyPE5vZGU+IG5vZGUpCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRl
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rp
b24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5v
ZGU+LCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA3YzQxOGMyLi5jYWI4ODI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMTIz
LDkgKzEyMyw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQpCiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29t
bWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1h
bmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkp
Ci0gICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlM
ZXZlbChwcm9wZXJ0eUxldmVsKQogICAgICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFy
dCgpLmRvd25zdHJlYW0oKSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVw
c3RyZWFtKCkpCkBAIC0xMzYsOSArMTM1LDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5
bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHkKIH0K
IAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25z
dCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxldmVs
IHByb3BlcnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwg
bV9zdHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rp
b24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlMZXZlbCkKICAgICAsIG1fc3RhcnQo
c3RhcnQpCiAgICAgLCBtX2VuZChlbmQpCkBAIC0xNDksOSArMTQ3LDggQEAgQXBwbHlTdHlsZUNv
bW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGlu
Z1N0eWxlKiBzdHkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBh
c3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgYm9vbCByZW1vdmVPbmx5LCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24pCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChlbGVtZW50LT5kb2N1bWVu
dCgpKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWRp
dGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoRWRpdGluZ1N0eWxlOjpjcmVhdGUoKSkKLSAgICAs
IG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKFBy
b3BlcnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5k
b3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVh
bSgpKQpAQCAtMTYzLDkgKzE2MCw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29t
bWFuZChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25sCiB9CiAKIEFw
cGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIElzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24g
aXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUt
PmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9w
cm9wZXJ0eUxldmVsKFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0
aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24o
KS5lbmQoKS51cHN0cmVhbSgpKQpAQCAtMjI2LDExICsyMjIsNiBAQCB2b2lkIEFwcGx5U3R5bGVD
b21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiB9CiAKLUVkaXRBY3Rpb24gQXBwbHlTdHlsZUNvbW1h
bmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2VkaXRpbmdBY3Rpb247
Ci19Ci0KIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5QmxvY2tTdHlsZShFZGl0aW5nU3R5
bGUgKnN0eWxlKQogewogICAgIC8vIHVwZGF0ZSBkb2N1bWVudCBsYXlvdXQgb25jZSBiZWZvcmUg
cmVtb3Zpbmcgc3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
LmgKaW5kZXggZTk5ZTM2YS4uOWRiZTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuaApAQCAtNzIsNyArNzIsNiBAQCBwcml2YXRlOgogICAgIEFwcGx5U3R5
bGVDb21tYW5kKERvY3VtZW50JiwgY29uc3QgRWRpdGluZ1N0eWxlKiwgYm9vbCAoKmlzSW5saW5l
RWxlbWVudFRvUmVtb3ZlKShjb25zdCBFbGVtZW50KiksIEVkaXRBY3Rpb24pOwogCiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gc3R5bGUtcmVtb3ZhbCBoZWxw
ZXJzCiAgICAgYm9vbCBpc1N0eWxlZElubGluZUVsZW1lbnRUb1JlbW92ZShFbGVtZW50KikgY29u
c3Q7CkBAIC0xMjIsNyArMTIxLDYgQEAgcHJpdmF0ZToKICAgICBQb3NpdGlvbiBlbmRQb3NpdGlv
bigpOwogCiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9zdHlsZTsKLSAgICBFZGl0QWN0aW9u
IG1fZWRpdGluZ0FjdGlvbjsKICAgICBFUHJvcGVydHlMZXZlbCBtX3Byb3BlcnR5TGV2ZWw7CiAg
ICAgUG9zaXRpb24gbV9zdGFydDsKICAgICBQb3NpdGlvbiBtX2VuZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uNzM0
MmY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5o
IgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVk
ZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNl
Tm9kZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDEzICsxNjQsMzAgQEAg
dm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5v
ZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmRDb21w
b3NpdGlvbjo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rpb24o
KSkgeworICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6
CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rp
b25EaWN0YXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgIGNhc2UgRWRpdEFj
dGlvblBhc3RlOgorICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIEFY
VGV4dEVkaXRUeXBlRGVsZXRlOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCiB2b2lkIGFwcGx5Q29tbWFu
ZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjb21tYW5kKQogewogICAgIGNvbW1h
bmQtPmFwcGx5KCk7CiB9CiAKLUNvbXBvc2l0ZUVkaXRDb21tYW5kOjpDb21wb3NpdGVFZGl0Q29t
bWFuZChEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCkKK0Nv
bXBvc2l0ZUVkaXRDb21tYW5kOjpDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1l
bnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50
LCBlZGl0aW5nQWN0aW9uKQogewogfQogCkBAIC0xODcsNiArMjA2LDcgQEAgdm9pZCBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6YXBwbHkoKQogICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRXcml0aW5n
RGlyZWN0aW9uOgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25DdXQ6CiAgICAgICAgIGNhc2UgRWRp
dEFjdGlvblVuc3BlY2lmaWVkOgorICAgICAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CiAgICAg
ICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0
aW9uOgogICAgICAgICAgICAgYnJlYWs7CkBAIC0yOTYsNyArMzE2LDcgQEAgdm9pZCBDb21wb3Np
dGVFZGl0Q29tbWFuZDo6cmVtb3ZlU3R5bGVkRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVs
ZW1lbnQpCiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFy
YXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRv
ZUludG9VbnF1b3RlZEFyZWEpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHVzZURlZmF1bHRQ
YXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKSk7CisgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6
Y3JlYXRlKGRvY3VtZW50KCksIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2Nr
cXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0TGluZUJyZWFrKCkKQEAgLTMyMiw3ICszNDIsNyBAQCBi
b29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5v
ZGUpCiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4g
aW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC0zNzMsNyArMzkzLDcg
QEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9k
ZT4gaW5zZXJ0Q2hpbGQsIGNvbnN0IFBvc2kKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFw
cGVuZE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCkKIHsKICAgICBBU1NFUlQoY2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhwYXJlbnQu
Z2V0KCkpKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6
Y3JlYXRlKHBhcmVudCwgbm9kZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVu
ZE5vZGVDb21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0K
IAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pCkBAIC0zOTcsNyAr
NDE3LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnQKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZUFuZFBydW5lQW5jZXN0b3JzKFBhc3NSZWZQ
dHI8Tm9kZT4gbm9kZSkKQEAgLTUyNSwyMCArNTQ1LDIxIEBAIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRU
ZXh0CiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsK
ICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7
CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxU
ZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQsIGVkaXRpbmdBY3Rp
b24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9k
ZShQYXNzUmVmUHRyPFRleHQ+IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBu
b2RlKHBycE5vZGUpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1lbnRU
ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7
CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNv
bW1hbmQtPmRlbGV0ZWRUZXh0KCksIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiBQb3NpdGlvbiBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJp
bmcmIHRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmgKaW5kZXggYzJiNDg5ZC4uZWNiMjg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5n
U3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC01OSw2
ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFz
aFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgQVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRU
eXBlKCk7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYs
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCkBAIC04OSw3ICs5Miw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ29tcG9z
aXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29t
bWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAg
ICAgLy8KICAgICAvLyBzdWdhcnktc3dlZXQgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGhlbHAg
Y3JlYXRlIGFuZCBhcHBseSBlZGl0IGNvbW1hbmRzIGluIGNvbXBvc2l0ZSBjb21tYW5kcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAKaW5kZXggMmVhOTZkNS4uMWZhMDEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMyAr
MjksMTUgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2lu
Y2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCi0gICAgOiBTaW1wbGVF
ZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6
IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAg
LCBtX25vZGUobm9kZSkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fY291bnQoY291
bnQpCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VS
VChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK2NvbnN0IFN0
cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJl
dHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBs
eSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01OCw4ICs2NSw4IEBAIHZvaWQgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAKICAg
ICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4
dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbiht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3Rl
eHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMp
OwogfQpAQCAtNzMsOCArODAsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRl
ZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4
IDI0OTFmMDUuLmEwMzVmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxNCAr
MzQsMTcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6
IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBjb3VudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlv
bkRlbGV0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQs
IGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KTsKKyAgICBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAg
ICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9m
ZnNldCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgp
IG92ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uZWIzYTVmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC03Miw4ICs3
Miw4IEBAIHN0YXRpYyBib29sIGlzVGFibGVSb3dFbXB0eShOb2RlKiByb3cpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLURlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMs
IGJvb2wgc2FuaXRpemVNYXJrdXApCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVu
dCkKK0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxl
dGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2Fu
aXRpemVNYXJrdXAsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVk
aXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rpb25U
b0RlbGV0ZShmYWxzZSkKICAgICAsIG1fc21hcnREZWxldGUoc21hcnREZWxldGUpCiAgICAgLCBt
X21lcmdlQmxvY2tzQWZ0ZXJEZWxldGUobWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSkKQEAgLTkwLDgg
KzkwLDggQEAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWwKIHsKIH0KIAotRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwg
Ym9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6
ZU1hcmt1cCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKHNlbGVjdGlvbi5zdGFydCgpLmFu
Y2hvck5vZGUoKS0+ZG9jdW1lbnQoKSkKK0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNt
YXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9v
bCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKHNlbGVjdGlvbi5z
dGFydCgpLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1f
aGFzU2VsZWN0aW9uVG9EZWxldGUodHJ1ZSkKICAgICAsIG1fc21hcnREZWxldGUoc21hcnREZWxl
dGUpCiAgICAgLCBtX21lcmdlQmxvY2tzQWZ0ZXJEZWxldGUobWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSkKQEAgLTg4NCwxNCArODg0LDYgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0Fw
cGx5KCkKICAgICBjbGVhclRyYW5zaWVudFN0YXRlKCk7CiB9CiAKLUVkaXRBY3Rpb24gRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Ci17Ci0gICAgLy8gTm90ZSB0
aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJl
c3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBU
eXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAv
LyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJu
IEVkaXRBY3Rpb25DdXQ7Ci19Ci0KIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2Vy
dmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFt
cGxlLAogLy8gdHlwZSBhIGNoYXJhY3RlciwgQm9sZCwgdGhlbiBkZWxldGUgdGhlIGNoYXJhY3Rl
ciBhbmQgc3RhcnQgdHlwaW5nLiAgVGhlIEJvbGQgdHlwaW5nIHN0eWxlIHNob3VsZG4ndAogLy8g
c3RpY2sgYXJvdW5kLiAgRGVsZXRpb24gc2hvdWxkIHByZXNlcnZlIGEgdHlwaW5nIHN0eWxlIHRo
YXQgKml0KiBzZXRzLCBob3dldmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBlNWJmNTFkLi4wYTliOWNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMzQsMjMgKzM0
LDIyIEBAIGNsYXNzIEVkaXRpbmdTdHlsZTsKIAogY2xhc3MgRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7IAogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9v
bCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVl
LCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBm
YWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgc3RhdGljIFJlZjxEZWxldGVT
ZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVs
ZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVw
bGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29s
IHNhbml0aXplTWFya3VwID0gdHJ1ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFj
dGlvbkRlbGV0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9j
dW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBh
bmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwLCBlZGl0aW5nQWN0aW9uKSk7CiAg
ICAgfQotICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBi
b29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwg
Ym9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1
cCA9IHRydWUpCisgICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFs
c2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZh
bHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXpl
TWFya3VwID0gdHJ1ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVw
bGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKHNlbGVjdGlvbiwg
c21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAK
IHByb3RlY3RlZDoKLSAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBz
bWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJv
b2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJrdXApOworICAgIERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25EZWxl
dGUpOwogCiBwcml2YXRlOgotICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5p
dGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBi
b29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXpl
TWFya3VwLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAg
dmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4uOTA4ZmQ3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0xMTUsNyAr
MTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xp
bmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9u
QWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0
ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGlu
ZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENv
bW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2Vy
dC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxp
ZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENv
bW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBs
aWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVM
ZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGlu
ZSksIEVkaXRBY3Rpb25EaWN0YXRpb24pOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNv
bW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQg
RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKCkKICAgICBpZiAoIWNh
bkFwcGVuZE5ld0xpbmVGZWVkVG9TZWxlY3Rpb24oZW5kaW5nU2VsZWN0aW9uKCkpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSkpOworICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25EaWN0YXRpb24pKTsKIH0KIAogdm9pZCBEaWN0
YXRpb25Db21tYW5kOjpjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShzaXplX3Qg
cmFuZ2VTdGFydCwgc2l6ZV90IHJhbmdlTGVuZ3RoLCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRp
dmU+JiBhbHRlcm5hdGl2ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRBY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCmluZGV4IDYz
N2QxZWIuLjZlZjM1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCkBAIC0yOSw2
ICsyOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiBlbnVtIHsKICAgICAg
ICAgRWRpdEFjdGlvblVuc3BlY2lmaWVkLAorICAgICAgICBFZGl0QWN0aW9uSW5zZXJ0LAogICAg
ICAgICBFZGl0QWN0aW9uU2V0Q29sb3IsCiAgICAgICAgIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5k
Q29sb3IsCiAgICAgICAgIEVkaXRBY3Rpb25UdXJuT2ZmS2VybmluZywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUzMi4uOGY3ZmNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTM3LDkgKzM4LDEwIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotRWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCkKK0VkaXRDb21tYW5kOjpFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBt
X3BhcmVudCgwKQorICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiB7CiAgICAg
QVNTRVJUKGRvY3VtZW50LmZyYW1lKCkpOwogICAgIHNldFN0YXJ0aW5nU2VsZWN0aW9uKG1fZG9j
dW1lbnQtPmZyYW1lKCktPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpKTsKQEAgLTY3LDcgKzY5LDcg
QEAgRnJhbWUmIEVkaXRDb21tYW5kOjpmcmFtZSgpCiAKIEVkaXRBY3Rpb24gRWRpdENvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24oKSBjb25zdAogewotICAgIHJldHVybiBFZGl0QWN0aW9uVW5zcGVjaWZp
ZWQ7CisgICAgcmV0dXJuIG1fZWRpdGluZ0FjdGlvbjsKIH0KIAogc3RhdGljIGlubGluZSBFZGl0
Q29tbWFuZENvbXBvc2l0aW9uKiBjb21wb3NpdGlvbklmUG9zc2libGUoRWRpdENvbW1hbmQqIGNv
bW1hbmQpCkBAIC0xMTIsNiArMTE0LDQ5IEBAIHZvaWQgRWRpdENvbW1hbmQ6OnNldFBhcmVudChD
b21wb3NpdGVFZGl0Q29tbWFuZCogcGFyZW50KQogICAgIH0KIH0KIAorQVhUZXh0RWRpdFR5cGUg
RWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlv
bigpKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uQ3V0OgorICAgICAgICByZXR1cm4gQVhUZXh0RWRp
dFR5cGVDdXQ7CisgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgorICAgICAgICByZXR1cm4gQVhU
ZXh0RWRpdFR5cGVEZWxldGU7CisgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgorICAgICAg
ICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb247CisgICAgY2FzZSBFZGl0QWN0aW9uSW5z
ZXJ0OgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBFZGl0
QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVBhc3RlOworICAgIGNh
c2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVHlwaW5n
OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0
RWRpdFR5cGVVbmtub3duOworfQorCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6dW5hcHBs
eUVkaXRUeXBlKCkKK3sKKyAgICBzd2l0Y2ggKGFwcGx5RWRpdFR5cGUoKSkgeworICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtu
b3duOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZUN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQ
YXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAgIH0KKyAgICBy
ZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitTaW1wbGVFZGl0Q29tbWFuZDo6U2lt
cGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24pCisgICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKK3sKK30KKwog
dm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6ZG9SZWFwcGx5KCkKIHsKICAgICBkb0FwcGx5KCk7CkBA
IC0xMjUsNCArMTcwLDE0IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNj
ZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiB9CiAjZW5kaWYKIAor
dm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
Tm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAo
IWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMz
Ny4uYzViN2FhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiAr
MjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAor
I2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlv
bi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNDYsNyArNDcsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldFBhcmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCopOwogCi0g
ICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKKyAgICBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHN0YXJ0aW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGluZ1NlbGVjdGlvbjsg
fQogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fZW5kaW5nU2VsZWN0aW9uOyB9CkBAIC01OSw4ICs2MCwxMSBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIEFYVGV4dEVkaXRUeXBlIGFw
cGx5RWRpdFR5cGUoKTsKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKwog
cHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CisgICAgZXhw
bGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3Bl
Y2lmaWVkKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBGcmFtZSYgZnJhbWUoKTsKQEAg
LTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3RhcnRpbmdT
ZWxlY3Rpb247CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsKICAgICBD
b21wb3NpdGVFZGl0Q29tbWFuZCogbV9wYXJlbnQ7CisgICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdB
Y3Rpb24geyBFZGl0QWN0aW9uVW5zcGVjaWZpZWQgfTsKIH07CiAKIGVudW0gU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUgewpAQCAtOTEsMTIgKzk2LDE0IEBAIHB1YmxpYzoKICNl
bmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50KSA6IEVkaXRDb21tYW5kKGRvY3VtZW50KSB7IH0KKyAgICBleHBsaWNpdCBT
aW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVj
aWZpZWQpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRz
KE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJ
bk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKaW5k
ZXggZGMzYWUzMy4uMjNiYzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0Fs
bEluT25lLmNwcApAQCAtNTksNiArNTksOCBAQAogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+
CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNl
dE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRl
eCA3MTBhYTM5Li40YmQ3ZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yMDgs
MTIgKzIwOCwxMiBAQCBib29sIEVkaXRvcjo6aGFuZGxlVGV4dEV2ZW50KFRleHRFdmVudCogZXZl
bnQpCiAgICAgICAgICAgICBpZiAoY2xpZW50KCktPnBlcmZvcm1zVHdvU3RlcFBhc3RlKGV2ZW50
LT5wYXN0aW5nRnJhZ21lbnQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5k
aWYKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3Rp
bmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+
c2hvdWxkTWF0Y2hTdHlsZSgpLCBldmVudC0+bWFpbEJsb2NrcXVvdGVIYW5kbGluZygpKTsKKyAg
ICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFn
bWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxk
TWF0Y2hTdHlsZSgpLCBFZGl0QWN0aW9uUGFzdGUsIGV2ZW50LT5tYWlsQmxvY2txdW90ZUhhbmRs
aW5nKCkpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGVs
c2UgCi0gICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwg
ZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSk7CisgICAgICAgICAgICByZXBsYWNl
U2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFy
dFJlcGxhY2UoKSwgRWRpdEFjdGlvblBhc3RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0zNzQsMTIgKzM3NCwxMiBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlv
bihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJl
dHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNt
YXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsK
ICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCBzbWFydERlbGV0ZSkpOworICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUsIHRydWUsIGZhbHNlLCBmYWxzZSwg
dHJ1ZSwgZWRpdGluZ0FjdGlvbikpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKQEAg
LTUyMyw3ICs1MjMsNyBAQCBib29sIEVkaXRvcjo6c2hvdWxkSW5zZXJ0RnJhZ21lbnQoUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgUGFzc1JlZgogICAgIHJldHVybiBjbGll
bnQoKS0+c2hvdWxkSW5zZXJ0Tm9kZShmcmFnbWVudC5nZXQoKSwgcmVwbGFjaW5nRE9NUmFuZ2Uu
Z2V0KCksIGdpdmVuQWN0aW9uKTsKIH0KIAotdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25X
aXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBz
ZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgTWFp
bEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQordm9pZCBFZGl0b3I6
OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJv
b2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBNYWlsQmxvY2txdW90ZUhh
bmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiB7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBz
ZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxl
Y3Rpb24uaXNOb25lKCkgfHwgIXNlbGVjdGlvbi5pc0NvbnRlbnRFZGl0YWJsZSgpIHx8ICFmcmFn
bWVudCkKQEAgLTUzOSw3ICs1MzksNyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldp
dGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIGlm
IChtYWlsQmxvY2txdW90ZUhhbmRsaW5nID09IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9y
ZUJsb2NrcXVvdGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
Oklnbm9yZU1haWxCbG9ja3F1b3RlOwogCi0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIEVkaXRBY3Rp
b25QYXN0ZSkpOworICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAg
cmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CiAKICAgICBzZWxlY3Rpb24g
PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpAQCAtNTUzLDEzICs1NTMsMTMgQEAg
dm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNr
aW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVN
YXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwg
VGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwog
fQogCi12b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYg
dGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCit2b2lkIEVk
aXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBz
ZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKIHsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOwogICAg
IGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxlY3RSZXBs
YWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aEZy
YWdtZW50KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KSwgc2VsZWN0UmVwbGFj
ZW1lbnQsIHNtYXJ0UmVwbGFjZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbik7CiB9CiAKIFBhc3NSZWZQ
dHI8UmFuZ2U+IEVkaXRvcjo6c2VsZWN0ZWRSYW5nZSgpCkBAIC0xMDAxLDcgKzEwMDEsOCBAQCB2
b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFu
ZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMg
c2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNz
YXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBj
bWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdn
ZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwg
b3B0aW9ucyk7CisgICAgCisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVj
dGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUVkaXRUeXBlKCkpOwogICAgIGRpc3BhdGNoRWRpdGFi
bGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVF
bGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAg
ICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAzMiw3ICsxMDMzLDcgQEAg
dm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBv
c2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhjbWQtPnN0YXJ0aW5nUm9v
dEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0YXJ0aW5nU2VsZWN0aW9u
KCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsKKyAgICBjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSwgY21kLT51bmFwcGx5RWRpdFR5cGUoKSk7CiAgICAgZGlzcGF0
Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVF
bGVtZW50KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0
ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjYsNyArMTI2Nyw3IEBAIHZvaWQgRWRp
dG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAg
ICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0
QWN0aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRD
b3B5T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShj
YW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6
OnBhc3RlKCkKQEAgLTIyMzgsNyArMjIzOSw3IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxp
bmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZ3b3JkU3RhcnQsCiAK
ICAgICAgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRleHQoYXV0b2NvcnJl
Y3RlZFN0cmluZywgbWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlw
ZWQpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2ZyYW1lLmVkaXRvcigpLnJlcGxh
Y2VTZWxlY3Rpb25XaXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFsc2UpOwor
ICAgICAgICBtX2ZyYW1lLmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRvY29y
cmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogCiAgICAgICAg
IC8vIFJlc2V0IHRoZSBjaGFyZXQgb25lIGNoYXJhY3RlciBmdXJ0aGVyLgogICAgICAgICBtX2Zy
YW1lLnNlbGVjdGlvbigpLm1vdmVUbyhtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmVu
ZCgpKTsKQEAgLTI1ODQsNyArMjU4NSw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VCYWNrVG9SZXBs
YWNlZFN0cmluZyhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQogICAgIAogICAgIG1fYWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZVJldmVy
c2VkKHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rpb24pOwogICAgIFRleHRDaGVja2luZ1BhcmFncmFw
aCBwYXJhZ3JhcGgoc2VsZWN0aW9uKTsKLSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVw
bGFjZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSk7CisgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0
KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogICAgIFJl
ZlB0cjxSYW5nZT4gY2hhbmdlZFJhbmdlID0gcGFyYWdyYXBoLnN1YnJhbmdlKHBhcmFncmFwaC5j
aGVja2luZ1N0YXJ0KCksIHJlcGxhY2VkU3RyaW5nLmxlbmd0aCgpKTsKICAgICBjaGFuZ2VkUmFu
Z2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCkubWFya2VycygpLmFkZE1hcmtlcihjaGFu
Z2VkUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCwgU3RyaW5nKCkpOwog
ICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+bWFya1JldmVyc2VkKGNoYW5nZWRSYW5n
ZS5nZXQoKSk7CkBAIC0yODE4LDcgKzI4MTksNyBAQCB2b2lkIEVkaXRvcjo6dHJhbnNwb3NlKCkK
ICAgICAvLyBJbnNlcnQgdGhlIHRyYW5zcG9zZWQgY2hhcmFjdGVycy4KICAgICBpZiAoIXNob3Vs
ZEluc2VydFRleHQodHJhbnNwb3NlZCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5
cGVkKSkKICAgICAgICAgcmV0dXJuOwotICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFu
c3Bvc2VkLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFu
c3Bvc2VkLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogfQogCiB2b2lkIEVkaXRv
cjo6YWRkVG9LaWxsUmluZyhSYW5nZSogcmFuZ2UsIGJvb2wgcHJlcGVuZCkKQEAgLTI4NTAsNyAr
Mjg1MSw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkK
ICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlz
c2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwg
IEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVkaXRv
cjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2Vs
ZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAg
IGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQo
KS5pc09ycGhhbigpKQpAQCAtMjg2Miw3ICsyODYzLDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNl
bGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24s
CiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8g
bG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9
IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlm
IChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigp
LnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBt
X2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGlu
dGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVj
dGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBE
T00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xs
b3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApp
bmRleCA3OTJiYzQ2Li5kMWQzMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3
ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVs
ZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9v
bCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBz
bWFydERlbGV0ZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQgY2xl
YXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC0zODIsOCArMzgyLDggQEAgcHVibGljOgogICAg
IHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopOwogICAgIFdFQkNPUkVfRVhQ
T1JUIFdyaXRpbmdEaXJlY3Rpb24gYmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFy
dCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0
aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wgc2VsZWN0UmVwbGFj
ZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3Rl
SGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3Ry
aW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVw
bGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCwgTWFp
bEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9j
a3F1b3RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4
dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFj
ZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgc2VsZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUs
IGludCBmcm9tLCBpbnQgbGVuZ3RoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZU1hcmtlcnNGb3JX
b3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGJvb2wgb25seUhhbmRsZVdvcmRzQ29udGFpbmluZ1NlbGVj
dGlvbik7CiAgICAgdm9pZCBkZWxldGVkQXV0b2NvcnJlY3Rpb25BdFBvc2l0aW9uKGNvbnN0IFBv
c2l0aW9uJiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFN0cmluZyk7CkBAIC00NjgsNyArNDY4LDcg
QEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3Np
dGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0
IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1l
U2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25TcGVj
aWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRPckNv
cHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNv
bW1hbmQuY3BwCmluZGV4IDUxMWNiMDIuLjdhODE2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBib29sIGV4ZWN1
dGVBcHBseVBhcmFncmFwaFN0eWxlKEZyYW1lJiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBz
b3VyY2UsCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50KQogewogICAgIEFTU0VSVChmcmFt
ZS5kb2N1bWVudCgpKTsKLSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpQcmV2ZW50TmVzdGluZywgRWRpdEFjdGlvblVuc3BlY2lmaWVkKSk7CisgICAgYXBwbHlD
b21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCks
IGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRB
Y3Rpb25JbnNlcnQpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA1NzQ1MTcwLi4yMzQ4NmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAKKyNpbmNsdWRl
ICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2hhcmFjdGVyRGF0YS5oIgogI2luY2x1ZGUg
IkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTM5
LDcgKzE0MCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50
T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBD
dXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewogICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2Vs
ZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFm
ZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRT
ZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgICAgIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBW
aXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNl
clRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMTcwLDcgKzE3MSw4IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBj
b25zdCBQb3NpdGlvCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3
U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2Vs
ZWN0aW9uLnNldElzRGlyZWN0aW9uYWwoc2VsZWN0aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNo
b3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0
U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAw
IDogRG9Ob3RTZXRGb2N1cyksIGludGVudCk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxl
cjo6c2V0Q2FyZXRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAt
MjU0LDcgKzI1NiwxMyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNl
SWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVj
dGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rp
b24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNv
ck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAgICAKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkgJiYgbmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgaW50ZW50ID0gQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
QVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgIGVsc2UKKyAgICAgICAg
aW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50
LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQog
CiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJh
bmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERp
cmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xs
IGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcgQEAg
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRv
Y3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChS
ZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZy
YW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYm
IG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBu
ZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
b3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsK
ICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBz
ZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAg
ICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0
ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAg
ICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhp
cyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBi
b29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9u
LCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24s
IFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGln
bk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYg
KCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9u
cywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3
IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZp
ZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9
CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZy
YW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRO
ZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9
CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lk
IEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQog
ICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdu
bWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShpbnRlbnQpOwogCiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVkaXRvcigp
LmNsaWVudCgpKQogICAgICAgICBjbGllbnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxh
eW91dCgpOwpAQCAtMTAyMSw3ICsxMDI5LDc3IEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVj
dGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBz
dGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAg
ICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBh
cmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAg
IAorfQorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW5saW5lIEZyYW1lU2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFs
dGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCit7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIg
PT0gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBl
ID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgZmxpcCA9IGlz
UmFuZ2UoKSAmJiBkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTDsKKyAgICB9IGVsc2UKKyAg
ICAgICAgaW50ZW50LnR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7
CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJp
dHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3Jh
bnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVu
Y2VHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVu
dC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRl
bmNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNl
IExpbmVCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
YXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0
eToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAo
Z3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2Ug
V29yZEdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNl
IExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNh
c2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5j
ZUJvdW5kYXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91
bmRhcnk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRy
dWU7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAg
IGNhc2UgRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAg
ICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9
IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rp
b24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDog
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
aXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChi
b3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJl
Z2lubmluZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IGludGVudDsKK30KKyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVy
YXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0
eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcs
NiArMTE1NSwxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0
ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1Jh
bmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3Rh
cnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1l
ICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChU
ZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAg
fQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZl
cnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBj
bGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5v
dGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVu
dXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MTAsOCArMTc5MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlz
aWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsK
IAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAg
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8
IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pKSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
QWxsIH0pOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAog
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZp
bml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUwOCw3IEBAIFZp
c2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2Fy
ZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlv
biA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRV
c2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxp
Z25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsK
KyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0
U2VsZWN0aW9uT3B0aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBBbGlnbkN1cnNv
ck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAg
UG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAg
ICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5lY2NjYTI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAog
CisjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0aW5n
U3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpA
QCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlv
blRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0Rp
cmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRT
ZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxp
Z25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5
ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Vs
ZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmlu
aXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFs
bCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzMsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQs
IEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsK
KyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVj
dG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRp
bmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25z
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzI5OSwx
MCBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tE
aXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOwor
ICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRp
b24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
PSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5k
aWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRl
eHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzY5LDcgQEAgaW5saW5l
IHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0
eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxp
bmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXgg
NTM5NGU3ZS4uN2M4ZGEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0KQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkK
K0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+
ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9v
ZmZzZXQob2Zmc2V0KQogICAgICwgbV90ZXh0KHRleHQpCkBAIC01MCw2ICs1MCwxMSBAQCBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVCghbV90ZXh0LmlzRW1wdHkoKSk7CiB9CiAK
K2NvbnN0IFN0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkK
K3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCku
c2V0dGluZ3MoKS5wYXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC02Niw4ICs3MSw4IEBAIHZvaWQg
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2Vy
dERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBB
WE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBt
X3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQog
CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODQsOCArODksOCBAQCB2b2lkIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0
KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0
aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uZmZlMzcyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKQEAgLTM0LDE0ICszNCwxNiBAQCBjbGFzcyBUZXh0OwogCiBjbGFzcyBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHN0YXRp
YyBSZWY8SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4g
bm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToK
LSAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworICAgIGNvbnN0IFN0cmluZyYgaW5z
ZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJy
aWRlOwogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uZWQwYTY2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAK
QEAgLTI5LDEzICsyOSwxNSBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1JbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwKLSAgICBT
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHJlZkNoaWxkLT5kb2N1bWVu
dCgpKQorSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0
Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faW5z
ZXJ0Q2hpbGQoaW5zZXJ0Q2hpbGQpCiAgICAgLCBtX3JlZkNoaWxkKHJlZkNoaWxkKQogICAgICwg
bV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkKQEAgLTU3LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRD
aGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRD
aGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hp
bGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0
Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQo
KSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCks
IDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENo
aWxkLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBW
aXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBO
ZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2Vy
dENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENo
aWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2Vy
dENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0
KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgp
LCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRD
aGlsZC5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgp
LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxk
LT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uMTM4N2JhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApA
QCAtMzMsMjEgKzMzLDIyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEluc2VydE5vZGVC
ZWZvcmVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPEluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2Rl
PiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCi0g
ICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNo
aWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNo
aWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSk7Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
UGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9J
bnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0
aW9uKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKLSAgICAKKwogI2lmbmRlZiBO
REVCVUcKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
KSBvdmVycmlkZTsKICNlbmRpZgotICAgIAorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hp
bGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNl
cGFyYXRvckNvbW1hbmQuY3BwCmluZGV4IDIxMjgyOWMuLjdkZDAxNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21t
YW5kLmNwcApAQCAtNTksOCArNTksOCBAQCBzdGF0aWMgRWxlbWVudCogaGlnaGVzdFZpc3VhbGx5
RXF1aXZhbGVudERpdkJlbG93Um9vdChFbGVtZW50KiBzdGFydEJsb2NrKQogICAgIHJldHVybiBj
dXJCbG9jazsKIH0KIAotSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVzZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFy
ZWEpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQ6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50LCBib29sIG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBw
YXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAg
ICAsIG1fbXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KG11c3RVc2VEZWZhdWx0UGFyYWdy
YXBoRWxlbWVudCkKICAgICAsIG1fcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYShwYXN0
ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaAppbmRleCAxMjgx
ZjBjLi42NzM0MTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNz
IEVkaXRpbmdTdHlsZTsKIAogY2xhc3MgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZCA6
IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9j
a3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1
c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUlu
dG9VbnF1b3RlZEFyZWEgPSBmYWxzZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFj
dGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoZG9jdW1lbnQsIHVz
ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVh
LCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIEluc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpOworICAgIEluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3Jh
cGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIEVkaXRBY3Rp
b24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAppbmRleCBiZGQ1OWEzLi41NzJlOGVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMzcsMTYg
KzM3LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0VGV4dENvbW1hbmQ6Oklu
c2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQotICAg
IDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitJbnNlcnRUZXh0Q29tbWFuZDo6SW5z
ZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50
LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3NlbGVjdEluc2Vy
dGVkVGV4dChzZWxlY3RJbnNlcnRlZFRleHQpCiAgICAgLCBtX3JlYmFsYW5jZVR5cGUocmViYWxh
bmNlVHlwZSkKIHsKIH0KIAotSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNl
cnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCi0gICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5z
ZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlv
bikKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV9zZWxlY3RJbnNlcnRlZFRleHQoZmFsc2Up
CiAgICAgLCBtX3JlYmFsYW5jZVR5cGUoUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVz
cGFjZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXgg
ZjEwZDJmZS4uNjUyODE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRUZXh0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENv
bW1hbmQuaApAQCAtNDksMjAgKzQ5LDIxIEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGlj
IFJlZjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLAotICAgICAgICBS
ZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdX
aGl0ZXNwYWNlcykKKyAgICAgICAgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxh
bmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
biA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBy
ZWJhbGFuY2VUeXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRD
b21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUs
IGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21t
YW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJr
ZXJTdXBwbGllcikKKyAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRo
TWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBh
c3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllciwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBt
YXJrZXJTdXBwbGllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIsIGVkaXRpbmdBY3Rpb24pKTsK
ICAgICB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtl
clN1cHBsaWVyPiwgRWRpdEFjdGlvbik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VU
eXBlLCBFZGl0QWN0aW9uKTsKIAotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7
Ci0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBh
c3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7Citwcml2YXRlOgogCiAgICAg
dm9pZCBkZWxldGVDaGFyYWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAppbmRl
eCAyYzA2M2MwLi5jNjI5NzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcApAQCAtMzEs
OCArMzEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNz
UmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKK1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBD
b21wb3NpdGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAg
ICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZC5oCmluZGV4IDRiOTE5NzQuLjFiMmM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
LmgKQEAgLTMyLDEzICszMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21t
YW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkK
KyAgICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVh
dGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGV4cGxpY2l0IFJlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBkb0FwcGx5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZTViOTg0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5oIgorCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgCitSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZz
ZXQsIGNvdW50LCBFZGl0QWN0aW9uRGVsZXRlKQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTg1ODcwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVm
aW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBU
ZXh0OworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ODJkMDEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbikKKyAgICAsIG1fZGVsZXRlZFRleHQo
ZGVsZXRlZFRleHQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYVGV4dEVk
aXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBw
b3NpdGlvbikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50
KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0
dXJuOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3du
OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBj
YWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlw
ZURlbGV0ZSwgdGV4dCwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0
aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGlu
ZzoKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwg
QVhUZXh0RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHR5cGUsIHRleHQsIHBvc2l0aW9u
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE2MWRi
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQsIGVkaXRpbmdBY3Rp
b24pKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgRWRpdEFjdGlvbik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcg
bV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uOGFh
YmY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKQEAgLTQ3LDYgKzQ3LDggQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIK
ICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5j
bHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3Vw
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJv
cGVydGllcy5oIgpAQCAtMzY5LDcgKzM3MSw3IEBAIGlubGluZSB2b2lkIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjpkaWRSZXBsYWNlTm9kZShOb2RlKiBub2RlLCBOCiB9
CiAKIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENv
bW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKLSAgICA6IENvbXBv
c2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9j
dW1lbnQsIGVkaXRBY3Rpb24pCiAgICAgLCBtX3NlbGVjdFJlcGxhY2VtZW50KG9wdGlvbnMgJiBT
ZWxlY3RSZXBsYWNlbWVudCkKICAgICAsIG1fc21hcnRSZXBsYWNlKG9wdGlvbnMgJiBTbWFydFJl
cGxhY2UpCiAgICAgLCBtX21hdGNoU3R5bGUob3B0aW9ucyAmIE1hdGNoU3R5bGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3
YzNmZi4uODhkYTA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaApAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVm
IHVuc2lnbmVkIENvbW1hbmRPcHRpb25zOwogCi0gICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBh
Y3Rpb24gPSBFZGl0QWN0aW9uUGFzdGUpCisgICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0
aW9ucywgYWN0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgZWRpdGluZ0FjdGlvbikp
OwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTEyMSw2ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9wcmV2ZW50TmVzdGluZzsKICAgICBib29sIG1fbW92aW5nUGFyYWdyYXBoOwogICAgIEVk
aXRBY3Rpb24gbV9lZGl0QWN0aW9uOworICAgIEFYVGV4dEVkaXRUeXBlIG1fYXBwbHlFZGl0VHlw
ZTsKICAgICBib29sIG1fc2FuaXRpemVGcmFnbWVudDsKICAgICBib29sIG1fc2hvdWxkTWVyZ2VF
bmQ7CiAgICAgYm9vbCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uZjA3NDQ0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBU
eXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQpCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3
bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKICAg
ICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6
Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKLSAgICAgICAgbV9j
b21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5k
OjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21t
YW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CisgICAgICAgIG1fY29tcG9zaXRpb25UeXBl
ID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVh
ZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNl
QWxsV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb25UeXBpbmcpOwogCiAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogCkBAIC0zOTUsNyArMzk1LDcg
QEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlm
ICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlvblR5cGluZykpOwogICAgIHR5cGluZ0Fk
ZGVkVG9PcGVuQ29tbWFuZChJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2My
MTM2NS4uMzMyZTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJh
bWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1l
U2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRU
ZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3Qp
CiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5
YmRlZTFjLi5mZDQxOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9G
cmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFt
ZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNz
aWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRG
T1JNKElPUykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAog
ICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVu
ZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0
Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVy
ZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZh
YmxlUGFyZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3Nl
bGVjdGlvbik7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4u
MzY4NGUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29s
IHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7
CisgICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4
dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAg
ICBpZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRl
eHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAg
ICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZh
bHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgog
ICAgICAgICBpbm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElP
Tik7CiAKICAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRo
KCdccicpKQogICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShB
Q0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5n
ZWQgJiYgcmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBj
YWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWFRleHRFZGl0VHlw
ZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNo
b3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFs
dWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
aW5kZXggYzhiZWU5ZS4uYmI0ZWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMzIxMCw3ICszMjEwLDggQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2Vs
ZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dl
cmVkKSk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9
KTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxl
Y3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQp
OwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1l
JiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKaW5kZXggNzdjMDdmZS4uZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzQwLDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJv
bGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgS2V5YgogICAgIGlmIChjYXJldEJyb3dzaW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0
aW9uID0gZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAg
ICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05T
VFJFQU0pOwotICAgICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3Vs
ZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
QVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUu
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgZWxlbWVudC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggYWU2ZDY3Yy4uMmZmODNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29t
PgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVy
IGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRl
eHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQu
IEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNz
d29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0
aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNl
bGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
biB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciBy
ZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2Nr
IHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVG
b3JFZGl0QWN0aW9uKToKKwogMjAxNS0wNC0yMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIG1peGVkIGNvbnRlbnQgYmxvY2tpbmcgZm9yIGV4
aXN0aW5nIFdlYktpdDEgY2xpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IGQyMWNkZjAuLmU1OTBkOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0KQEAgLTU0Niw2ICs1NDYsNyBAQCBzdGF0aWMgTlNTdHJpbmcqIHVuZG9OYW1lRm9yRWRpdEFj
dGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgaWRlbnRp
Y2FsIHRvIGNvZGUgaW4gV2ViS2l0MidzIFdlYkVkaXRDb21tYW5kUHJveHkgY2xhc3M7IHdvdWxk
IGJlIG5pY2UgdG8gc2hhcmUgdGhlIHN0cmluZ3MgaW5zdGVhZCBvZiBoYXZpbmcgdHdvIGNvcGll
cy4KICAgICBzd2l0Y2ggKGVkaXRBY3Rpb24pIHsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5z
cGVjaWZpZWQ6IHJldHVybiBuaWw7CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDogcmV0
dXJuIG5pbDsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29sb3I6IHJldHVybiBVSV9TVFJJ
TkdfS0VZX0lOVEVSTkFMKCJTZXQgQ29sb3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1l
KSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldEJhY2tn
cm91bmRDb2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBCYWNrZ3JvdW5k
IENvbG9yIiwgIlNldCBCYWNrZ3JvdW5kIENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRv
IGFjdGlvbiBuYW1lIik7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nOiBy
ZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVHVybiBPZmYgS2VybmluZyIsICJUdXJuIE9m
ZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggMTU2MWJlNi4uNDRmMGNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAg
IEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxp
dHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwg
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250
ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVt
ZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZp
ZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBv
ZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQg
YW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkVkaXRDb21tYW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFu
ZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbik6CisKIDIwMTUtMDQtMjAgIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgbW9yZSBidW5kbGUgZm9ybSBjbGll
bnQgZnVuY3Rpb25zIGFzIFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUgbWV0
aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5k
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHku
Y3BwCmluZGV4IDU0Y2UwM2MuLjg3ODU1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDggQEAgU3RyaW5nIFdl
YkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlv
bikKICAgICBzd2l0Y2ggKGVkaXRBY3Rpb24pIHsKICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNp
ZmllZDoKICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2Vy
dDoKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9y
OgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29s
b3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICBjYXNlIEVk
aXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzk1MGMzNC4uZTA0NDcyZSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1
LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ug
bm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4g
b3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lz
dGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNo
YW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0
aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKworMjAxNS0wNC0yMCAg
RG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQy
NzE5KQorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQy
NzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmlj
aGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBB
WFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9y
ZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRl
bnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBw
YXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emlu
ZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5
IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJs
b2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZp
Y2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgt
W0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpd
KToKKwogMjAxNS0wNC0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBsb2dzIHdoZW4gcmVzZXR0aW5nIHRl
c3RzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaAppbmRleCAxOTM4NmNlLi45MDhkYmRjIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIuaApAQCAtNDIsNiArNDIsNyBAQAogLSAodm9pZClzZXRQbGF0Zm9ybUVs
ZW1lbnQ6KGlkKXBsYXRmb3JtRWxlbWVudDsKIC0gKHZvaWQpc2V0Q2FsbGJhY2s6KEpTT2JqZWN0
UmVmKWNhbGxiYWNrOwogLSAodm9pZClzdGFydE9ic2VydmluZzsKKy0gKHZvaWQpc3RvcE9ic2Vy
dmluZzsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggYWRhNjg3YS4uZjFj
OWFmZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTA0LDYgKzEwNCwxMSBAQAogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX25vdGlmaWNhdGlvblJlY2VpdmVkOikgbmFtZTpAIkFYRFJUTm90
aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsKIH0KIAorLSAodm9pZClzdG9wT2JzZXJ2aW5nCit7Cisg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpz
ZWxmXTsKK30KKwogLSAodm9pZClfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6KE5TTm90aWZpY2F0aW9u
ICopbm90aWZpY2F0aW9uCiB7CiAgICAgTlNTdHJpbmcgKm5vdGlmaWNhdGlvbk5hbWUgPSBbW25v
dGlmaWNhdGlvbiB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAibm90aWZpY2F0aW9uTmFtZSJdOwpA
QCAtMTEyLDE2ICsxMTcsMjcgQEAKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0
Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAK
KyAgICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9b
QCJ1c2VySW5mbyJdOworCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0
aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpT
VmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoW21h
aW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFs
dWVSZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZv
SlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpz
VXNlckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmlu
Z1JlZl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VG
cm9tSlNPTlN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc1VzZXJJbmZvSlNPTlZh
bHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAg
IC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUg
bm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5G
cmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAx
LCAmbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAv
LyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9u
IG5hbWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQg
Z2V0cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFt
ZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3Vt
ZW50OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29u
dGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAw
KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBl
bGVtZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVS
ZWYgYXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVudHNbMF0gPSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjptYWtlSlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFttYWluRnJhbWUgZ2xvYmFsQ29u
dGV4dF0sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoW25vdGlmaWNhdGlvbiBvYmplY3RdKSk7CiAg
ICAgICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAg
YXJndW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmpl
Y3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlv
bkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bQppbmRleCA0NjczYTFkLi4zOTdjNjM4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMTQ0Niw2ICsxNDQ2LDcg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5l
cigpCiAgICAgLy8gTWFjIHByb2dyYW1tZXJzIHNob3VsZCBub3QgYmUgdHJ5aW5nIHRvIHJlbW92
ZSBhIGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJlbW92ZWQuCiAgICAgQVNTRVJUKG1fbm90aWZp
Y2F0aW9uSGFuZGxlcik7CiAKKyAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZp
bmddOwogICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgcmVsZWFzZV07CiAgICAgbV9ub3RpZmlj
YXRpb25IYW5kbGVyID0gbmlsOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCA2NTFiNTkxLi4yOGNhMDNmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTI1
LDE5ICsxMjUsMzAgQEAKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9ybUVs
ZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAgICBO
U1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1c2Vy
SW5mbyJdOworCiAgICAgV0tCdW5kbGVGcmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VH
ZXRNYWluRnJhbWUoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdl
KCkpOwogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3Jp
cHRDb250ZXh0KG1haW5GcmFtZSk7CiAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNO
b3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25OYW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7
CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0
cmluZyhjb250ZXh0LCBqc05vdGlmaWNhdGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2Vy
SW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gbmlsOworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUg
bGVuZ3RoXSkgeworICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pT
T05WYWx1ZShBZG9wdCwgW3VzZXJJbmZvSlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7Cisg
ICAgICAgIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3Ry
aW5nKGNvbnRleHQsIGpzVXNlckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAo
bV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50
IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAg
SlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPiht
X25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAxLCAmbm90aWZpY2F0aW9uTmFtZUFy
Z3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBn
ZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYXMgYXJndW1lbnRzLgor
ICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9u
IG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1syXTsKKyAg
ICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBh
cmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OworICAgICAgICBKU09iamVj
dENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZp
Y2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZp
Y2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1sz
XTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gdG9KUyhjb250ZXh0LCBXVEY6OmdldFB0cihXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbbm90aWZpY2F0aW9uIG9iamVjdF0pKSk7
CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAg
ICAgYXJndW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25v
dGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGVkMDJm
YjcuLmUyNjA3ZTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bQpAQCAtMTQ3Niw2ICsxNDc2LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1v
dmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgLy8gTWFjIHByb2dyYW1tZXJzIHNob3VsZCBu
b3QgYmUgdHJ5aW5nIHRvIHJlbW92ZSBhIGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJlbW92ZWQu
CiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9uSGFuZGxlcik7CiAKKyAgICBbbV9ub3RpZmljYXRp
b25IYW5kbGVyIHN0b3BPYnNlcnZpbmddOwogICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgcmVs
ZWFzZV07CiAgICAgbV9ub3RpZmljYXRpb25IYW5kbGVyID0gbmlsOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251485</attachid>
            <date>2015-04-23 13:56:21 -0700</date>
            <delta_ts>2015-04-23 14:05:38 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>216737</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGMzNzVjYzNmNTU4NjgxZDJkZTZjNDU4YjYwYTY2ZjM2NTMyODVlNDYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzYyMjA4Ny4uOGVmZWI1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNWR0ZpdFRvVmlld0Jv
eDo6dmlld0JveFRvVmlld1RyYW5zZm9ybSgpIGhhcyB0byBjb3VudCBmb3IgemVybyBwaHlzaWNh
bCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBjYWxsaW5nIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86
OmdldENUTSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmE2Zjgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIw
IEBACisgIAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8g
ZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVudHMgb2YgYW4gaW5wdXQgZmllbGQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBp
cyBBWFRleHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVsxXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUluc2VydAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdl
VmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIiAiCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBB
WFRleHRFZGl0VHlwZUluc2VydAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2Vy
aW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMGRlMzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9p
bnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGlucHV0IHR5cGU9InBhc3N3
b3JkIiBpZD0ic2VjdXJldmFsdWV0ZXN0Ij4KKworICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
dmFsdWV0ZXN0Ij4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCisg
ICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB2YWx1ZSBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVu
dHMgb2YgYW4gaW5wdXQgZmllbGQuIik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQgPSAxOworCisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7Cisg
ICAgICAgIHZhciBBWFRleHRFZGl0VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsg
MTsKKworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7Cisg
ICAgICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7Cisg
ICAgICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlcklu
Zm8pIHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikg
eworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNo
KHVzZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMikgeworCisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBl
SW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gUGFzc3dvcmQgbm90aWZpY2F0aW9u
cyB3aWxsIGJlIGluc2VydCBvbmx5IGFuZCB0aGUgdmFsdWUgc3RyaW5nIHdpbGwgYmUgd2hpdGVz
cGFjZQorICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIiBcIiIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHNldHZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVl
dGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0c2Vj
dXJldmFsdWUoKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJl
dmFsdWV0ZXN0IikudmFsdWUgPSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKworICAgICAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAg
ICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGls
ZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVh
LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgICAg
IHNldHZhbHVlKCk7CisKKyAgICAgICAgICAgIHNldHNlY3VyZXZhbHVlKCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGQyMmZmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTUgQEAKK29uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBz
aXguCisKK3NldmVuIGVpZ2h0IG5pbmUuCisKK1RoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBu
b3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZwor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHki
XSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjU3NTM3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMCww
ICsxLDIxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IHJv
bGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVl
PgorPHA+b25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC48L3A+Cis8cD5zZXZlbiBlaWdodCBu
aW5lLjwvcD4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKzxzY3JpcHQ+
CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNh
dGlvbnMgdXNlciBpbmZvIGRhdGEuIik7CisKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSA9IDI7CisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgKyAxOworCisgICAg
dmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZyArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzID0gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lID0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSArIDE7
CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoID0gQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCAr
IDI7CisKKyAgICB2YXIgZ3JhbiA9IFsiY2hhcmFjdGVyIiwgIndvcmQiLCAic2VudGVuY2UiLCAi
bGluZSIsICJwYXJhZ3JhcGgiLCAibGluZWJvdW5kYXJ5IiwgInNlbnRlbmNlYm91bmRhcnkiLCAi
cGFyYWdyYXBoYm91bmRhcnkiLCAiZG9jdW1lbnRib3VuZGFyeSJdOworICAgIHZhciB3ZWJBcmVh
ID0gMDsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciByZXN1bHRzID0gW107CisgICAgdmFy
IHJlc3VsdEluZGV4ID0gMDsKKyAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3Rp
ZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2Vs
ZWN0ZWRUZXh0Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBp
ZiAodXNlckluZm8pCisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAg
ICAgICAgICAgIGlmIChjb3VudCA9PSBncmFuLmxlbmd0aCAqIDQpIHsKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
ciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0g
MjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAgICAgd2ViQXJlYSA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAg
ICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlm
aWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAv
LyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgorICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKKyAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAg
Zm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3
YXJkIiwgZ3JhbltpXSk7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIs
IGdyYW5baV0pOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIHMubW9kaWZ5
KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICB9CisgICAgfQorCis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11
c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzkzYWFiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OSBAQAorMDIzNDU2Nzg5MAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1
c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRk
ZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUN1dAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0g
aXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVBhc3RlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMjM0NTY3ODkwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVl
Il0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVR5cGluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhZDM0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5o
dG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9k
eSI+CisKKyAgICA8ZGl2IHJvbGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNv
bnRlbnRlZGl0YWJsZT10cnVlPjAxMjM0NTY3ODkwPC9kaXY+CisKKyAgICA8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJu
b3RpZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEu
Iik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQgPSAxOworCisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0
VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlVHlwaW5nID0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgKyAxOworICAgICAgICB2YXIg
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gPSBBWFRleHRFZGl0VHlwZVR5cGluZyArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZUN1dCA9IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uICsgMQor
ICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVQYXN0ZSA9IEFYVGV4dEVkaXRUeXBlQ3V0ICsgMTsK
KworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAg
ICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAg
ICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlckluZm8p
IHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikgewor
ICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVz
ZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gNikgeworCisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlQ3V0Iik7CisKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VW
YWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlw
ZVwiXSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIyMzQ1Njc4OTBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIx
XCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0
RWRpdFR5cGVUeXBpbmciKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURl
bGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKwor
ICAgICAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50
LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdl
YkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAg
ICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAg
ICAgICAgdmFyIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwor
ICAgICAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgICAgICBleGVjU2V0U2VsZWN0
aW9uQ29tbWFuZCh0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25S
aWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgY3V0Q29tbWFuZCgpOworICAg
ICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0ZXJDb21tYW5kKCk7Cisg
ICAgICAgICAgICBwYXN0ZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oIjEiKTsKKyAgICAgICAgICAgIGRlbGV0ZUNvbW1hbmQoKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAzZGY5NGVmLi44Y2NjNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUxMSw2ICsxNTEx
LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0MjcwOWUuLmMx
MTFmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTMgQEAKKzIwMTUtMDQtMjIgIERvdWcgUnVz
c2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNo
YW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKKyAg
ICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2Vy
aW5mby5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6aXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcik6IERlbGV0ZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFz
c3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBv
c3ROb3RpZmljYXRpb25zRm9yVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZp
Y2F0aW9uV2l0aFVzZXJJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKCtbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOl0pOgor
ICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpdKToKKyAgICAgICAgKGFycmF5UmVtb3ZpbmdOb25KU09OVHlw
ZXMpOgorICAgICAgICAoZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246dXNlckluZm86XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpB
cHBlbmROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpB
cHBseVN0eWxlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlCbG9ja1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjph
cHBlbmROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVC
cmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUF0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OnNob3VsZFN0b3BDYXJldEJsaW5raW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVk
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFu
ZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdEFjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRDb21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OlNp
bXBsZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZDo6c2V0UGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGll
ZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUluc2VydEZyYWdtZW50KToKKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRT
ZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlm
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1Nl
bGVjdGlvblVwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdv
cmRTdGFydCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Oklu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToK
KyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGlu
Zy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAg
ICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRW
YWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1c0luRG9jdW1lbnRPcmRlcik6CisKIDIwMTUtMDQtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBPdmVyd3JpdGUgZXhpc3RpbmcgZmls
ZXMgd2l0aCBtb3ZlRmlsZS4KQEAgLTM4Niw2ICs1OTYsMjEgQEAKICAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpjb21wdXRlZExpbmVIZWlnaHQpOiBDbGFtcCBsaW5lLWhlaWdodCB0byBh
bgogICAgICAgICAgICAgaW50IHRvIGF2b2lkIG92ZXJmbG93LgogCisyMDE1LTA0LTE0ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEg
bWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBp
biBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFu
Z2VzLgorCisyMDE1LTA0LTE0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAg
TmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vz
c2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY29tbWl0IGlzIGFsbCBpbmZyYXN0cnVjdHVyZSBh
bmQgZG9lc24ndCBjb250YWluIGFueSBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIGNoYW5nZXMuCis+
Pj4+Pj4+IDxyZGFyOi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisKIDIwMTUtMDQtMTcgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91bGQgZ28gdGhyb3Vn
aCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggM2ViZTZiOS4uNjVhNTg1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CkBAIC0xNDc3Myw2ICsxNDc3MywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE5NTIyLDYg
KzE5NTUwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQWNj
ZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdp
blxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccGFnZVxBZGp1c3RWaWV3U2l6ZU9yTm90LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwYWdlXEFsdGVybmF0aXZlVGV4dENsaWVudC5oIiAvPgpAQCAtMjEwNzQsNiAr
MjExMDMsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgiIC8+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
aW5kZXggZTJiYTJlNi4uMjYzYzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzUyOCw2ICszNTI4LDEy
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24u
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNzY1Niw2ICs3NjYyLDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAg
IDxGaWx0ZXI+YWNjZXNzaWJpbGl0eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVu
dC5oIj4KKyAgICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eVx3aW48L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjY1LDYgKzEwNjc0LDEyIEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4N2QyZTc3Li45NTdkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjM0LDYgKzMyMzQs
NyBAQAogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3
M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKIAkJ
OTAwMTc4ODAxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RTEy
RTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLzsgfTsKIAkJ
OTAwMTc4ODExMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0YxMkUw
MzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OworCQk5MUM5
RjJGOTFBRTNCRUIwMDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxQzlGMkY4MUFFM0JFMjQw
MDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07CiAJ
CTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDVCMjRDMDk4RjFCNkIwMEMyODg1
NSAvKiBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC02Mzc5LDYgKzYzODAsMTAgQEAKIAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsg
fTsKIAkJRjU0NEY3ODgxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggKi87IH07CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYx
MkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgKi87IH07CkBAIC0xMDQ2Niw2ICsxMDQ3MSw3IEBACiAJCTkwMDE3NzNG
MTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgcGF0aCA9IGNhbnZhcy9P
RVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RjEyRTAzNzA3
MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8q
IFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdl
R3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAyQjBCRTBENzlGODJD
MDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA1QjI0QzA5OEYx
QjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA2LDYgKzE0MDEyLDEw
IEBACiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRm
b3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
ODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAv
KiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
NjEzLDYgKzE1NjIzLDcgQEAKIAkJCQkyOUE4MTIxMzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmggKi8sCiAJCQkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFY
T2JqZWN0Q2FjaGUuY3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9i
amVjdENhY2hlLmggKi8sCisJCQkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGFjY2Vzc2liaWxpdHk7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTc3NDEsNiArMTc3NTIsMTAgQEAKIAkJCQk5
MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3Np
dGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NTI4REE3
MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCQTA5OUU2
NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMjM2Njgs
NiArMjM2ODMsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU1OTAsNiArMjU2MDYsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgw
MEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hN
TEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZh
bHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyog
SlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjY0Miw2ICsyNjY1OSw3IEBA
CiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQzFENDI4MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E2OTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyOTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aEFicy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MkExNzhENUFC
NDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTZEMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpYy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODM5Myw2ICsyODQxMSw3IEBACiAJCQkJNTEw
MTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFn
ZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1h
Yy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk4MzYsNiArMjk4NTUsNyBAQAogCQkJCUZFMzZGRDE2
MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVy
YXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0
ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLjI1NjhiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTAsNiArOTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKKy8vIFBvc3QgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
Zm9yIHBhc3N3b3JkIGZpZWxkcyBvciBlbGVtZW50cyBjb250YWluZWQgaW4gcGFzc3dvcmQgZmll
bGRzIGF0IGEgNDBoeiBpbnRlcnZhbCB0byB0aHdhcnQgYW5hbHlzaXMgb2YgdHlwaW5nIGNhZGVu
Y2UKK3N0YXRpYyBkb3VibGUgQWNjZXNzaWJpbGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb25JbnRlcnZhbCA9IDAuMDI1OworCiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFY
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZTo6Z2V0SWdub3JlZChBWElEIGlkKSBjb25zdAog
ewogICAgIEhhc2hNYXA8QVhJRCwgQ2FjaGVkQVhPYmplY3RBdHRyaWJ1dGVzPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX2lkTWFwcGluZy5maW5kKGlkKTsKQEAgLTEyOSw2ICsxMzIsNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGlt
ZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAg
ICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hl
OjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03MDUsNyAr
NzA5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgp
CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0b3JGb3JDYWNoZU93bmVyKG1fZG9jdW1lbnQpOwog
ICAgIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKICAgICAKLSAgICAvLyBJbiBEUlQs
IHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1
ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJl
aGF2aW9yCisgICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5k
ZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBj
YW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCiAgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0
aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0
IHRoZSBzdGFydC4KICAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9ub3RpZmlj
YXRpb25zVG9Qb3N0KTsKICAgICAKQEAgLTc0Miw2ICs3NDYsMjAgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNo
YW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOworCisg
ICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBp
bW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0
byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3Qg
aXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFy
dC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNh
dGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3Rp
ZmljYXRpb25zKQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxl
UG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5v
dGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmlj
YXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04
NTAsMTYgKzg2OCwyMjMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVy
ZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwog
fQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
IG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRl
bnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2gg
KGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgor
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgZGF0YUxvZygiRWRpdDo6Iik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICAgICAgZGF0YUxvZygiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBkYXRhTG9nKCJFeHRl
bmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkg
eworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGlu
dGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIGRhdGFMb2coIkRlbGV0ZSIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgICAgICBkYXRhTG9nKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgZGF0YUxvZygi
RGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIlR5cGluZ0luc2VydCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
ICAgICAgICBkYXRhTG9nKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBkYXRhTG9nKCJQYXN0ZSIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25vd246OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAg
ICAgICAgZGF0YUxvZygiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGRhdGFMb2co
IkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBkYXRhTG9nKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBkYXRhTG9nKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24p
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246Cisg
ICAgICAgICAgICAgICAgZGF0YUxvZygiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIGRhdGFMb2coIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IGRhdGFMb2coIi1TeW5jIik7CisgICAgZGF0YUxvZygiXG4iKTsKK30KKyNlbmRpZgorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30K
Kworc3RhdGljIGJvb2wgaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQoreworICAgIHJldHVybiBvYmplY3QgJiYgKG9i
amVjdC0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqZWN0LT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNl
bGVjdGlvbkludGVudDsKKwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KLSAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBp
ZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChpc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3Qg
PSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBpbnRlbnQsIHNlbGVjdGlvbik7Cisj
ZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNo
ZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRp
ZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHR5cGUsIHRleHQs
IHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZSh0eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2
YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0KTsKKyNlbmRpZgorfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSog
bm9kZSwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRU
eXBlRGVsZXRlKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUlu
c2VydCB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlv
blR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZVBhc3RlKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1
dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlm
IChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmplY3QpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRU
ZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKK30K
KworYm9vbCBBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCit7CisgICAgaWYgKCFpc1Bhc3N3b3Jk
RmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0gb2Jq
ZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAvLyByZXR1cm4gdHJ1ZSBldmVu
IHRob3VnaCB0aGUgZW5xdWV1ZSBkaWRuJ3QgaGFwcGVuIGJlY2F1c2UgdGhpcyBpcyBhIHBhc3N3
b3JkIGZpZWxkIGFuZCBjYWxsZXIgc2hvdWxkbid0IHBvc3QgYSBub3RpZmljYXRpb24KKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9u
c1RvUG9zdC5jb250YWlucyhvYnNlcnZhYmxlT2JqZWN0KSkgeworICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlm
ICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoQWNjZXNzaWJp
bGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZhbCk7CisgICAgfQorCisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQp
CkBAIC0xMDg0LDYgKzEzMDksMTQgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2Rl
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RD
YWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmpl
Y3QgPSB0aGlzLT5yb290T2JqZWN0KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2Jq
ZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmpl
Y3QpLndlYkFyZWFPYmplY3QoKTsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShj
YWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggYmZhOTI3Ny4uYTgxYWU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
QVhPYmplY3RDYWNoZV9oCiAjZGVmaW5lIEFYT2JqZWN0Q2FjaGVfaAogCisjaW5jbHVkZSAiQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0Lmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KQEAgLTY3LDYgKzY4LDEw
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxBWElELCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+
IG1faWRNYXBwaW5nOwogfTsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK2VudW0gQVhUZXh0Q2hh
bmdlIHsgQVhUZXh0SW5zZXJ0ZWQsIEFYVGV4dERlbGV0ZWQgfTsKKyNlbmRpZgorCiBlbnVtIFBv
c3RUYXJnZXQgeyBUYXJnZXRFbGVtZW50LCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50IH07CiAKIGVu
dW0gUG9zdFR5cGUgeyBQb3N0U3luY2hyb25vdXNseSwgUG9zdEFzeW5jaHJvbm91c2x5IH07CkBA
IC0xODksMTIgKzE5NCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAotICAgIH07CisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25z
dCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOwogCi0gICAgdm9pZCBub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9h
ZGluZ1N0YXJ0ZWQsCkBAIC0yMTMsMTIgKzIyMSwyNCBAQCBwdWJsaWM6CiAgICAgQVhDb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZUNhY2hlKiBjb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkgeyBy
ZXR1cm4gbV9jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlLmdldCgpOyB9CiAKICAgICBEb2N1
bWVudCYgZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9Ci0gICAgCisKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgc3RhdGljIEFYVGV4dENoYW5nZSB0ZXh0
Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUpOworICAgIHZvaWQgbm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2Fk
aW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2Fk
aW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwog
ICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsyNDksOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJr
ZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAg
SGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAg
ICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAg
LTI0NCw2ICsyNjYsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RU
aW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAg
ICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVN
ZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyNzgsMTAgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhU
TUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Kik7CisKKyAgICBib29sIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1f
dGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVy
CkBAIC0zMDgsOCArMzM5LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Ny
b2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7
IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJP
YmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9B
bmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlw
ZSkgeyB9CkBAIC0zMjAsNiArMzUyLDE0IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJl
bW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lkZ2V0
KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIHsgfQorI2Vsc2UKK2lubGluZSBBWFRleHRDaGFuZ2UgQVhPYmplY3RDYWNoZTo6dGV4dENo
YW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKSB7IHJldHVybiBBWFRleHRJbnNlcnRlZDsg
fTsKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzI2NGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgKQEAg
LTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKyNkZWZpbmUgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitlbnVtIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCit9
OworCitlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisg
ICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICBBWFRl
eHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgIEFYVGV4dEVkaXRU
eXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0
aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBE
ZWxldGUgdmlhIEN1dAorICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0
ZQorfTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblVua25vd24sCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cywKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAor
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKK307CisKK2VudW0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
VW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisgICAg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYWdlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQs
CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJl
cHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEg
c2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFy
aXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1
bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorfTsKKworc3RydWN0IEFYVGV4
dFNlbGVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eTsKK307CisKK3N0cnVjdCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7
CisgICAgdW5pb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uOworICAgICAg
ICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgfTsKKyAgICBib29sIGlzU3luY2hyb25pemlu
ZyB7IGZhbHNlIH07CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVj
dGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgOiB0eXBlKHR5cGUp
CisgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICB7IH0KKworICAgIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgOiB0eXBlKEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICB7
IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0
eXBlLCBib29sIGlzU3luY2hyb25pemluZykKKyAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAg
ICwgc2VsZWN0aW9uKCkKKyAgICAgICAgLCBpc1N5bmNocm9uaXppbmcoaXNTeW5jaHJvbml6aW5n
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi40MzhlODUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bh
c3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRG
aWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKQoreworICAgIE5vZGUq
IG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50
b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRG
aWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgRWxlbWVudCog
ZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWlzPEhU
TUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgcmV0
dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKworICAgIHJldHVybiBudWxscHRyOwor
fQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAog
ewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcy
Zi4uYTgyYmQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5k
ZXggNWEyN2VhOC4uY2IzMzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMTcgQEAgdm9p
ZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNo
KGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRh
aW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5v
ZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBp
ZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICBy
ZXR1cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4oKmVsZW1lbnQpLmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjgxNmMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYz
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9y
Q29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVh
bCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFS
b2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li5mNjU1ZDU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFp
blRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgewor
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQg
OiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRl
eHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAg
ICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQg
KyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9k
ZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0
YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0
aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pOworICAg
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG5ld0ludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlLCB0cnVlKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLCBuZXdJbnRlbnQpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjMsMTYgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZp
c2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlz
TnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBh
bmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVu
IG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQp
CisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0
VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1l
KCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9
CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlz
aWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAg
ICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0
cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxp
dHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcx
LDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBh
cmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
d2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRT
Y3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nl
c3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDU4NTJhMGYuLjczNjZlNjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCkBAIC0yNDMsNiArMjQzLDI0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEFYCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KKyAgICAKK0FYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0
ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHREZWxldGVkOworICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0
ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEluc2VydGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIEFYVGV4dEluc2VydGVkOworfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0LCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CkBAIC05NSw4ICs5NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmlu
Z107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RD
YWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQppbmRleCBiMzAwZTc3Li42Yjc5MGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhM
aXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdl
VHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0
VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlw
ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVl
cyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFu
Z2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRl
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRl
IEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0
cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRp
b25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBh
cmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJn
ZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIEFY
VmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKwogLy8gVGhlIHNpbXBsZSBDb2Nv
YSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNjAsNiArMTA3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNo
V3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRXcmFwcGVyKHdy
YXBwZXIuZ2V0KCkpOwogfQogCitzdGF0aWMgQk9PTCBheFNob3VsZFJlcG9zdE5vdGlmaWNhdGlv
bnNGb3JUZXN0cyA9IGZhbHNlOworCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIEFYUG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24s
IGlkIHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1w
bGlmeSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBz
aW1wbGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVy
ZSB0byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdl
ZW4gV2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNr
CisgICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkK
KyAgICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNh
dGlvbiB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRp
b24gbm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMTEsMTM4IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigp
IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53
cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8g
a25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAg
QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmlj
YXRpb24sIG5pbCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24pCiB7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVh
KCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBp
ZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50
ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAg
ICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAg
ICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAg
ICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJS
YW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3Np
dGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJS
YW5nZTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFw
cGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7
CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4
dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3Qs
IEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICop
c3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAo
IWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpj
aGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07
CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAg
IGlmIChsZW5ndGggPiBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsK
KyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6QVhWYWx1ZUNoYW5nZVRydW5j
YXRpb25MZW5ndGhdOworICAgIH0KKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAg
IGlmIChpZCB0ZXh0TWFya2VyID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNp
YmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJl
dHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9i
amVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBp
ZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFw
cGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
b2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlv
biwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghb2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkg
KnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXld
ID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpj
aGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAg
ICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9u
YXJ5KG9iamVjdCwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAg
ICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgaW5zZXJ0aW9uVHlw
ZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpj
aGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0g
Y2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0g
b2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJB
cmVhID0gcm9vdFdlYkFyZWEoKTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRp
b25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93
IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5n
ZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgTlNBY2Nlc3NpYmlsaXR5
UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3Np
YmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBi
eSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqZWN0
LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxp
dHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3Vz
ZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVj
dCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBWaXNpYmxlUG9z
aXRpb247CiAtIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKIAogLSAo
aWQpYXR0YWNobWVudFZpZXc7Ci0vLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBu
b3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBVc2VkIHRvIGlu
Zm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNl
ZCBieSB0ZXN0cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNT
dHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlv
bmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNwYWNl
OihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3JlZW5T
cGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLjg3MTBkYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDY5IEBAIHN0YXRp
YyBCT09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogKyAodm9pZClh
Y2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTClyZXBvc3QKIHsK
ICAgICBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJlcG9zdDsKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKElPUykKKyAgICBBWE9iamVjdENhY2hlOjpz
ZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMocmVwb3N0KTsKKyNlbmRpZgogfQog
CiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90
aWZpY2F0aW9uTmFtZQogeworICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZp
Y2F0aW9ucykKKyAgICAgICAgW3NlbGYgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpu
b3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOm5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICphcnJh
eVJlbW92aW5nTm9uSlNPTlR5cGVzKE5TQXJyYXkgKmFycmF5KQoreworICAgIEFTU0VSVChbYXJy
YXkgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKTsKKyAgICBOU011dGFibGVBcnJheSAq
bXV0YWJsZUFycmF5ID0gW2FycmF5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TVUludGVnZXIg
aSA9IDA7IGkgPCBbbXV0YWJsZUFycmF5IGNvdW50XTspIHsKKyAgICAgICAgaWQgdmFsdWUgPSBt
dXRhYmxlQXJyYXlbaV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0
aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RB
dEluZGV4Omkgd2l0aE9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUp
XTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3Nd
XSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aSB3aXRo
T2JqZWN0OmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBp
ZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpIHsKKyAgICAgICAgICAgIFttdXRhYmxlQXJy
YXkgcmVtb3ZlT2JqZWN0QXRJbmRleDppXTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisgICAgICAgIGkrKzsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxlQXJyYXkgYXV0b3Jl
bGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25K
U09OVHlwZXMoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIEFTU0VSVChbZGljdGlv
bmFyeSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqbXV0YWJsZURpY3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRhYmxlQ29weV07
CisgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIGRpY3Rpb25hcnkpIHsKKyAgICAgICAgaWQgdmFs
dWUgPSBkaWN0aW9uYXJ5W2tleV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpb
TlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXld
ID0gZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBp
ZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11
dGFibGVEaWN0aW9uYXJ5W2tleV0gPSBhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsK
KyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3Nd
XSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAg
ICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAg
IHJldHVybiBbbXV0YWJsZURpY3Rpb25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFt
ZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJp
bGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1
c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3Rp
ZmljYXRpb25OYW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhE
UlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAg
QVNTRVJUKG5vdGlmaWNhdGlvbk5hbWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBu
aWw7CisgICAgICAgIGlmICh1c2VySW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5m
b0RhdGEgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFy
eVJlbW92aW5nTm9uSlNPTlR5cGVzKHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0
aW9ucykwIGVycm9yOm5pbF07CisgICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAg
ICAgICAgICAgICAgTlNTdHJpbmcgKnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10g
aW5pdFdpdGhEYXRhOnVzZXJJbmZvRGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107
CisgICAgICAgICAgICAgICAgaWYgKHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAg
ICBpbmZvID0gQHtAIm5vdGlmaWNhdGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2Vy
SW5mbyIgOiB1c2VySW5mb1N0cmluZ307CisgICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5n
IHJlbGVhc2VdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaW5mbykK
KyAgICAgICAgICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25O
YW1lfTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0
Tm90aWZpY2F0aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5m
bzppbmZvXTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5o
CmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlk
KXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9z
aXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
KWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3Qg
V2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAv
LyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjgzNzkzZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yOSwxMyArMjks
MTYgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5o
IgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlKQotICAg
IDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVudCgpKQorQXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNp
bXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAs
IG1fcGFyZW50KHBhcmVudCkKICAgICAsIG1fbm9kZShub2RlKQogewpAQCAtNDYsMTUgKzQ5LDIz
IEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRh
aW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0
YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hh
bmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlKQog
ewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5v
ZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIHRleHQgPSBub2Rl
LT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMg
Y29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4i
KQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5v
ZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQs
MTggKzc1LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9w
YXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5v
ZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxl
U3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVf
RVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aAppbmRleCBkNjRiMDRlLi5mNzgyOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCisgICAgc3Rh
dGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5k
KHBhcmVudCwgbm9kZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmROb2Rl
Q29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+LCBFZGl0QWN0aW9uKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5h
cHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcAppbmRleCA3YzQxOGMyLi5jYWI4ODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMTIzLDkgKzEyMyw4IEBAIFJlZlB0cjxIVE1M
RWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB9CiAK
IEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVBy
b3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRv
Y3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rp
b24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24o
ZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChwcm9wZXJ0eUxldmVsKQogICAg
ICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0oKSkKICAgICAs
IG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3RyZWFtKCkpCkBAIC0xMzYsOSArMTM1
LDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFw
cGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBz
dHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxldmVsIHByb3BlcnR5TGV2ZWwpCi0gICAgOiBD
b21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5k
KGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQot
ICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2
ZWwocHJvcGVydHlMZXZlbCkKICAgICAsIG1fc3RhcnQoc3RhcnQpCiAgICAgLCBtX2VuZChlbmQp
CkBAIC0xNDksOSArMTQ3LDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5k
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHkKIH0KIAogQXBwbHlT
dHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVu
dCwgYm9vbCByZW1vdmVPbmx5LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCi0gICAgOiBDb21w
b3NpdGVFZGl0Q29tbWFuZChlbGVtZW50LT5kb2N1bWVudCgpKQorICAgIDogQ29tcG9zaXRlRWRp
dENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5
bGUoRWRpdGluZ1N0eWxlOjpjcmVhdGUoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5n
QWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1f
c3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2Vu
ZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAtMTYzLDkgKzE2MCw4IEBA
IEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChQYXNzUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25sCiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0
eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUs
IElzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24gaXNJbmxpbmVFbGVtZW50VG9SZW1vdmVG
dW5jdGlvbiwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRp
dGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAgICAsIG1fZWRpdGlu
Z0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKFByb3BlcnR5RGVm
YXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFt
KCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAt
MjI2LDExICsyMjIsNiBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9
CiB9CiAKLUVkaXRBY3Rpb24gQXBwbHlTdHlsZUNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dAotewotICAgIHJldHVybiBtX2VkaXRpbmdBY3Rpb247Ci19Ci0KIHZvaWQgQXBwbHlTdHlsZUNv
bW1hbmQ6OmFwcGx5QmxvY2tTdHlsZShFZGl0aW5nU3R5bGUgKnN0eWxlKQogewogICAgIC8vIHVw
ZGF0ZSBkb2N1bWVudCBsYXlvdXQgb25jZSBiZWZvcmUgcmVtb3Zpbmcgc3R5bGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKaW5kZXggZTk5ZTM2YS4uOWRiZTg3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaApAQCAtNzIs
NyArNzIsNiBAQCBwcml2YXRlOgogICAgIEFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiwgY29u
c3QgRWRpdGluZ1N0eWxlKiwgYm9vbCAoKmlzSW5saW5lRWxlbWVudFRvUmVtb3ZlKShjb25zdCBF
bGVtZW50KiksIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgLy8gc3R5bGUtcmVtb3ZhbCBoZWxwZXJzCiAgICAgYm9vbCBpc1N0eWxlZElu
bGluZUVsZW1lbnRUb1JlbW92ZShFbGVtZW50KikgY29uc3Q7CkBAIC0xMjIsNyArMTIxLDYgQEAg
cHJpdmF0ZToKICAgICBQb3NpdGlvbiBlbmRQb3NpdGlvbigpOwogCiAgICAgUmVmUHRyPEVkaXRp
bmdTdHlsZT4gbV9zdHlsZTsKLSAgICBFZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbjsKICAgICBF
UHJvcGVydHlMZXZlbCBtX3Byb3BlcnR5TGV2ZWw7CiAgICAgUG9zaXRpb24gbV9zdGFydDsKICAg
ICBQb3NpdGlvbiBtX2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uNzM0MmY2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTU4LDYgKzU4LDggQEAK
ICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZl
bnRRdWV1ZS5oIgpAQCAtMTYyLDEzICsxNjQsMzAgQEAgdm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0
aW9uOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYK
IAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseUVkaXRUeXBl
KCkKK3sKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rpb24oKSkgeworICAgIGNhc2UgRWRpdEFjdGlv
bkN1dDoKKyAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRF
ZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgY2FzZSBF
ZGl0QWN0aW9uSW5zZXJ0OgorICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgIGNhc2UgRWRp
dEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5
cGVVbmtub3duOworfQorCiB2b2lkIGFwcGx5Q29tbWFuZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVk
aXRDb21tYW5kPiBjb21tYW5kKQogewogICAgIGNvbW1hbmQtPmFwcGx5KCk7CiB9CiAKLUNvbXBv
c2l0ZUVkaXRDb21tYW5kOjpDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQp
Ci0gICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCkKK0NvbXBvc2l0ZUVkaXRDb21tYW5kOjpDb21w
b3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKKyAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogewogfQog
CkBAIC0xODcsNiArMjA2LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHkoKQog
ICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uOgogICAgICAgICBjYXNl
IEVkaXRBY3Rpb25DdXQ6CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOgorICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0
ZToKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgogICAgICAgICAgICAgYnJlYWs7
CkBAIC0yOTYsNyArMzE2LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlU3R5
bGVkRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQpCiAKIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJh
Z3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCiB7Ci0g
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJs
b2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHVzZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBl
ZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0
TGluZUJyZWFrKCkKQEAgLTMyMiw3ICszNDIsNyBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5k
Ojppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQpCkBAIC0zNzMsNyArMzkzLDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIGNvbnN0IFBv
c2kKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUoUGFzc1JlZlB0cjxOb2Rl
PiBub2RlLCBQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCkKIHsKICAgICBBU1NFUlQo
Y2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhwYXJlbnQuZ2V0KCkpKTsKLSAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSkpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFy
ZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgdW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgdG8pCkBAIC0zOTcsNyArNDE3LDcgQEAgdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnQKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsK
KyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
LCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVt
b3ZlTm9kZUFuZFBydW5lQW5jZXN0b3JzKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKQEAgLTUyNSwy
MCArNTQ1LDIxIEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0CiB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgp
KQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IHRleHQsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgY291bnQsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+IHBycE5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+
IGRlbGV0ZUNvbW1hbmQgPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0
ZUNvbW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCksIGVk
aXRpbmdBY3Rpb24oKSkpOwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uZWNiMjg1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApA
QCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVu
dDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgog
CisgICAgQVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisKIHByaXZhdGU6CiAgICAg
RWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rp
b24sIEVkaXRBY3Rpb24pOwogCkBAIC04OSw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
CiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQm
KTsKKyAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rp
b24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAgICAgLy8KICAgICAvLyBzdWdhcnktc3dl
ZXQgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGhlbHAgY3JlYXRlIGFuZCBhcHBseSBlZGl0IGNv
bW1hbmRzIGluIGNvbXBvc2l0ZSBjb21tYW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uMWZhMDEz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMyArMjksMTUgQEAKICNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVu
dCgpKQorRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUt
PmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1f
b2Zmc2V0KG9mZnNldCkKICAgICAsIG1fY291bnQoY291bnQpCkBAIC00NSw2ICs0NywxMSBAQCBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0g
bV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK2NvbnN0IFN0cmluZyYgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9k
ZSk7CkBAIC01OCw4ICs2NSw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+
ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2
b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUt
Pmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQp
KSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLmEwMzVmMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxNCArMzQsMTcgQEAgY2xhc3MgVGV4dDsKIAog
Y2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFu
ZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9
CiAKLXByaXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKKyAgICBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVk
aXRBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
MmJiYzZlZC4uZWIzYTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC03Miw4ICs3Miw4IEBAIHN0YXRpYyBib29sIGlzVGFi
bGVSb3dFbXB0eShOb2RlKiByb3cpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLURlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCi0g
ICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0
RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0
aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rpb25Ub0RlbGV0ZShmYWxzZSkKICAgICAsIG1f
c21hcnREZWxldGUoc21hcnREZWxldGUpCiAgICAgLCBtX21lcmdlQmxvY2tzQWZ0ZXJEZWxldGUo
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSkKQEAgLTkwLDggKzkwLDggQEAgRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
c21hcnREZWwKIHsKIH0KIAotRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxl
dGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKLSAgICA6IENvbXBvc2l0
ZUVkaXRDb21tYW5kKHNlbGVjdGlvbi5zdGFydCgpLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKSkK
K0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKHNlbGVjdGlvbi5zdGFydCgpLmFuY2hvck5vZGUoKS0+ZG9j
dW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faGFzU2VsZWN0aW9uVG9EZWxldGUodHJ1
ZSkKICAgICAsIG1fc21hcnREZWxldGUoc21hcnREZWxldGUpCiAgICAgLCBtX21lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUobWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSkKQEAgLTg4NCwxNCArODg0LDYgQEAg
dm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAgICBjbGVhclRyYW5zaWVu
dFN0YXRlKCk7CiB9CiAKLUVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbigpIGNvbnN0Ci17Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAg
ICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxp
ZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3Rs
eSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Ci19Ci0KIC8v
IE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0
IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLAogLy8gdHlwZSBhIGNoYXJhY3Rl
ciwgQm9sZCwgdGhlbiBkZWxldGUgdGhlIGNoYXJhY3RlciBhbmQgc3RhcnQgdHlwaW5nLiAgVGhl
IEJvbGQgdHlwaW5nIHN0eWxlIHNob3VsZG4ndAogLy8gc3RpY2sgYXJvdW5kLiAgRGVsZXRpb24g
c2hvdWxkIHByZXNlcnZlIGEgdHlwaW5nIHN0eWxlIHRoYXQgKml0KiBzZXRzLCBob3dldmVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRl
eCBlNWJmNTFkLi4wYTliOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMzQsMjMgKzM0LDIyIEBAIGNsYXNzIEVkaXRpbmdTdHls
ZTsKIAogY2xhc3MgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0
Q29tbWFuZCB7IAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBi
b29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwg
Ym9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1
cCA9IHRydWUpCisgICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQs
IHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JT
cGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNh
bml0aXplTWFya3VwLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQotICAgIHN0YXRpYyBSZWY8RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxl
dGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgc3RhdGljIFJl
ZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNp
YWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERl
bGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKHNlbGVjdGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVN
YXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzLCBib29sIHNhbnRpemVNYXJrdXApOworICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9j
dW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJv
b2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1h
cmt1cCwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogCiBwcml2YXRlOgotICAgIERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnRE
ZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4
cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCk7CisgICAgRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwLCBFZGl0QWN0aW9uKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24oKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgcHJlc2VydmVzVHlwaW5n
U3R5bGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFu
ZC5jcHAKaW5kZXggYzE3M2RmNC4uOTA4ZmQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25D
b21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNp
emVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZl
c0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3Rh
cnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRl
eHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJT
dXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBs
aW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJ
bkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRv
SW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJT
dXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSksIEVkaXRBY3Rpb25EaWN0YXRpb24p
OwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigp
KTsKIH0KIApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yKCkKICAgICBpZiAoIWNhbkFwcGVuZE5ld0xpbmVGZWVkVG9TZWxl
Y3Rpb24oZW5kaW5nU2VsZWN0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUo
ZG9jdW1lbnQoKSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmYWxzZSwgZmFsc2UsIEVkaXRB
Y3Rpb25EaWN0YXRpb24pKTsKIH0KIAogdm9pZCBEaWN0YXRpb25Db21tYW5kOjpjb2xsZWN0RGlj
dGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShzaXplX3QgcmFuZ2VTdGFydCwgc2l6ZV90IHJhbmdl
TGVuZ3RoLCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBhbHRlcm5hdGl2ZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCmluZGV4IDYzN2QxZWIuLjZlZjM1MDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgdHlwZWRlZiBlbnVtIHsKICAgICAgICAgRWRpdEFjdGlvblVuc3BlY2lmaWVk
LAorICAgICAgICBFZGl0QWN0aW9uSW5zZXJ0LAogICAgICAgICBFZGl0QWN0aW9uU2V0Q29sb3Is
CiAgICAgICAgIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3IsCiAgICAgICAgIEVkaXRBY3Rp
b25UdXJuT2ZmS2VybmluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5k
ZXggOGY1NjUzMi4uOGY3ZmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5j
cHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0
Q29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBv
c2l0ZUVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0
b3IuaCIKQEAgLTM3LDkgKzM4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRWRpdENv
bW1hbmQ6OkVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkKK0VkaXRDb21tYW5kOjpFZGl0
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAg
ICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX3BhcmVudCgwKQorICAgICwgbV9lZGl0
aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50LmZyYW1lKCkp
OwogICAgIHNldFN0YXJ0aW5nU2VsZWN0aW9uKG1fZG9jdW1lbnQtPmZyYW1lKCktPnNlbGVjdGlv
bigpLnNlbGVjdGlvbigpKTsKQEAgLTY3LDcgKzY5LDcgQEAgRnJhbWUmIEVkaXRDb21tYW5kOjpm
cmFtZSgpCiAKIEVkaXRBY3Rpb24gRWRpdENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAog
ewotICAgIHJldHVybiBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ7CisgICAgcmV0dXJuIG1fZWRpdGlu
Z0FjdGlvbjsKIH0KIAogc3RhdGljIGlubGluZSBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKiBjb21w
b3NpdGlvbklmUG9zc2libGUoRWRpdENvbW1hbmQqIGNvbW1hbmQpCkBAIC0xMTIsNiArMTE0LDQ5
IEBAIHZvaWQgRWRpdENvbW1hbmQ6OnNldFBhcmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCogcGFy
ZW50KQogICAgIH0KIH0KIAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbigpKSB7CisgICAgY2FzZSBFZGl0QWN0
aW9uQ3V0OgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVDdXQ7CisgICAgY2FzZSBFZGl0
QWN0aW9uRGVsZXRlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAg
Y2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVE
aWN0YXRpb247CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgICAgICByZXR1cm4gQVhU
ZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJl
dHVybiBBWFRleHRFZGl0VHlwZVBhc3RlOworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAg
ICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVHlwaW5nOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitB
WFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBzd2l0
Y2ggKGFwcGx5RWRpdFR5cGUoKSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgor
ICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEZWxldGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgcmV0dXJu
IEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGlj
dGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dEVkaXRUeXBlRGVsZXRlOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtu
b3duOworfQorCitTaW1wbGVFZGl0Q29tbWFuZDo6U2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29tbWFuZChk
b2N1bWVudCwgZWRpdGluZ0FjdGlvbikKK3sKK30KKwogdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6
ZG9SZWFwcGx5KCkKIHsKICAgICBkb0FwcGx5KCk7CkBAIC0xMjUsNCArMTcwLDE0IEBAIHZvaWQg
U2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUs
IEhhc2hTZXQ8Tm9kZSo+JiBuCiB9CiAjZW5kaWYKIAordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47
CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwg
dGV4dCwgcG9zaXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uYzViN2FhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29t
bWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVT
ZWxlY3Rpb24uaCIKIApAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFBh
cmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCopOwogCi0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdDsKKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25z
dDsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9zdGFydGluZ1NlbGVjdGlvbjsgfQogICAgIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIGVuZGluZ1NlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kaW5nU2VsZWN0aW9u
OyB9CkBAIC01OSw4ICs2MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpID0gMDsKIAorICAgIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICBBWFRl
eHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKwogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0
IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CisgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1l
bnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKICAgICBFZGl0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJik7CiAKICAgICBGcmFtZSYgZnJhbWUoKTsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3RhcnRpbmdTZWxlY3Rpb247CiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsKICAgICBDb21wb3NpdGVFZGl0Q29tbWFuZCogbV9w
YXJlbnQ7CisgICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb24geyBFZGl0QWN0aW9uVW5zcGVj
aWZpZWQgfTsKIH07CiAKIGVudW0gU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
ewpAQCAtOTEsMTIgKzk2LDE0IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAg
ZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21t
YW5kKGRvY3VtZW50KSB7IH0KKyAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVu
dCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAjaWZuZGVmIE5ERUJV
RwogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYp
OwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29t
bWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uMjNiYzZiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtNTksNiArNTks
OCBAQAogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3Np
dGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
PgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNs
dWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNw
cD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3MTBhYTM5Li40YmQ3ZjdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yMDgsMTIgKzIwOCwxMiBAQCBib29sIEVkaXRv
cjo6aGFuZGxlVGV4dEV2ZW50KFRleHRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBpZiAoY2xp
ZW50KCktPnBlcmZvcm1zVHdvU3RlcFBhc3RlKGV2ZW50LT5wYXN0aW5nRnJhZ21lbnQoKSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICAgICAgICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZl
bnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBldmVu
dC0+bWFpbEJsb2NrcXVvdGVIYW5kbGluZygpKTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNo
b3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBFZGl0QWN0aW9u
UGFzdGUsIGV2ZW50LT5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOwogI2lmIFBMQVRGT1JNKElP
UykKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGVsc2UgCi0gICAgICAgICAgICByZXBsYWNl
U2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFy
dFJlcGxhY2UoKSk7CisgICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQt
PmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlvblBh
c3RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zNzQsMTIgKzM3NCwxMiBA
QCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGly
ZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVk
aXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2
b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxl
dGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rp
b24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAg
IGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
c21hcnREZWxldGUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbikpOwog
fQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTUyMyw3ICs1MjMsNyBAQCBib29sIEVk
aXRvcjo6c2hvdWxkSW5zZXJ0RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCwgUGFzc1JlZgogICAgIHJldHVybiBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0Tm9kZShm
cmFnbWVudC5nZXQoKSwgcmVwbGFjaW5nRE9NUmFuZ2UuZ2V0KCksIGdpdmVuQWN0aW9uKTsKIH0K
IAotdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBz
bWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWls
QmxvY2txdW90ZUhhbmRsaW5nKQordm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJh
Z21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RS
ZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFu
ZGxpbmcpCiB7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb24uaXNOb25lKCkgfHwgIXNlbGVj
dGlvbi5pc0NvbnRlbnRFZGl0YWJsZSgpIHx8ICFmcmFnbWVudCkKQEAgLTUzOSw3ICs1MzksNyBA
QCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIGlmIChtYWlsQmxvY2txdW90ZUhhbmRsaW5n
ID09IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUpCiAgICAgICAgIG9w
dGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Oklnbm9yZU1haWxCbG9ja3F1b3RlOwog
Ci0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIEVkaXRBY3Rpb25QYXN0ZSkpOworICAgIGFwcGx5Q29t
bWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50
LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0
aW5nT3BlcmF0aW9uKCk7CiAKICAgICBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNl
bGVjdGlvbigpOwpAQCAtNTUzLDEzICs1NTMsMTMgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxl
Y3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwK
ICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0
OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVs
bGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNo
LCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCi12b2lkIEVkaXRvcjo6cmVwbGFj
ZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNl
bWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldp
dGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBz
bWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRG
cm9tVGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0
cnVlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KGNyZWF0ZUZyYWdtZW50RnJv
bVRleHQoKnJhbmdlLCB0ZXh0KSwgc2VsZWN0UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgdHJ1
ZSwgZWRpdGluZ0FjdGlvbik7CiB9CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6c2VsZWN0
ZWRSYW5nZSgpCkBAIC0xMDAxLDcgKzEwMDEsOCBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRp
bmcoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3Qg
Y2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRv
IHRob3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgp
ID8gRnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgCisgICAgY2hh
bmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBs
eUVkaXRUeXBlKCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhj
b21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5l
bmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNj
aGVkdWxlZCgpOwpAQCAtMTAzMiw3ICsxMDMzLDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVk
aXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5
VGV4dEZyb21Db250cm9scyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQt
PmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5l
d1NlbGVjdGlvbihjbWQtPnN0YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21k
LT51bmFwcGx5RWRpdFR5cGUoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2Vk
RXZlbnRzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+ZW5kaW5nUm9v
dEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQo
KTsKQEAgLTEyNjYsNyArMTI2Nyw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVk
aXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFz
dGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAg
IGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBF
ZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTIyMzgsNyArMjIz
OSw3IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29u
c3QgVmlzaWJsZVBvc2l0aW9uICZ3b3JkU3RhcnQsCiAKICAgICAgICAgaWYgKCFtX2ZyYW1lLmVk
aXRvcigpLnNob3VsZEluc2VydFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgbWlzc3BlbGxpbmdS
YW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBtX2ZyYW1lLmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRv
Y29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBtX2ZyYW1lLmVkaXRvcigp
LnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFs
c2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogCiAgICAgICAgIC8vIFJlc2V0IHRoZSBjaGFyZXQgb25l
IGNoYXJhY3RlciBmdXJ0aGVyLgogICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLm1vdmVUbyht
X2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmVuZCgpKTsKQEAgLTI1ODQsNyArMjU4NSw3
IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhjb25zdCBTdHJpbmcm
IHJlcGxhY2VkU3RyaW5nKQogICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+
cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZVJldmVyc2VkKHJlcGxhY2VkU3RyaW5nLCBzZWxl
Y3Rpb24pOwogICAgIFRleHRDaGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGgoc2VsZWN0aW9uKTsK
LSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVwbGFjZWRTdHJpbmcsIGZhbHNlLCBmYWxz
ZSk7CisgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwg
ZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogICAgIFJlZlB0cjxSYW5nZT4gY2hhbmdlZFJhbmdl
ID0gcGFyYWdyYXBoLnN1YnJhbmdlKHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCksIHJlcGxhY2Vk
U3RyaW5nLmxlbmd0aCgpKTsKICAgICBjaGFuZ2VkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRv
Y3VtZW50KCkubWFya2VycygpLmFkZE1hcmtlcihjaGFuZ2VkUmFuZ2UuZ2V0KCksIERvY3VtZW50
TWFya2VyOjpSZXBsYWNlbWVudCwgU3RyaW5nKCkpOwogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci0+bWFya1JldmVyc2VkKGNoYW5nZWRSYW5nZS5nZXQoKSk7CkBAIC0yODE4LDcgKzI4
MTksNyBAQCB2b2lkIEVkaXRvcjo6dHJhbnNwb3NlKCkKICAgICAvLyBJbnNlcnQgdGhlIHRyYW5z
cG9zZWQgY2hhcmFjdGVycy4KICAgICBpZiAoIXNob3VsZEluc2VydFRleHQodHJhbnNwb3NlZCwg
cmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UpOwor
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UsIEVk
aXRBY3Rpb25JbnNlcnQpOwogfQogCiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSog
cmFuZ2UsIGJvb2wgcHJlcGVuZCkKQEAgLTI4NTAsNyArMjg1MSw3IEBAIHZvaWQgRWRpdG9yOjpk
aXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENv
bnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9y
ZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxl
Y3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJD
b21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rp
b246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVu
IGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQo
KS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg2Miw3
ICsyODYzLDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJv
YmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBS
YW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBz
ZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1l
LnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VE
T01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVk
aXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFm
ZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUg
d2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJr
ZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li5kMWQzMGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rp
b25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGlu
Z0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiA9
IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7
CkBAIC0zODIsOCArMzgyLDggQEAgcHVibGljOgogICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4
dEFyZWEoRWxlbWVudCopOwogICAgIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdEaXJlY3Rpb24gYmFz
ZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4sIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNl
LCBib29sIG1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90
ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNl
bWVudCwgYm9vbCBzbWFydFJlcGxhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFj
ZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29s
IHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBF
ZGl0QWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1h
aWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNl
bGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rp
b25JbnNlcnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2VsZWN0aW9uU3RhcnRIYXNNYXJr
ZXJGb3IoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUsIGludCBmcm9tLCBpbnQgbGVuZ3RoKSBj
b25zdDsKICAgICB2b2lkIHVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGJv
b2wgb25seUhhbmRsZVdvcmRzQ29udGFpbmluZ1NlbGVjdGlvbik7CiAgICAgdm9pZCBkZWxldGVk
QXV0b2NvcnJlY3Rpb25BdFBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgU3RyaW5nJiBv
cmlnaW5hbFN0cmluZyk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNl
dENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24g
fTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9u
TW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25P
cHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25P
cHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlB
Y3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDUxMWNiMDIu
LjdhODE2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAt
MTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKEZy
YW1lJiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsCiBzdGF0aWMgYm9vbCBleGVj
dXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50KQogewogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKLSAgICBhcHBs
eUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQo
KSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRp
dEFjdGlvblVuc3BlY2lmaWVkKSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25JbnNlcnQpKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApp
bmRleCA1NzQ1MTcwLi4yMzQ4NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5j
bHVkZSAiQ2hhcmFjdGVyRGF0YS5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTM5LDcgKzE0MCw3IEBAIEVsZW1lbnQqIEZy
YW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25z
dAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9z
LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWdu
KQogewogICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVu
dCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlz
RGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJU
cmlnZ2VyZWQpLCBhbGlnbik7CisgICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVz
ZXJUcmlnZ2VyZWQpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBhbGlnbik7CiB9CiAKIHZv
aWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVk
KQpAQCAtMTcwLDcgKzE3MSw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFs
aWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxp
ZGF0aW9uKGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9uYWwo
c2VsZWN0aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90
U2V0Rm9jdXMpKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtu
b3duIH0pOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIGludGVu
dCk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1NiwxMyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwg
IXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51
bGFyaXR5KTsKKyAgICAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgbmV3U2VsZWN0aW9u
LmlzQ2FyZXQoKSkKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlVbmtub3duIH0pOworICAgIGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0
aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8K
ICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJh
c2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlv
bkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlm
IChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9
IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFt
ZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24s
IGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdz
IHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1l
U2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0
RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rp
b24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1l
IGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3Vy
IHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpbwog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVj
dGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICsz
NjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAg
ICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAg
IGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAs
NyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAg
ICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgaWYg
KGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpKQogICAgICAgICBjbGll
bnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpOwpAQCAtMTAyMSw3ICsxMDI5
LDc3IEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dh
cmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRl
eHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0g
TGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51
bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQorQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpU
ZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBi
b29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZTsKKyAgICAgICAgZmxpcCA9IGlzUmFuZ2UoKSAmJiBkaXJlY3Rpb25PZlNl
bGVjdGlvbigpID09IFJUTDsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0
eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVu
dC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNl
IFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAg
ICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91
bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9v
bCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNl
IENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNh
c2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBj
YXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGlu
ZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVu
dEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6Cisg
ICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2Ug
RGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOwor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBi
b29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRp
cmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmln
Z2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE1NSwxMSBAQCBib29sIEZyYW1l
U2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRp
b25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVy
LCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUg
YWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgog
ICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBw
b3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0
eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3
MTAsOCArMTc5MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAg
VmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9u
RnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAg
aWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIH0pOworICAgICAgICBzZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNl
bGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9z
ZVR5cGluZykKQEAgLTI0MjMsNyArMjUwOCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxl
Y3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVj
dGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFu
dWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCgpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1l
U2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVT
ZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1l
U2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5lY2NjYTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0
aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29u
c3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRG
b2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7
IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0
aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29y
T25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBD
dXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3Jh
bnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAg
dm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVh
bFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAg
ICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBU
ZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzI5OSwxMCBAQCBwcml2YXRlOgogICAgIExheW91
dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3Np
dGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwg
VGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KEFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdn
ZXJlZCk7CkBAIC0zNjcsNyArMzY5LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uN2M4ZGEzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAgIDogU2lt
cGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKK0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlv
bikKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAgICwgbV90
ZXh0KHRleHQpCkBAIC01MCw2ICs1MCwxMSBAQCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAg
IEFTU0VSVCghbV90ZXh0LmlzRW1wdHkoKSk7CiB9CiAKK2NvbnN0IFN0cmluZyYgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0Owor
fQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJv
b2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9F
bmFibGVkKCk7CkBAIC02Niw4ICs3MSw4IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwg
SUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQ
b3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
ODQsOCArODksOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBi
ZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNo
ZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+
ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKaW5kZXggMzEwYmJiMy4uZmZlMzcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM0LDE0ICszNCwxNiBAQCBj
bGFzcyBUZXh0OwogCiBjbGFzcyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFNp
bXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25J
bnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZWRp
dGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpOworICAgIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6
CisgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKaW5kZXggZDE2YjVkNi4uZWQwYTY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI5LDEzICsyOSwxNSBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwKLSAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKLSAgICA6IFNp
bXBsZUVkaXRDb21tYW5kKHJlZkNoaWxkLT5kb2N1bWVudCgpKQorSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hp
bGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1l
bnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faW5zZXJ0Q2hpbGQoaW5zZXJ0Q2hpbGQpCiAg
ICAgLCBtX3JlZkNoaWxkKHJlZkNoaWxkKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKQEAgLTU3
LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAg
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5n
ZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBl
KCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBw
bHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9y
ZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9z
aXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9u
KGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRp
b24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKaW5kZXggZDRiNzYyZC4uMTM4N2JhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMzMsMjEgKzMzLDIyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIFNp
bXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEluc2VydE5vZGVCZWZv
cmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCi0gICAgICAgIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQor
ICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFj
dGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNl
cnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0
aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Citwcm90ZWN0
ZWQ6CisgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRv
SW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uKTsKIAorcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBw
bHkoKSBvdmVycmlkZTsKLSAgICAKKwogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAg
IAorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1f
cmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCmluZGV4
IDIxMjgyOWMuLjdkZDAxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAtNTksOCArNTksOCBA
QCBzdGF0aWMgRWxlbWVudCogaGlnaGVzdFZpc3VhbGx5RXF1aXZhbGVudERpdkJlbG93Um9vdChF
bGVtZW50KiBzdGFydEJsb2NrKQogICAgIHJldHVybiBjdXJCbG9jazsKIH0KIAotSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBi
b29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCi0gICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Okluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIG11c3RV
c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90
ZWRBcmVhLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29t
bWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbXVzdFVzZURlZmF1bHRQYXJh
Z3JhcGhFbGVtZW50KG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCkKICAgICAsIG1fcGFz
dGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYShwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRB
cmVhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3Jh
cGhTZXBhcmF0b3JDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQuaAppbmRleCAxMjgxZjBjLi42NzM0MTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQuaApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNzIEVkaXRpbmdTdHlsZTsKIAogY2xhc3Mg
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29t
bWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JD
b21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3Jh
cGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9
IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZD4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVu
dCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQo
ZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRv
VW5xdW90ZWRBcmVhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50
LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAg
fQogCiBwcml2YXRlOgotICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1l
bnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRv
ZUludG9VbnF1b3RlZEFyZWEpOworICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQo
RG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5k
LmNwcAppbmRleCBiZGQ1OWEzLi41NzJlOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMzcsMTYgKzM3LDE2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwg
UmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZG9jdW1lbnQpCitJbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBS
ZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwg
bV90ZXh0KHRleHQpCiAgICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChzZWxlY3RJbnNlcnRlZFRl
eHQpCiAgICAgLCBtX3JlYmFsYW5jZVR5cGUocmViYWxhbmNlVHlwZSkKIHsKIH0KIAotSW5zZXJ0
VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFy
a2VyU3VwcGxpZXIpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0luc2Vy
dFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1h
cmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fdGV4dCh0ZXh0KQog
ICAgICwgbV9zZWxlY3RJbnNlcnRlZFRleHQoZmFsc2UpCiAgICAgLCBtX3JlYmFsYW5jZVR5cGUo
UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uNjUyODE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNDksMjAgKzQ5LDIx
IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVj
dEluc2VydGVkVGV4dCA9IGZhbHNlLAotICAgICAgICBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5
cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICAgICAgUmVi
YWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hp
dGVzcGFjZXMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1
bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBz
ZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3Vw
cGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8
VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICBzdGF0aWMg
UmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllciwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0g
RWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElu
c2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwg
bWFya2VyU3VwcGxpZXIsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90
ZWN0ZWQ6CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRl
eHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiwgRWRpdEFjdGlvbik7
CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlLCBFZGl0QWN0aW9uKTsKIAotICAg
IEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Ci0gICAgSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPik7Citwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0ZXIoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAppbmRleCAyYzA2M2MwLi5jNjI5NzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkK
K1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2Rl
LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBt
X3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCmluZGV4IDRiOTE5NzQu
LjFiMmM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICBzdGF0aWMgUmVmPFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2Rl
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQo
bm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24p
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTViOTg0
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50LCBFZGl0QWN0aW9uRGVs
ZXRlKQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hOTg1ODcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKwor
cHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjE3ODJkMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsx
LDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZWRp
dGluZ0FjdGlvbikKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3Zv
aWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkg
eworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhUZXh0RWRp
dFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFz
dGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FjaGUtPnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxldGUsIG1f
ZGVsZXRlZFRleHQsIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE2MWRiMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4
dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCwgZGVsZXRlZFRleHQsIGVkaXRpbmdBY3Rpb24pKTsKKyAgICB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRpdEFjdGlvbik7CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uOGFhYmY5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTQ3LDYgKzQ3
LDggQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNt
YXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpAQCAtMzY5LDcgKzM3
MSw3IEBAIGlubGluZSB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVz
OjpkaWRSZXBsYWNlTm9kZShOb2RlKiBub2RlLCBOCiB9CiAKIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVk
aXRBY3Rpb24gZWRpdEFjdGlvbikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50
KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRBY3Rpb24pCiAgICAg
LCBtX3NlbGVjdFJlcGxhY2VtZW50KG9wdGlvbnMgJiBTZWxlY3RSZXBsYWNlbWVudCkKICAgICAs
IG1fc21hcnRSZXBsYWNlKG9wdGlvbnMgJiBTbWFydFJlcGxhY2UpCiAgICAgLCBtX21hdGNoU3R5
bGUob3B0aW9ucyAmIE1hdGNoU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uODhkYTA0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtNDgs
OSArNDgsOSBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIENvbW1hbmRPcHRpb25z
OwogCi0gICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29t
bWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uUGFzdGUp
CisgICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFu
ZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbklu
c2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgYWN0aW9uKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBm
cmFnbWVudCwgb3B0aW9ucywgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKQEAg
LTEyMSw2ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcmV2ZW50TmVzdGluZzsKICAg
ICBib29sIG1fbW92aW5nUGFyYWdyYXBoOwogICAgIEVkaXRBY3Rpb24gbV9lZGl0QWN0aW9uOwor
ICAgIEFYVGV4dEVkaXRUeXBlIG1fYXBwbHlFZGl0VHlwZTsKICAgICBib29sIG1fc2FuaXRpemVG
cmFnbWVudDsKICAgICBib29sIG1fc2hvdWxkTWVyZ2VFbmQ7CiAgICAgYm9vbCBtX2lnbm9yZU1h
aWxCbG9ja3F1b3RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5k
ZXggOTMyOWNkZi4uZjA3NDQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0
KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB2b2lkIFR5cGlu
Z0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0
LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKICAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1h
bmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQs
IHNlbGVjdEluc2VydGVkVGV4dCwKLSAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENv
bXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJh
aWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNw
YWNlcyk7CisgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUg
PyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFj
ZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMsIEVkaXRBY3Rp
b25UeXBpbmcpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5n
U2VsZWN0aW9uKCkpOwogCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpp
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRU
b1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwg
RWRpdEFjdGlvblR5cGluZykpOwogICAgIHR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZChJbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0
ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uMzMyZTBhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgs
NyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi5mZDQxOTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcs
MTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0
KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFy
dCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9u
LnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhT
ZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAg
IGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0
KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uMzY4NGUyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwx
NiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4
dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VS
VChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAh
PSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFs
dWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFu
Z2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAh
aW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYm
ICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIo
KSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlm
aWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2
YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpbm5lclRleHQtPnNldElu
bmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgaWYgKHZhbHVl
LmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQogICAgICAgICAgICAgaW5u
ZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAg
ICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbih0aGlzLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwg
QVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhp
cywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRp
ZgogICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggYzhiZWU5ZS4uYmI0ZWVhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIxMCw3ICszMjEwLDggQEAg
c3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2Vs
ZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFY
VGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZWxlY3Rpb24uc2V0U2Vs
ZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5k
bGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdm
ZS4uZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAt
MzQwLDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgIGlmIChjYXJldEJy
b3dzaW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbkluT3JC
ZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwotICAgICAgICBpZiAoZnJh
bWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAg
ICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlVbmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZWxlbWVu
dC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYWU2ZDY3Yy4u
MmZmODNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA0LTIyICBE
b3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0
byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNw
b25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFu
aXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2Fs
ZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgor
CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQg
b2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5n
ZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JFZGl0QWN0aW9uKToKKwogMjAxNS0w
NC0yMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNh
YmxlIG1peGVkIGNvbnRlbnQgYmxvY2tpbmcgZm9yIGV4aXN0aW5nIFdlYktpdDEgY2xpZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tCmluZGV4IGQyMWNkZjAuLmU1OTBkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTU0Niw2ICs1NDYsNyBAQCBz
dGF0aWMgTlNTdHJpbmcqIHVuZG9OYW1lRm9yRWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rp
b24pCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgaWRlbnRpY2FsIHRvIGNvZGUgaW4gV2ViS2l0Midz
IFdlYkVkaXRDb21tYW5kUHJveHkgY2xhc3M7IHdvdWxkIGJlIG5pY2UgdG8gc2hhcmUgdGhlIHN0
cmluZ3MgaW5zdGVhZCBvZiBoYXZpbmcgdHdvIGNvcGllcy4KICAgICBzd2l0Y2ggKGVkaXRBY3Rp
b24pIHsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ6IHJldHVybiBuaWw7Cisg
ICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDogcmV0dXJuIG5pbDsKICAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uU2V0Q29sb3I6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJTZXQgQ29s
b3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvcjogcmV0dXJuIFVJX1NU
UklOR19LRVlfSU5URVJOQUwoIlNldCBCYWNrZ3JvdW5kIENvbG9yIiwgIlNldCBCYWNrZ3JvdW5k
IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgICAg
IGNhc2UgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRF
Uk5BTCgiVHVybiBPZmYgS2VybmluZyIsICJUdXJuIE9mZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBu
YW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTU2MWJlNi4uNDRmMGNk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwg
IDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ug
bm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNh
dGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lz
dGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNo
YW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3Qg
dmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3Mg
dG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJp
Y2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9k
dWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQg
c2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dv
cmQgZmllbGRzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlv
bik6CisKIDIwMTUtMDQtMjAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBFeHBvc2UgbW9yZSBidW5kbGUgZm9ybSBjbGllbnQgZnVuY3Rpb25zIGFzIFdLV2ViUHJv
Y2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDU0Y2UwM2MuLjg3ODU1
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94
eS5jcHAKQEAgLTc0LDYgKzc0LDggQEAgU3RyaW5nIFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVG
b3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICBzd2l0Y2ggKGVkaXRBY3Rp
b24pIHsKICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgogICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklOR19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICBjYXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29s
b3I6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
Yzk1MGMzNC4uZTA0NDcyZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxk
X3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90
aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2
ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5n
ZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFs
dWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8g
dGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2Vs
ZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQg
ZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
bW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmlj
YXRpb25SZWNlaXZlZDpdKToKKworMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorCisgICAgICAgIEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
biB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciBy
ZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVj
aGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBj
b2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2Vz
LgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3Zlcmxv
YWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0
ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNo
YW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKwogMjAxNS0wNC0yMCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1
bm5lY2Vzc2FyeSBsb2dzIHdoZW4gcmVzZXR0aW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
aAppbmRleCAxOTM4NmNlLi45MDhkYmRjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaApAQCAtNDIs
NiArNDIsNyBAQAogLSAodm9pZClzZXRQbGF0Zm9ybUVsZW1lbnQ6KGlkKXBsYXRmb3JtRWxlbWVu
dDsKIC0gKHZvaWQpc2V0Q2FsbGJhY2s6KEpTT2JqZWN0UmVmKWNhbGxiYWNrOwogLSAodm9pZClz
dGFydE9ic2VydmluZzsKKy0gKHZvaWQpc3RvcE9ic2VydmluZzsKIAogQGVuZAogCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXIubW0KaW5kZXggYWRhNjg3YS4uZjFjOWFmZCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5tbQpAQCAtMTA0LDYgKzEwNCwxMSBAQAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX25vdGlm
aWNhdGlvblJlY2VpdmVkOikgbmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsK
IH0KIAorLSAodm9pZClzdG9wT2JzZXJ2aW5nCit7CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsKK30KKwogLSAodm9pZClfbm90
aWZpY2F0aW9uUmVjZWl2ZWQ6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAg
TlNTdHJpbmcgKm5vdGlmaWNhdGlvbk5hbWUgPSBbW25vdGlmaWNhdGlvbiB1c2VySW5mb10gb2Jq
ZWN0Rm9yS2V5OkAibm90aWZpY2F0aW9uTmFtZSJdOwpAQCAtMTEyLDE2ICsxMTcsMjcgQEAKICAg
ICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNh
dGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAgICBOU1N0cmluZyAqdXNlckluZm9K
U09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1c2VySW5mbyJdOworCiAgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9u
TmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFt
ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwg
anNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVB
cmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAg
ICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQs
IFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAgICB1c2VySW5m
b0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhbbWFpbkZyYW1l
IGdsb2JhbENvbnRleHRdLCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAg
aWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxl
bWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAg
ICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9u
b3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAxLCAmbm90aWZpY2F0aW9uTmFtZUFyZ3Vt
ZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRz
IHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYXMgYXJndW1lbnRzLgorICAg
ICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5h
bWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1syXTsKKyAgICAg
ICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1
bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OworICAgICAgICBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVu
Y3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFt
ZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAgICAg
ICBhcmd1bWVudHNbMF0gPSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYWtlSlNBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQoW25vdGlmaWNhdGlvbiBvYmplY3RdKSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9IG5v
dGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzJdID0gdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZy
YW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIs
IGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCA0NjczYTFkLi4zOTdjNjM4
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbQpAQCAtMTQ0Niw2ICsxNDQ2LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgLy8gTWFjIHByb2dyYW1t
ZXJzIHNob3VsZCBub3QgYmUgdHJ5aW5nIHRvIHJlbW92ZSBhIGxpc3RlbmVyIHRoYXQncyBhbHJl
YWR5IHJlbW92ZWQuCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9uSGFuZGxlcik7CiAKKyAgICBb
bV9ub3RpZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZpbmddOwogICAgIFttX25vdGlmaWNhdGlv
bkhhbmRsZXIgcmVsZWFzZV07CiAgICAgbV9ub3RpZmljYXRpb25IYW5kbGVyID0gbmlsOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpp
bmRleCA2NTFiNTkxLi4yOGNhMDNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTI1LDE5ICsxMjUsMzAgQEAKICAgICBpZiAo
bV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBv
YmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAgICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFs
dWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1c2VySW5mbyJdOworCiAgICAgV0tCdW5kbGVG
cmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoV1RSOjpJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOwogICAgIEpTQ29udGV4dFJlZiBj
b250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KG1haW5GcmFtZSk7CiAK
ICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3Rp
ZmljYXRpb25OYW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmlj
YXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc05vdGlmaWNh
dGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0g
bmlsOworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZv
SlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVl
QXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIGpzVXNlckluZm9K
U09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAg
ICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQs
IHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihj
b250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2Fs
bGJhY2spLCAwLCAxLCAmbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUg
bm90aWZpY2F0aW9uIG5hbWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Ig
b25lIGVsZW1lbnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAg
ICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90
aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pT
T05WYWx1ZUFyZ3VtZW50OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQs
IGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayks
IDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwg
bGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZv
LgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBd
ID0gdG9KUyhjb250ZXh0LCBXVEY6OmdldFB0cihXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNyZWF0ZShbbm90aWZpY2F0aW9uIG9iamVjdF0pKSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9
IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzJdID0gdXNlcklu
Zm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250
ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJh
Y2spLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGVkMDJmYjcuLmUyNjA3ZTEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMTQ3Niw2ICsxNDc2LDcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigp
CiAgICAgLy8gTWFjIHByb2dyYW1tZXJzIHNob3VsZCBub3QgYmUgdHJ5aW5nIHRvIHJlbW92ZSBh
IGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJlbW92ZWQuCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0
aW9uSGFuZGxlcik7CiAKKyAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZpbmdd
OwogICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgcmVsZWFzZV07CiAgICAgbV9ub3RpZmljYXRp
b25IYW5kbGVyID0gbmlsOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251487</attachid>
            <date>2015-04-23 14:05:38 -0700</date>
            <delta_ts>2015-04-23 14:09:06 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>216737</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGMzNzVjYzNmNTU4NjgxZDJkZTZjNDU4YjYwYTY2ZjM2NTMyODVlNDYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzYyMjA4Ny4uOGVmZWI1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNWR0ZpdFRvVmlld0Jv
eDo6dmlld0JveFRvVmlld1RyYW5zZm9ybSgpIGhhcyB0byBjb3VudCBmb3IgemVybyBwaHlzaWNh
bCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBjYWxsaW5nIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86
OmdldENUTSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmE2Zjgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIw
IEBACisgIAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8g
ZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVudHMgb2YgYW4gaW5wdXQgZmllbGQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBp
cyBBWFRleHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVsxXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUluc2VydAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdl
VmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIiAiCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBB
WFRleHRFZGl0VHlwZUluc2VydAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2Vy
aW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMGRlMzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9p
bnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGlucHV0IHR5cGU9InBhc3N3
b3JkIiBpZD0ic2VjdXJldmFsdWV0ZXN0Ij4KKworICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
dmFsdWV0ZXN0Ij4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCisg
ICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB2YWx1ZSBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVu
dHMgb2YgYW4gaW5wdXQgZmllbGQuIik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQgPSAxOworCisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7Cisg
ICAgICAgIHZhciBBWFRleHRFZGl0VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsg
MTsKKworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7Cisg
ICAgICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7Cisg
ICAgICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlcklu
Zm8pIHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikg
eworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNo
KHVzZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMikgeworCisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBl
SW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gUGFzc3dvcmQgbm90aWZpY2F0aW9u
cyB3aWxsIGJlIGluc2VydCBvbmx5IGFuZCB0aGUgdmFsdWUgc3RyaW5nIHdpbGwgYmUgd2hpdGVz
cGFjZQorICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIiBcIiIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHNldHZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVl
dGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0c2Vj
dXJldmFsdWUoKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJl
dmFsdWV0ZXN0IikudmFsdWUgPSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKworICAgICAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAg
ICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGls
ZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVh
LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgICAg
IHNldHZhbHVlKCk7CisKKyAgICAgICAgICAgIHNldHNlY3VyZXZhbHVlKCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGQyMmZmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTUgQEAKK29uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBz
aXguCisKK3NldmVuIGVpZ2h0IG5pbmUuCisKK1RoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBu
b3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZwor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHki
XSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjU3NTM3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMCww
ICsxLDIxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IHJv
bGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVl
PgorPHA+b25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC48L3A+Cis8cD5zZXZlbiBlaWdodCBu
aW5lLjwvcD4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKzxzY3JpcHQ+
CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNh
dGlvbnMgdXNlciBpbmZvIGRhdGEuIik7CisKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSA9IDI7CisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgKyAxOworCisgICAg
dmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZyArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzID0gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lID0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSArIDE7
CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoID0gQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCAr
IDI7CisKKyAgICB2YXIgZ3JhbiA9IFsiY2hhcmFjdGVyIiwgIndvcmQiLCAic2VudGVuY2UiLCAi
bGluZSIsICJwYXJhZ3JhcGgiLCAibGluZWJvdW5kYXJ5IiwgInNlbnRlbmNlYm91bmRhcnkiLCAi
cGFyYWdyYXBoYm91bmRhcnkiLCAiZG9jdW1lbnRib3VuZGFyeSJdOworICAgIHZhciB3ZWJBcmVh
ID0gMDsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciByZXN1bHRzID0gW107CisgICAgdmFy
IHJlc3VsdEluZGV4ID0gMDsKKyAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3Rp
ZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2Vs
ZWN0ZWRUZXh0Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBp
ZiAodXNlckluZm8pCisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAg
ICAgICAgICAgIGlmIChjb3VudCA9PSBncmFuLmxlbmd0aCAqIDQpIHsKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
ciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0g
MjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAgICAgd2ViQXJlYSA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAg
ICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlm
aWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAv
LyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgorICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKKyAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAg
Zm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3
YXJkIiwgZ3JhbltpXSk7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIs
IGdyYW5baV0pOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIHMubW9kaWZ5
KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICB9CisgICAgfQorCis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11
c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzkzYWFiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OSBAQAorMDIzNDU2Nzg5MAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1
c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRk
ZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUN1dAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0g
aXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVBhc3RlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMjM0NTY3ODkwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVl
Il0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVR5cGluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhZDM0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5o
dG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9k
eSI+CisKKyAgICA8ZGl2IHJvbGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNv
bnRlbnRlZGl0YWJsZT10cnVlPjAxMjM0NTY3ODkwPC9kaXY+CisKKyAgICA8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJu
b3RpZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEu
Iik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQgPSAxOworCisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0
VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlVHlwaW5nID0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgKyAxOworICAgICAgICB2YXIg
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gPSBBWFRleHRFZGl0VHlwZVR5cGluZyArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZUN1dCA9IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uICsgMQor
ICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVQYXN0ZSA9IEFYVGV4dEVkaXRUeXBlQ3V0ICsgMTsK
KworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAg
ICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAg
ICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlckluZm8p
IHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikgewor
ICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVz
ZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gNikgeworCisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlQ3V0Iik7CisKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VW
YWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlw
ZVwiXSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIyMzQ1Njc4OTBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIx
XCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0
RWRpdFR5cGVUeXBpbmciKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURl
bGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKwor
ICAgICAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50
LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdl
YkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAg
ICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAg
ICAgICAgdmFyIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwor
ICAgICAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgICAgICBleGVjU2V0U2VsZWN0
aW9uQ29tbWFuZCh0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25S
aWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgY3V0Q29tbWFuZCgpOworICAg
ICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0ZXJDb21tYW5kKCk7Cisg
ICAgICAgICAgICBwYXN0ZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oIjEiKTsKKyAgICAgICAgICAgIGRlbGV0ZUNvbW1hbmQoKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAzZGY5NGVmLi44Y2NjNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUxMSw2ICsxNTEx
LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0MjcwOWUuLmMx
MTFmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTMgQEAKKzIwMTUtMDQtMjIgIERvdWcgUnVz
c2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNo
YW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKKyAg
ICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2Vy
aW5mby5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6aXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcik6IERlbGV0ZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFz
c3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBv
c3ROb3RpZmljYXRpb25zRm9yVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZp
Y2F0aW9uV2l0aFVzZXJJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKCtbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOl0pOgor
ICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpdKToKKyAgICAgICAgKGFycmF5UmVtb3ZpbmdOb25KU09OVHlw
ZXMpOgorICAgICAgICAoZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246dXNlckluZm86XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpB
cHBlbmROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpB
cHBseVN0eWxlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlCbG9ja1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjph
cHBlbmROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVC
cmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUF0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OnNob3VsZFN0b3BDYXJldEJsaW5raW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVk
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFu
ZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdEFjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRDb21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OlNp
bXBsZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZDo6c2V0UGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGll
ZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUluc2VydEZyYWdtZW50KToKKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRT
ZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlm
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1Nl
bGVjdGlvblVwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdv
cmRTdGFydCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Oklu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToK
KyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGlu
Zy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAg
ICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRW
YWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1c0luRG9jdW1lbnRPcmRlcik6CisKIDIwMTUtMDQtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBPdmVyd3JpdGUgZXhpc3RpbmcgZmls
ZXMgd2l0aCBtb3ZlRmlsZS4KQEAgLTM4Niw2ICs1OTYsMjEgQEAKICAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpjb21wdXRlZExpbmVIZWlnaHQpOiBDbGFtcCBsaW5lLWhlaWdodCB0byBh
bgogICAgICAgICAgICAgaW50IHRvIGF2b2lkIG92ZXJmbG93LgogCisyMDE1LTA0LTE0ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEg
bWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBp
biBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFu
Z2VzLgorCisyMDE1LTA0LTE0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAg
TmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vz
c2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY29tbWl0IGlzIGFsbCBpbmZyYXN0cnVjdHVyZSBh
bmQgZG9lc24ndCBjb250YWluIGFueSBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIGNoYW5nZXMuCis+
Pj4+Pj4+IDxyZGFyOi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisKIDIwMTUtMDQtMTcgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91bGQgZ28gdGhyb3Vn
aCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggM2ViZTZiOS4uNjVhNTg1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CkBAIC0xNDc3Myw2ICsxNDc3MywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE5NTIyLDYg
KzE5NTUwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQWNj
ZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdp
blxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccGFnZVxBZGp1c3RWaWV3U2l6ZU9yTm90LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwYWdlXEFsdGVybmF0aXZlVGV4dENsaWVudC5oIiAvPgpAQCAtMjEwNzQsNiAr
MjExMDMsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgiIC8+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
aW5kZXggZTJiYTJlNi4uMjYzYzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzUyOCw2ICszNTI4LDEy
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24u
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNzY1Niw2ICs3NjYyLDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAg
IDxGaWx0ZXI+YWNjZXNzaWJpbGl0eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVu
dC5oIj4KKyAgICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eVx3aW48L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjY1LDYgKzEwNjc0LDEyIEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4N2QyZTc3Li45NTdkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjM0LDYgKzMyMzQs
NyBAQAogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3
M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKIAkJ
OTAwMTc4ODAxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RTEy
RTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLzsgfTsKIAkJ
OTAwMTc4ODExMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0YxMkUw
MzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OworCQk5MUM5
RjJGOTFBRTNCRUIwMDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxQzlGMkY4MUFFM0JFMjQw
MDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07CiAJ
CTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDVCMjRDMDk4RjFCNkIwMEMyODg1
NSAvKiBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC02Mzc5LDYgKzYzODAsMTAgQEAKIAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsg
fTsKIAkJRjU0NEY3ODgxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggKi87IH07CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYx
MkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgKi87IH07CkBAIC0xMDQ2Niw2ICsxMDQ3MSw3IEBACiAJCTkwMDE3NzNG
MTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgcGF0aCA9IGNhbnZhcy9P
RVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RjEyRTAzNzA3
MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8q
IFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdl
R3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAyQjBCRTBENzlGODJD
MDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA1QjI0QzA5OEYx
QjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA2LDYgKzE0MDEyLDEw
IEBACiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRm
b3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
ODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAv
KiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
NjEzLDYgKzE1NjIzLDcgQEAKIAkJCQkyOUE4MTIxMzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmggKi8sCiAJCQkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFY
T2JqZWN0Q2FjaGUuY3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9i
amVjdENhY2hlLmggKi8sCisJCQkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGFjY2Vzc2liaWxpdHk7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTc3NDEsNiArMTc3NTIsMTAgQEAKIAkJCQk5
MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3Np
dGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NTI4REE3
MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCQTA5OUU2
NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMjM2Njgs
NiArMjM2ODMsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU1OTAsNiArMjU2MDYsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgw
MEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hN
TEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZh
bHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyog
SlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjY0Miw2ICsyNjY1OSw3IEBA
CiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQzFENDI4MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E2OTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyOTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aEFicy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MkExNzhENUFC
NDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTZEMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpYy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODM5Myw2ICsyODQxMSw3IEBACiAJCQkJNTEw
MTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFn
ZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1h
Yy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk4MzYsNiArMjk4NTUsNyBAQAogCQkJCUZFMzZGRDE2
MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVy
YXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0
ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLjI1NjhiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTAsNiArOTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKKy8vIFBvc3QgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
Zm9yIHBhc3N3b3JkIGZpZWxkcyBvciBlbGVtZW50cyBjb250YWluZWQgaW4gcGFzc3dvcmQgZmll
bGRzIGF0IGEgNDBoeiBpbnRlcnZhbCB0byB0aHdhcnQgYW5hbHlzaXMgb2YgdHlwaW5nIGNhZGVu
Y2UKK3N0YXRpYyBkb3VibGUgQWNjZXNzaWJpbGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb25JbnRlcnZhbCA9IDAuMDI1OworCiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFY
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZTo6Z2V0SWdub3JlZChBWElEIGlkKSBjb25zdAog
ewogICAgIEhhc2hNYXA8QVhJRCwgQ2FjaGVkQVhPYmplY3RBdHRyaWJ1dGVzPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX2lkTWFwcGluZy5maW5kKGlkKTsKQEAgLTEyOSw2ICsxMzIsNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGlt
ZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAg
ICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hl
OjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03MDUsNyAr
NzA5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgp
CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0b3JGb3JDYWNoZU93bmVyKG1fZG9jdW1lbnQpOwog
ICAgIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKICAgICAKLSAgICAvLyBJbiBEUlQs
IHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1
ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJl
aGF2aW9yCisgICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5k
ZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBj
YW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCiAgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0
aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0
IHRoZSBzdGFydC4KICAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9ub3RpZmlj
YXRpb25zVG9Qb3N0KTsKICAgICAKQEAgLTc0Miw2ICs3NDYsMjAgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNo
YW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOworCisg
ICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBp
bW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0
byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3Qg
aXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFy
dC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNh
dGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3Rp
ZmljYXRpb25zKQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxl
UG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5v
dGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmlj
YXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04
NTAsMTYgKzg2OCwyMjMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVy
ZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwog
fQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
IG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRl
bnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2gg
KGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgor
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgZGF0YUxvZygiRWRpdDo6Iik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICAgICAgZGF0YUxvZygiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBkYXRhTG9nKCJFeHRl
bmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkg
eworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGlu
dGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIGRhdGFMb2coIkRlbGV0ZSIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgICAgICBkYXRhTG9nKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgZGF0YUxvZygi
RGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIlR5cGluZ0luc2VydCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
ICAgICAgICBkYXRhTG9nKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBkYXRhTG9nKCJQYXN0ZSIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25vd246OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAg
ICAgICAgZGF0YUxvZygiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGRhdGFMb2co
IkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBkYXRhTG9nKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBkYXRhTG9nKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24p
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246Cisg
ICAgICAgICAgICAgICAgZGF0YUxvZygiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIGRhdGFMb2coIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IGRhdGFMb2coIi1TeW5jIik7CisgICAgZGF0YUxvZygiXG4iKTsKK30KKyNlbmRpZgorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30K
Kworc3RhdGljIGJvb2wgaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQoreworICAgIHJldHVybiBvYmplY3QgJiYgKG9i
amVjdC0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqZWN0LT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNl
bGVjdGlvbkludGVudDsKKwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KLSAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBp
ZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChpc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3Qg
PSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBpbnRlbnQsIHNlbGVjdGlvbik7Cisj
ZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNo
ZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRp
ZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHR5cGUsIHRleHQs
IHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZSh0eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2
YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0KTsKKyNlbmRpZgorfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSog
bm9kZSwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRU
eXBlRGVsZXRlKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUlu
c2VydCB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlv
blR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZVBhc3RlKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1
dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlm
IChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmplY3QpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRU
ZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKK30K
KworYm9vbCBBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCit7CisgICAgaWYgKCFpc1Bhc3N3b3Jk
RmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0gb2Jq
ZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAvLyByZXR1cm4gdHJ1ZSBldmVu
IHRob3VnaCB0aGUgZW5xdWV1ZSBkaWRuJ3QgaGFwcGVuIGJlY2F1c2UgdGhpcyBpcyBhIHBhc3N3
b3JkIGZpZWxkIGFuZCBjYWxsZXIgc2hvdWxkbid0IHBvc3QgYSBub3RpZmljYXRpb24KKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9u
c1RvUG9zdC5jb250YWlucyhvYnNlcnZhYmxlT2JqZWN0KSkgeworICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlm
ICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoQWNjZXNzaWJp
bGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZhbCk7CisgICAgfQorCisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQp
CkBAIC0xMDg0LDYgKzEzMDksMTQgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2Rl
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RD
YWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmpl
Y3QgPSB0aGlzLT5yb290T2JqZWN0KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2Jq
ZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmpl
Y3QpLndlYkFyZWFPYmplY3QoKTsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShj
YWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggYmZhOTI3Ny4uYTgxYWU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
QVhPYmplY3RDYWNoZV9oCiAjZGVmaW5lIEFYT2JqZWN0Q2FjaGVfaAogCisjaW5jbHVkZSAiQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0Lmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KQEAgLTY3LDYgKzY4LDEw
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxBWElELCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+
IG1faWRNYXBwaW5nOwogfTsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK2VudW0gQVhUZXh0Q2hh
bmdlIHsgQVhUZXh0SW5zZXJ0ZWQsIEFYVGV4dERlbGV0ZWQgfTsKKyNlbmRpZgorCiBlbnVtIFBv
c3RUYXJnZXQgeyBUYXJnZXRFbGVtZW50LCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50IH07CiAKIGVu
dW0gUG9zdFR5cGUgeyBQb3N0U3luY2hyb25vdXNseSwgUG9zdEFzeW5jaHJvbm91c2x5IH07CkBA
IC0xODksMTIgKzE5NCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAotICAgIH07CisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25z
dCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOwogCi0gICAgdm9pZCBub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9h
ZGluZ1N0YXJ0ZWQsCkBAIC0yMTMsMTIgKzIyMSwyNCBAQCBwdWJsaWM6CiAgICAgQVhDb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZUNhY2hlKiBjb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkgeyBy
ZXR1cm4gbV9jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlLmdldCgpOyB9CiAKICAgICBEb2N1
bWVudCYgZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9Ci0gICAgCisKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgc3RhdGljIEFYVGV4dENoYW5nZSB0ZXh0
Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUpOworICAgIHZvaWQgbm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2Fk
aW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2Fk
aW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwog
ICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsyNDksOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJr
ZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAg
SGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAg
ICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAg
LTI0NCw2ICsyNjYsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RU
aW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAg
ICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVN
ZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyNzgsMTAgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhU
TUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Kik7CisKKyAgICBib29sIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1f
dGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVy
CkBAIC0zMDgsOCArMzM5LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Ny
b2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7
IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJP
YmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9B
bmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlw
ZSkgeyB9CkBAIC0zMjAsNiArMzUyLDE0IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJl
bW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lkZ2V0
KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIHsgfQorI2Vsc2UKK2lubGluZSBBWFRleHRDaGFuZ2UgQVhPYmplY3RDYWNoZTo6dGV4dENo
YW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKSB7IHJldHVybiBBWFRleHRJbnNlcnRlZDsg
fTsKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNv
bnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzI2NGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgKQEAg
LTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKyNkZWZpbmUgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitlbnVtIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAg
ICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCit9
OworCitlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisg
ICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICBBWFRl
eHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgIEFYVGV4dEVkaXRU
eXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0
aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBE
ZWxldGUgdmlhIEN1dAorICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0
ZQorfTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblVua25vd24sCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cywKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAor
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKK307CisKK2VudW0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
VW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisgICAg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYWdlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQs
CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJl
cHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEg
c2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFy
aXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1
bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorfTsKKworc3RydWN0IEFYVGV4
dFNlbGVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eTsKK307CisKK3N0cnVjdCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7
CisgICAgdW5pb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uOworICAgICAg
ICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgfTsKKyAgICBib29sIGlzU3luY2hyb25pemlu
ZyB7IGZhbHNlIH07CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVj
dGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgOiB0eXBlKHR5cGUp
CisgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICB7IH0KKworICAgIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgOiB0eXBlKEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICB7
IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0
eXBlLCBib29sIGlzU3luY2hyb25pemluZykKKyAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAg
ICwgc2VsZWN0aW9uKCkKKyAgICAgICAgLCBpc1N5bmNocm9uaXppbmcoaXNTeW5jaHJvbml6aW5n
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi40MzhlODUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bh
c3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRG
aWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKQoreworICAgIE5vZGUq
IG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50
b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRG
aWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgRWxlbWVudCog
ZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWlzPEhU
TUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgcmV0
dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKworICAgIHJldHVybiBudWxscHRyOwor
fQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAog
ewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcy
Zi4uYTgyYmQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5k
ZXggNWEyN2VhOC4uY2IzMzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMTcgQEAgdm9p
ZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNo
KGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRh
aW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5v
ZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBp
ZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICBy
ZXR1cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4oKmVsZW1lbnQpLmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjgxNmMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYz
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgp
IGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9y
Q29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVh
bCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFS
b2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAyZDkyOTk2Li5mNjU1ZDU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKQEAgLTE0ODgsMTQgKzE0ODgsMTcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFp
blRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgewor
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQg
OiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRl
eHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAg
ICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQg
KyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9k
ZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlv
bigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0
YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0
aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pOworICAg
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG5ld0ludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlLCB0cnVlKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLCBuZXdJbnRlbnQpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjAsMTMgKzE5NjMsMTYgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZp
c2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlz
TnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBh
bmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVu
IG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQp
CisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0
VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1l
KCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9
CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlz
aWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJl
ci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAg
ICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0
cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxp
dHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcx
LDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBh
cmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
d2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRT
Y3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nl
c3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDU4NTJhMGYuLjczNjZlNjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCkBAIC0yNDMsNiArMjQzLDI0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEFYCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KKyAgICAKK0FYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0
ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHREZWxldGVkOworICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0
ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEluc2VydGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIEFYVGV4dEluc2VydGVkOworfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0LCBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CkBAIC05NSw4ICs5NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmlu
Z107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RD
YWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQppbmRleCBiMzAwZTc3Li42Yjc5MGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhM
aXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdl
VHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0
VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlw
ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVl
cyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFu
Z2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRl
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRl
IEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0
cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRp
b25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBh
cmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJn
ZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIEFY
VmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKwogLy8gVGhlIHNpbXBsZSBDb2Nv
YSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNjAsNiArMTA3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNo
V3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRXcmFwcGVyKHdy
YXBwZXIuZ2V0KCkpOwogfQogCitzdGF0aWMgQk9PTCBheFNob3VsZFJlcG9zdE5vdGlmaWNhdGlv
bnNGb3JUZXN0cyA9IGZhbHNlOworCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIEFYUG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24s
IGlkIHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1w
bGlmeSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBz
aW1wbGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVy
ZSB0byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdl
ZW4gV2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNr
CisgICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkK
KyAgICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNh
dGlvbiB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRp
b24gbm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMTEsMTM4IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigp
IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53
cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8g
a25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAg
QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmlj
YXRpb24sIG5pbCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24pCiB7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVh
KCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBp
ZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50
ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAg
ICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAg
ICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAg
ICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJS
YW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3Np
dGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJS
YW5nZTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFw
cGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7
CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4
dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3Qs
IEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICop
c3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAo
IWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpj
aGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07
CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAg
IGlmIChsZW5ndGggPiBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsK
KyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6QVhWYWx1ZUNoYW5nZVRydW5j
YXRpb25MZW5ndGhdOworICAgIH0KKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAg
IGlmIChpZCB0ZXh0TWFya2VyID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNp
YmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJl
dHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9i
amVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBp
ZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFw
cGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
b2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlv
biwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghb2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkg
KnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXld
ID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpj
aGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAg
ICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9u
YXJ5KG9iamVjdCwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAg
ICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgaW5zZXJ0aW9uVHlw
ZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpj
aGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0g
Y2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0g
b2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJB
cmVhID0gcm9vdFdlYkFyZWEoKTsKKworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRp
b25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93
IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5n
ZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgTlNBY2Nlc3NpYmlsaXR5
UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3Np
YmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBi
eSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqZWN0
LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxp
dHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3Vz
ZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVj
dCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBWaXNpYmxlUG9z
aXRpb247CiAtIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKIAogLSAo
aWQpYXR0YWNobWVudFZpZXc7Ci0vLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBu
b3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBVc2VkIHRvIGlu
Zm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNl
ZCBieSB0ZXN0cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNT
dHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlv
bmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNwYWNl
OihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3JlZW5T
cGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLjg3MTBkYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDY5IEBAIHN0YXRp
YyBCT09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogKyAodm9pZClh
Y2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTClyZXBvc3QKIHsK
ICAgICBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJlcG9zdDsKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKElPUykKKyAgICBBWE9iamVjdENhY2hlOjpz
ZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMocmVwb3N0KTsKKyNlbmRpZgogfQog
CiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90
aWZpY2F0aW9uTmFtZQogeworICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZp
Y2F0aW9ucykKKyAgICAgICAgW3NlbGYgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpu
b3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOm5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICphcnJh
eVJlbW92aW5nTm9uSlNPTlR5cGVzKE5TQXJyYXkgKmFycmF5KQoreworICAgIEFTU0VSVChbYXJy
YXkgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKTsKKyAgICBOU011dGFibGVBcnJheSAq
bXV0YWJsZUFycmF5ID0gW2FycmF5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TVUludGVnZXIg
aSA9IDA7IGkgPCBbbXV0YWJsZUFycmF5IGNvdW50XTspIHsKKyAgICAgICAgaWQgdmFsdWUgPSBt
dXRhYmxlQXJyYXlbaV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0
aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RB
dEluZGV4Omkgd2l0aE9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUp
XTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3Nd
XSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aSB3aXRo
T2JqZWN0OmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBp
ZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpIHsKKyAgICAgICAgICAgIFttdXRhYmxlQXJy
YXkgcmVtb3ZlT2JqZWN0QXRJbmRleDppXTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisgICAgICAgIGkrKzsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxlQXJyYXkgYXV0b3Jl
bGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25K
U09OVHlwZXMoTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5KQoreworICAgIEFTU0VSVChbZGljdGlv
bmFyeSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqbXV0YWJsZURpY3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRhYmxlQ29weV07
CisgICAgZm9yIChOU1N0cmluZyAqa2V5IGluIGRpY3Rpb25hcnkpIHsKKyAgICAgICAgaWQgdmFs
dWUgPSBkaWN0aW9uYXJ5W2tleV07CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpb
TlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXld
ID0gZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBp
ZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11
dGFibGVEaWN0aW9uYXJ5W2tleV0gPSBhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsK
KyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3Nd
XSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAg
ICBbbXV0YWJsZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAg
IHJldHVybiBbbXV0YWJsZURpY3Rpb25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFj
Y2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFt
ZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJp
bGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1
c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3Rp
ZmljYXRpb25OYW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhE
UlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAg
QVNTRVJUKG5vdGlmaWNhdGlvbk5hbWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBu
aWw7CisgICAgICAgIGlmICh1c2VySW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5m
b0RhdGEgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFy
eVJlbW92aW5nTm9uSlNPTlR5cGVzKHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0
aW9ucykwIGVycm9yOm5pbF07CisgICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAg
ICAgICAgICAgICAgTlNTdHJpbmcgKnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10g
aW5pdFdpdGhEYXRhOnVzZXJJbmZvRGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107
CisgICAgICAgICAgICAgICAgaWYgKHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAg
ICBpbmZvID0gQHtAIm5vdGlmaWNhdGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2Vy
SW5mbyIgOiB1c2VySW5mb1N0cmluZ307CisgICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5n
IHJlbGVhc2VdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaW5mbykK
KyAgICAgICAgICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25O
YW1lfTsKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0
Tm90aWZpY2F0aW9uTmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5m
bzppbmZvXTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5o
CmluZGV4IDM4YzVjZDAuLjkyMjI4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMuaApAQCAtMzMsNiArMzMsOSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIDogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlk
KXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9z
aXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
KWVuZFBvc2l0aW9uOworLSAoaWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3Qg
V2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAv
LyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLjgzNzkzZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yOSwxMyArMjks
MTYgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5o
IgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlKQotICAg
IDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVudCgpKQorQXBwZW5kTm9kZUNvbW1h
bmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNp
bXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAs
IG1fcGFyZW50KHBhcmVudCkKICAgICAsIG1fbm9kZShub2RlKQogewpAQCAtNDYsMTUgKzQ5LDIz
IEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRh
aW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0
YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hh
bmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlKQog
ewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5v
ZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIHRleHQgPSBub2Rl
LT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMg
Y29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4i
KQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVU
ZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5v
ZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQs
MTggKzc1LDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9w
YXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5v
ZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxl
U3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90
aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0
RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2Rl
LmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVf
RVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
aAppbmRleCBkNjRiMDRlLi5mNzgyOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCisgICAgc3Rh
dGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5k
KHBhcmVudCwgbm9kZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmROb2Rl
Q29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+LCBFZGl0QWN0aW9uKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5h
cHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcAppbmRleCA3YzQxOGMyLi5jYWI4ODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMTIzLDkgKzEyMyw4IEBAIFJlZlB0cjxIVE1M
RWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB9CiAK
IEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVBy
b3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRv
Y3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rp
b24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24o
ZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChwcm9wZXJ0eUxldmVsKQogICAg
ICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0oKSkKICAgICAs
IG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3RyZWFtKCkpCkBAIC0xMzYsOSArMTM1
LDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFw
cGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBz
dHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxldmVsIHByb3BlcnR5TGV2ZWwpCi0gICAgOiBD
b21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5k
KGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQot
ICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2
ZWwocHJvcGVydHlMZXZlbCkKICAgICAsIG1fc3RhcnQoc3RhcnQpCiAgICAgLCBtX2VuZChlbmQp
CkBAIC0xNDksOSArMTQ3LDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5k
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHkKIH0KIAogQXBwbHlT
dHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVu
dCwgYm9vbCByZW1vdmVPbmx5LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCi0gICAgOiBDb21w
b3NpdGVFZGl0Q29tbWFuZChlbGVtZW50LT5kb2N1bWVudCgpKQorICAgIDogQ29tcG9zaXRlRWRp
dENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5
bGUoRWRpdGluZ1N0eWxlOjpjcmVhdGUoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5n
QWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1f
c3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2Vu
ZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAtMTYzLDkgKzE2MCw4IEBA
IEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChQYXNzUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25sCiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0
eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUs
IElzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24gaXNJbmxpbmVFbGVtZW50VG9SZW1vdmVG
dW5jdGlvbiwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRp
dGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAgICAsIG1fZWRpdGlu
Z0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKFByb3BlcnR5RGVm
YXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFt
KCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAt
MjI2LDExICsyMjIsNiBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9
CiB9CiAKLUVkaXRBY3Rpb24gQXBwbHlTdHlsZUNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dAotewotICAgIHJldHVybiBtX2VkaXRpbmdBY3Rpb247Ci19Ci0KIHZvaWQgQXBwbHlTdHlsZUNv
bW1hbmQ6OmFwcGx5QmxvY2tTdHlsZShFZGl0aW5nU3R5bGUgKnN0eWxlKQogewogICAgIC8vIHVw
ZGF0ZSBkb2N1bWVudCBsYXlvdXQgb25jZSBiZWZvcmUgcmVtb3Zpbmcgc3R5bGVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKaW5kZXggZTk5ZTM2YS4uOWRiZTg3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaApAQCAtNzIs
NyArNzIsNiBAQCBwcml2YXRlOgogICAgIEFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiwgY29u
c3QgRWRpdGluZ1N0eWxlKiwgYm9vbCAoKmlzSW5saW5lRWxlbWVudFRvUmVtb3ZlKShjb25zdCBF
bGVtZW50KiksIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgLy8gc3R5bGUtcmVtb3ZhbCBoZWxwZXJzCiAgICAgYm9vbCBpc1N0eWxlZElu
bGluZUVsZW1lbnRUb1JlbW92ZShFbGVtZW50KikgY29uc3Q7CkBAIC0xMjIsNyArMTIxLDYgQEAg
cHJpdmF0ZToKICAgICBQb3NpdGlvbiBlbmRQb3NpdGlvbigpOwogCiAgICAgUmVmUHRyPEVkaXRp
bmdTdHlsZT4gbV9zdHlsZTsKLSAgICBFZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbjsKICAgICBF
UHJvcGVydHlMZXZlbCBtX3Byb3BlcnR5TGV2ZWw7CiAgICAgUG9zaXRpb24gbV9zdGFydDsKICAg
ICBQb3NpdGlvbiBtX2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uNzM0MmY2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTU4LDYgKzU4LDggQEAK
ICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZl
bnRRdWV1ZS5oIgpAQCAtMTYyLDEzICsxNjQsMzAgQEAgdm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0
aW9uOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYK
IAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseUVkaXRUeXBl
KCkKK3sKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rpb24oKSkgeworICAgIGNhc2UgRWRpdEFjdGlv
bkN1dDoKKyAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRF
ZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgY2FzZSBF
ZGl0QWN0aW9uSW5zZXJ0OgorICAgIGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgIGNhc2UgRWRp
dEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5
cGVVbmtub3duOworfQorCiB2b2lkIGFwcGx5Q29tbWFuZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVk
aXRDb21tYW5kPiBjb21tYW5kKQogewogICAgIGNvbW1hbmQtPmFwcGx5KCk7CiB9CiAKLUNvbXBv
c2l0ZUVkaXRDb21tYW5kOjpDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQp
Ci0gICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCkKK0NvbXBvc2l0ZUVkaXRDb21tYW5kOjpDb21w
b3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKKyAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogewogfQog
CkBAIC0xODcsNiArMjA2LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHkoKQog
ICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRXcml0aW5nRGlyZWN0aW9uOgogICAgICAgICBjYXNl
IEVkaXRBY3Rpb25DdXQ6CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOgorICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0
ZToKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgogICAgICAgICAgICAgYnJlYWs7
CkBAIC0yOTYsNyArMzE2LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlU3R5
bGVkRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQpCiAKIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJh
Z3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCiB7Ci0g
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJs
b2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHVzZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBl
ZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0
TGluZUJyZWFrKCkKQEAgLTMyMiw3ICszNDIsNyBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5k
Ojppc1JlbW92YWJsZUJsb2NrKGNvbnN0IE5vZGUqIG5vZGUpCiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRD
aGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUFmdGVyKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQpCkBAIC0zNzMsNyArMzkzLDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0Tm9kZUF0KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIGNvbnN0IFBv
c2kKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUoUGFzc1JlZlB0cjxOb2Rl
PiBub2RlLCBQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCkKIHsKICAgICBBU1NFUlQo
Y2FuSGF2ZUNoaWxkcmVuRm9yRWRpdGluZyhwYXJlbnQuZ2V0KCkpKTsKLSAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSkpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFy
ZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgdW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgdG8pCkBAIC0zOTcsNyArNDE3LDcgQEAgdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnQKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsK
KyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
LCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVt
b3ZlTm9kZUFuZFBydW5lQW5jZXN0b3JzKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKQEAgLTUyNSwy
MCArNTQ1LDIxIEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBT
dHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0CiB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgp
KQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQs
IHRleHQsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpkZWxldGVUZXh0RnJvbU5vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgY291bnQsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+IHBycE5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFj
ZW1lbnRUZXh0KQogewogICAgIFJlZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBvZmZzZXQsIGNvdW50KSk7CisgICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+
IGRlbGV0ZUNvbW1hbmQgPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0
ZUNvbW1hbmQpOwogICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCksIGVk
aXRpbmdBY3Rpb24oKSkpOwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uZWNiMjg1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApA
QCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ7CiBjbGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVu
dDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgog
CisgICAgQVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCk7CisKIHByaXZhdGU6CiAgICAg
RWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rp
b24sIEVkaXRBY3Rpb24pOwogCkBAIC04OSw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
CiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQm
KTsKKyAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rp
b24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAgICAgLy8KICAgICAvLyBzdWdhcnktc3dl
ZXQgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGhlbHAgY3JlYXRlIGFuZCBhcHBseSBlZGl0IGNv
bW1hbmRzIGluIGNvbXBvc2l0ZSBjb21tYW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uMWZhMDEz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMyArMjksMTUgQEAKICNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVu
dCgpKQorRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUt
PmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1f
b2Zmc2V0KG9mZnNldCkKICAgICAsIG1fY291bnQoY291bnQpCkBAIC00NSw2ICs0NywxMSBAQCBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0g
bV9ub2RlLT5sZW5ndGgoKSk7CiB9CiAKK2NvbnN0IFN0cmluZyYgRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6ZGVsZXRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9k
ZSk7CkBAIC01OCw4ICs2NSw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlz
IGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+
ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2
b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUt
Pmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBp
ZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQp
KSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4IDI0OTFmMDUuLmEwMzVmMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIw
MDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxNCArMzQsMTcgQEAgY2xhc3MgVGV4dDsKIAog
Y2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFu
ZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zm
c2V0LCBjb3VudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9
CiAKLXByaXZhdGU6Ci0gICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KTsKKyAgICBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVk
aXRBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
MmJiYzZlZC4uZWIzYTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC03Miw4ICs3Miw4IEBAIHN0YXRpYyBib29sIGlzVGFi
bGVSb3dFbXB0eShOb2RlKiByb3cpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLURlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCi0g
ICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0
RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0
aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rpb25Ub0RlbGV0ZShmYWxzZSkKICAgICAsIG1f
c21hcnREZWxldGUoc21hcnREZWxldGUpCiAgICAgLCBtX21lcmdlQmxvY2tzQWZ0ZXJEZWxldGUo
bWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSkKQEAgLTkwLDggKzkwLDggQEAgRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
c21hcnREZWwKIHsKIH0KIAotRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxl
dGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKLSAgICA6IENvbXBvc2l0
ZUVkaXRDb21tYW5kKHNlbGVjdGlvbi5zdGFydCgpLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKSkK
K0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKHNlbGVjdGlvbi5zdGFydCgpLmFuY2hvck5vZGUoKS0+ZG9j
dW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faGFzU2VsZWN0aW9uVG9EZWxldGUodHJ1
ZSkKICAgICAsIG1fc21hcnREZWxldGUoc21hcnREZWxldGUpCiAgICAgLCBtX21lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUobWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSkKQEAgLTg4NCwxNCArODg0LDYgQEAg
dm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAgICBjbGVhclRyYW5zaWVu
dFN0YXRlKCk7CiB9CiAKLUVkaXRBY3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbigpIGNvbnN0Ci17Ci0gICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQgaXMgYWxzbyB1c2VkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAg
ICAvLyBidXQgaW4gdGhhdCBjYXNlIHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxp
ZXMgdGhlIGVkaXRpbmdBY3Rpb24oKSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3Rs
eSBzaG93cyAiVW5kbyBUeXBpbmciCi0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Ci19Ci0KIC8v
IE5vcm1hbGx5IGRlbGV0aW9uIGRvZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0
IHdhcyBwcmVzZW50IGJlZm9yZSBpdC4gIEZvciBleGFtcGxlLAogLy8gdHlwZSBhIGNoYXJhY3Rl
ciwgQm9sZCwgdGhlbiBkZWxldGUgdGhlIGNoYXJhY3RlciBhbmQgc3RhcnQgdHlwaW5nLiAgVGhl
IEJvbGQgdHlwaW5nIHN0eWxlIHNob3VsZG4ndAogLy8gc3RpY2sgYXJvdW5kLiAgRGVsZXRpb24g
c2hvdWxkIHByZXNlcnZlIGEgdHlwaW5nIHN0eWxlIHRoYXQgKml0KiBzZXRzLCBob3dldmVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRl
eCBlNWJmNTFkLi4wYTliOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtMzQsMjMgKzM0LDIyIEBAIGNsYXNzIEVkaXRpbmdTdHls
ZTsKIAogY2xhc3MgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0
Q29tbWFuZCB7IAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBi
b29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwg
Ym9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1
cCA9IHRydWUpCisgICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQs
IHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JT
cGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNh
bml0aXplTWFya3VwLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQotICAgIHN0YXRpYyBSZWY8RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxl
dGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgc3RhdGljIFJl
ZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNp
YWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERl
bGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKHNlbGVjdGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVN
YXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzLCBib29sIHNhbnRpemVNYXJrdXApOworICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9j
dW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJv
b2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1h
cmt1cCwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogCiBwcml2YXRlOgotICAgIERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnRE
ZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4
cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCk7CisgICAgRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwLCBFZGl0QWN0aW9uKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24oKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgcHJlc2VydmVzVHlwaW5n
U3R5bGUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0
YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFu
ZC5jcHAKaW5kZXggYzE3M2RmNC4uOTA4ZmQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25D
b21tYW5kOjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNp
emVfdCBsaW4KIHsKICAgICBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZl
c0luTGluZTsKICAgICBjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3Rh
cnQsIGxpbmVMZW5ndGgsIGFsdGVybmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRl
eHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJT
dXBwbGllcihkb2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBs
aW5lTGVuZ3RoKSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJ
bkxpbmUpKTsKKyAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRv
SW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJT
dXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSksIEVkaXRBY3Rpb25EaWN0YXRpb24p
OwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigp
KTsKIH0KIApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yKCkKICAgICBpZiAoIWNhbkFwcGVuZE5ld0xpbmVGZWVkVG9TZWxl
Y3Rpb24oZW5kaW5nU2VsZWN0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUo
ZG9jdW1lbnQoKSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmYWxzZSwgZmFsc2UsIEVkaXRB
Y3Rpb25EaWN0YXRpb24pKTsKIH0KIAogdm9pZCBEaWN0YXRpb25Db21tYW5kOjpjb2xsZWN0RGlj
dGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShzaXplX3QgcmFuZ2VTdGFydCwgc2l6ZV90IHJhbmdl
TGVuZ3RoLCBWZWN0b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+JiBhbHRlcm5hdGl2ZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCmluZGV4IDYzN2QxZWIuLjZlZjM1MDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgdHlwZWRlZiBlbnVtIHsKICAgICAgICAgRWRpdEFjdGlvblVuc3BlY2lmaWVk
LAorICAgICAgICBFZGl0QWN0aW9uSW5zZXJ0LAogICAgICAgICBFZGl0QWN0aW9uU2V0Q29sb3Is
CiAgICAgICAgIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3IsCiAgICAgICAgIEVkaXRBY3Rp
b25UdXJuT2ZmS2VybmluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5k
ZXggOGY1NjUzMi4uOGY3ZmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5j
cHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0
Q29tbWFuZC5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBv
c2l0ZUVkaXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0
b3IuaCIKQEAgLTM3LDkgKzM4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRWRpdENv
bW1hbmQ6OkVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkKK0VkaXRDb21tYW5kOjpFZGl0
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAg
ICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX3BhcmVudCgwKQorICAgICwgbV9lZGl0
aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50LmZyYW1lKCkp
OwogICAgIHNldFN0YXJ0aW5nU2VsZWN0aW9uKG1fZG9jdW1lbnQtPmZyYW1lKCktPnNlbGVjdGlv
bigpLnNlbGVjdGlvbigpKTsKQEAgLTY3LDcgKzY5LDcgQEAgRnJhbWUmIEVkaXRDb21tYW5kOjpm
cmFtZSgpCiAKIEVkaXRBY3Rpb24gRWRpdENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAog
ewotICAgIHJldHVybiBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ7CisgICAgcmV0dXJuIG1fZWRpdGlu
Z0FjdGlvbjsKIH0KIAogc3RhdGljIGlubGluZSBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKiBjb21w
b3NpdGlvbklmUG9zc2libGUoRWRpdENvbW1hbmQqIGNvbW1hbmQpCkBAIC0xMTIsNiArMTE0LDQ5
IEBAIHZvaWQgRWRpdENvbW1hbmQ6OnNldFBhcmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCogcGFy
ZW50KQogICAgIH0KIH0KIAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5
cGUoKQoreworICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbigpKSB7CisgICAgY2FzZSBFZGl0QWN0
aW9uQ3V0OgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVDdXQ7CisgICAgY2FzZSBFZGl0
QWN0aW9uRGVsZXRlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAg
Y2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVE
aWN0YXRpb247CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgICAgICByZXR1cm4gQVhU
ZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJl
dHVybiBBWFRleHRFZGl0VHlwZVBhc3RlOworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAg
ICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVHlwaW5nOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitB
WFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBzd2l0
Y2ggKGFwcGx5RWRpdFR5cGUoKSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgor
ICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEZWxldGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgcmV0dXJu
IEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGlj
dGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dEVkaXRUeXBlRGVsZXRlOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtu
b3duOworfQorCitTaW1wbGVFZGl0Q29tbWFuZDo6U2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29tbWFuZChk
b2N1bWVudCwgZWRpdGluZ0FjdGlvbikKK3sKK30KKwogdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6
ZG9SZWFwcGx5KCkKIHsKICAgICBkb0FwcGx5KCk7CkBAIC0xMjUsNCArMTcwLDE0IEBAIHZvaWQg
U2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUs
IEhhc2hTZXQ8Tm9kZSo+JiBuCiB9CiAjZW5kaWYKIAordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47
CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwg
dGV4dCwgcG9zaXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uYzViN2FhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29t
bWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVT
ZWxlY3Rpb24uaCIKIApAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFBh
cmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCopOwogCi0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdDsKKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25z
dDsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9zdGFydGluZ1NlbGVjdGlvbjsgfQogICAgIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIGVuZGluZ1NlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kaW5nU2VsZWN0aW9u
OyB9CkBAIC01OSw4ICs2MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpID0gMDsKIAorICAgIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICBBWFRl
eHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKwogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0
IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CisgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1l
bnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKICAgICBFZGl0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJik7CiAKICAgICBGcmFtZSYgZnJhbWUoKTsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3RhcnRpbmdTZWxlY3Rpb247CiAgICAgVmlzaWJsZVNl
bGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsKICAgICBDb21wb3NpdGVFZGl0Q29tbWFuZCogbV9w
YXJlbnQ7CisgICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb24geyBFZGl0QWN0aW9uVW5zcGVj
aWZpZWQgfTsKIH07CiAKIGVudW0gU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
ewpAQCAtOTEsMTIgKzk2LDE0IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAg
ZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21t
YW5kKGRvY3VtZW50KSB7IH0KKyAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVu
dCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAjaWZuZGVmIE5ERUJV
RwogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYp
OwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29t
bWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uMjNiYzZiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtNTksNiArNTks
OCBAQAogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3Np
dGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
PgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNs
dWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNw
cD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCA3MTBhYTM5Li40YmQ3ZjdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yMDgsMTIgKzIwOCwxMiBAQCBib29sIEVkaXRv
cjo6aGFuZGxlVGV4dEV2ZW50KFRleHRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBpZiAoY2xp
ZW50KCktPnBlcmZvcm1zVHdvU3RlcFBhc3RlKGV2ZW50LT5wYXN0aW5nRnJhZ21lbnQoKSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICAgICAgICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZl
bnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBldmVu
dC0+bWFpbEJsb2NrcXVvdGVIYW5kbGluZygpKTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNo
b3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBFZGl0QWN0aW9u
UGFzdGUsIGV2ZW50LT5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOwogI2lmIFBMQVRGT1JNKElP
UykKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGVsc2UgCi0gICAgICAgICAgICByZXBsYWNl
U2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFy
dFJlcGxhY2UoKSk7CisgICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQt
PmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlvblBh
c3RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zNzQsMTIgKzM3NCwxMiBA
QCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGly
ZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVk
aXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2
b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxl
dGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rp
b24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAg
IGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
c21hcnREZWxldGUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbikpOwog
fQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTUyMyw3ICs1MjMsNyBAQCBib29sIEVk
aXRvcjo6c2hvdWxkSW5zZXJ0RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCwgUGFzc1JlZgogICAgIHJldHVybiBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0Tm9kZShm
cmFnbWVudC5nZXQoKSwgcmVwbGFjaW5nRE9NUmFuZ2UuZ2V0KCksIGdpdmVuQWN0aW9uKTsKIH0K
IAotdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBz
bWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWls
QmxvY2txdW90ZUhhbmRsaW5nKQordm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJh
Z21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RS
ZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFu
ZGxpbmcpCiB7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb24uaXNOb25lKCkgfHwgIXNlbGVj
dGlvbi5pc0NvbnRlbnRFZGl0YWJsZSgpIHx8ICFmcmFnbWVudCkKQEAgLTUzOSw3ICs1MzksNyBA
QCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIGlmIChtYWlsQmxvY2txdW90ZUhhbmRsaW5n
ID09IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUpCiAgICAgICAgIG9w
dGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Oklnbm9yZU1haWxCbG9ja3F1b3RlOwog
Ci0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIEVkaXRBY3Rpb25QYXN0ZSkpOworICAgIGFwcGx5Q29t
bWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50
LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0
aW5nT3BlcmF0aW9uKCk7CiAKICAgICBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNl
bGVjdGlvbigpOwpAQCAtNTUzLDEzICs1NTMsMTMgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxl
Y3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwK
ICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0
OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVs
bGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNo
LCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCi12b2lkIEVkaXRvcjo6cmVwbGFj
ZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNl
bWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldp
dGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBz
bWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRG
cm9tVGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0
cnVlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KGNyZWF0ZUZyYWdtZW50RnJv
bVRleHQoKnJhbmdlLCB0ZXh0KSwgc2VsZWN0UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgdHJ1
ZSwgZWRpdGluZ0FjdGlvbik7CiB9CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6c2VsZWN0
ZWRSYW5nZSgpCkBAIC0xMDAxLDcgKzEwMDEsOCBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRp
bmcoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3Qg
Y2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRv
IHRob3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9u
OjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgp
ID8gRnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgCisgICAgY2hh
bmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBs
eUVkaXRUeXBlKCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhj
b21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5l
bmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNj
aGVkdWxlZCgpOwpAQCAtMTAzMiw3ICsxMDMzLDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVk
aXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5
VGV4dEZyb21Db250cm9scyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQt
PmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5l
d1NlbGVjdGlvbihjbWQtPnN0YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21k
LT51bmFwcGx5RWRpdFR5cGUoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2Vk
RXZlbnRzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+ZW5kaW5nUm9v
dEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQo
KTsKQEAgLTEyNjYsNyArMTI2Nyw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVk
aXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFz
dGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBkZWxldGVT
ZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAg
IGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBF
ZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTIyMzgsNyArMjIz
OSw3IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29u
c3QgVmlzaWJsZVBvc2l0aW9uICZ3b3JkU3RhcnQsCiAKICAgICAgICAgaWYgKCFtX2ZyYW1lLmVk
aXRvcigpLnNob3VsZEluc2VydFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgbWlzc3BlbGxpbmdS
YW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpKQogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBtX2ZyYW1lLmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRv
Y29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBtX2ZyYW1lLmVkaXRvcigp
LnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFs
c2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogCiAgICAgICAgIC8vIFJlc2V0IHRoZSBjaGFyZXQgb25l
IGNoYXJhY3RlciBmdXJ0aGVyLgogICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLm1vdmVUbyht
X2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmVuZCgpKTsKQEAgLTI1ODQsNyArMjU4NSw3
IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhjb25zdCBTdHJpbmcm
IHJlcGxhY2VkU3RyaW5nKQogICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+
cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZVJldmVyc2VkKHJlcGxhY2VkU3RyaW5nLCBzZWxl
Y3Rpb24pOwogICAgIFRleHRDaGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGgoc2VsZWN0aW9uKTsK
LSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVwbGFjZWRTdHJpbmcsIGZhbHNlLCBmYWxz
ZSk7CisgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwg
ZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogICAgIFJlZlB0cjxSYW5nZT4gY2hhbmdlZFJhbmdl
ID0gcGFyYWdyYXBoLnN1YnJhbmdlKHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCksIHJlcGxhY2Vk
U3RyaW5nLmxlbmd0aCgpKTsKICAgICBjaGFuZ2VkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRv
Y3VtZW50KCkubWFya2VycygpLmFkZE1hcmtlcihjaGFuZ2VkUmFuZ2UuZ2V0KCksIERvY3VtZW50
TWFya2VyOjpSZXBsYWNlbWVudCwgU3RyaW5nKCkpOwogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci0+bWFya1JldmVyc2VkKGNoYW5nZWRSYW5nZS5nZXQoKSk7CkBAIC0yODE4LDcgKzI4
MTksNyBAQCB2b2lkIEVkaXRvcjo6dHJhbnNwb3NlKCkKICAgICAvLyBJbnNlcnQgdGhlIHRyYW5z
cG9zZWQgY2hhcmFjdGVycy4KICAgICBpZiAoIXNob3VsZEluc2VydFRleHQodHJhbnNwb3NlZCwg
cmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UpOwor
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UsIEVk
aXRBY3Rpb25JbnNlcnQpOwogfQogCiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSog
cmFuZ2UsIGJvb2wgcHJlcGVuZCkKQEAgLTI4NTAsNyArMjg1MSw3IEBAIHZvaWQgRWRpdG9yOjpk
aXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENv
bnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9y
ZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxl
Y3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJD
b21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rp
b246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVu
IGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQo
KS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg2Miw3
ICsyODYzLDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJv
YmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBS
YW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBz
ZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1l
LnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VE
T01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVk
aXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFm
ZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUg
d2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJr
ZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OTJiYzQ2Li5kMWQzMGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rp
b25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGlu
Z0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiA9
IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7
CkBAIC0zODIsOCArMzgyLDggQEAgcHVibGljOgogICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4
dEFyZWEoRWxlbWVudCopOwogICAgIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdEaXJlY3Rpb24gYmFz
ZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4sIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNl
LCBib29sIG1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90
ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNl
bWVudCwgYm9vbCBzbWFydFJlcGxhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFj
ZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29s
IHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBF
ZGl0QWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1h
aWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNl
bGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rp
b25JbnNlcnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2VsZWN0aW9uU3RhcnRIYXNNYXJr
ZXJGb3IoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUsIGludCBmcm9tLCBpbnQgbGVuZ3RoKSBj
b25zdDsKICAgICB2b2lkIHVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGJv
b2wgb25seUhhbmRsZVdvcmRzQ29udGFpbmluZ1NlbGVjdGlvbik7CiAgICAgdm9pZCBkZWxldGVk
QXV0b2NvcnJlY3Rpb25BdFBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgU3RyaW5nJiBv
cmlnaW5hbFN0cmluZyk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNl
dENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24g
fTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9u
TW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25P
cHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25P
cHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlB
Y3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDUxMWNiMDIu
LjdhODE2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAt
MTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKEZy
YW1lJiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsCiBzdGF0aWMgYm9vbCBleGVj
dXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50KQogewogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKLSAgICBhcHBs
eUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQo
KSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRp
dEFjdGlvblVuc3BlY2lmaWVkKSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25JbnNlcnQpKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApp
bmRleCA1NzQ1MTcwLi4yMzQ4NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5j
bHVkZSAiQ2hhcmFjdGVyRGF0YS5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTM5LDcgKzE0MCw3IEBAIEVsZW1lbnQqIEZy
YW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25z
dAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9z
LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWdu
KQogewogICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVu
dCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlz
RGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJU
cmlnZ2VyZWQpLCBhbGlnbik7CisgICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVz
ZXJUcmlnZ2VyZWQpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBhbGlnbik7CiB9CiAKIHZv
aWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVk
KQpAQCAtMTcwLDcgKzE3MSw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFs
aWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxp
ZGF0aW9uKGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9uYWwo
c2VsZWN0aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90
U2V0Rm9jdXMpKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtu
b3duIH0pOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIGludGVu
dCk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1NiwxMyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwg
IXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51
bGFyaXR5KTsKKyAgICAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgbmV3U2VsZWN0aW9u
LmlzQ2FyZXQoKSkKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlVbmtub3duIH0pOworICAgIGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0
aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8K
ICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJh
c2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlv
bkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlm
IChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9
IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFt
ZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24s
IGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0
aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdz
IHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1l
U2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0
RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rp
b24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1l
IGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3Vy
IHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpbwog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVj
dGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNl
bGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICsz
NjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAg
ICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246
OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAg
IGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAs
NyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAg
ICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgaWYg
KGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpKQogICAgICAgICBjbGll
bnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpOwpAQCAtMTAyMSw3ICsxMDI5
LDc3IEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dh
cmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRl
eHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0g
TGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51
bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQorQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1lU2VsZWN0aW9uOjpU
ZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBi
b29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZTsKKyAgICAgICAgZmxpcCA9IGlzUmFuZ2UoKSAmJiBkaXJlY3Rpb25PZlNl
bGVjdGlvbigpID09IFJUTDsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxhcml0
eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVu
dC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNl
IFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAg
ICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51
bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50Qm91
bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9v
bCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNl
IENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAgIGNh
c2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBj
YXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2UgTGlu
ZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1bWVu
dEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6Cisg
ICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAgICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2Ug
RGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOwor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KKyNlbmRpZgogCiBi
b29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRp
cmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmln
Z2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE1NSwxMSBAQCBib29sIEZyYW1l
U2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRp
b25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAg
ICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVy
LCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUg
YWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgog
ICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBw
b3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0
eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3
MTAsOCArMTc5MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAg
VmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9u
RnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAg
aWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25F
eHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIH0pOworICAgICAgICBzZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNl
bGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9z
ZVR5cGluZykKQEAgLTI0MjMsNyArMjUwOCw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxl
Y3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVj
dGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFu
dWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVk
LCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCgpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1l
U2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVT
ZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1l
U2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5lY2NjYTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0
aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29u
c3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRG
b2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7
IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0
aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVs
dFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29y
T25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBD
dXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3Jh
bnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAg
dm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVh
bFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAg
ICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBU
ZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzI5OSwxMCBAQCBwcml2YXRlOgogICAgIExheW91
dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3Np
dGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwg
VGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KEFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdn
ZXJlZCk7CkBAIC0zNjcsNyArMzY5LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNl
dFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uN2M4ZGEzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAgIDogU2lt
cGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKK0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlv
bikKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAgICwgbV90
ZXh0KHRleHQpCkBAIC01MCw2ICs1MCwxMSBAQCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaQogICAg
IEFTU0VSVCghbV90ZXh0LmlzRW1wdHkoKSk7CiB9CiAKK2NvbnN0IFN0cmluZyYgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0Owor
fQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogewogICAgIGJv
b2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9F
bmFibGVkKCk7CkBAIC02Niw4ICs3MSw4IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwg
SUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNl
cnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQ
b3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
ODQsOCArODksOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBi
ZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNo
ZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNp
YmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+
ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBUSU9OKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgKaW5kZXggMzEwYmJiMy4uZmZlMzcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM0LDE0ICszNCwxNiBAQCBj
bGFzcyBUZXh0OwogCiBjbGFzcyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFNp
bXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25J
bnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZWRp
dGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpOworICAgIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7Citwcm90ZWN0ZWQ6
CisgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHAKaW5kZXggZDE2YjVkNi4uZWQwYTY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI5LDEzICsyOSwxNSBAQAogI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVk
aXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwg
UGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwKLSAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKLSAgICA6IFNp
bXBsZUVkaXRDb21tYW5kKHJlZkNoaWxkLT5kb2N1bWVudCgpKQorSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hp
bGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1l
bnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faW5zZXJ0Q2hpbGQoaW5zZXJ0Q2hpbGQpCiAg
ICAgLCBtX3JlZkNoaWxkKHJlZkNoaWxkKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKQEAgLTU3
LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAg
ICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5n
ZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBl
KCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgp
CkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBw
bHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9y
ZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9z
aXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9u
KGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRp
b24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21t
YW5kLmgKaW5kZXggZDRiNzYyZC4uMTM4N2JhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMzMsMjEgKzMzLDIyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIFNp
bXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEluc2VydE5vZGVCZWZv
cmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCi0gICAgICAgIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQor
ICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFj
dGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNl
cnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0
aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBh
c3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Citwcm90ZWN0
ZWQ6CisgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRv
SW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uKTsKIAorcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBw
bHkoKSBvdmVycmlkZTsKLSAgICAKKwogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgotICAg
IAorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5vZGU+IG1f
cmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgbV9zaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCmluZGV4
IDIxMjgyOWMuLjdkZDAxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAtNTksOCArNTksOCBA
QCBzdGF0aWMgRWxlbWVudCogaGlnaGVzdFZpc3VhbGx5RXF1aXZhbGVudERpdkJlbG93Um9vdChF
bGVtZW50KiBzdGFydEJsb2NrKQogICAgIHJldHVybiBjdXJCbG9jazsKIH0KIAotSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBi
b29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCi0gICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Okluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIG11c3RV
c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90
ZWRBcmVhLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29t
bWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbXVzdFVzZURlZmF1bHRQYXJh
Z3JhcGhFbGVtZW50KG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCkKICAgICAsIG1fcGFz
dGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYShwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRB
cmVhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3Jh
cGhTZXBhcmF0b3JDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQuaAppbmRleCAxMjgxZjBjLi42NzM0MTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQuaApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNzIEVkaXRpbmdTdHlsZTsKIAogY2xhc3Mg
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29t
bWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JD
b21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3Jh
cGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9
IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZD4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVu
dCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQo
ZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRv
VW5xdW90ZWRBcmVhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50
LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAg
fQogCiBwcml2YXRlOgotICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1l
bnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRv
ZUludG9VbnF1b3RlZEFyZWEpOworICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQo
RG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lk
IGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRU
ZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5k
LmNwcAppbmRleCBiZGQ1OWEzLi41NzJlOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMzcsMTYgKzM3LDE2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwg
UmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZG9jdW1lbnQpCitJbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBS
ZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwg
bV90ZXh0KHRleHQpCiAgICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChzZWxlY3RJbnNlcnRlZFRl
eHQpCiAgICAgLCBtX3JlYmFsYW5jZVR5cGUocmViYWxhbmNlVHlwZSkKIHsKIH0KIAotSW5zZXJ0
VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFy
a2VyU3VwcGxpZXIpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0luc2Vy
dFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1h
cmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fdGV4dCh0ZXh0KQog
ICAgICwgbV9zZWxlY3RJbnNlcnRlZFRleHQoZmFsc2UpCiAgICAgLCBtX3JlYmFsYW5jZVR5cGUo
UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uNjUyODE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNDksMjAgKzQ5LDIx
IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVj
dEluc2VydGVkVGV4dCA9IGZhbHNlLAotICAgICAgICBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5
cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICAgICAgUmVi
YWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hp
dGVzcGFjZXMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1
bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBz
ZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3Vw
cGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8
VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICBzdGF0aWMg
UmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllciwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0g
RWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElu
c2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwg
bWFya2VyU3VwcGxpZXIsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Citwcm90
ZWN0ZWQ6CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRl
eHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiwgRWRpdEFjdGlvbik7
CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlLCBFZGl0QWN0aW9uKTsKIAotICAg
IEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Ci0gICAgSW5zZXJ0VGV4dENvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPik7Citwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0ZXIoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAppbmRleCAyYzA2M2MwLi5jNjI5NzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkK
K1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2Rl
LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBt
X3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCmluZGV4IDRiOTE5NzQu
LjFiMmM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICBzdGF0aWMgUmVmPFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2Rl
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQo
bm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24p
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTViOTg0
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50LCBFZGl0QWN0aW9uRGVs
ZXRlKQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hOTg1ODcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFzcyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIH0KKwor
cHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjE3ODJkMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsx
LDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCwgZWRp
dGluZ0FjdGlvbikKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQpCit7Cit9CisKK3Zv
aWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3aXRjaCAodHlwZSkg
eworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4dCwgQVhUZXh0RWRp
dFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFz
dGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgY2FjaGUtPnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxldGUsIG1f
ZGVsZXRlZFRleHQsIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE2MWRiMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorI2RlZmlu
ZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4
dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCwgZGVsZXRlZFRleHQsIGVkaXRpbmdBY3Rpb24pKTsKKyAgICB9CisKK3Byb3RlY3Rl
ZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRpdEFjdGlvbik7CisK
K3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uOGFhYmY5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTQ3LDYgKzQ3
LDggQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNt
YXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpAQCAtMzY5LDcgKzM3
MSw3IEBAIGlubGluZSB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVz
OjpkaWRSZXBsYWNlTm9kZShOb2RlKiBub2RlLCBOCiB9CiAKIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVk
aXRBY3Rpb24gZWRpdEFjdGlvbikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50
KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRBY3Rpb24pCiAgICAg
LCBtX3NlbGVjdFJlcGxhY2VtZW50KG9wdGlvbnMgJiBTZWxlY3RSZXBsYWNlbWVudCkKICAgICAs
IG1fc21hcnRSZXBsYWNlKG9wdGlvbnMgJiBTbWFydFJlcGxhY2UpCiAgICAgLCBtX21hdGNoU3R5
bGUob3B0aW9ucyAmIE1hdGNoU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uODhkYTA0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtNDgs
OSArNDgsOSBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIENvbW1hbmRPcHRpb25z
OwogCi0gICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29t
bWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9uUGFzdGUp
CisgICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFu
ZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbklu
c2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgYWN0aW9uKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBm
cmFnbWVudCwgb3B0aW9ucywgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKQEAg
LTEyMSw2ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcmV2ZW50TmVzdGluZzsKICAg
ICBib29sIG1fbW92aW5nUGFyYWdyYXBoOwogICAgIEVkaXRBY3Rpb24gbV9lZGl0QWN0aW9uOwor
ICAgIEFYVGV4dEVkaXRUeXBlIG1fYXBwbHlFZGl0VHlwZTsKICAgICBib29sIG1fc2FuaXRpemVG
cmFnbWVudDsKICAgICBib29sIG1fc2hvdWxkTWVyZ2VFbmQ7CiAgICAgYm9vbCBtX2lnbm9yZU1h
aWxCbG9ja3F1b3RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5k
ZXggOTMyOWNkZi4uZjA3NDQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0
KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB2b2lkIFR5cGlu
Z0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0
LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKICAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1h
bmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQs
IHNlbGVjdEluc2VydGVkVGV4dCwKLSAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENv
bXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJh
aWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNw
YWNlcyk7CisgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUg
PyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFj
ZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMsIEVkaXRBY3Rp
b25UeXBpbmcpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5n
U2VsZWN0aW9uKCkpOwogCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpp
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRU
b1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwg
RWRpdEFjdGlvblR5cGluZykpOwogICAgIHR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZChJbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0
ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uMzMyZTBhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgs
NyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0
eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi5mZDQxOTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcs
MTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0
KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFy
dCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9u
LnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhT
ZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAg
IGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0
KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uMzY4NGUyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwx
NiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4
dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VS
VChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAh
PSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFs
dWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFu
Z2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAh
aW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYm
ICFQTEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIo
KSkgewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlm
aWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2
YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpbm5lclRleHQtPnNldElu
bmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgaWYgKHZhbHVl
LmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQogICAgICAgICAgICAgaW5u
ZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFT
U0VSVF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAg
ICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbih0aGlzLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwg
QVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhp
cywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRp
ZgogICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggYzhiZWU5ZS4uYmI0ZWVhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIxMCw3ICszMjEwLDggQEAg
c3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2Vs
ZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFY
VGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZWxlY3Rpb24uc2V0U2Vs
ZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5k
bGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdm
ZS4uZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAt
MzQwLDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgIGlmIChjYXJldEJy
b3dzaW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbkluT3JC
ZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwotICAgICAgICBpZiAoZnJh
bWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAg
ICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlVbmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZWxlbWVu
dC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYWU2ZDY3Yy4u
MmZmODNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA0LTIyICBE
b3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0
byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNw
b25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFu
aXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2Fs
ZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgor
CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQg
b2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5n
ZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JFZGl0QWN0aW9uKToKKwogMjAxNS0w
NC0yMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNh
YmxlIG1peGVkIGNvbnRlbnQgYmxvY2tpbmcgZm9yIGV4aXN0aW5nIFdlYktpdDEgY2xpZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tCmluZGV4IGQyMWNkZjAuLmU1OTBkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTU0Niw2ICs1NDYsNyBAQCBz
dGF0aWMgTlNTdHJpbmcqIHVuZG9OYW1lRm9yRWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rp
b24pCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgaWRlbnRpY2FsIHRvIGNvZGUgaW4gV2ViS2l0Midz
IFdlYkVkaXRDb21tYW5kUHJveHkgY2xhc3M7IHdvdWxkIGJlIG5pY2UgdG8gc2hhcmUgdGhlIHN0
cmluZ3MgaW5zdGVhZCBvZiBoYXZpbmcgdHdvIGNvcGllcy4KICAgICBzd2l0Y2ggKGVkaXRBY3Rp
b24pIHsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ6IHJldHVybiBuaWw7Cisg
ICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDogcmV0dXJuIG5pbDsKICAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uU2V0Q29sb3I6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJTZXQgQ29s
b3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvcjogcmV0dXJuIFVJX1NU
UklOR19LRVlfSU5URVJOQUwoIlNldCBCYWNrZ3JvdW5kIENvbG9yIiwgIlNldCBCYWNrZ3JvdW5k
IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgICAg
IGNhc2UgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRF
Uk5BTCgiVHVybiBPZmYgS2VybmluZyIsICJUdXJuIE9mZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBu
YW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTU2MWJlNi4uNDRmMGNk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwg
IDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ug
bm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNh
dGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lz
dGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNo
YW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3Qg
dmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3Mg
dG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJp
Y2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9k
dWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQg
c2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dv
cmQgZmllbGRzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlv
bik6CisKIDIwMTUtMDQtMjAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBFeHBvc2UgbW9yZSBidW5kbGUgZm9ybSBjbGllbnQgZnVuY3Rpb25zIGFzIFdLV2ViUHJv
Y2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDU0Y2UwM2MuLjg3ODU1
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94
eS5jcHAKQEAgLTc0LDYgKzc0LDggQEAgU3RyaW5nIFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVG
b3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICBzd2l0Y2ggKGVkaXRBY3Rp
b24pIHsKICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgogICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklOR19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwg
IlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICBjYXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29s
b3I6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
Yzk1MGMzNC4uZTA0NDcyZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxk
X3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90
aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2
ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5n
ZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFs
dWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8g
dGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2Vs
ZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQg
ZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
bW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmlj
YXRpb25SZWNlaXZlZDpdKToKKworMjAxNS0wNC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorCisgICAgICAgIEFYOiByaWNo
ZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUg
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
biB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciBy
ZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVj
aGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBj
b2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2Vz
LgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3Zlcmxv
YWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0
ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNo
YW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKwogMjAxNS0wNC0yMCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1
bm5lY2Vzc2FyeSBsb2dzIHdoZW4gcmVzZXR0aW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
aAppbmRleCAxOTM4NmNlLi45MDhkYmRjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaApAQCAtNDIs
NiArNDIsNyBAQAogLSAodm9pZClzZXRQbGF0Zm9ybUVsZW1lbnQ6KGlkKXBsYXRmb3JtRWxlbWVu
dDsKIC0gKHZvaWQpc2V0Q2FsbGJhY2s6KEpTT2JqZWN0UmVmKWNhbGxiYWNrOwogLSAodm9pZClz
dGFydE9ic2VydmluZzsKKy0gKHZvaWQpc3RvcE9ic2VydmluZzsKIAogQGVuZAogCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXIubW0KaW5kZXggYWRhNjg3YS4uZjFjOWFmZCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5tbQpAQCAtMTA0LDYgKzEwNCwxMSBAQAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX25vdGlm
aWNhdGlvblJlY2VpdmVkOikgbmFtZTpAIkFYRFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsK
IH0KIAorLSAodm9pZClzdG9wT2JzZXJ2aW5nCit7CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsKK30KKwogLSAodm9pZClfbm90
aWZpY2F0aW9uUmVjZWl2ZWQ6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAg
TlNTdHJpbmcgKm5vdGlmaWNhdGlvbk5hbWUgPSBbW25vdGlmaWNhdGlvbiB1c2VySW5mb10gb2Jq
ZWN0Rm9yS2V5OkAibm90aWZpY2F0aW9uTmFtZSJdOwpAQCAtMTEyLDE2ICsxMTcsMjcgQEAKICAg
ICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNh
dGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAgICBOU1N0cmluZyAqdXNlckluZm9K
U09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1c2VySW5mbyJdOworCiAgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9u
TmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFt
ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwg
anNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVB
cmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAg
ICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQs
IFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAgICB1c2VySW5m
b0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhbbWFpbkZyYW1l
IGdsb2JhbENvbnRleHRdLCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAg
aWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxl
bWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAg
ICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9u
b3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAxLCAmbm90aWZpY2F0aW9uTmFtZUFyZ3Vt
ZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRz
IHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYXMgYXJndW1lbnRzLgorICAg
ICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5h
bWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1syXTsKKyAgICAg
ICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1
bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OworICAgICAgICBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVu
Y3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFt
ZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAgICAg
ICBhcmd1bWVudHNbMF0gPSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYWtlSlNBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQoW25vdGlmaWNhdGlvbiBvYmplY3RdKSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9IG5v
dGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzJdID0gdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZy
YW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIs
IGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCA0NjczYTFkLi4zOTdjNjM4
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbQpAQCAtMTQ0Niw2ICsxNDQ2LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgLy8gTWFjIHByb2dyYW1t
ZXJzIHNob3VsZCBub3QgYmUgdHJ5aW5nIHRvIHJlbW92ZSBhIGxpc3RlbmVyIHRoYXQncyBhbHJl
YWR5IHJlbW92ZWQuCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9uSGFuZGxlcik7CiAKKyAgICBb
bV9ub3RpZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZpbmddOwogICAgIFttX25vdGlmaWNhdGlv
bkhhbmRsZXIgcmVsZWFzZV07CiAgICAgbV9ub3RpZmljYXRpb25IYW5kbGVyID0gbmlsOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpp
bmRleCA2NTFiNTkxLi4yOGNhMDNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTI1LDE5ICsxMjUsMzAgQEAKICAgICBpZiAo
bV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBv
YmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAgICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFs
dWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1c2VySW5mbyJdOworCiAgICAgV0tCdW5kbGVG
cmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoV1RSOjpJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOwogICAgIEpTQ29udGV4dFJlZiBj
b250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KG1haW5GcmFtZSk7CiAK
ICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3Rp
ZmljYXRpb25OYW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmlj
YXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc05vdGlmaWNh
dGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0g
bmlsOworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZv
SlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVl
QXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKGNvbnRleHQsIGpzVXNlckluZm9K
U09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAg
ICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQs
IHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihj
b250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2Fs
bGJhY2spLCAwLCAxLCAmbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUg
bm90aWZpY2F0aW9uIG5hbWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Ig
b25lIGVsZW1lbnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAg
ICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90
aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pT
T05WYWx1ZUFyZ3VtZW50OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQs
IGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayks
IDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwg
bGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZv
LgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBd
ID0gdG9KUyhjb250ZXh0LCBXVEY6OmdldFB0cihXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNyZWF0ZShbbm90aWZpY2F0aW9uIG9iamVjdF0pKSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9
IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzJdID0gdXNlcklu
Zm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250
ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJh
Y2spLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGVkMDJmYjcuLmUyNjA3ZTEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMTQ3Niw2ICsxNDc2LDcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigp
CiAgICAgLy8gTWFjIHByb2dyYW1tZXJzIHNob3VsZCBub3QgYmUgdHJ5aW5nIHRvIHJlbW92ZSBh
IGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJlbW92ZWQuCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0
aW9uSGFuZGxlcik7CiAKKyAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZpbmdd
OwogICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgcmVsZWFzZV07CiAgICAgbV9ub3RpZmljYXRp
b25IYW5kbGVyID0gbmlsOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251488</attachid>
            <date>2015-04-23 14:09:06 -0700</date>
            <delta_ts>2015-04-23 14:30:57 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>216736</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDc4ZDc0MTE1ZTQ5N2JhZTg4ZWUyMmM5YzNiNThmMzA0YzIwODA4MmMKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzYyMjA4Ny4uOGVmZWI1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNWR0ZpdFRvVmlld0Jv
eDo6dmlld0JveFRvVmlld1RyYW5zZm9ybSgpIGhhcyB0byBjb3VudCBmb3IgemVybyBwaHlzaWNh
bCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBjYWxsaW5nIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86
OmdldENUTSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmE2Zjgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIw
IEBACisgIAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8g
ZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVudHMgb2YgYW4gaW5wdXQgZmllbGQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBp
cyBBWFRleHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVsxXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUluc2VydAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdl
VmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIiAiCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBB
WFRleHRFZGl0VHlwZUluc2VydAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2Vy
aW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMGRlMzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9p
bnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGlucHV0IHR5cGU9InBhc3N3
b3JkIiBpZD0ic2VjdXJldmFsdWV0ZXN0Ij4KKworICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
dmFsdWV0ZXN0Ij4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCisg
ICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB2YWx1ZSBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVu
dHMgb2YgYW4gaW5wdXQgZmllbGQuIik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQgPSAxOworCisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7Cisg
ICAgICAgIHZhciBBWFRleHRFZGl0VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsg
MTsKKworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7Cisg
ICAgICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7Cisg
ICAgICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlcklu
Zm8pIHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikg
eworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNo
KHVzZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMikgeworCisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBl
SW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gUGFzc3dvcmQgbm90aWZpY2F0aW9u
cyB3aWxsIGJlIGluc2VydCBvbmx5IGFuZCB0aGUgdmFsdWUgc3RyaW5nIHdpbGwgYmUgd2hpdGVz
cGFjZQorICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIiBcIiIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHNldHZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVl
dGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0c2Vj
dXJldmFsdWUoKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJl
dmFsdWV0ZXN0IikudmFsdWUgPSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKworICAgICAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAg
ICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGls
ZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVh
LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgICAg
IHNldHZhbHVlKCk7CisKKyAgICAgICAgICAgIHNldHNlY3VyZXZhbHVlKCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGQyMmZmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTUgQEAKK29uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBz
aXguCisKK3NldmVuIGVpZ2h0IG5pbmUuCisKK1RoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBu
b3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZwor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHki
XSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjU3NTM3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMCww
ICsxLDIxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IHJv
bGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVl
PgorPHA+b25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC48L3A+Cis8cD5zZXZlbiBlaWdodCBu
aW5lLjwvcD4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKzxzY3JpcHQ+
CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNh
dGlvbnMgdXNlciBpbmZvIGRhdGEuIik7CisKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSA9IDI7CisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgKyAxOworCisgICAg
dmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZyArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzID0gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lID0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSArIDE7
CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoID0gQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCAr
IDI7CisKKyAgICB2YXIgZ3JhbiA9IFsiY2hhcmFjdGVyIiwgIndvcmQiLCAic2VudGVuY2UiLCAi
bGluZSIsICJwYXJhZ3JhcGgiLCAibGluZWJvdW5kYXJ5IiwgInNlbnRlbmNlYm91bmRhcnkiLCAi
cGFyYWdyYXBoYm91bmRhcnkiLCAiZG9jdW1lbnRib3VuZGFyeSJdOworICAgIHZhciB3ZWJBcmVh
ID0gMDsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciByZXN1bHRzID0gW107CisgICAgdmFy
IHJlc3VsdEluZGV4ID0gMDsKKyAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3Rp
ZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2Vs
ZWN0ZWRUZXh0Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBp
ZiAodXNlckluZm8pCisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAg
ICAgICAgICAgIGlmIChjb3VudCA9PSBncmFuLmxlbmd0aCAqIDQpIHsKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
ciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0g
MjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAgICAgd2ViQXJlYSA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAg
ICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlm
aWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAv
LyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgorICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKKyAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAg
Zm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3
YXJkIiwgZ3JhbltpXSk7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIs
IGdyYW5baV0pOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIHMubW9kaWZ5
KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICB9CisgICAgfQorCis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11
c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzkzYWFiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OSBAQAorMDIzNDU2Nzg5MAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1
c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRk
ZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUN1dAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0g
aXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVBhc3RlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMjM0NTY3ODkwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVl
Il0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVR5cGluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhZDM0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5o
dG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9k
eSI+CisKKyAgICA8ZGl2IHJvbGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNv
bnRlbnRlZGl0YWJsZT10cnVlPjAxMjM0NTY3ODkwPC9kaXY+CisKKyAgICA8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJu
b3RpZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEu
Iik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQgPSAxOworCisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0
VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlVHlwaW5nID0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgKyAxOworICAgICAgICB2YXIg
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gPSBBWFRleHRFZGl0VHlwZVR5cGluZyArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZUN1dCA9IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uICsgMQor
ICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVQYXN0ZSA9IEFYVGV4dEVkaXRUeXBlQ3V0ICsgMTsK
KworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAg
ICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAg
ICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlckluZm8p
IHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikgewor
ICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVz
ZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gNikgeworCisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlQ3V0Iik7CisKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VW
YWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlw
ZVwiXSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIyMzQ1Njc4OTBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIx
XCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0
RWRpdFR5cGVUeXBpbmciKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURl
bGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKwor
ICAgICAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50
LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdl
YkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAg
ICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAg
ICAgICAgdmFyIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwor
ICAgICAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgICAgICBleGVjU2V0U2VsZWN0
aW9uQ29tbWFuZCh0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25S
aWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgY3V0Q29tbWFuZCgpOworICAg
ICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0ZXJDb21tYW5kKCk7Cisg
ICAgICAgICAgICBwYXN0ZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oIjEiKTsKKyAgICAgICAgICAgIGRlbGV0ZUNvbW1hbmQoKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAzZGY5NGVmLi44Y2NjNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUxMSw2ICsxNTEx
LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0MjcwOWUuLmMx
MTFmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTMgQEAKKzIwMTUtMDQtMjIgIERvdWcgUnVz
c2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNo
YW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKKyAg
ICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2Vy
aW5mby5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6aXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcik6IERlbGV0ZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFz
c3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBv
c3ROb3RpZmljYXRpb25zRm9yVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZp
Y2F0aW9uV2l0aFVzZXJJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKCtbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOl0pOgor
ICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpdKToKKyAgICAgICAgKGFycmF5UmVtb3ZpbmdOb25KU09OVHlw
ZXMpOgorICAgICAgICAoZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246dXNlckluZm86XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpB
cHBlbmROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpB
cHBseVN0eWxlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlCbG9ja1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjph
cHBlbmROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVC
cmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUF0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OnNob3VsZFN0b3BDYXJldEJsaW5raW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVk
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFu
ZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdEFjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRDb21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OlNp
bXBsZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZDo6c2V0UGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGll
ZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUluc2VydEZyYWdtZW50KToKKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRT
ZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlm
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1Nl
bGVjdGlvblVwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdv
cmRTdGFydCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Oklu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToK
KyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGlu
Zy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAg
ICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRW
YWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1c0luRG9jdW1lbnRPcmRlcik6CisKIDIwMTUtMDQtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBPdmVyd3JpdGUgZXhpc3RpbmcgZmls
ZXMgd2l0aCBtb3ZlRmlsZS4KQEAgLTM4Niw2ICs1OTYsMjEgQEAKICAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpjb21wdXRlZExpbmVIZWlnaHQpOiBDbGFtcCBsaW5lLWhlaWdodCB0byBh
bgogICAgICAgICAgICAgaW50IHRvIGF2b2lkIG92ZXJmbG93LgogCisyMDE1LTA0LTE0ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEg
bWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBp
biBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFu
Z2VzLgorCisyMDE1LTA0LTE0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAg
TmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vz
c2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY29tbWl0IGlzIGFsbCBpbmZyYXN0cnVjdHVyZSBh
bmQgZG9lc24ndCBjb250YWluIGFueSBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIGNoYW5nZXMuCis+
Pj4+Pj4+IDxyZGFyOi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisKIDIwMTUtMDQtMTcgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91bGQgZ28gdGhyb3Vn
aCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggM2ViZTZiOS4uNjVhNTg1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CkBAIC0xNDc3Myw2ICsxNDc3MywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE5NTIyLDYg
KzE5NTUwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQWNj
ZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdp
blxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccGFnZVxBZGp1c3RWaWV3U2l6ZU9yTm90LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwYWdlXEFsdGVybmF0aXZlVGV4dENsaWVudC5oIiAvPgpAQCAtMjEwNzQsNiAr
MjExMDMsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgiIC8+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
aW5kZXggZTJiYTJlNi4uMjYzYzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzUyOCw2ICszNTI4LDEy
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24u
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNzY1Niw2ICs3NjYyLDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAg
IDxGaWx0ZXI+YWNjZXNzaWJpbGl0eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVu
dC5oIj4KKyAgICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eVx3aW48L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjY1LDYgKzEwNjc0LDEyIEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4N2QyZTc3Li45NTdkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjM0LDYgKzMyMzQs
NyBAQAogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3
M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKIAkJ
OTAwMTc4ODAxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RTEy
RTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLzsgfTsKIAkJ
OTAwMTc4ODExMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0YxMkUw
MzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OworCQk5MUM5
RjJGOTFBRTNCRUIwMDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxQzlGMkY4MUFFM0JFMjQw
MDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07CiAJ
CTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDVCMjRDMDk4RjFCNkIwMEMyODg1
NSAvKiBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC02Mzc5LDYgKzYzODAsMTAgQEAKIAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsg
fTsKIAkJRjU0NEY3ODgxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggKi87IH07CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYx
MkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgKi87IH07CkBAIC0xMDQ2Niw2ICsxMDQ3MSw3IEBACiAJCTkwMDE3NzNG
MTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgcGF0aCA9IGNhbnZhcy9P
RVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RjEyRTAzNzA3
MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8q
IFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdl
R3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAyQjBCRTBENzlGODJD
MDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA1QjI0QzA5OEYx
QjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA2LDYgKzE0MDEyLDEw
IEBACiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRm
b3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
ODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAv
KiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
NjEzLDYgKzE1NjIzLDcgQEAKIAkJCQkyOUE4MTIxMzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmggKi8sCiAJCQkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFY
T2JqZWN0Q2FjaGUuY3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9i
amVjdENhY2hlLmggKi8sCisJCQkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGFjY2Vzc2liaWxpdHk7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTc3NDEsNiArMTc3NTIsMTAgQEAKIAkJCQk5
MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3Np
dGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NTI4REE3
MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCQTA5OUU2
NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMjM2Njgs
NiArMjM2ODMsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU1OTAsNiArMjU2MDYsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgw
MEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hN
TEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZh
bHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyog
SlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjY0Miw2ICsyNjY1OSw3IEBA
CiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQzFENDI4MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E2OTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyOTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aEFicy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MkExNzhENUFC
NDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTZEMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpYy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODM5Myw2ICsyODQxMSw3IEBACiAJCQkJNTEw
MTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFn
ZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1h
Yy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk4MzYsNiArMjk4NTUsNyBAQAogCQkJCUZFMzZGRDE2
MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVy
YXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0
ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLjI1NjhiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTAsNiArOTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKKy8vIFBvc3QgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
Zm9yIHBhc3N3b3JkIGZpZWxkcyBvciBlbGVtZW50cyBjb250YWluZWQgaW4gcGFzc3dvcmQgZmll
bGRzIGF0IGEgNDBoeiBpbnRlcnZhbCB0byB0aHdhcnQgYW5hbHlzaXMgb2YgdHlwaW5nIGNhZGVu
Y2UKK3N0YXRpYyBkb3VibGUgQWNjZXNzaWJpbGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb25JbnRlcnZhbCA9IDAuMDI1OworCiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFY
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZTo6Z2V0SWdub3JlZChBWElEIGlkKSBjb25zdAog
ewogICAgIEhhc2hNYXA8QVhJRCwgQ2FjaGVkQVhPYmplY3RBdHRyaWJ1dGVzPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX2lkTWFwcGluZy5maW5kKGlkKTsKQEAgLTEyOSw2ICsxMzIsNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGlt
ZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAg
ICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hl
OjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03MDUsNyAr
NzA5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgp
CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0b3JGb3JDYWNoZU93bmVyKG1fZG9jdW1lbnQpOwog
ICAgIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKICAgICAKLSAgICAvLyBJbiBEUlQs
IHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1
ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJl
aGF2aW9yCisgICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5k
ZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBj
YW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCiAgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0
aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0
IHRoZSBzdGFydC4KICAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9ub3RpZmlj
YXRpb25zVG9Qb3N0KTsKICAgICAKQEAgLTc0Miw2ICs3NDYsMjAgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNo
YW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOworCisg
ICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBp
bW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0
byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3Qg
aXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFy
dC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNh
dGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3Rp
ZmljYXRpb25zKQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxl
UG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5v
dGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmlj
YXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04
NTAsMTYgKzg2OCwyMjMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVy
ZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwog
fQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
IG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRl
bnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2gg
KGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgor
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgZGF0YUxvZygiRWRpdDo6Iik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICAgICAgZGF0YUxvZygiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBkYXRhTG9nKCJFeHRl
bmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkg
eworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGlu
dGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIGRhdGFMb2coIkRlbGV0ZSIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgICAgICBkYXRhTG9nKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgZGF0YUxvZygi
RGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIlR5cGluZ0luc2VydCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
ICAgICAgICBkYXRhTG9nKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBkYXRhTG9nKCJQYXN0ZSIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25vd246OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAg
ICAgICAgZGF0YUxvZygiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGRhdGFMb2co
IkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBkYXRhTG9nKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBkYXRhTG9nKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24p
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246Cisg
ICAgICAgICAgICAgICAgZGF0YUxvZygiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIGRhdGFMb2coIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IGRhdGFMb2coIi1TeW5jIik7CisgICAgZGF0YUxvZygiXG4iKTsKK30KKyNlbmRpZgorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30K
Kworc3RhdGljIGJvb2wgaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQoreworICAgIHJldHVybiBvYmplY3QgJiYgKG9i
amVjdC0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqZWN0LT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNl
bGVjdGlvbkludGVudDsKKwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KLSAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBp
ZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChpc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3Qg
PSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBpbnRlbnQsIHNlbGVjdGlvbik7Cisj
ZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNo
ZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRp
ZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHR5cGUsIHRleHQs
IHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZSh0eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2
YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0KTsKKyNlbmRpZgorfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSog
bm9kZSwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRU
eXBlRGVsZXRlKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUlu
c2VydCB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlv
blR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZVBhc3RlKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1
dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlm
IChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmplY3QpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRU
ZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKK30K
KworYm9vbCBBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCit7CisgICAgaWYgKCFpc1Bhc3N3b3Jk
RmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0gb2Jq
ZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAvLyByZXR1cm4gdHJ1ZSBldmVu
IHRob3VnaCB0aGUgZW5xdWV1ZSBkaWRuJ3QgaGFwcGVuIGJlY2F1c2UgdGhpcyBpcyBhIHBhc3N3
b3JkIGZpZWxkIGFuZCBjYWxsZXIgc2hvdWxkbid0IHBvc3QgYSBub3RpZmljYXRpb24KKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9u
c1RvUG9zdC5jb250YWlucyhvYnNlcnZhYmxlT2JqZWN0KSkgeworICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlm
ICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoQWNjZXNzaWJp
bGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZhbCk7CisgICAgfQorCisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQp
CkBAIC0xMDg0LDYgKzEzMDksMTQgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2Rl
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RD
YWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmpl
Y3QgPSB0aGlzLT5yb290T2JqZWN0KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2Jq
ZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmpl
Y3QpLndlYkFyZWFPYmplY3QoKTsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShj
YWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggYmZhOTI3Ny4uMzBhN2E0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
QVhPYmplY3RDYWNoZV9oCiAjZGVmaW5lIEFYT2JqZWN0Q2FjaGVfaAogCisjaW5jbHVkZSAiQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0Lmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KQEAgLTY3LDYgKzY4LDEw
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxBWElELCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+
IG1faWRNYXBwaW5nOwogfTsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK2VudW0gQVhUZXh0Q2hh
bmdlIHsgQVhUZXh0SW5zZXJ0ZWQsIEFYVGV4dERlbGV0ZWQgfTsKKyNlbmRpZgorCiBlbnVtIFBv
c3RUYXJnZXQgeyBUYXJnZXRFbGVtZW50LCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50IH07CiAKIGVu
dW0gUG9zdFR5cGUgeyBQb3N0U3luY2hyb25vdXNseSwgUG9zdEFzeW5jaHJvbm91c2x5IH07CkBA
IC0xODksMTIgKzE5NCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAotICAgIH07CisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25z
dCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOwogCi0gICAgdm9pZCBub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9h
ZGluZ1N0YXJ0ZWQsCkBAIC0yMTMsMTIgKzIyMSwyNCBAQCBwdWJsaWM6CiAgICAgQVhDb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZUNhY2hlKiBjb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkgeyBy
ZXR1cm4gbV9jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlLmdldCgpOyB9CiAKICAgICBEb2N1
bWVudCYgZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9Ci0gICAgCisKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgc3RhdGljIEFYVGV4dENoYW5nZSB0ZXh0
Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUpOworICAgIHZvaWQgbm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2Fk
aW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2Fk
aW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwog
ICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsyNDksOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJr
ZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAg
SGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAg
ICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAg
LTI0NCw2ICsyNjYsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RU
aW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAg
ICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVN
ZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyNzgsMTAgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhU
TUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Kik7CisKKyAgICBib29sIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1f
dGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVy
CkBAIC0zMDgsOCArMzM5LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Ny
b2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7
IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJP
YmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9B
bmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlw
ZSkgeyB9CkBAIC0zMjAsNiArMzUyLDE0IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJl
bW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lkZ2V0
KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIHsgfQorI2Vsc2UKK2lubGluZSBBWFRleHRDaGFuZ2UgQVhPYmplY3RDYWNoZTo6dGV4dENo
YW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKSB7IHJldHVybiBBWFRleHRJbnNlcnRlZDsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikgeyB9CisjZW5kaWYKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVjMjY0ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaApAQCAt
MCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorI2RlZmluZSBBWFRleHRTdGF0
ZUNoYW5nZUludGVudF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2VudW0gQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAorICAg
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK307
CisKK2VudW0gQVhUZXh0RWRpdFR5cGUgeworICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAg
ICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0ZQorICAgIEFYVGV4
dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgQVhUZXh0RWRpdFR5
cGVUeXBpbmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRp
b24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8vIERl
bGV0ZSB2aWEgQ3V0CisgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBhc3Rl
Cit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmcsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblByZXZpb3VzLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cworfTsKKworZW51bSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSB7CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhZ2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwK
KyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBBbGwgZ3JhbnVsYXJpdHkgcmVw
cmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hvbGUgZG9jdW1lbnQgYXMgYSBz
aW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNvbWUgb3RoZXIgZ3JhbnVsYXJp
dHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3VtZW50IHdpbGwgbm90IHJlc3Vs
dCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24uCit9OworCitzdHJ1Y3QgQVhUZXh0
U2VsZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworfTsKKworc3RydWN0IEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsK
KyAgICB1bmlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAg
IEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICB9OworICAgIGJvb2wgaXNTeW5jaHJvbml6aW5n
IHsgZmFsc2UgfTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0
aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAgICA6IHR5cGUodHlwZSkK
KyAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgIHsgfQorCisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQorICAgICAgICA6IHR5cGUoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgIHsg
fQorCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5
cGUsIGJvb2wgaXNTeW5jaHJvbml6aW5nKQorICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAg
LCBzZWxlY3Rpb24oKQorICAgICAgICAsIGlzU3luY2hyb25pemluZyhpc1N5bmNocm9uaXppbmcp
CisgICAgeworICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
KTsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZiAvLyBBWFRleHRTdGF0ZUNoYW5nZUludGVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjQzOGU4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
CkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFz
c3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZp
ZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpCit7CisgICAgTm9kZSog
bm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRv
SW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZp
ZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBFbGVtZW50KiBl
bGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIGlmICghZWxlbWVudCB8fCAhaXM8SFRN
TElucHV0RWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICByZXR1
cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7
CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJm
Li5hODJiZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRl
eCA1YTI3ZWE4Li5jYjMzODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2NDYsNCArMjY0NiwxNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2go
Ym9vbCBvbikKIH0KICNlbmRpZgogCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFp
bmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9k
ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlm
IChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIHJl
dHVybiBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PigqZWxlbWVudCkuaXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uODE2YzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JD
b250YWluaW5nUGFzc3dvcmRGaWVsZCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJv
bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLmY2NTVkNTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwxNyBAQCBQbGFpblRleHRSYW5nZSBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWlu
VGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7Cisg
ICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KHJhbmdlLmxlbmd0aCA/IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4
dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAg
IHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCAr
IHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBOb2RlKiBub2Rl
ID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3Rh
cnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAotICAgICAgICBQb3NpdGlv
bihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvciksIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3Ro
LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSk7CisgICAg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbmV3SW50ZW50KHJhbmdlLmxlbmd0aCA/IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUsIHRydWUpOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksIG5ld0ludGVudCk7CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwxMyArMTk2MywxNiBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlz
aWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFu
ZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4g
bW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkK
KyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisgICAgICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAgIH0K
ICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNp
YmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRlcmVy
LT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRy
dWUpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAppbmRleCBjNjJjNzUzLi4wYzQ2NGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oCkBAIC00Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldygpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJpbGl0
eURldGFjaG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKikgb3ZlcnJpZGU7CiAKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyopOwogICAgIApAQCAtNzEs
NyArNzMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFy
ZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB3
ZWJBcmVhT2JqZWN0KCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKiBhZGRDaGlsZFNj
cm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2b2lkIHJlbW92ZUNoaWxkU2Nyb2xsYmFyKEFjY2Vz
c2liaWxpdHlPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKaW5kZXggNTg1MmEwZi4uNzM2NmU2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0
ay5jcHAKQEAgLTI0Myw2ICsyNDMsMjQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQVgKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQorICAgIAorQVhUZXh0Q2hhbmdlIEFYT2JqZWN0Q2FjaGU6OnRl
eHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZURlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dERlbGV0ZWQ7CisgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3Rl
OgorICAgICAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7Cit9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi5iNjIzMzY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0K
QEAgLTk1LDggKzk1LDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3Jh
cHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5n
XTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25z
dCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCiB7CisgICAgcG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iamVjdCwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmplY3QsIEFYVmFsdWVDaGFuZ2VkKTsKIH0KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
CmluZGV4IGIzMDBlNzcuLjZiNzkwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNTMgQEAKICNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExp
dmVSZWdpb25DcmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlQ2hhbmdlVHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVTeW5jS2V5IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRU
eXBlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBl
IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVz
IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5n
ZVZhbHVlTGVuZ3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlU3RhcnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
U3RhcnRNYXJrZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUg
QCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKKy8vIFZlcnkgbGFyZ2Ugc3Ry
aW5ncyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNlIG9mIG5vdGlmaWNhdGlv
bnMsIHNvIHRoaXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0IGFuIGF2ZXJhZ2UgcGFy
YWdyYXBoIG9yIGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJpbmdzIHRvIGJlIGxhcmdl
IGVub3VnaCB0byBodXJ0IHBlcmZvcm1hbmNlLgorc3RhdGljIGNvbnN0IE5TVUludGVnZXIgQVhW
YWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOworCiAvLyBUaGUgc2ltcGxlIENvY29h
IGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC02MCw2ICsxMDcsMjEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hX
cmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICBvYmotPnNldFdyYXBwZXIod3Jh
cHBlci5nZXQoKSk7CiB9CiAKK3N0YXRpYyBCT09MIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9u
c0ZvclRlc3RzID0gZmFsc2U7CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCit7CisgICAgYXhTaG91bGRSZXBvc3RO
b3RpZmljYXRpb25zRm9yVGVzdHMgPSB2YWx1ZTsKK30KKworc3RhdGljIHZvaWQgQVhQb3N0Tm90
aWZpY2F0aW9uV2l0aFVzZXJJbmZvKGlkIG9iamVjdCwgTlNTdHJpbmcgKm5vdGlmaWNhdGlvbiwg
aWQgdXNlckluZm8pCit7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhV
c2VySW5mbyhvYmplY3QsIG5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFRvIHNpbXBs
aWZ5IG1vbml0b3JpbmcgZm9yIG5vdGlmaWNhdGlvbnMgaW4gdGVzdHMsIHJlcG9zdCBhcyBhIHNp
bXBsZSBOU05vdGlmaWNhdGlvbiBpbnN0ZWFkIG9mIGZvcmNpbmcgdGVzdCBpbmZyYXN0dWN0dXJl
IHRvIHNldHVwIGFuIElQQyBjbGllbnQgYW5kIGRvIGFsbCB0aGUgdHJhbnNsYXRpb24gYmV0d2Vl
biBXZWJDb3JlIHR5cGVzIGFuZCBwbGF0Zm9ybSBzcGVjaWZpYyBJUEMgdHlwZXMgYW5kIGJhY2sK
KyAgICBpZiAoVU5MSUtFTFkoYXhTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMpKQor
ICAgICAgICBbb2JqZWN0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0
aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlv
biBub3RpZmljYXRpb24pCiB7CiAgICAgaWYgKCFvYmopCkBAIC0xNDksMTUgKzIxMSwxMzggQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIEFTU0VSVChbb2JqLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eUlzSWdub3JlZF0gfHwgdHJ1ZSk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgCi0gICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbihvYmotPndy
YXBwZXIoKSwgbWFjTm90aWZpY2F0aW9uKTsKLSAgICAKLSAgICAvLyBVc2VkIGJ5IERSVCB0byBr
bm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgotICAgIFtvYmotPndyYXBwZXIoKSBh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CisKKyAgICBB
WFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNh
dGlvbiwgbmlsKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbikKIHsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEo
KTsKKworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVE
aWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdp
dGhDYXBhY2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlm
IChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRl
bnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRp
cmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9u
KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAg
ICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGln
dW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAg
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAg
IGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlclJh
bmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0
aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJh
bmdlOworICAgIH0KKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBw
ZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsK
KyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7
CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+d3JhcHBlcigpLCBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7
CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwg
QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcgKnRleHQgPSAoTlNTdHJpbmcgKilz
dHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICgh
bGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNo
YW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsK
KyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAg
aWYgKGxlbmd0aCA+IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNo
YW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOwor
ICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDpBWFZhbHVlQ2hhbmdlVHJ1bmNh
dGlvbkxlbmd0aF07CisgICAgfQorICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAg
aWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2li
bGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0
dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgb2Jq
ZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0
YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBp
bml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0
ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlm
IChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnko
b2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBw
ZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8pOworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhv
YmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
LCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBp
ZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAq
dXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6
NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0g
PSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmNo
YW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdOworICAg
IGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkob2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAg
IFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5n
ZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqZWN0LCBpbnNlcnRpb25UeXBl
LCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNo
YW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBj
aGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBv
YmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFy
ZWEgPSByb290V2ViQXJlYSgpOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlv
bldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hh
bmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cg
d2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3dlYkFyZWEtPndyYXBwZXIoKSBh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdl
ZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQ
b3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+d3JhcHBlcigpLCBOU0FjY2Vzc2li
aWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5
IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFtvYmplY3Qt
PndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0
eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAgICBbdXNl
ckluZm8gcmVsZWFzZV07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0
LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5oCmluZGV4IDVlMDZjMzUuLmI5MzQxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQmFzZS5oCkBAIC01Niw4ICs1Niw5IEBAIGNsYXNzIFZpc2libGVQb3Np
dGlvbjsKIC0gKE5TU3RyaW5nICopYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uOwogCiAtIChp
ZClhdHRhY2htZW50VmlldzsKLS8vIFVzZWQgdG8gaW5mb3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5v
dGlmaWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2VkIGJ5IERSVC4KKy8vIFVzZWQgdG8gaW5m
b3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2Vk
IGJ5IHRlc3RzLgogLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0
cmluZyAqKW5vdGlmaWNhdGlvbk5hbWU7CistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3Rp
ZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9u
YXJ5ICopdXNlckluZm87CiAKIC0gKENHUGF0aFJlZiljb252ZXJ0UGF0aFRvU2NyZWVuU3BhY2U6
KFdlYkNvcmU6OlBhdGggJilwYXRoOwogLSAoQ0dQb2ludCljb252ZXJ0UG9pbnRUb1NjcmVlblNw
YWNlOihXZWJDb3JlOjpGbG9hdFBvaW50ICYpcG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UubW0KaW5kZXggNWRkZmMzYS4uODcxMGRjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQpAQCAtMzgzLDEzICszODMsNjkgQEAgc3RhdGlj
IEJPT0wgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM7CiArICh2b2lkKWFj
Y2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOihCT09MKXJlcG9zdAogewog
ICAgIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zID0gcmVwb3N0OworI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9TKQorICAgIEFYT2JqZWN0Q2FjaGU6OnNl
dFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhyZXBvc3QpOworI2VuZGlmCiB9CiAK
IC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3Rp
ZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmlj
YXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5v
dGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGljIE5TQXJyYXkgKmFycmF5
UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7CisgICAgQVNTRVJUKFthcnJh
eSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5TTXV0YWJsZUFycmF5ICpt
dXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZvciAoTlNVSW50ZWdlciBp
ID0gMDsgaSA8IFttdXRhYmxlQXJyYXkgY291bnRdOykgeworICAgICAgICBpZCB2YWx1ZSA9IG11
dGFibGVBcnJheVtpXTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rp
b25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0
SW5kZXg6aSB3aXRoT2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSld
OworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11d
KQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppIHdpdGhP
YmplY3Q6YXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNlIGlm
ICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tp
bmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkgeworICAgICAgICAgICAgW211dGFibGVBcnJh
eSByZW1vdmVPYmplY3RBdEluZGV4OmldOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IH0KKyAgICAgICAgaSsrOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVBcnJheSBhdXRvcmVs
ZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnlSZW1vdmluZ05vbkpT
T05UeXBlcyhOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAgQVNTRVJUKFtkaWN0aW9u
YXJ5IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAgICBOU011dGFibGVE
aWN0aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11dGFibGVDb3B5XTsK
KyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgeworICAgICAgICBpZCB2YWx1
ZSA9IGRpY3Rpb25hcnlba2V5XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltO
U0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0g
PSBkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOworICAgICAgICBlbHNlIGlm
IChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICAgICAgbXV0
YWJsZURpY3Rpb25hcnlba2V5XSA9IGFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOwor
ICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11d
IHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAg
IFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAgICB9CisgICAg
cmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1l
IHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChhY2Nlc3NpYmls
aXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHVz
ZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlm
aWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERS
VE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOworICAgICAgICBB
U1NFUlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IG5p
bDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEgKnVzZXJJbmZv
RGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpkaWN0aW9uYXJ5
UmVtb3ZpbmdOb25KU09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldyaXRpbmdPcHRp
b25zKTAgZXJyb3I6bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEpIHsKKyAgICAg
ICAgICAgICAgICBOU1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBp
bml0V2l0aERhdGE6dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsK
KyAgICAgICAgICAgICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAgICAgICAgICAg
IGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lLCBAInVzZXJJ
bmZvIiA6IHVzZXJJbmZvU3RyaW5nfTsKKyAgICAgICAgICAgICAgICBbdXNlckluZm9TdHJpbmcg
cmVsZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbmZvKQor
ICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlvbk5h
bWV9OworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3RO
b3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZv
OmluZm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgK
aW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQp
dGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3Np
dGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24p
ZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBX
ZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8v
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMWRlYjRkYi4uODM3OTNkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDEzICsyOSwx
NiBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCi0gICAg
OiBTaW1wbGVFZGl0Q29tbWFuZChwYXJlbnQtPmRvY3VtZW50KCkpCitBcHBlbmROb2RlQ29tbWFu
ZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBh
c3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogU2lt
cGxlRWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwg
bV9wYXJlbnQocGFyZW50KQogICAgICwgbV9ub2RlKG5vZGUpCiB7CkBAIC00NiwxNSArNDksMjMg
QEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFp
bmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRh
YmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUpCiB7
Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOworICAgIGlmICghbm9k
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgdGV4dCA9IG5vZGUt
Pm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBj
b21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlmICh0ZXh0ID09ICJcbiIp
CiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5k
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obm9k
ZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0
aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikp
OworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02NCwx
OCArNzUsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3Bh
cmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJy
ZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVT
dHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3Rp
ZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRE
ZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
Z2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9F
WENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
CmluZGV4IGQ2NGIwNGUuLmY3ODI5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFwcGVuZE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKKyAgICBzdGF0
aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2Rl
PiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwZW5kTm9kZUNvbW1hbmQo
cGFyZW50LCBub2RlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVD
b21tYW5kKHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwg
UGFzc1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250
YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4sIEVkaXRBY3Rpb24pOwogCiAgICAg
dmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFw
cGx5KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCmluZGV4IDdjNDE4YzIuLmNhYjg4MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC0xMjMsOSArMTIzLDggQEAgUmVmUHRyPEhUTUxF
bGVtZW50PiBjcmVhdGVTdHlsZVNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIH0KIAog
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBFUHJv
cGVydHlMZXZlbCBwcm9wZXJ0eUxldmVsKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9j
dW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlv
bikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihl
ZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKHByb3BlcnR5TGV2ZWwpCiAgICAg
LCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQogICAgICwg
bV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTEzNiw5ICsxMzUs
OCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eQogfQogCiBBcHBseVN0eWxlQ29tbWFuZDo6QXBw
bHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0
eWxlLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0g
ICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZl
bChwcm9wZXJ0eUxldmVsKQogICAgICwgbV9zdGFydChzdGFydCkKICAgICAsIG1fZW5kKGVuZCkK
QEAgLTE0OSw5ICsxNDcsOCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eQogfQogCiBBcHBseVN0
eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50
LCBib29sIHJlbW92ZU9ubHksIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKLSAgICA6IENvbXBv
c2l0ZUVkaXRDb21tYW5kKGVsZW1lbnQtPmRvY3VtZW50KCkpCisgICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChlbGVtZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHls
ZShFZGl0aW5nU3R5bGU6OmNyZWF0ZSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdB
Y3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwoUHJvcGVydHlEZWZhdWx0KQogICAgICwgbV9z
dGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0oKSkKICAgICAsIG1fZW5k
KGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3RyZWFtKCkpCkBAIC0xNjMsOSArMTYwLDggQEAg
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCwgYm9vbCByZW1vdmVPbmwKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5
bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwg
SXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiBpc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1
bmN0aW9uLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCi0gICAgOiBDb21wb3NpdGVFZGl0Q29t
bWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0
aW5nQWN0aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5n
QWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwoUHJvcGVydHlEZWZh
dWx0KQogICAgICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0o
KSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3RyZWFtKCkpCkBAIC0y
MjYsMTEgKzIyMiw2IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0K
IH0KIAotRWRpdEFjdGlvbiBBcHBseVN0eWxlQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fZWRpdGluZ0FjdGlvbjsKLX0KLQogdm9pZCBBcHBseVN0eWxlQ29t
bWFuZDo6YXBwbHlCbG9ja1N0eWxlKEVkaXRpbmdTdHlsZSAqc3R5bGUpCiB7CiAgICAgLy8gdXBk
YXRlIGRvY3VtZW50IGxheW91dCBvbmNlIGJlZm9yZSByZW1vdmluZyBzdHlsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAppbmRleCBlOTllMzZhLi45ZGJlODcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCkBAIC03Miw3
ICs3Miw2IEBAIHByaXZhdGU6CiAgICAgQXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmLCBjb25z
dCBFZGl0aW5nU3R5bGUqLCBib29sICgqaXNJbmxpbmVFbGVtZW50VG9SZW1vdmUpKGNvbnN0IEVs
ZW1lbnQqKSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICAvLyBzdHlsZS1yZW1vdmFsIGhlbHBlcnMKICAgICBib29sIGlzU3R5bGVkSW5s
aW5lRWxlbWVudFRvUmVtb3ZlKEVsZW1lbnQqKSBjb25zdDsKQEAgLTEyMiw3ICsxMjEsNiBAQCBw
cml2YXRlOgogICAgIFBvc2l0aW9uIGVuZFBvc2l0aW9uKCk7CiAKICAgICBSZWZQdHI8RWRpdGlu
Z1N0eWxlPiBtX3N0eWxlOwotICAgIEVkaXRBY3Rpb24gbV9lZGl0aW5nQWN0aW9uOwogICAgIEVQ
cm9wZXJ0eUxldmVsIG1fcHJvcGVydHlMZXZlbDsKICAgICBQb3NpdGlvbiBtX3N0YXJ0OwogICAg
IFBvc2l0aW9uIG1fZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAppbmRleCA4NDYxZWU3Li43MzQyZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNTgsNiArNTgsOCBAQAog
I2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNp
bmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAj
aW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVu
dFF1ZXVlLmgiCkBAIC0xNjIsMTMgKzE2NCwzMCBAQCB2b2lkIEVkaXRDb21tYW5kQ29tcG9zaXRp
b246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgog
CitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbigpKSB7CisgICAgY2FzZSBFZGl0QWN0aW9u
Q3V0OgorICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVk
aXRUeXBlSW5zZXJ0OworICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlvbjoKKyAgICBjYXNlIEVk
aXRBY3Rpb25JbnNlcnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgY2FzZSBFZGl0
QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlw
ZVVua25vd247Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRp
dENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBwbHkoKTsKIH0KIAotQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkK
LSAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50KQorQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBv
c2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uKQorICAgIDogRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiB7CiB9CiAK
QEAgLTE4Nyw2ICsyMDYsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSgpCiAg
ICAgICAgIGNhc2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb246CiAgICAgICAgIGNhc2Ug
RWRpdEFjdGlvbkN1dDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ6CisgICAg
ICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRl
OgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CiAgICAgICAgICAgICBicmVhazsK
QEAgLTI5Niw3ICszMTYsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVTdHls
ZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIAogdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKIHsKLSAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVk
aXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRM
aW5lQnJlYWsoKQpAQCAtMzIyLDcgKzM0Miw3IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKIAogdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENo
aWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRl
KGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCkKQEAgLTM3Myw3ICszOTMsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgY29uc3QgUG9z
aQogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5kTm9kZShQYXNzUmVmUHRyPE5vZGU+
IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50KQogewogICAgIEFTU0VSVChj
YW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQoKSkpOwotICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlKSk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJl
bnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTM5Nyw3ICs0MTcsNyBAQCB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1l
Q29udGVudAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUs
IGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1v
dmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQpAQCAtNTI1LDIw
ICs1NDUsMjEgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkp
Ci0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
dGV4dCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNl
bWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4g
ZGVsZXRlQ29tbWFuZCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRl
Q29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSwgZWRp
dGluZ0FjdGlvbigpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi5lY2IyODUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBA
IC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50
OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAK
KyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKwogcHJpdmF0ZToKICAgICBF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlv
biwgRWRpdEFjdGlvbik7CiAKQEAgLTg5LDcgKzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
IHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYp
OworICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiwgRWRpdEFjdGlv
biA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICAgICAvLwogICAgIC8vIHN1Z2FyeS1zd2Vl
dCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gaGVscCBjcmVhdGUgYW5kIGFwcGx5IGVkaXQgY29t
bWFuZHMgaW4gY29tcG9zaXRlIGNvbW1hbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1Li4xZmEwMTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NSwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDEzICsyOSwxNSBAQAogI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50
KCkpCitEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+
ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9v
ZmZzZXQob2Zmc2V0KQogICAgICwgbV9jb3VudChjb3VudCkKQEAgLTQ1LDYgKzQ3LDExIEBAIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBt
X25vZGUtPmxlbmd0aCgpKTsKIH0KIAorY29uc3QgU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2Rl
KTsKQEAgLTU4LDggKzY1LDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMg
YmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2li
bGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5k
ZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZv
aWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+
aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkp
KTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uYTAzNWYxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
NiwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDE0ICszNCwxNyBAQCBjbGFzcyBUZXh0OwogCiBj
bGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5k
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQpCisgICAgc3RhdGljIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0K
IAotcHJpdmF0ZToKLSAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOworICAgIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRWRp
dEFjdGlvbik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAy
YmJjNmVkLi5lYjNhNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTcyLDggKzcyLDggQEAgc3RhdGljIGJvb2wgaXNUYWJs
ZVJvd0VtcHR5KE5vZGUqIHJvdykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJv
b2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKLSAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnRE
ZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4
cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRp
bmdBY3Rpb24pCiAgICAgLCBtX2hhc1NlbGVjdGlvblRvRGVsZXRlKGZhbHNlKQogICAgICwgbV9z
bWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSht
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtOTAsOCArOTAsOCBAQCBEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBz
bWFydERlbAogewogfQogCi1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25D
b21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQotICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgpKQor
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDog
Q29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1
bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rpb25Ub0RlbGV0ZSh0cnVl
KQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtODg0LDE0ICs4ODQsNiBAQCB2
b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGNsZWFyVHJhbnNpZW50
U3RhdGUoKTsKIH0KIAotRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5n
QWN0aW9uKCkgY29uc3QKLXsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAg
IC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGll
cyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5
IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKLX0KLQogLy8g
Tm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQg
d2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCiAvLyB0eXBlIGEgY2hhcmFjdGVy
LCBCb2xkLCB0aGVuIGRlbGV0ZSB0aGUgY2hhcmFjdGVyIGFuZCBzdGFydCB0eXBpbmcuICBUaGUg
Qm9sZCB0eXBpbmcgc3R5bGUgc2hvdWxkbid0CiAvLyBzdGljayBhcm91bmQuICBEZWxldGlvbiBz
aG91bGQgcHJlc2VydmUgYSB0eXBpbmcgc3R5bGUgdGhhdCAqaXQqIHNldHMsIGhvd2V2ZXIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4
IGU1YmY1MWQuLjBhOWI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0zNCwyMyArMzQsMjIgQEAgY2xhc3MgRWRpdGluZ1N0eWxl
OwogCiBjbGFzcyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRD
b21tYW5kIHsgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5k
PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBi
b29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3Vw
ID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwg
c21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2Fu
aXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZjxEZWxl
dGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVm
PERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVs
ZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1h
cmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1
bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9v
bCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFy
a3VwLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAKIHByaXZhdGU6Ci0gICAgRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERl
bGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKTsKKyAgICBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24pOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbigpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdT
dHlsZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcAppbmRleCBjMTczZGY0Li45MDhmZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNv
bW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6
ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVz
SW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFy
dCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4
dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1
cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxp
bmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0lu
TGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRl
eHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9J
bnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1
cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSwgRWRpdEFjdGlvbkRpY3RhdGlvbik7
CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkp
OwogfQogCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVj
dGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFj
dGlvbkRpY3RhdGlvbikpOwogfQogCiB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6OmNvbGxlY3REaWN0
YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKHNpemVfdCByYW5nZVN0YXJ0LCBzaXplX3QgcmFuZ2VM
ZW5ndGgsIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggNjM3ZDFlYi4uNmVmMzUwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBFZGl0QWN0aW9uVW5zcGVjaWZpZWQs
CisgICAgICAgIEVkaXRBY3Rpb25JbnNlcnQsCiAgICAgICAgIEVkaXRBY3Rpb25TZXRDb2xvciwK
ICAgICAgICAgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvciwKICAgICAgICAgRWRpdEFjdGlv
blR1cm5PZmZLZXJuaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRl
eCA4ZjU2NTMyLi44ZjdmY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRD
b21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9z
aXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRv
ci5oIgpAQCAtMzcsOSArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1FZGl0Q29t
bWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQorRWRpdENvbW1hbmQ6OkVkaXRD
b21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fcGFyZW50KDApCisgICAgLCBtX2VkaXRp
bmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQuZnJhbWUoKSk7
CiAgICAgc2V0U3RhcnRpbmdTZWxlY3Rpb24obV9kb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0aW9u
KCkuc2VsZWN0aW9uKCkpOwpAQCAtNjcsNyArNjksNyBAQCBGcmFtZSYgRWRpdENvbW1hbmQ6OmZy
YW1lKCkKIAogRWRpdEFjdGlvbiBFZGl0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsKKyAgICByZXR1cm4gbV9lZGl0aW5n
QWN0aW9uOwogfQogCiBzdGF0aWMgaW5saW5lIEVkaXRDb21tYW5kQ29tcG9zaXRpb24qIGNvbXBv
c2l0aW9uSWZQb3NzaWJsZShFZGl0Q29tbWFuZCogY29tbWFuZCkKQEAgLTExMiw2ICsxMTQsNDkg
QEAgdm9pZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKiBwYXJl
bnQpCiAgICAgfQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAgICBjYXNlIEVkaXRBY3Rp
b25DdXQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUN1dDsKKyAgICBjYXNlIEVkaXRB
Y3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0ZTsKKyAgICBj
YXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbjsKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CisgICAgICAgIHJldHVybiBBWFRl
eHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0
dXJuIEFYVGV4dEVkaXRUeXBlUGFzdGU7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAg
ICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVUeXBpbmc7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK0FY
VGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHN3aXRj
aCAoYXBwbHlFZGl0VHlwZSgpKSB7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246Cisg
ICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZURlbGV0ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICByZXR1cm4g
QVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICByZXR1cm4gQVhU
ZXh0RWRpdFR5cGVEZWxldGU7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25v
d247Cit9CisKK1NpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYg
ZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IEVkaXRDb21tYW5kKGRv
Y3VtZW50LCBlZGl0aW5nQWN0aW9uKQoreworfQorCiB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpk
b1JlYXBwbHkoKQogewogICAgIGRvQXBwbHkoKTsKQEAgLTEyNSw0ICsxNzAsMTQgQEAgdm9pZCBT
aW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwg
SGFzaFNldDxOb2RlKj4mIG4KIH0KICNlbmRpZgogCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsK
KyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0
ZXh0LCBwb3NpdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li5jNWI3YWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21t
YW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNl
bGVjdGlvbi5oIgogCkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UGFy
ZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKik7CiAKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbigpIGNvbnN0OworICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0
OwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX3N0YXJ0aW5nU2VsZWN0aW9uOyB9CiAgICAgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgZW5kaW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9lbmRpbmdTZWxlY3Rpb247
IH0KQEAgLTU5LDggKzYwLDExIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5
KCkgPSAwOwogCisgICAgQVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIEFYVGV4
dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQg
RWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVu
dCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogICAgIEVkaXRDb21tYW5k
KERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKTsKIAogICAgIEZyYW1lJiBmcmFtZSgpOwpAQCAtNzQsNiArNzgsNyBAQCBwcml2YXRlOgog
ICAgIFZpc2libGVTZWxlY3Rpb24gbV9zdGFydGluZ1NlbGVjdGlvbjsKICAgICBWaXNpYmxlU2Vs
ZWN0aW9uIG1fZW5kaW5nU2VsZWN0aW9uOwogICAgIENvbXBvc2l0ZUVkaXRDb21tYW5kKiBtX3Bh
cmVudDsKKyAgICBFZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbiB7IEVkaXRBY3Rpb25VbnNwZWNp
ZmllZCB9OwogfTsKIAogZW51bSBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSB7
CkBAIC05MSwxMiArOTYsMTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBl
eHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1h
bmQoZG9jdW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50
JiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7
CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21t
YW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAppbmRleCBkYzNhZTMzLi4yM2JjNmIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBAIC01OSw2ICs1OSw4
IEBACiAjaW5jbHVkZSA8UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0
aW9uLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+
CisjaW5jbHVkZSA8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1
ZGUgPFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3Bw
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDcxMGFhMzkuLjRiZDdmN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTIwOCwxMiArMjA4LDEyIEBAIGJvb2wgRWRpdG9y
OjpoYW5kbGVUZXh0RXZlbnQoVGV4dEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGlmIChjbGll
bnQoKS0+cGVyZm9ybXNUd29TdGVwUGFzdGUoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgICAgICAgICAgcmVwbGFjZVNl
bGVjdGlvbldpdGhGcmFnbWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVu
dC0+c2hvdWxkU21hcnRSZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIGV2ZW50
LT5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOworICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC0+c2hv
dWxkU21hcnRSZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIEVkaXRBY3Rpb25Q
YXN0ZSwgZXZlbnQtPm1haWxCbG9ja3F1b3RlSGFuZGxpbmcoKSk7CiAjaWYgUExBVEZPUk0oSU9T
KQogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgZWxzZSAKLSAgICAgICAgICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoVGV4dChldmVudC0+ZGF0YSgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0
UmVwbGFjZSgpKTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChldmVudC0+
ZGF0YSgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBFZGl0QWN0aW9uUGFz
dGUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM3NCwxMiArMzc0LDEyIEBA
IGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJl
Y3Rpb24sIFRleHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRp
dG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3Zv
aWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0
ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlv
bigpLmlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAg
YXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBz
bWFydERlbGV0ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBlZGl0aW5nQWN0aW9uKSk7CiB9
CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgRWRp
dG9yOjpzaG91bGRJbnNlcnRGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50LCBQYXNzUmVmCiAgICAgcmV0dXJuIGNsaWVudCgpLT5zaG91bGRJbnNlcnROb2RlKGZy
YWdtZW50LmdldCgpLCByZXBsYWNpbmdET01SYW5nZS5nZXQoKSwgZ2l2ZW5BY3Rpb24pOwogfQog
Ci12b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNt
YXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxC
bG9ja3F1b3RlSGFuZGxpbmcpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJl
cGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24sIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5k
bGluZykKIHsKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbi5pc05vbmUoKSB8fCAhc2VsZWN0
aW9uLmlzQ29udGVudEVkaXRhYmxlKCkgfHwgIWZyYWdtZW50KQpAQCAtNTM5LDcgKzUzOSw3IEBA
IHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAgaWYgKG1haWxCbG9ja3F1b3RlSGFuZGxpbmcg
PT0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90ZSkKICAgICAgICAgb3B0
aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SWdub3JlTWFpbEJsb2NrcXVvdGU7CiAK
LSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCBmcmFnbWVudCwgb3B0aW9ucywgRWRpdEFjdGlvblBhc3RlKSk7CisgICAgYXBwbHlDb21t
YW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQs
IG9wdGlvbnMsIGVkaXRpbmdBY3Rpb24pKTsKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRp
bmdPcGVyYXRpb24oKTsKIAogICAgIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCk7CkBAIC01NTMsMTMgKzU1MywxMyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVj
dGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAog
ICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6
OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpLCBUZXh0Q2hlY2tpbmdQcm9jZXNzQmF0Y2gs
IHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CiB9CiAKLXZvaWQgRWRpdG9yOjpyZXBsYWNl
U2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2Vt
ZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKK3ZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNt
YXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2UgPSBzZWxlY3RlZFJhbmdlKCk7CiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChjcmVhdGVGcmFnbWVudEZy
b21UZXh0KCpyYW5nZSwgdGV4dCksIHNlbGVjdFJlcGxhY2VtZW50LCBzbWFydFJlcGxhY2UsIHRy
dWUpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVl
LCBlZGl0aW5nQWN0aW9uKTsKIH0KIAogUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpzZWxlY3Rl
ZFJhbmdlKCkKQEAgLTEwMDEsNyArMTAwMSw4IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGlu
ZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBj
bGVhciB0aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8g
dGhvc2UgdGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246
OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkg
PyBGcmFtZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAKKyAgICBjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmFwcGx5
RWRpdFR5cGUoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNv
bXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY29tcG9zaXRpb24tPmVu
ZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2No
ZWR1bGVkKCk7CkBAIC0xMDMyLDcgKzEwMzMsNyBAQCB2b2lkIEVkaXRvcjo6dW5hcHBsaWVkRWRp
dGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAgICBub3RpZnlU
ZXh0RnJvbUNvbnRyb2xzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+
ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3
U2VsZWN0aW9uKGNtZC0+c3RhcnRpbmdTZWxlY3Rpb24oKSk7Ci0gICAgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxl
Y3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBjbWQt
PnVuYXBwbHlFZGl0VHlwZSgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRF
dmVudHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290
RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgp
OwpAQCAtMTI2Niw3ICsxMjY3LDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRp
dG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0
ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNl
bGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAg
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVk
aXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjIzOCw3ICsyMjM5
LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZChjb25z
dCBWaXNpYmxlUG9zaXRpb24gJndvcmRTdGFydCwKIAogICAgICAgICBpZiAoIW1fZnJhbWUuZWRp
dG9yKCkuc2hvdWxkSW5zZXJ0VGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBtaXNzcGVsbGluZ1Jh
bmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIG1fZnJhbWUuZWRpdG9yKCkucmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGF1dG9j
b3JyZWN0ZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIG1fZnJhbWUuZWRpdG9yKCku
cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIGZhbHNlLCBmYWxz
ZSwgRWRpdEFjdGlvbkluc2VydCk7CiAKICAgICAgICAgLy8gUmVzZXQgdGhlIGNoYXJldCBvbmUg
Y2hhcmFjdGVyIGZ1cnRoZXIuCiAgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkubW92ZVRvKG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuZW5kKCkpOwpAQCAtMjU4NCw3ICsyNTg1LDcg
QEAgdm9pZCBFZGl0b3I6OmNoYW5nZUJhY2tUb1JlcGxhY2VkU3RyaW5nKGNvbnN0IFN0cmluZyYg
cmVwbGFjZWRTdHJpbmcpCiAgICAgCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5y
ZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlUmV2ZXJzZWQocmVwbGFjZWRTdHJpbmcsIHNlbGVj
dGlvbik7CiAgICAgVGV4dENoZWNraW5nUGFyYWdyYXBoIHBhcmFncmFwaChzZWxlY3Rpb24pOwot
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChyZXBsYWNlZFN0cmluZywgZmFsc2UsIGZhbHNl
KTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVwbGFjZWRTdHJpbmcsIGZhbHNlLCBm
YWxzZSwgRWRpdEFjdGlvbkluc2VydCk7CiAgICAgUmVmUHRyPFJhbmdlPiBjaGFuZ2VkUmFuZ2Ug
PSBwYXJhZ3JhcGguc3VicmFuZ2UocGFyYWdyYXBoLmNoZWNraW5nU3RhcnQoKSwgcmVwbGFjZWRT
dHJpbmcubGVuZ3RoKCkpOwogICAgIGNoYW5nZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9j
dW1lbnQoKS5tYXJrZXJzKCkuYWRkTWFya2VyKGNoYW5nZWRSYW5nZS5nZXQoKSwgRG9jdW1lbnRN
YXJrZXI6OlJlcGxhY2VtZW50LCBTdHJpbmcoKSk7CiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyLT5tYXJrUmV2ZXJzZWQoY2hhbmdlZFJhbmdlLmdldCgpKTsKQEAgLTI4MTgsNyArMjgx
OSw3IEBAIHZvaWQgRWRpdG9yOjp0cmFuc3Bvc2UoKQogICAgIC8vIEluc2VydCB0aGUgdHJhbnNw
b3NlZCBjaGFyYWN0ZXJzLgogICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCh0cmFuc3Bvc2VkLCBy
YW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpKQogICAgICAgICByZXR1cm47Ci0g
ICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHRyYW5zcG9zZWQsIGZhbHNlLCBmYWxzZSk7Cisg
ICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHRyYW5zcG9zZWQsIGZhbHNlLCBmYWxzZSwgRWRp
dEFjdGlvbkluc2VydCk7CiB9CiAKIHZvaWQgRWRpdG9yOjphZGRUb0tpbGxSaW5nKFJhbmdlKiBy
YW5nZSwgYm9vbCBwcmVwZW5kKQpAQCAtMjg1MCw3ICsyODUxLDcgQEAgdm9pZCBFZGl0b3I6OmRp
c21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3Jl
ZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4g
ZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgp
LmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcg
KzI4NjMsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9i
bGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJh
bmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNl
bGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURP
TVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRp
dGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZm
ZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3
aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtl
ZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQxZDMwYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlv
bkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5n
QWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uID0g
RWRpdEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsK
QEAgLTM4Miw4ICszODIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0
QXJlYShFbGVtZW50Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgV3JpdGluZ0RpcmVjdGlvbiBiYXNl
V3JpdGluZ0RpcmVjdGlvbkZvclNlbGVjdGlvblN0YXJ0KCkgY29uc3Q7CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2Us
IGJvb2wgbWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxCbG9ja3F1b3Rl
SGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
cGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdFJlcGxhY2Vt
ZW50LCBib29sIHNtYXJ0UmVwbGFjZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNl
U2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wg
c2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUsIEVk
aXRBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0LCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFp
bEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc2Vs
ZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlv
bkluc2VydCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZWxlY3Rpb25TdGFydEhhc01hcmtl
ckZvcihEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSwgaW50IGZyb20sIGludCBsZW5ndGgpIGNv
bnN0OwogICAgIHZvaWQgdXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRpbmcoYm9v
bCBvbmx5SGFuZGxlV29yZHNDb250YWluaW5nU2VsZWN0aW9uKTsKICAgICB2b2lkIGRlbGV0ZWRB
dXRvY29ycmVjdGlvbkF0UG9zaXRpb24oY29uc3QgUG9zaXRpb24mLCBjb25zdCBTdHJpbmcmIG9y
aWdpbmFsU3RyaW5nKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU2V0
Q29tcG9zaXRpb25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9
OwogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9zaXRpb25N
b2RlKTsKIAotICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMpOworICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
KSk7CiAKICAgICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFj
dGlvbiB9OwogICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggNTExY2IwMi4u
N2E4MTY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0x
OTIsNyArMTkyLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUFwcGx5UGFyYWdyYXBoU3R5bGUoRnJh
bWUmIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwKIHN0YXRpYyBib29sIGV4ZWN1
dGVJbnNlcnRGcmFnbWVudChGcmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQpCiB7CiAgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwotICAgIGFwcGx5
Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgp
LCBmcmFnbWVudCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBFZGl0
QWN0aW9uVW5zcGVjaWZpZWQpKTsKKyAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRpdEFjdGlvbkluc2VydCkpOwogICAgIHJldHVy
biB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmlu
ZGV4IDU3NDUxNzAuLjIzNDg2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNs
dWRlICJDaGFyYWN0ZXJEYXRhLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xMzksNyArMTQwLDcgQEAgRWxlbWVudCogRnJh
bWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3Ms
IEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24p
CiB7CiAgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50
KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNE
aXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRy
aWdnZXJlZCksIGFsaWduKTsKKyAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNl
clRyaWdnZXJlZCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQp
CkBAIC0xNzAsNyArMTcxLDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxp
ZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW8KICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlk
YXRpb24oYmFzZSwgZXh0ZW50KTsKICAgICBuZXdTZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25hbChz
ZWxlY3Rpb25IYXNEaXJlY3Rpb24pOwotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RT
ZXRGb2N1cykpOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25v
d24gfSk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSwgaW50ZW50
KTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpzZXRDYXJldFBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCkBAIC0yNTQsNyArMjU2LDEzIEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAh
c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVs
YXJpdHkpOworICAgIAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSAmJiBuZXdTZWxlY3Rpb24u
aXNDYXJldCgpKQorICAgICAgICBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVVua25vd24gfSk7CisgICAgZWxzZQorICAgICAgICBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JPblNj
cm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpbwog
ICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFz
ZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9u
RnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYg
KG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0g
bV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1l
LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwg
Z3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rp
b24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3Mg
cG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVT
ZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RG
cmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlv
biBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUg
aXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIg
c2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0
aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQog
ICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0
aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2
OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAg
ICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAg
aWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3
ICszODgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
KQogICAgICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAg
IH0KIAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiAKICAgICBpZiAo
YXV0byogY2xpZW50ID0gbV9mcmFtZS0+ZWRpdG9yKCkuY2xpZW50KCkpCiAgICAgICAgIGNsaWVu
dC0+ZGlkQ2hhbmdlU2VsZWN0aW9uQW5kVXBkYXRlTGF5b3V0KCk7CkBAIC0xMDIxLDcgKzEwMjks
NzcgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2Fy
ZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBM
aW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVs
YXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCitBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRl
eHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJv
b2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJh
dGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlOworICAgICAgICBmbGlwID0gaXNSYW5nZSgpICYmIGRpcmVjdGlvbk9mU2Vs
ZWN0aW9uKCkgPT0gUlRMOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5
KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50
LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2Ug
U2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBp
bnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAg
IGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3Vu
ZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29s
IGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2Ug
Q2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5Ogor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5l
Qm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50
Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAg
ICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkJlZ2lubmluZyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBE
aXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJv
b2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdn
ZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3Nyw2ICsxMTU1LDExIEBAIGJvb2wgRnJhbWVT
ZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlv
bk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAg
IGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0ZXIs
IGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRoZSBh
Ym92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAg
ICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBv
c3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5
cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcx
MCw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25G
cm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNl
bGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBp
ZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGln
dW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgfSk7CisgICAgICAgIHNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2Vs
ZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3Nl
VHlwaW5nKQpAQCAtMjQyMyw3ICsyNTA4LDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNlbGVj
dGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBWaXMKIAog
ICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0
aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51
bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9uLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVT
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNl
bGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVT
ZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLmVjY2NhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rp
b25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNo
YW5nZUludGVudC5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJl
Y3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xNDQsNyArMTQ1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25z
dCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZv
Y3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygp
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIEN1
cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFu
dWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
ZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2
b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFs
U2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAg
ICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwsIFRl
eHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMjk5LDEwIEBAIHByaXZhdGU6CiAgICAgTGF5b3V0
VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oRVBvc2l0
aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBU
ZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxl
Y3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dl
cmVkKTsKQEAgLTM2Nyw3ICszNjksNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdlLi43YzhkYTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCi0gICAgOiBTaW1w
bGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9u
KQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAgLCBtX3Rl
eHQodGV4dCkKQEAgLTUwLDYgKzUwLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAg
QVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorY29uc3QgU3RyaW5nJiBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9
CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9v
bCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0Vu
YWJsZWQoKTsKQEAgLTY2LDggKzcxLDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04
NCw4ICs4OSw4IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJl
Zm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2li
bGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5k
ZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAppbmRleCAzMTBiYmIzLi5mZmUzNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzQsMTQgKzM0LDE2IEBAIGNs
YXNzIFRleHQ7CiAKIGNsYXNzIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2lt
cGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbklu
c2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBlZGl0
aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCk7CisgICAgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3RlZDoK
KyAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAppbmRleCBkMTZiNWQ2Li5lZDBhNjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjksMTMgKzI5LDE1IEBACiAjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLAotICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogU2lt
cGxlRWRpdENvbW1hbmQocmVmQ2hpbGQtPmRvY3VtZW50KCkpCitJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGls
ZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHJlZkNoaWxkLT5kb2N1bWVu
dCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9pbnNlcnRDaGlsZChpbnNlcnRDaGlsZCkKICAg
ICAsIG1fcmVmQ2hpbGQocmVmQ2hpbGQpCiAgICAgLCBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQpAQCAtNTcs
OCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihk
b3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0
aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUo
KSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikp
OworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
QEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5v
ZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlv
bikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9O
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaAppbmRleCBkNGI3NjJkLi4xMzg3YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0zMywyMSArMzMsMjIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgU2lt
cGxlRWRpdENvbW1hbmQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQ
dHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKLSAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisg
ICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2Vy
dEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rp
b24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKK3Byb3RlY3Rl
ZDoKKyAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9J
bnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBs
eSgpIG92ZXJyaWRlOwotICAgIAorCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9y
ZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKaW5kZXgg
MjEyODI5Yy4uN2RkMDE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC01OSw4ICs1OSw4IEBA
IHN0YXRpYyBFbGVtZW50KiBoaWdoZXN0VmlzdWFsbHlFcXVpdmFsZW50RGl2QmVsb3dSb290KEVs
ZW1lbnQqIHN0YXJ0QmxvY2spCiAgICAgcmV0dXJuIGN1ckJsb2NrOwogfQogCi1JbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCBtdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJv
b2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKLSAgICA6IENvbXBvc2l0ZUVkaXRD
b21tYW5kKGRvY3VtZW50KQorSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVz
ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3Rl
ZEFyZWEsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21t
YW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9tdXN0VXNlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQobXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KQogICAgICwgbV9wYXN0
ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFy
ZWEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oCmluZGV4IDEyODFmMGMuLjY3MzQxOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZC5oCkBAIC0zNCwxMyArMzQsMTMgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFzcyBJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21t
YW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFw
aEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0g
ZmFsc2UpCisgICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50
ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChk
b2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9V
bnF1b3RlZEFyZWEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQs
IHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVu
dCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9l
SW50b1VucXVvdGVkQXJlYSk7CisgICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChE
b2N1bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9j
a3F1dG9lSW50b1VucXVvdGVkQXJlYSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZG9BcHBseSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRl
eHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwCmluZGV4IGJkZDU5YTMuLjU3MmU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0zNywxNiArMzcsMTYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1JbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBS
ZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCkKK0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJl
YmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAg
IDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBt
X3RleHQodGV4dCkKICAgICAsIG1fc2VsZWN0SW5zZXJ0ZWRUZXh0KHNlbGVjdEluc2VydGVkVGV4
dCkKICAgICAsIG1fcmViYWxhbmNlVHlwZShyZWJhbGFuY2VUeXBlKQogewogfQogCi1JbnNlcnRU
ZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJr
ZXJTdXBwbGllcikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0
VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFy
a2VyU3VwcGxpZXIsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVk
aXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV90ZXh0KHRleHQpCiAg
ICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChmYWxzZSkKICAgICAsIG1fcmViYWxhbmNlVHlwZShS
ZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi42NTI4MTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC00OSwyMCArNDksMjEg
QEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0
SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsCi0gICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlw
ZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgICAgICBSZWJh
bGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0
ZXNwYWNlcywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3Vt
ZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNl
bGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0K
IAotICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBw
bGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxU
ZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHN0YXRpYyBS
ZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFy
a2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBF
ZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5z
ZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBt
YXJrZXJTdXBwbGllciwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3Rl
Y3RlZDoKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4
dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+LCBFZGl0QWN0aW9uKTsK
KyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9v
bCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24pOwogCi0gICAg
SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKLSAgICBJbnNlcnRUZXh0Q29tbWFuZChE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFy
a2VyU3VwcGxpZXI+KTsKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCmluZGV4IDJjMDYzYzAuLmM2Mjk3MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQor
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5vZGUt
PmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1f
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKaW5kZXggNGI5MTk3NC4u
MWIyYzQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChu
b2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbikp
OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSk7CisgICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWI5ODQz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwgY291bnQsIEVkaXRBY3Rpb25EZWxl
dGUpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE5ODU4NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMTc4MmQwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikK
KyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBlZGl0
aW5nQWN0aW9uKQorICAgICwgbV9kZWxldGVkVGV4dChkZWxldGVkVGV4dCkKK3sKK30KKwordm9p
ZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWFRleHRFZGl0
VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0
ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICBjYWNoZS0+cG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9k
ZWxldGVkVGV4dCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTYxZGIyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5l
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0
OworCitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVk
VGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0LCBkZWxldGVkVGV4dCwgZWRpdGluZ0FjdGlvbikpOworICAgIH0KKworcHJvdGVjdGVk
OgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBFZGl0QWN0aW9uKTsKKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi44YWFiZjljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNDcsNiArNDcs
OCBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVkZSAiU21h
cnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCkBAIC0zNjksNyArMzcx
LDcgQEAgaW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6
OmRpZFJlcGxhY2VOb2RlKE5vZGUqIG5vZGUsIE4KIH0KIAogUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRp
dEFjdGlvbiBlZGl0QWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQp
CisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdEFjdGlvbikKICAgICAs
IG1fc2VsZWN0UmVwbGFjZW1lbnQob3B0aW9ucyAmIFNlbGVjdFJlcGxhY2VtZW50KQogICAgICwg
bV9zbWFydFJlcGxhY2Uob3B0aW9ucyAmIFNtYXJ0UmVwbGFjZSkKICAgICAsIG1fbWF0Y2hTdHls
ZShvcHRpb25zICYgTWF0Y2hTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi44OGRhMDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC00OCw5
ICs0OCw5IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgdW5zaWduZWQgQ29tbWFuZE9wdGlvbnM7
CiAKLSAgICBzdGF0aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBDb21t
YW5kT3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25QYXN0ZSkK
KyAgICBzdGF0aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBDb21tYW5k
T3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5z
ZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIGZyYWdtZW50LCBvcHRpb25zLCBhY3Rpb24pKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIGZy
YWdtZW50LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAt
MTIxLDYgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByZXZlbnROZXN0aW5nOwogICAg
IGJvb2wgbV9tb3ZpbmdQYXJhZ3JhcGg7CiAgICAgRWRpdEFjdGlvbiBtX2VkaXRBY3Rpb247Cisg
ICAgQVhUZXh0RWRpdFR5cGUgbV9hcHBseUVkaXRUeXBlOwogICAgIGJvb2wgbV9zYW5pdGl6ZUZy
YWdtZW50OwogICAgIGJvb2wgbV9zaG91bGRNZXJnZUVuZDsKICAgICBib29sIG1faWdub3JlTWFp
bEJsb2NrcXVvdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRl
eCA5MzI5Y2RmLi5mMDc0NDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQo
Y29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHZvaWQgVHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewogICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFu
ZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwg
c2VsZWN0SW5zZXJ0ZWRUZXh0LAotICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29t
cG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFp
bGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3Bh
Y2VzKTsKKyAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/
IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNl
cyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcywgRWRpdEFjdGlv
blR5cGluZyk7CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdT
ZWxlY3Rpb24oKSk7CiAKQEAgLTM5NSw3ICszOTUsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omlu
c2VydFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgaWYgKCFjYW5BcHBlbmROZXdMaW5lRmVlZFRv
U2VsZWN0aW9uKGVuZGluZ1NlbGVjdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCkpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZmFsc2UsIGZhbHNlLCBF
ZGl0QWN0aW9uVHlwaW5nKSk7CiAgICAgdHlwaW5nQWRkZWRUb09wZW5Db21tYW5kKEluc2VydFBh
cmFncmFwaFNlcGFyYXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRr
L0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li4zMzJlMGFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0
aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLmZkNDE5OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00Nywx
MyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3Qo
Q0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0
KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24u
c3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNl
bGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQo
KS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAh
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi4zNjg0ZTI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2
ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0
VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJU
KGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9
IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1
ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5n
ZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFp
bm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
IVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigp
KSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZp
Y2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZh
YmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5u
ZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUu
ZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5l
clRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JN
KENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAg
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uKHRoaXMsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBB
WFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlz
LCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlm
CiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBjOGJlZTllLi5iYjRlZWE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMjEwLDcgKzMyMTAsOCBAQCBz
dGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxl
Y3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpKTsKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhU
ZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgIHNlbGVjdGlvbi5zZXRTZWxl
Y3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRs
ZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBl
dmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2MwN2Zl
Li5kOGQyNWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0z
NDAsOCArMzQwLDEwIEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3Vt
ZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXliCiAgICAgaWYgKGNhcmV0QnJv
d3NpbmcpIHsKICAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBmaXJzdFBvc2l0aW9uSW5PckJl
Zm9yZU5vZGUoZWxlbWVudC5nZXQoKSk7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2Vs
ZWN0aW9uKHBvc2l0aW9uLCBwb3NpdGlvbiwgRE9XTlNUUkVBTSk7Ci0gICAgICAgIGlmIChmcmFt
ZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAg
ICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAg
ICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVj
dGlvbikpIHsKKyAgICAgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVVua25vd24gfSk7CisgICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
VXNlclRyaWdnZXJlZCksIGludGVudCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBlbGVtZW50
LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBhZTZkNjdjLi4y
ZmY4M2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDQtMjIgIERv
dWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0
ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRv
IGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3Bv
bmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5p
c20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxl
c2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisK
KyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBv
ZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2gg
YXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3
ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdl
cyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW06CisgICAgICAgICh1bmRvTmFtZUZvckVkaXRBY3Rpb24pOgorCiAyMDE1LTA0
LTIwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2Fi
bGUgbWl4ZWQgY29udGVudCBibG9ja2luZyBmb3IgZXhpc3RpbmcgV2ViS2l0MSBjbGllbnRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0KaW5kZXggZDIxY2RmMC4uZTU5MGQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNTQ2LDYgKzU0Niw3IEBAIHN0
YXRpYyBOU1N0cmluZyogdW5kb05hbWVGb3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlv
bikKICAgICAvLyBGSVhNRTogVGhpcyBpcyBpZGVudGljYWwgdG8gY29kZSBpbiBXZWJLaXQyJ3Mg
V2ViRWRpdENvbW1hbmRQcm94eSBjbGFzczsgd291bGQgYmUgbmljZSB0byBzaGFyZSB0aGUgc3Ry
aW5ncyBpbnN0ZWFkIG9mIGhhdmluZyB0d28gY29waWVzLgogICAgIHN3aXRjaCAoZWRpdEFjdGlv
bikgewogICAgICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDogcmV0dXJuIG5pbDsKKyAg
ICAgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OiByZXR1cm4gbmlsOwogICAgICAgICBjYXNlIEVk
aXRBY3Rpb25TZXRDb2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBDb2xv
ciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsK
ICAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yOiByZXR1cm4gVUlfU1RS
SU5HX0tFWV9JTlRFUk5BTCgiU2V0IEJhY2tncm91bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91bmQg
Q29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAg
Y2FzZSBFZGl0QWN0aW9uVHVybk9mZktlcm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVS
TkFMKCJUdXJuIE9mZiBLZXJuaW5nIiwgIlR1cm4gT2ZmIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5h
bWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxNTYxYmU2Li40NGYwY2Rk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDQtMjIgIERvdWcgUnVzc2VsbCAg
PGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0
aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2
YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0
byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmlj
aGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1
Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJl
cGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJl
bGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBz
ZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29y
ZCBmaWVsZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9u
KToKKwogMjAxNS0wNC0yMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAg
ICAgIEV4cG9zZSBtb3JlIGJ1bmRsZSBmb3JtIGNsaWVudCBmdW5jdGlvbnMgYXMgV0tXZWJQcm9j
ZXNzUGx1Z0luRm9ybURlbGVnYXRlUHJpdmF0ZSBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKaW5kZXggNTRjZTAzYy4uODc4NTU5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5
LmNwcApAQCAtNzQsNiArNzQsOCBAQCBTdHJpbmcgV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZv
ckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogICAgIHN3aXRjaCAoZWRpdEFjdGlv
bikgewogICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOgogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CiAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29sb3I6CiAgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HX0tFWSgiU2V0IENvbG9yIiwgIlNldCBDb2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xv
cjoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBj
OTUwYzM0Li5lMDQ0NzJlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTUtMDQtMjIgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZl
IHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdl
cyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1
ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0
aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVy
IGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2Ug
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxh
Y2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlh
YmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxl
Y3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBm
aWVsZHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25I
YW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5t
bToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNh
dGlvblJlY2VpdmVkOl0pOgorCisyMDE1LTA0LTIwICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxA
YXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hl
ciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisKKyAgICAgICAgQVg6IHJpY2hl
ciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0
YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
IHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNo
YW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNv
YWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9h
ZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRl
Y2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBp
biB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hh
bmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorCiAyMDE1LTA0LTIwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHVu
bmVjZXNzYXJ5IGxvZ3Mgd2hlbiByZXNldHRpbmcgdGVzdHMuCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5o
CmluZGV4IDE5Mzg2Y2UuLjkwOGRiZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oCkBAIC00Miw2
ICs0Miw3IEBACiAtICh2b2lkKXNldFBsYXRmb3JtRWxlbWVudDooaWQpcGxhdGZvcm1FbGVtZW50
OwogLSAodm9pZClzZXRDYWxsYmFjazooSlNPYmplY3RSZWYpY2FsbGJhY2s7CiAtICh2b2lkKXN0
YXJ0T2JzZXJ2aW5nOworLSAodm9pZClzdG9wT2JzZXJ2aW5nOwogCiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbQppbmRleCBhZGE2ODdhLi5mMWM5YWZkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyLm1tCkBAIC0xMDQsNiArMTA0LDExIEBACiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfbm90aWZp
Y2F0aW9uUmVjZWl2ZWQ6KSBuYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpuaWxdOwog
fQogCistICh2b2lkKXN0b3BPYnNlcnZpbmcKK3sKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOworfQorCiAtICh2b2lkKV9ub3Rp
ZmljYXRpb25SZWNlaXZlZDooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBO
U1N0cmluZyAqbm90aWZpY2F0aW9uTmFtZSA9IFtbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmpl
Y3RGb3JLZXk6QCJub3RpZmljYXRpb25OYW1lIl07CkBAIC0xMTIsMTYgKzExNywyNyBAQAogICAg
IGlmIChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0
aW9uIG9iamVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pT
T05WYWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25O
YW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1l
QXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBq
c05vdGlmaWNhdGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFy
Z3VtZW50ID0gbmlsOworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAg
ICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwg
W3VzZXJJbmZvSlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZv
SlNPTlZhbHVlQXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKFttYWluRnJhbWUg
Z2xvYmFsQ29udGV4dF0sIGpzVXNlckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBp
ZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVt
ZW50IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAg
ICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25v
dGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1l
bnQsIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMg
dGhlIGVsZW1lbnQgYW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAg
ICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFt
ZSBhbmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAg
ICBhcmd1bWVudHNbMF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3Vt
ZW50c1sxXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2Fs
bEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5j
dGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAg
IC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1l
IGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAg
IGFyZ3VtZW50c1swXSA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudChbbm90aWZpY2F0aW9uIG9iamVjdF0pKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90
aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pT
T05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJh
bWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwg
YXJndW1lbnRzLCAwKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IDQ2NzNhMWQuLjM5N2M2Mzgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCkBAIC0xNDQ2LDYgKzE0NDYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKICAgICAvLyBNYWMgcHJvZ3JhbW1l
cnMgc2hvdWxkIG5vdCBiZSB0cnlpbmcgdG8gcmVtb3ZlIGEgbGlzdGVuZXIgdGhhdCdzIGFscmVh
ZHkgcmVtb3ZlZC4KICAgICBBU1NFUlQobV9ub3RpZmljYXRpb25IYW5kbGVyKTsKIAorICAgIFtt
X25vdGlmaWNhdGlvbkhhbmRsZXIgc3RvcE9ic2VydmluZ107CiAgICAgW21fbm90aWZpY2F0aW9u
SGFuZGxlciByZWxlYXNlXTsKICAgICBtX25vdGlmaWNhdGlvbkhhbmRsZXIgPSBuaWw7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmlu
ZGV4IDY1MWI1OTEuLjI4Y2EwM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjUsMTkgKzEyNSwzMCBAQAogICAgIGlmICht
X3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0aW9uIG9i
amVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pTT05WYWx1
ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBXS0J1bmRsZUZy
YW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShXVFI6OkluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7CiAgICAgSlNDb250ZXh0UmVmIGNv
bnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1lKTsKIAog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlm
aWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzTm90aWZpY2F0
aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBu
aWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9K
U09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVB
cmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwganNVc2VySW5mb0pT
T05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAg
ICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwg
dGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNv
bnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxs
YmFjayksIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDApOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQgYW5kIHRoZSBu
b3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8vIExpc3RlbmVyIGZvciBv
bmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAgICAg
ICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1bWVudHNbMF0gPSBub3Rp
ZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9IHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwg
Y29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwg
MCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGdsb2JhbCBs
aXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8u
CisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVudHNbMF0g
PSB0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkpKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0g
bm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5m
b0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRl
eHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFj
ayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggZWQwMmZiNy4uZTI2MDdlMSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xNDc2LDYgKzE0NzYsNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkK
ICAgICAvLyBNYWMgcHJvZ3JhbW1lcnMgc2hvdWxkIG5vdCBiZSB0cnlpbmcgdG8gcmVtb3ZlIGEg
bGlzdGVuZXIgdGhhdCdzIGFscmVhZHkgcmVtb3ZlZC4KICAgICBBU1NFUlQobV9ub3RpZmljYXRp
b25IYW5kbGVyKTsKIAorICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgc3RvcE9ic2VydmluZ107
CiAgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciByZWxlYXNlXTsKICAgICBtX25vdGlmaWNhdGlv
bkhhbmRsZXIgPSBuaWw7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251491</attachid>
            <date>2015-04-23 14:30:57 -0700</date>
            <delta_ts>2015-04-23 14:49:44 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>217964</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGU5ZGYxY2E0NGQ0NjE2MTYxYWJhZjdhNDhhMTlkN2Q5ODU5MTE5NDgKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzYyMjA4Ny4uOGVmZWI1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNWR0ZpdFRvVmlld0Jv
eDo6dmlld0JveFRvVmlld1RyYW5zZm9ybSgpIGhhcyB0byBjb3VudCBmb3IgemVybyBwaHlzaWNh
bCB3aWR0aCBhbmQgaGVpZ2h0IGJlZm9yZSBjYWxsaW5nIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW86
OmdldENUTSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmE2Zjgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIw
IEBACisgIAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8g
ZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVudHMgb2YgYW4gaW5wdXQgZmllbGQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRy
dWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBp
cyBBWFRleHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVsxXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUluc2VydAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdl
VmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIiAiCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBB
WFRleHRFZGl0VHlwZUluc2VydAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2Vy
aW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMGRlMzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9p
bnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGlucHV0IHR5cGU9InBhc3N3
b3JkIiBpZD0ic2VjdXJldmFsdWV0ZXN0Ij4KKworICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
dmFsdWV0ZXN0Ij4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2PgorCisg
ICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB2YWx1ZSBjaGFu
Z2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YSB3aGVuIHJlcGxhY2luZyB0aGUgY29udGVu
dHMgb2YgYW4gaW5wdXQgZmllbGQuIik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZUVkaXQgPSAxOworCisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7Cisg
ICAgICAgIHZhciBBWFRleHRFZGl0VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsg
MTsKKworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7Cisg
ICAgICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7Cisg
ICAgICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlcklu
Zm8pIHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikg
eworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNo
KHVzZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMikgeworCisgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZh
bHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7Cisg
ICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dENoYW5nZVZhbHVlc1wiXVsxXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBl
SW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gUGFzc3dvcmQgbm90aWZpY2F0aW9u
cyB3aWxsIGJlIGluc2VydCBvbmx5IGFuZCB0aGUgdmFsdWUgc3RyaW5nIHdpbGwgYmUgd2hpdGVz
cGFjZQorICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIiBcIiIpOworICAgICAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1b
MF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAg
ICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHNldHZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVl
dGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0c2Vj
dXJldmFsdWUoKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJl
dmFsdWV0ZXN0IikudmFsdWUgPSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUgPSAiMCI7CisgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKworICAgICAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAg
ICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGls
ZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVh
LmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgICAg
IHNldHZhbHVlKCk7CisKKyAgICAgICAgICAgIHNldHNlY3VyZXZhbHVlKCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxp
dHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGQyMmZmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOTUgQEAKK29uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBz
aXguCisKK3NldmVuIGVpZ2h0IG5pbmUuCisKK1RoaXMgdGVzdHMgc2VsZWN0aW9uIGNoYW5nZSBu
b3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJd
IGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
dGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZwor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHki
XSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdl
LXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9z
ZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjU3NTM3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMCww
ICsxLDIxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IHJv
bGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNvbnRlbnRlZGl0YWJsZT10cnVl
PgorPHA+b25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC48L3A+Cis8cD5zZXZlbiBlaWdodCBu
aW5lLjwvcD4KKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKzxzY3JpcHQ+
CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNh
dGlvbnMgdXNlciBpbmZvIGRhdGEuIik7CisKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSA9IDI7CisgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgKyAxOworCisgICAg
dmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZyArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzID0gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzICsgMTsKKworICAgIHZh
ciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciA9IDE7CisgICAgdmFyIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lID0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSArIDE7
CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoID0gQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCAr
IDI7CisKKyAgICB2YXIgZ3JhbiA9IFsiY2hhcmFjdGVyIiwgIndvcmQiLCAic2VudGVuY2UiLCAi
bGluZSIsICJwYXJhZ3JhcGgiLCAibGluZWJvdW5kYXJ5IiwgInNlbnRlbmNlYm91bmRhcnkiLCAi
cGFyYWdyYXBoYm91bmRhcnkiLCAiZG9jdW1lbnRib3VuZGFyeSJdOworICAgIHZhciB3ZWJBcmVh
ID0gMDsKKyAgICB2YXIgY291bnQgPSAwOworICAgIHZhciByZXN1bHRzID0gW107CisgICAgdmFy
IHJlc3VsdEluZGV4ID0gMDsKKyAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3Rp
ZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYU2Vs
ZWN0ZWRUZXh0Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBp
ZiAodXNlckluZm8pCisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVzZXJJbmZvKTsKKyAg
ICAgICAgICAgIGlmIChjb3VudCA9PSBncmFuLmxlbmd0aCAqIDQpIHsKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUi
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5j
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdp
bm5pbmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
ciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0g
MjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAgICAgd2ViQXJlYSA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAg
ICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0
ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlm
aWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgdGV4dGJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAv
LyBUcmlnZ2VyIHNlbGVjdGlvbiBjaGFuZ2VzLgorICAgICAgICB2YXIgcyA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKKyAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAg
Zm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJmb3J3
YXJkIiwgZ3JhbltpXSk7CisgICAgICAgICAgICBzLm1vZGlmeSgibW92ZSIsICJiYWNrd2FyZCIs
IGdyYW5baV0pOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAg
ICAgICAgICAgcy5zZXRQb3NpdGlvbih0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIHMubW9kaWZ5
KCJleHRlbmQiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICB9CisgICAgfQorCis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11
c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzkzYWFiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
OSBAQAorMDIzNDU2Nzg5MAorVGhpcyB0ZXN0cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1
c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRk
ZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZh
bHVlIl0gaXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1
ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZUN1dAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0g
aXMgIjAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVBhc3RlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMjM0NTY3ODkwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVl
Il0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMi
XVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlwZVR5cGluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjEiCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRl
eHRFZGl0VHlwZURlbGV0ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3Np
YmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhZDM0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5o
dG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9k
eSI+CisKKyAgICA8ZGl2IHJvbGU9InRleHRib3giIHRhYmluZGV4PTAgaWQ9InRleHRib3giIGNv
bnRlbnRlZGl0YWJsZT10cnVlPjAxMjM0NTY3ODkwPC9kaXY+CisKKyAgICA8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJu
b3RpZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEu
Iik7CisKKyAgICAgICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQgPSAxOworCisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZURlbGV0ZSA9IDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0
VHlwZUluc2VydCA9IEFYVGV4dEVkaXRUeXBlRGVsZXRlICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlVHlwaW5nID0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgKyAxOworICAgICAgICB2YXIg
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gPSBBWFRleHRFZGl0VHlwZVR5cGluZyArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZUN1dCA9IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uICsgMQor
ICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVQYXN0ZSA9IEFYVGV4dEVkaXRUeXBlQ3V0ICsgMTsK
KworICAgICAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAg
ICAgIHZhciByZXN1bHRzID0gW107CisgICAgICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAg
ICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNlckluZm8p
IHsKKyAgICAgICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYVmFsdWVDaGFuZ2VkIikgewor
ICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHVz
ZXJJbmZvKTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gNikgeworCisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMFwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlQ3V0Iik7CisKKyAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAg
ICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VW
YWx1ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlw
ZVwiXSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIyMzQ1Njc4OTBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZVBhc3RlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIx
XCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0
RWRpdFR5cGVUeXBpbmciKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZURl
bGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHdlYkFyZWEucmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKwor
ICAgICAgICAgICAgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50
LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdl
YkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAg
ICAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAg
ICAgICAgdmFyIHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOwor
ICAgICAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgICAgICBleGVjU2V0U2VsZWN0
aW9uQ29tbWFuZCh0ZXh0Ym94LCAwKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25S
aWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgY3V0Q29tbWFuZCgpOworICAg
ICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0ZXJDb21tYW5kKCk7Cisg
ICAgICAgICAgICBwYXN0ZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oIjEiKTsKKyAgICAgICAgICAgIGRlbGV0ZUNvbW1hbmQoKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAzZGY5NGVmLi44Y2NjNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTUxMSw2ICsxNTEx
LDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3BwCisgICAgZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0MjcwOWUuLmMx
MTFmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTMgQEAKKzIwMTUtMDQtMjIgIERvdWcgUnVz
c2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNo
YW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90
aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8g
cG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0
aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBt
b3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29u
dGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBw
YXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWwKKyAg
ICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2Vy
aW5mby5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6aXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3Jk
RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcik6IERlbGV0ZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50OjpBWFRleHRTdGF0ZUNo
YW5nZUludGVudCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFz
c3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBv
c3ROb3RpZmljYXRpb25zRm9yVGVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6QVhQb3N0Tm90aWZp
Y2F0aW9uV2l0aFVzZXJJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBv
c3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6dGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbToKKyAgICAgICAgKCtbV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOl0pOgor
ICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0
eVBvc3RlZE5vdGlmaWNhdGlvbjpdKToKKyAgICAgICAgKGFycmF5UmVtb3ZpbmdOb25KU09OVHlw
ZXMpOgorICAgICAgICAoZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246dXNlckluZm86XSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpB
cHBlbmROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZEln
bm9yaW5nTGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5
KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpB
cHBseVN0eWxlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlCbG9ja1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNl
cnROb2RlQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjph
cHBlbmROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVk
aXRDb21tYW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVC
cmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUF0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
aXRlRWRpdENvbW1hbmQ6OnNob3VsZFN0b3BDYXJldEJsaW5raW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVk
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24pOgor
ICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L0RpY3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFu
ZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0
YXRpb25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdEFjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRDb21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRD
b21tYW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OlNp
bXBsZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZDo6c2V0UGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21t
YW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6YXBwbGll
ZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZCk6CisgICAgICAgICog
ZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUluc2VydEZyYWdtZW50KToKKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxl
Y3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OlRleHRT
ZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlm
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1Nl
bGVjdGlvblVwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlv
bjo6bW9kaWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdv
cmRTdGFydCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0
ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Oklu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJ
bnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToK
KyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGlu
Zy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAg
ICAoV2ViQ29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuY3BwOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoK
KyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAg
ICAqIGVkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBlZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRW
YWx1ZSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1c0luRG9jdW1lbnRPcmRlcik6CisKIDIwMTUtMDQtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBPdmVyd3JpdGUgZXhpc3RpbmcgZmls
ZXMgd2l0aCBtb3ZlRmlsZS4KQEAgLTM4Niw2ICs1OTYsMjEgQEAKICAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpjb21wdXRlZExpbmVIZWlnaHQpOiBDbGFtcCBsaW5lLWhlaWdodCB0byBh
bgogICAgICAgICAgICAgaW50IHRvIGF2b2lkIG92ZXJmbG93LgogCisyMDE1LTA0LTE0ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEg
bWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBp
biBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFu
Z2VzLgorCisyMDE1LTA0LTE0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAg
TmV3IEVkaXRDb21tYW5kIHN1YmNsYXNzZXMgdG8gZ2l2ZSB0aGUgY29udGV4dCB0aGF0IGFjY2Vz
c2liaWxpdHkgbmVlZHMgdG8gcG9zdCBtb3JlIGRldGFpbGVkIHZhbHVlIGFuZCBzZWxlY3Rpb24g
Y2hhbmdlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY29tbWl0IGlzIGFsbCBpbmZyYXN0cnVjdHVyZSBh
bmQgZG9lc24ndCBjb250YWluIGFueSBhY2Nlc3NpYmlsaXR5IHNwZWNpZmljIGNoYW5nZXMuCis+
Pj4+Pj4+IDxyZGFyOi8vcHJvYmxlbS8yMDE2OTA1OD4gQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpCisKIDIwMTUtMDQtMTcgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91bGQgZ28gdGhyb3Vn
aCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggM2ViZTZiOS4uNjVhNTg1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CkBAIC0xNDc3Myw2ICsxNDc3MywzNCBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMici
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Cisg
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3x4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fFdpbjMy
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwv
RXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSIn
JChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTE5NTIyLDYg
KzE5NTUwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQWNj
ZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdp
blxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccGFnZVxBZGp1c3RWaWV3U2l6ZU9yTm90LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwYWdlXEFsdGVybmF0aXZlVGV4dENsaWVudC5oIiAvPgpAQCAtMjEwNzQsNiAr
MjExMDMsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVOb2Rl
Q29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxl
ZGl0aW5nXFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgiIC8+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
aW5kZXggZTJiYTJlNi4uMjYzYzQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMzUyOCw2ICszNTI4LDEy
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24u
Y3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRl
cj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdc
UmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNzY1Niw2ICs3NjYyLDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIj4KICAgICAg
IDxGaWx0ZXI+YWNjZXNzaWJpbGl0eTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVu
dC5oIj4KKyAgICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XHdpblxBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oIj4KICAgICAgIDxGaWx0ZXI+YWNjZXNzaWJpbGl0
eVx3aW48L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEwNjY1LDYgKzEwNjc0LDEyIEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCI+
CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8
L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuaCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4N2QyZTc3Li45NTdkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjM0LDYgKzMyMzQs
NyBAQAogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3
M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKIAkJ
OTAwMTc4ODAxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RTEy
RTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLzsgfTsKIAkJ
OTAwMTc4ODExMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0YxMkUw
MzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OworCQk5MUM5
RjJGOTFBRTNCRUIwMDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxQzlGMkY4MUFFM0JFMjQw
MDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07CiAJ
CTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzA1QjI0RDA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDVCMjRDMDk4RjFCNkIwMEMyODg1
NSAvKiBUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC02Mzc5LDYgKzYzODAsMTAgQEAKIAkJRjUyQUQ1RTQxNTM0MjQ1RjAwNTlGQkU2IC8q
IEVtcHR5Q2xpZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTJBRDVFMzE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLzsg
fTsKIAkJRjU0NEY3ODgxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NDRGNzg2MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi87IH07CiAJCUY1NDRGNzg5MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODcxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggKi87IH07CisJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi87IH07CisJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyog
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBOTFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTcxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLzsg
fTsKKwkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07
CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYx
MkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgKi87IH07CkBAIC0xMDQ2Niw2ICsxMDQ3MSw3IEBACiAJCTkwMDE3NzNG
MTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgcGF0aCA9IGNhbnZhcy9P
RVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RjEyRTAzNzA3
MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8q
IFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdl
R3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAyQjBCRTBENzlGODJD
MDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA1QjI0QzA5OEYx
QjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA2LDYgKzE0MDEyLDEw
IEBACiAJCUY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW1wdHlDbGllbnRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRm
b3JtTG9jYWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU0NEY3ODcxNUNG
QjJBODAwQUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtTG9jYWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY1NTI4REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
NzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERB
ODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VUZXh0SW5wdXRUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAv
KiBCdXR0b25JbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQnV0dG9uSW5wdXRUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
NjEzLDYgKzE1NjIzLDcgQEAKIAkJCQkyOUE4MTIxMzBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmggKi8sCiAJCQkJMjk4MUNBQUYxMzE4MjJFQzAwRDEyRjJBIC8qIEFY
T2JqZWN0Q2FjaGUuY3BwICovLAogCQkJCTI5QTgxMjFBMEZCQjlDMUQwMDUxMDI5MyAvKiBBWE9i
amVjdENhY2hlLmggKi8sCisJCQkJOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGFjY2Vzc2liaWxpdHk7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTc3NDEsNiArMTc3NTIsMTAgQEAKIAkJCQk5
MzMwOURCODA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuaCAqLywKIAkJCQk5QjMyQ0RBODEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3Np
dGlvbi5jcHAgKi8sCiAJCQkJOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLywKKwkJCQlGNTUyOERBNDFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REEzMUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oICovLAorCQkJCUY1NTI4REE3
MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAg
Ki8sCisJCQkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmggKi8sCiAJCQkJQTg5Q0NDNTAwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCAqLywKIAkJCQlBODlDQ0M1MTBGNDRFOTgxMDBCNURB
MTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCQTA5OUU2
NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovLApAQCAtMjM2Njgs
NiArMjM2ODMsNyBAQAogCQkJCTZDNTY4Q0IxMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwRkFGMTQ5ODAwRDQwMEZCNUJEOCAv
KiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBNEY2NTcyMUFBOTk3
RjEwMEUzOENERCAvKiBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REQ3MDk5RTY0OTIwMDU2
RTU4MSAvKiBBcHBlbmROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkQw
REI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEY2QkJGMERCNTVDREMwMDFEQjc5NCAvKiBBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU1OTAsNiArMjU2MDYsNyBAQAogCQkJCUJDNjBEQTNBMEQyQTMwMjgw
MEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hN
TEh0dHBSZXF1ZXN0VXBsb2FkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQ0U1M0Y3MEE4RDE5NDcwMDIyOTQ3RCAvKiBKU1hNTFNlcmlhbGl6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNzYyQzc0MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZh
bHVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREI0QTBEMkEzRDFFMDBCOTkxOEYgLyog
SlNYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjY0Miw2ICsyNjY1OSw3IEBA
CiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzQzFENDI4MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E2OTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4M0MxRDQyOTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aEFicy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MkExNzhENUFC
NDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QTZEMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpYy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODM5Myw2ICsyODQxMSw3IEBACiAJCQkJNTEw
MTkyRDExOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkxOTBENkI5RDBDMDAzODUxQjkgLyogSW1hZ2VEYXRh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI1MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFn
ZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE2MUFDMTAzM0UwMDBFRjdB
RCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTVCM0RDMTEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1h
Yy5tbSBpbiBTb3VyY2VzICovLApAQCAtMjk4MzYsNiArMjk4NTUsNyBAQAogCQkJCUZFMzZGRDE2
MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQTJFNkU1OTBDQzU1MjEzMDA0QTIwNjIgLyogU1FMVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDQ3NjUzMUIxMzMxNzA5OTAwMDZCNzg5IC8qIFNTTEtleUdlbmVy
YXRvcklPUy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNTUyOERBOTFBQzEwOURGMDAwRUY3QUQg
LyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzdGQTYyRTBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0
ZXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGEwMGIxNWMuLjI1NjhiMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTAsNiArOTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKKy8vIFBvc3QgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMg
Zm9yIHBhc3N3b3JkIGZpZWxkcyBvciBlbGVtZW50cyBjb250YWluZWQgaW4gcGFzc3dvcmQgZmll
bGRzIGF0IGEgNDBoeiBpbnRlcnZhbCB0byB0aHdhcnQgYW5hbHlzaXMgb2YgdHlwaW5nIGNhZGVu
Y2UKK3N0YXRpYyBkb3VibGUgQWNjZXNzaWJpbGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmlj
YXRpb25JbnRlcnZhbCA9IDAuMDI1OworCiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFY
Q29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZTo6Z2V0SWdub3JlZChBWElEIGlkKSBjb25zdAog
ewogICAgIEhhc2hNYXA8QVhJRCwgQ2FjaGVkQVhPYmplY3RBdHRyaWJ1dGVzPjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtX2lkTWFwcGluZy5maW5kKGlkKTsKQEAgLTEyOSw2ICsxMzIsNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoYm9v
bCBmbGFnKQogQVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9ub3RpZmljYXRpb25Qb3N0VGlt
ZXIoKnRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKKyAg
ICAsIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIoKnRoaXMsICZBWE9iamVjdENhY2hl
OjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQogewogfQogCkBAIC03MDUsNyAr
NzA5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgp
CiAgICAgUmVmPERvY3VtZW50PiBwcm90ZWN0b3JGb3JDYWNoZU93bmVyKG1fZG9jdW1lbnQpOwog
ICAgIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKICAgICAKLSAgICAvLyBJbiBEUlQs
IHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1
ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJl
aGF2aW9yCisgICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5k
ZW5jeSB0byBpbW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBj
YW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yCiAgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0
aW9uIGxpc3QgaXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0
IHRoZSBzdGFydC4KICAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9ub3RpZmlj
YXRpb25zVG9Qb3N0KTsKICAgICAKQEAgLTc0Miw2ICs3NDYsMjAgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgICAgICAgICBjaGlsZHJlbkNo
YW5nZWQob2JqLT5wYXJlbnRPYmplY3QoKSk7CiAgICAgfQogfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQoreworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOworCisg
ICAgLy8gSW4gdGVzdHMsIHBvc3Rpbmcgbm90aWZpY2F0aW9ucyBoYXMgYSB0ZW5kZW5jeSB0byBp
bW1lZGlhdGVseSBxdWV1ZSB1cCBvdGhlciBub3RpZmljYXRpb25zLCB3aGljaCBjYW4gbGVhZCB0
byB1bmV4cGVjdGVkIGJlaGF2aW9yCisgICAgLy8gd2hlbiB0aGUgbm90aWZpY2F0aW9uIGxpc3Qg
aXMgY2xlYXJlZCBhdCB0aGUgZW5kLiBJbnN0ZWFkIGNvcHkgdGhpcyBsaXN0IGF0IHRoZSBzdGFy
dC4KKyAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBXVEY6Om1vdmUobV9wYXNzd29yZE5vdGlmaWNh
dGlvbnNUb1Bvc3QpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBub3RpZmljYXRpb24gOiBub3Rp
ZmljYXRpb25zKQorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxl
UG9zaXRpb24oKSk7CisjZW5kaWYKK30KICAgICAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5v
dGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBBWE5vdGlmaWNhdGlvbiBub3RpZmlj
YXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCwgUG9zdFR5cGUgcG9zdFR5cGUpCiB7CkBAIC04
NTAsMTYgKzg2OCwyMjMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHBvc3ROb3RpZmljYXRpb24ocmVuZGVy
ZXIsIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwog
fQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUq
IG5vZGUsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKKyNpZm5kZWYgTkRFQlVHCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNob3dJbnRl
bnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgJmludGVudCkKK3sKKyAgICBzd2l0Y2gg
KGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgor
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgZGF0YUxvZygiRWRpdDo6Iik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToK
KyAgICAgICAgZGF0YUxvZygiTW92ZTo6Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBkYXRhTG9nKCJFeHRl
bmQ6OiIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkg
eworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0OgorICAgICAgICBzd2l0Y2ggKGlu
dGVudC5jaGFuZ2UpIHsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAg
ICAgICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgICAgIGRhdGFMb2coIkRlbGV0ZSIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgICAgICAgICBkYXRhTG9nKCJJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICAgICAgZGF0YUxvZygi
RGljdGF0aW9uSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIlR5cGluZ0luc2VydCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAg
ICAgICAgICBkYXRhTG9nKCJDdXQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgICAgICBkYXRhTG9nKCJQYXN0ZSIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24u
ZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93
bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25vd246OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAg
ICAgICAgZGF0YUxvZygiQmVnaW5uaW5nOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGRhdGFMb2co
IkVuZDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIlByZXZpb3VzOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICBkYXRhTG9nKCJOZXh0OjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6Cisg
ICAgICAgICAgICBkYXRhTG9nKCJEaXNjb250aWd1b3VzOjoiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24p
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dDoKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSkg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd246Cisg
ICAgICAgICAgICAgICAgZGF0YUxvZygiVW5rbm93biIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjoK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOgor
ICAgICAgICAgICAgICAgIGRhdGFMb2coIldvcmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIkxpbmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZToKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDoKKyAgICAg
ICAgICAgICAgICBkYXRhTG9nKCJQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlOgorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIlBhZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDoKKyAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJEb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbDoKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJBbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IGRhdGFMb2coIi1TeW5jIik7CisgICAgZGF0YUxvZygiXG4iKTsKK30KKyNlbmRpZgorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgaW50ZW50KQoreworICAgIG1fdGV4dFNlbGVjdGlvbkludGVudCA9IGludGVudDsKK30K
Kworc3RhdGljIGJvb2wgaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQoreworICAgIHJldHVybiBvYmplY3QgJiYgKG9i
amVjdC0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqZWN0LT5pc0NvbnRhaW5lZEJ5UGFzc3dvcmRG
aWVsZCgpKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKGludGVudC50eXBlID09
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24pCisgICAgICAgIGludGVudCA9IG1fdGV4dFNl
bGVjdGlvbkludGVudDsKKwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CiAKLSAgICAvLyBEZWxlZ2F0ZSBvbiB0aGUgcmlnaHQgcGxhdGZvcm0KLSAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmogPSBnZXRPckNyZWF0ZShub2RlKTsKLSAgICBub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iaiwgdGV4dENoYW5nZSwgb2Zmc2V0LCB0ZXh0KTsKKyAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyAgICBp
ZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChpc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3Qg
PSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRl
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBpbnRlbnQsIHNlbGVjdGlvbik7Cisj
ZWxzZQorICAgIHBvc3ROb3RpZmljYXRpb24obm9kZS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNo
ZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICBV
TlVTRURfUEFSQU0oaW50ZW50KTsKKyAgICBVTlVTRURfUEFSQU0oc2VsZWN0aW9uKTsKKyNlbmRp
ZgorCisgICAgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBBU1NFUlQodHlwZSAhPSBBWFRleHRFZGl0VHlwZVVua25vd24pOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHR5cGUsIHRleHQs
IHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZSh0eXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2
YWxlbnQoKS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCB0ZXh0KTsKKyNlbmRpZgorfQorCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSog
bm9kZSwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoZGVsZXRpb25UeXBlID09IEFYVGV4dEVkaXRU
eXBlRGVsZXRlKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZUlu
c2VydCB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlVHlwaW5nIHx8IGluc2VydGlv
blR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRl
eHRFZGl0VHlwZVBhc3RlKTsKKworICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1
dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QgPSBnZXRPckNyZWF0ZShu
b2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlm
IChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihvYmplY3QpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKTsKKyNlbHNlCisgICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShkZWxldGlvblR5cGUpLCBwb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGRlbGV0ZWRU
ZXh0KTsKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGluc2VydGlvblR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVu
dCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGluc2VydGVkVGV4dCk7CisjZW5kaWYKK30K
KworYm9vbCBBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCit7CisgICAgaWYgKCFpc1Bhc3N3b3Jk
RmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0gb2Jq
ZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgaWYgKCFvYnNlcnZhYmxlT2JqZWN0KSB7Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAvLyByZXR1cm4gdHJ1ZSBldmVu
IHRob3VnaCB0aGUgZW5xdWV1ZSBkaWRuJ3QgaGFwcGVuIGJlY2F1c2UgdGhpcyBpcyBhIHBhc3N3
b3JkIGZpZWxkIGFuZCBjYWxsZXIgc2hvdWxkbid0IHBvc3QgYSBub3RpZmljYXRpb24KKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9u
c1RvUG9zdC5jb250YWlucyhvYnNlcnZhYmxlT2JqZWN0KSkgeworICAgICAgICBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlm
ICghbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAg
ICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoQWNjZXNzaWJp
bGl0eVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZhbCk7CisgICAgfQorCisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnROb3RpZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQp
CkBAIC0xMDg0LDYgKzEzMDksMTQgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2Rl
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RD
YWNoZTo6cm9vdFdlYkFyZWEoKQoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmpl
Y3QgPSB0aGlzLT5yb290T2JqZWN0KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2Jq
ZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmpl
Y3QpLndlYkFyZWFPYmplY3QoKTsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShj
YWNoZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggYmZhOTI3Ny4uMzBhN2E0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
QVhPYmplY3RDYWNoZV9oCiAjZGVmaW5lIEFYT2JqZWN0Q2FjaGVfaAogCisjaW5jbHVkZSAiQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0Lmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KQEAgLTY3LDYgKzY4LDEw
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxBWElELCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+
IG1faWRNYXBwaW5nOwogfTsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK2VudW0gQVhUZXh0Q2hh
bmdlIHsgQVhUZXh0SW5zZXJ0ZWQsIEFYVGV4dERlbGV0ZWQgfTsKKyNlbmRpZgorCiBlbnVtIFBv
c3RUYXJnZXQgeyBUYXJnZXRFbGVtZW50LCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50IH07CiAKIGVu
dW0gUG9zdFR5cGUgeyBQb3N0U3luY2hyb25vdXNseSwgUG9zdEFzeW5jaHJvbm91c2x5IH07CkBA
IC0xODksMTIgKzE5NCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQgPSBU
YXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNseSk7CiAKLSAgICBlbnVt
IEFYVGV4dENoYW5nZSB7Ci0gICAgICAgIEFYVGV4dEluc2VydGVkLAotICAgICAgICBBWFRleHRE
ZWxldGVkLAotICAgIH07CisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd0ludGVudChjb25z
dCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOworI2VuZGlmCisKKyAgICB2b2lkIHNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpOwogCi0gICAgdm9pZCBub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0
LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9h
ZGluZ1N0YXJ0ZWQsCkBAIC0yMTMsMTIgKzIyMSwyNCBAQCBwdWJsaWM6CiAgICAgQVhDb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZUNhY2hlKiBjb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkgeyBy
ZXR1cm4gbV9jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlLmdldCgpOyB9CiAKICAgICBEb2N1
bWVudCYgZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9Ci0gICAgCisKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lk
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmlj
YXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBu
b2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFj
ZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mKTsKKyNlbHNlCisgICAgc3RhdGljIEFYVGV4dENoYW5nZSB0ZXh0
Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5cGUpOworICAgIHZvaWQgbm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIHZvaWQgZnJhbWVMb2Fk
aW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhMb2Fk
aW5nRXZlbnQpOwogICAgIHZvaWQgdGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwog
ICAgIHZvaWQgbGFiZWxDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTIyOSw2ICsyNDksOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc05vZGVJblVzZShOb2RlKiBuKSB7IHJldHVybiBtX3RleHRNYXJr
ZXJOb2Rlcy5jb250YWlucyhuKTsgfQogCiBwcml2YXRlOgorICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIHJvb3RXZWJBcmVhKCk7CisgICAgCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAg
SGFzaE1hcDxBWElELCBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fb2JqZWN0czsKICAg
ICBIYXNoTWFwPFJlbmRlck9iamVjdCosIEFYSUQ+IG1fcmVuZGVyT2JqZWN0TWFwcGluZzsKQEAg
LTI0NCw2ICsyNjYsMTEgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX25vdGlmaWNhdGlvblBvc3RU
aW1lcjsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Piwg
QVhOb3RpZmljYXRpb24+PiBtX25vdGlmaWNhdGlvbnNUb1Bvc3Q7CiAgICAgdm9pZCBub3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgVGltZXIgbV9wYXNzd29yZE5vdGlmaWNhdGlv
blBvc3RUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX3Bh
c3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKyAgICB2b2lkIHBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQoKTsKKwogICAgIHZvaWQgaGFuZGxlTWVudU9wZW5lZChOb2RlKik7CiAg
ICAgdm9pZCBoYW5kbGVMaXZlUmVnaW9uQ3JlYXRlZChOb2RlKik7CiAgICAgdm9pZCBoYW5kbGVN
ZW51SXRlbVNlbGVjdGVkKE5vZGUqKTsKQEAgLTI1MSw2ICsyNzgsMTAgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZm9jdXNlZEltYWdlTWFwVUlFbGVtZW50KEhU
TUxBcmVhRWxlbWVudCopOwogICAgIAogICAgIEFYSUQgZ2V0QVhJRChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Kik7CisKKyAgICBib29sIGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG1f
dGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVy
CkBAIC0zMDgsOCArMzM5LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Ny
b2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSB7
IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlzSWdub3JlZChSZW5kZXJP
YmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9B
bmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlw
ZSkgeyB9CkBAIC0zMjAsNiArMzUyLDE0IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJl
bW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lkZ2V0
KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVk
Q2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIHsgfQorI2Vsc2UKK2lubGluZSBBWFRleHRDaGFuZ2UgQVhPYmplY3RDYWNoZTo6dGV4dENo
YW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKSB7IHJldHVybiBBWFRleHRJbnNlcnRlZDsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikgeyB9CisjZW5kaWYKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVjMjY0ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaApAQCAt
MCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorI2RlZmluZSBBWFRleHRTdGF0
ZUNoYW5nZUludGVudF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2VudW0gQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duLAorICAg
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK307
CisKK2VudW0gQVhUZXh0RWRpdFR5cGUgeworICAgIEFYVGV4dEVkaXRUeXBlVW5rbm93biwKKyAg
ICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRlbGV0ZQorICAgIEFYVGV4
dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0CisgICAgQVhUZXh0RWRpdFR5
cGVUeXBpbmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgQVhUZXh0RWRpdFR5cGVEaWN0YXRp
b24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAgQVhUZXh0RWRpdFR5cGVDdXQsIC8vIERl
bGV0ZSB2aWEgQ3V0CisgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJbnNlcnQgdmlhIFBhc3Rl
Cit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmcsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAgIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblByZXZpb3VzLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQsCisg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cworfTsKKworZW51bSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSB7CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAorICAgIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhZ2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCwK
KyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBBbGwgZ3JhbnVsYXJpdHkgcmVw
cmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hvbGUgZG9jdW1lbnQgYXMgYSBz
aW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNvbWUgb3RoZXIgZ3JhbnVsYXJp
dHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3VtZW50IHdpbGwgbm90IHJlc3Vs
dCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24uCit9OworCitzdHJ1Y3QgQVhUZXh0
U2VsZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uOworICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5OworfTsKKworc3RydWN0IEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZTsK
KyAgICB1bmlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb247CisgICAgICAg
IEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICB9OworICAgIGJvb2wgaXNTeW5jaHJvbml6aW5n
IHsgZmFsc2UgfTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwgQVhUZXh0U2VsZWN0
aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAgICA6IHR5cGUodHlwZSkK
KyAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgIHsgfQorCisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQorICAgICAgICA6IHR5cGUoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgLCBjaGFuZ2UoY2hhbmdlKQorICAgIHsg
fQorCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5
cGUsIGJvb2wgaXNTeW5jaHJvbml6aW5nKQorICAgICAgICA6IHR5cGUodHlwZSkKKyAgICAgICAg
LCBzZWxlY3Rpb24oKQorICAgICAgICAsIGlzU3luY2hyb25pemluZyhpc1N5bmNocm9uaXppbmcp
CisgICAgeworICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
KTsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZiAvLyBBWFRleHRTdGF0ZUNoYW5nZUludGVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjQzOGU4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
CkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzUGFz
c3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZp
ZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpCit7CisgICAgTm9kZSog
bm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRv
SW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVudC0+aXNQYXNzd29yZEZp
ZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBFbGVtZW50KiBl
bGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIGlmICghZWxlbWVudCB8fCAhaXM8SFRN
TElucHV0RWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICByZXR1
cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworCisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CiB7
CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCAzZTc1NzJm
Li5hODJiZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRl
eCA1YTI3ZWE4Li5jYjMzODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2NDYsNCArMjY0NiwxNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2go
Ym9vbCBvbikKIH0KICNlbmRpZgogCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFp
bmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9k
ZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlm
IChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIHJl
dHVybiBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PigqZWxlbWVudCkuaXNQYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uODE2YzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTQ2Myw2ICs0NjMs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZpZWxkT3JD
b250YWluaW5nUGFzc3dvcmRGaWVsZCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gV2ViQXJlYVJv
bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDJkOTI5OTYuLmY2NTVkNTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcApAQCAtMTQ4OCwxNCArMTQ4OCwxNyBAQCBQbGFpblRleHRSYW5nZSBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB2b2lkIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBsYWlu
VGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7Cisg
ICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KHJhbmdlLmxlbmd0aCA/IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93bmNhc3Q8UmVuZGVyVGV4
dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgICAg
IHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0LCByYW5nZS5zdGFydCAr
IHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBOb2RlKiBub2Rl
ID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3Rh
cnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAotICAgICAgICBQb3NpdGlv
bihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvciksIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3Ro
LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVBTSk7CisgICAg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbmV3SW50ZW50KHJhbmdlLmxlbmd0aCA/IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUsIHRydWUpOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksIG5ld0ludGVudCk7CiB9CiAKIFVSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MCwxMyArMTk2MywxNiBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlz
aWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8fCByYW5nZS5lbmQuaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1ha2Ugc2VsZWN0aW9uIGFu
ZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVybyBsZW5ndGgsIHRoZW4g
bW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkK
KyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisgICAgICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmlnZ2VyZWQpOworICAgIH0K
ICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNp
YmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAgICBtX3JlbmRlcmVy
LT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIHRy
dWUpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAppbmRleCBjNjJjNzUzLi4wYzQ2NGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oCkBAIC00Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldygpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJpbGl0
eURldGFjaG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKikgb3ZlcnJpZGU7CiAKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyopOwogICAgIApAQCAtNzEs
NyArNzMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFy
ZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB3
ZWJBcmVhT2JqZWN0KCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKiBhZGRDaGlsZFNj
cm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2b2lkIHJlbW92ZUNoaWxkU2Nyb2xsYmFyKEFjY2Vz
c2liaWxpdHlPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKaW5kZXggNTg1MmEwZi4uNzM2NmU2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0
ay5jcHAKQEAgLTI0Myw2ICsyNDMsMjQgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQVgKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogfQorICAgIAorQVhUZXh0Q2hhbmdlIEFYT2JqZWN0Q2FjaGU6OnRl
eHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZURlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dERlbGV0ZWQ7CisgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3Rl
OgorICAgICAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7Cit9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsIEFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi5iNjIzMzY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0K
QEAgLTk1LDggKzk1LDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3Jh
cHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5n
XTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25z
dCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCiB7CisgICAgcG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iamVjdCwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNj
ZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihvYmplY3QsIEFYVmFsdWVDaGFuZ2VkKTsKIH0KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1t
CmluZGV4IGIzMDBlNzcuLjZiNzkwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNTMgQEAKICNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExp
dmVSZWdpb25DcmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlQ2hhbmdlVHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VU
eXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVTeW5jS2V5IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRU
eXBlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBl
IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVz
IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgor
I2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5n
ZVZhbHVlTGVuZ3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlU3RhcnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVl
U3RhcnRNYXJrZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUg
QCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKKy8vIFZlcnkgbGFyZ2Ugc3Ry
aW5ncyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNlIG9mIG5vdGlmaWNhdGlv
bnMsIHNvIHRoaXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0IGFuIGF2ZXJhZ2UgcGFy
YWdyYXBoIG9yIGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJpbmdzIHRvIGJlIGxhcmdl
IGVub3VnaCB0byBodXJ0IHBlcmZvcm1hbmNlLgorc3RhdGljIGNvbnN0IE5TVUludGVnZXIgQVhW
YWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOworCiAvLyBUaGUgc2ltcGxlIENvY29h
IGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC02MCw2ICsxMDcsMjEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hX
cmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICBvYmotPnNldFdyYXBwZXIod3Jh
cHBlci5nZXQoKSk7CiB9CiAKK3N0YXRpYyBCT09MIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9u
c0ZvclRlc3RzID0gZmFsc2U7CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCit7CisgICAgYXhTaG91bGRSZXBvc3RO
b3RpZmljYXRpb25zRm9yVGVzdHMgPSB2YWx1ZTsKK30KKworc3RhdGljIHZvaWQgQVhQb3N0Tm90
aWZpY2F0aW9uV2l0aFVzZXJJbmZvKGlkIG9iamVjdCwgTlNTdHJpbmcgKm5vdGlmaWNhdGlvbiwg
aWQgdXNlckluZm8pCit7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhV
c2VySW5mbyhvYmplY3QsIG5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFRvIHNpbXBs
aWZ5IG1vbml0b3JpbmcgZm9yIG5vdGlmaWNhdGlvbnMgaW4gdGVzdHMsIHJlcG9zdCBhcyBhIHNp
bXBsZSBOU05vdGlmaWNhdGlvbiBpbnN0ZWFkIG9mIGZvcmNpbmcgdGVzdCBpbmZyYXN0dWN0dXJl
IHRvIHNldHVwIGFuIElQQyBjbGllbnQgYW5kIGRvIGFsbCB0aGUgdHJhbnNsYXRpb24gYmV0d2Vl
biBXZWJDb3JlIHR5cGVzIGFuZCBwbGF0Zm9ybSBzcGVjaWZpYyBJUEMgdHlwZXMgYW5kIGJhY2sK
KyAgICBpZiAoVU5MSUtFTFkoYXhTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMpKQor
ICAgICAgICBbb2JqZWN0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0
aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlv
biBub3RpZmljYXRpb24pCiB7CiAgICAgaWYgKCFvYmopCkBAIC0xNDksMTUgKzIxMSwxMzggQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIEFTU0VSVChbb2JqLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eUlzSWdub3JlZF0gfHwgdHJ1ZSk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgCi0gICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbihvYmotPndy
YXBwZXIoKSwgbWFjTm90aWZpY2F0aW9uKTsKLSAgICAKLSAgICAvLyBVc2VkIGJ5IERSVCB0byBr
bm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgotICAgIFtvYmotPndyYXBwZXIoKSBh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CisKKyAgICBB
WFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNh
dGlvbiwgbmlsKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2ln
bmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbikKIHsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEo
KTsKKworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVE
aWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdp
dGhDYXBhY2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0gPSBAWUVTOworICAgIGlm
IChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChpbnRl
bnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAgY2FzZSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRlbnQuc2VsZWN0aW9uLmRp
cmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9u
KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91
czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAg
ICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGln
dW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAg
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAg
IGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlclJh
bmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0
aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVdID0gdGV4dE1hcmtlclJh
bmdlOworICAgIH0KKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBw
ZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsK
KyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7
CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+d3JhcHBlcigpLCBO
U0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7
CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworfQorCitzdGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0
UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwg
QVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcgKnRleHQgPSAoTlNTdHJpbmcgKilz
dHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5ndGhdOworICAgIGlmICgh
bGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNo
YW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsK
KyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9IEAodHlwZSk7CisgICAg
aWYgKGxlbmd0aCA+IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoKSB7CisgICAgICAgIGNo
YW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdID0gQChsZW5ndGgpOwor
ICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDpBWFZhbHVlQ2hhbmdlVHJ1bmNh
dGlvbkxlbmd0aF07CisgICAgfQorICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAgICAgICAg
aWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlckZvclZpc2li
bGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsKKyAgICB9CisgICAgcmV0
dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgb2Jq
ZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0
YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBp
bml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0
ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIGlm
IChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnko
b2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisgICAgaWYgKGlkIHdyYXBw
ZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2Vy
SW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8pOworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhv
YmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9u
LCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBp
ZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAq
dXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6
NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0g
PSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmNo
YW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdOworICAg
IGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkob2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAg
IFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5n
ZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqZWN0LCBpbnNlcnRpb25UeXBl
LCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNo
YW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc10gPSBj
aGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYgKGlkIHdyYXBwZXIgPSBv
YmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFy
ZWEgPSByb290V2ViQXJlYSgpOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlv
bldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hh
bmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFVzZWQgYnkgRFJUIHRvIGtub3cg
d2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3dlYkFyZWEtPndyYXBwZXIoKSBh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdl
ZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAgICBOU0FjY2Vzc2liaWxpdHlQ
b3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+d3JhcHBlcigpLCBOU0FjY2Vzc2li
aWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5
IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgorICAgIFtvYmplY3Qt
PndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJpbGl0
eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAgICBbdXNl
ckluZm8gcmVsZWFzZV07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0
LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5oCmluZGV4IDVlMDZjMzUuLmI5MzQxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyQmFzZS5oCkBAIC01Niw4ICs1Niw5IEBAIGNsYXNzIFZpc2libGVQb3Np
dGlvbjsKIC0gKE5TU3RyaW5nICopYXJpYUxhbmRtYXJrUm9sZURlc2NyaXB0aW9uOwogCiAtIChp
ZClhdHRhY2htZW50VmlldzsKLS8vIFVzZWQgdG8gaW5mb3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5v
dGlmaWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2VkIGJ5IERSVC4KKy8vIFVzZWQgdG8gaW5m
b3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2Vk
IGJ5IHRlc3RzLgogLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0
cmluZyAqKW5vdGlmaWNhdGlvbk5hbWU7CistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3Rp
ZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9u
YXJ5ICopdXNlckluZm87CiAKIC0gKENHUGF0aFJlZiljb252ZXJ0UGF0aFRvU2NyZWVuU3BhY2U6
KFdlYkNvcmU6OlBhdGggJilwYXRoOwogLSAoQ0dQb2ludCljb252ZXJ0UG9pbnRUb1NjcmVlblNw
YWNlOihXZWJDb3JlOjpGbG9hdFBvaW50ICYpcG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UubW0KaW5kZXggNWRkZmMzYS4uODcxMGRjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQpAQCAtMzgzLDEzICszODMsNjkgQEAgc3RhdGlj
IEJPT0wgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM7CiArICh2b2lkKWFj
Y2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOihCT09MKXJlcG9zdAogewog
ICAgIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zID0gcmVwb3N0OworI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9TKQorICAgIEFYT2JqZWN0Q2FjaGU6OnNl
dFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhyZXBvc3QpOworI2VuZGlmCiB9CiAK
IC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3Rp
ZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmlj
YXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5v
dGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGljIE5TQXJyYXkgKmFycmF5
UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7CisgICAgQVNTRVJUKFthcnJh
eSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5TTXV0YWJsZUFycmF5ICpt
dXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZvciAoTlNVSW50ZWdlciBp
ID0gMDsgaSA8IFttdXRhYmxlQXJyYXkgY291bnRdOykgeworICAgICAgICBpZCB2YWx1ZSA9IG11
dGFibGVBcnJheVtpXTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rp
b25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0
SW5kZXg6aSB3aXRoT2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSld
OworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11d
KQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppIHdpdGhP
YmplY3Q6YXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNlIGlm
ICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tp
bmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkgeworICAgICAgICAgICAgW211dGFibGVBcnJh
eSByZW1vdmVPYmplY3RBdEluZGV4OmldOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IH0KKyAgICAgICAgaSsrOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVBcnJheSBhdXRvcmVs
ZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnlSZW1vdmluZ05vbkpT
T05UeXBlcyhOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAgQVNTRVJUKFtkaWN0aW9u
YXJ5IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAgICBOU011dGFibGVE
aWN0aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11dGFibGVDb3B5XTsK
KyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgeworICAgICAgICBpZCB2YWx1
ZSA9IGRpY3Rpb25hcnlba2V5XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltO
U0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0g
PSBkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOworICAgICAgICBlbHNlIGlm
IChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICAgICAgbXV0
YWJsZURpY3Rpb25hcnlba2V5XSA9IGFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOwor
ICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11d
IHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAg
IFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAgICB9CisgICAg
cmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1l
IHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChhY2Nlc3NpYmls
aXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHVz
ZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlm
aWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERS
VE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOworICAgICAgICBB
U1NFUlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IG5p
bDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEgKnVzZXJJbmZv
RGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpkaWN0aW9uYXJ5
UmVtb3ZpbmdOb25KU09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldyaXRpbmdPcHRp
b25zKTAgZXJyb3I6bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEpIHsKKyAgICAg
ICAgICAgICAgICBOU1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBp
bml0V2l0aERhdGE6dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsK
KyAgICAgICAgICAgICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAgICAgICAgICAg
IGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lLCBAInVzZXJJ
bmZvIiA6IHVzZXJJbmZvU3RyaW5nfTsKKyAgICAgICAgICAgICAgICBbdXNlckluZm9TdHJpbmcg
cmVsZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbmZvKQor
ICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlvbk5h
bWV9OworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3RO
b3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZv
OmluZm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgK
aW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQp
dGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNvcmU6OlZpc2libGVQb3Np
dGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24p
ZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uOihjb25zdCBX
ZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBlbmQKIAogI2VuZGlmIC8v
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMWRlYjRkYi4uODM3OTNkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTI5LDEzICsyOSwx
NiBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCi0gICAg
OiBTaW1wbGVFZGl0Q29tbWFuZChwYXJlbnQtPmRvY3VtZW50KCkpCitBcHBlbmROb2RlQ29tbWFu
ZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBh
c3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogU2lt
cGxlRWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwg
bV9wYXJlbnQocGFyZW50KQogICAgICwgbV9ub2RlKG5vZGUpCiB7CkBAIC00NiwxNSArNDksMjMg
QEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFp
bmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9wYXJlbnQtPmhhc0VkaXRh
YmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBz
ZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFu
Z2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUpCiB7
Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgpOworICAgIGlmICghbm9k
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgdGV4dCA9IG5vZGUt
Pm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVicmVha3MgaW4gdGhpcyBj
b21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlmICh0ZXh0ID09ICJcbiIp
CiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5k
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwgMCwgbm9kZVZhbHVlKTsKKyAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obm9k
ZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0
aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikp
OworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCkBAIC02NCwx
OCArNzUsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX3Bh
cmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJy
ZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAKIHZvaWQgQXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3BhcmVudC0+aGFzRWRpdGFibGVT
dHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgLy8gTmVlZCB0byBub3Rp
ZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRE
ZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUu
Z2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+cmVtb3ZlKElHTk9SRV9F
WENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5o
CmluZGV4IGQ2NGIwNGUuLmY3ODI5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVu
ZE5vZGVDb21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFwcGVuZE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKKyAgICBzdGF0
aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2Rl
PiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwZW5kTm9kZUNvbW1hbmQo
cGFyZW50LCBub2RlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVD
b21tYW5kKHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwg
UGFzc1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250
YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4sIEVkaXRBY3Rpb24pOwogCiAgICAg
dmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFw
cGx5KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCmluZGV4IDdjNDE4YzIuLmNhYjg4MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC0xMjMsOSArMTIzLDggQEAgUmVmUHRyPEhUTUxF
bGVtZW50PiBjcmVhdGVTdHlsZVNwYW5FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKIH0KIAog
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBFUHJv
cGVydHlMZXZlbCBwcm9wZXJ0eUxldmVsKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9j
dW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlv
bikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihl
ZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKHByb3BlcnR5TGV2ZWwpCiAgICAg
LCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQogICAgICwg
bV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTEzNiw5ICsxMzUs
OCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eQogfQogCiBBcHBseVN0eWxlQ29tbWFuZDo6QXBw
bHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0
eWxlLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0g
ICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZl
bChwcm9wZXJ0eUxldmVsKQogICAgICwgbV9zdGFydChzdGFydCkKICAgICAsIG1fZW5kKGVuZCkK
QEAgLTE0OSw5ICsxNDcsOCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eQogfQogCiBBcHBseVN0
eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50
LCBib29sIHJlbW92ZU9ubHksIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKLSAgICA6IENvbXBv
c2l0ZUVkaXRDb21tYW5kKGVsZW1lbnQtPmRvY3VtZW50KCkpCisgICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChlbGVtZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHls
ZShFZGl0aW5nU3R5bGU6OmNyZWF0ZSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdB
Y3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwoUHJvcGVydHlEZWZhdWx0KQogICAgICwgbV9z
dGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0oKSkKICAgICAsIG1fZW5k
KGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3RyZWFtKCkpCkBAIC0xNjMsOSArMTYwLDggQEAg
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCwgYm9vbCByZW1vdmVPbmwKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5
bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwg
SXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiBpc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1
bmN0aW9uLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCi0gICAgOiBDb21wb3NpdGVFZGl0Q29t
bWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0
aW5nQWN0aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5n
QWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwoUHJvcGVydHlEZWZh
dWx0KQogICAgICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0o
KSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3RyZWFtKCkpCkBAIC0y
MjYsMTEgKzIyMiw2IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIH0K
IH0KIAotRWRpdEFjdGlvbiBBcHBseVN0eWxlQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fZWRpdGluZ0FjdGlvbjsKLX0KLQogdm9pZCBBcHBseVN0eWxlQ29t
bWFuZDo6YXBwbHlCbG9ja1N0eWxlKEVkaXRpbmdTdHlsZSAqc3R5bGUpCiB7CiAgICAgLy8gdXBk
YXRlIGRvY3VtZW50IGxheW91dCBvbmNlIGJlZm9yZSByZW1vdmluZyBzdHlsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAppbmRleCBlOTllMzZhLi45ZGJlODcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCkBAIC03Miw3
ICs3Miw2IEBAIHByaXZhdGU6CiAgICAgQXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmLCBjb25z
dCBFZGl0aW5nU3R5bGUqLCBib29sICgqaXNJbmxpbmVFbGVtZW50VG9SZW1vdmUpKGNvbnN0IEVs
ZW1lbnQqKSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICAvLyBzdHlsZS1yZW1vdmFsIGhlbHBlcnMKICAgICBib29sIGlzU3R5bGVkSW5s
aW5lRWxlbWVudFRvUmVtb3ZlKEVsZW1lbnQqKSBjb25zdDsKQEAgLTEyMiw3ICsxMjEsNiBAQCBw
cml2YXRlOgogICAgIFBvc2l0aW9uIGVuZFBvc2l0aW9uKCk7CiAKICAgICBSZWZQdHI8RWRpdGlu
Z1N0eWxlPiBtX3N0eWxlOwotICAgIEVkaXRBY3Rpb24gbV9lZGl0aW5nQWN0aW9uOwogICAgIEVQ
cm9wZXJ0eUxldmVsIG1fcHJvcGVydHlMZXZlbDsKICAgICBQb3NpdGlvbiBtX3N0YXJ0OwogICAg
IFBvc2l0aW9uIG1fZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVk
aXRDb21tYW5kLmNwcAppbmRleCA4NDYxZWU3Li43MzQyZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNTgsNiArNTgsOCBAQAog
I2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNp
bmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCiAj
aW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY29wZWRFdmVu
dFF1ZXVlLmgiCkBAIC0xNjIsMTMgKzE2NCwzMCBAQCB2b2lkIEVkaXRDb21tYW5kQ29tcG9zaXRp
b246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2RlcykKIH0KICNlbmRpZgog
CitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbigpKSB7CisgICAgY2FzZSBFZGl0QWN0aW9u
Q3V0OgorICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVk
aXRUeXBlSW5zZXJ0OworICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlvbjoKKyAgICBjYXNlIEVk
aXRBY3Rpb25JbnNlcnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgY2FzZSBFZGl0
QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlw
ZVVua25vd247Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRp
dENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBwbHkoKTsKIH0KIAotQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkK
LSAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50KQorQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBv
c2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uKQorICAgIDogRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiB7CiB9CiAK
QEAgLTE4Nyw2ICsyMDYsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSgpCiAg
ICAgICAgIGNhc2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb246CiAgICAgICAgIGNhc2Ug
RWRpdEFjdGlvbkN1dDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ6CisgICAg
ICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRl
OgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CiAgICAgICAgICAgICBicmVhazsK
QEAgLTI5Niw3ICszMTYsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVTdHls
ZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIAogdm9pZCBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKIHsKLSAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVk
aXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRM
aW5lQnJlYWsoKQpAQCAtMzIyLDcgKzM0Miw3IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKIAogdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENo
aWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRl
KGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxO
b2RlPiByZWZDaGlsZCkKQEAgLTM3Myw3ICszOTMsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgY29uc3QgUG9z
aQogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5kTm9kZShQYXNzUmVmUHRyPE5vZGU+
IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50KQogewogICAgIEFTU0VSVChj
YW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQoKSkpOwotICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlKSk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJl
bnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTM5Nyw3ICs0MTcsNyBAQCB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1l
Q29udGVudAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUs
IGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1v
dmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQpAQCAtNTI1LDIw
ICs1NDUsMjEgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKIHZvaWQgQ29tcG9zaXRlRWRpdENv
bW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkp
Ci0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
dGV4dCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNl
bWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4g
ZGVsZXRlQ29tbWFuZCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoZGVsZXRl
Q29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0eSgpKQotICAgICAgICBh
cHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUo
bm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBv
ZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSwgZWRp
dGluZ0FjdGlvbigpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi5lY2IyODUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBA
IC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNsYXNzIEhUTUxFbGVtZW50
OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTU5LDYgKzYwLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAK
KyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKwogcHJpdmF0ZToKICAgICBF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlv
biwgRWRpdEFjdGlvbik7CiAKQEAgLTg5LDcgKzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
IHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYp
OworICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiwgRWRpdEFjdGlv
biA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICAgICAvLwogICAgIC8vIHN1Z2FyeS1zd2Vl
dCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gaGVscCBjcmVhdGUgYW5kIGFwcGx5IGVkaXQgY29t
bWFuZHMgaW4gY29tcG9zaXRlIGNvbW1hbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1Li4xZmEwMTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NSwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDEzICsyOSwxNSBAQAogI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50
KCkpCitEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+
ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9v
ZmZzZXQob2Zmc2V0KQogICAgICwgbV9jb3VudChjb3VudCkKQEAgLTQ1LDYgKzQ3LDExIEBAIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fb2Zmc2V0ICsgbV9jb3VudCA8PSBt
X25vZGUtPmxlbmd0aCgpKTsKIH0KIAorY29uc3QgU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBBU1NFUlQobV9ub2Rl
KTsKQEAgLTU4LDggKzY1LDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0Fw
cGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMg
YmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2li
bGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5k
ZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03Myw4ICs4MCw4IEBAIHZv
aWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIAogICAgIG1fbm9kZS0+
aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlm
IChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkp
KTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4uYTAzNWYxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
NiwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDE0ICszNCwxNyBAQCBjbGFzcyBUZXh0OwogCiBj
bGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5k
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQpCisgICAgc3RhdGljIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0K
IAotcHJpdmF0ZToKLSAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOworICAgIGNvbnN0IFN0cmluZyYg
ZGVsZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRWRp
dEFjdGlvbik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAy
YmJjNmVkLi5lYjNhNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTcyLDggKzcyLDggQEAgc3RhdGljIGJvb2wgaXNUYWJs
ZVJvd0VtcHR5KE5vZGUqIHJvdykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJv
b2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKLSAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnRE
ZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4
cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRp
bmdBY3Rpb24pCiAgICAgLCBtX2hhc1NlbGVjdGlvblRvRGVsZXRlKGZhbHNlKQogICAgICwgbV9z
bWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSht
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtOTAsOCArOTAsOCBAQCBEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBz
bWFydERlbAogewogfQogCi1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25D
b21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQotICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgpKQor
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDog
Q29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1
bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rpb25Ub0RlbGV0ZSh0cnVl
KQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtODg0LDE0ICs4ODQsNiBAQCB2
b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGNsZWFyVHJhbnNpZW50
U3RhdGUoKTsKIH0KIAotRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5n
QWN0aW9uKCkgY29uc3QKLXsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAg
IC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGll
cyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5
IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKLX0KLQogLy8g
Tm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQg
d2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCiAvLyB0eXBlIGEgY2hhcmFjdGVy
LCBCb2xkLCB0aGVuIGRlbGV0ZSB0aGUgY2hhcmFjdGVyIGFuZCBzdGFydCB0eXBpbmcuICBUaGUg
Qm9sZCB0eXBpbmcgc3R5bGUgc2hvdWxkbid0CiAvLyBzdGljayBhcm91bmQuICBEZWxldGlvbiBz
aG91bGQgcHJlc2VydmUgYSB0eXBpbmcgc3R5bGUgdGhhdCAqaXQqIHNldHMsIGhvd2V2ZXIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4
IGU1YmY1MWQuLjBhOWI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0zNCwyMyArMzQsMjIgQEAgY2xhc3MgRWRpdGluZ1N0eWxl
OwogCiBjbGFzcyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRD
b21tYW5kIHsgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5k
PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBi
b29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3Vw
ID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwg
c21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2Fu
aXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZjxEZWxl
dGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVm
PERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVs
ZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1h
cmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1
bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9v
bCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFy
a3VwLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAKIHByaXZhdGU6Ci0gICAgRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERl
bGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKTsKKyAgICBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24pOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbigpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdT
dHlsZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3Rh
dGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5k
LmNwcAppbmRleCBjMTczZGY0Li45MDhmZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNv
bW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6
ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVz
SW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFy
dCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4
dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1
cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxp
bmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0lu
TGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRl
eHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9J
bnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1
cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSwgRWRpdEFjdGlvbkRpY3RhdGlvbik7
CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkp
OwogfQogCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVj
dGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29t
bWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFj
dGlvbkRpY3RhdGlvbikpOwogfQogCiB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6OmNvbGxlY3REaWN0
YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKHNpemVfdCByYW5nZVN0YXJ0LCBzaXplX3QgcmFuZ2VM
ZW5ndGgsIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggNjM3ZDFlYi4uNmVmMzUwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBFZGl0QWN0aW9uVW5zcGVjaWZpZWQs
CisgICAgICAgIEVkaXRBY3Rpb25JbnNlcnQsCiAgICAgICAgIEVkaXRBY3Rpb25TZXRDb2xvciwK
ICAgICAgICAgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvciwKICAgICAgICAgRWRpdEFjdGlv
blR1cm5PZmZLZXJuaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRl
eCA4ZjU2NTMyLi44ZjdmY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRD
b21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9z
aXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRv
ci5oIgpAQCAtMzcsOSArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1FZGl0Q29t
bWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQorRWRpdENvbW1hbmQ6OkVkaXRD
b21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fcGFyZW50KDApCisgICAgLCBtX2VkaXRp
bmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQuZnJhbWUoKSk7
CiAgICAgc2V0U3RhcnRpbmdTZWxlY3Rpb24obV9kb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0aW9u
KCkuc2VsZWN0aW9uKCkpOwpAQCAtNjcsNyArNjksNyBAQCBGcmFtZSYgRWRpdENvbW1hbmQ6OmZy
YW1lKCkKIAogRWRpdEFjdGlvbiBFZGl0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsKKyAgICByZXR1cm4gbV9lZGl0aW5n
QWN0aW9uOwogfQogCiBzdGF0aWMgaW5saW5lIEVkaXRDb21tYW5kQ29tcG9zaXRpb24qIGNvbXBv
c2l0aW9uSWZQb3NzaWJsZShFZGl0Q29tbWFuZCogY29tbWFuZCkKQEAgLTExMiw2ICsxMTQsNDkg
QEAgdm9pZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKiBwYXJl
bnQpCiAgICAgfQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlw
ZSgpCit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAgICBjYXNlIEVkaXRBY3Rp
b25DdXQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUN1dDsKKyAgICBjYXNlIEVkaXRB
Y3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0ZTsKKyAgICBj
YXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbjsKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CisgICAgICAgIHJldHVybiBBWFRl
eHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0
dXJuIEFYVGV4dEVkaXRUeXBlUGFzdGU7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAg
ICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVUeXBpbmc7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK0FY
VGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHN3aXRj
aCAoYXBwbHlFZGl0VHlwZSgpKSB7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246Cisg
ICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZURlbGV0ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICByZXR1cm4g
QVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0
YXRpb246CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICByZXR1cm4gQVhU
ZXh0RWRpdFR5cGVEZWxldGU7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25v
d247Cit9CisKK1NpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYg
ZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IEVkaXRDb21tYW5kKGRv
Y3VtZW50LCBlZGl0aW5nQWN0aW9uKQoreworfQorCiB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpk
b1JlYXBwbHkoKQogewogICAgIGRvQXBwbHkoKTsKQEAgLTEyNSw0ICsxNzAsMTQgQEAgdm9pZCBT
aW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwg
SGFzaFNldDxOb2RlKj4mIG4KIH0KICNlbmRpZgogCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsK
KyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0
ZXh0LCBwb3NpdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li5jNWI3YWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21t
YW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNl
bGVjdGlvbi5oIgogCkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UGFy
ZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKik7CiAKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbigpIGNvbnN0OworICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0
OwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX3N0YXJ0aW5nU2VsZWN0aW9uOyB9CiAgICAgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgZW5kaW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9lbmRpbmdTZWxlY3Rpb247
IH0KQEAgLTU5LDggKzYwLDExIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5
KCkgPSAwOwogCisgICAgQVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpOworICAgIEFYVGV4
dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQg
RWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVu
dCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogICAgIEVkaXRDb21tYW5k
KERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mKTsKIAogICAgIEZyYW1lJiBmcmFtZSgpOwpAQCAtNzQsNiArNzgsNyBAQCBwcml2YXRlOgog
ICAgIFZpc2libGVTZWxlY3Rpb24gbV9zdGFydGluZ1NlbGVjdGlvbjsKICAgICBWaXNpYmxlU2Vs
ZWN0aW9uIG1fZW5kaW5nU2VsZWN0aW9uOwogICAgIENvbXBvc2l0ZUVkaXRDb21tYW5kKiBtX3Bh
cmVudDsKKyAgICBFZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbiB7IEVkaXRBY3Rpb25VbnNwZWNp
ZmllZCB9OwogfTsKIAogZW51bSBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSB7
CkBAIC05MSwxMiArOTYsMTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBl
eHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1h
bmQoZG9jdW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50
JiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7
CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21t
YW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAppbmRleCBkYzNhZTMzLi4yM2JjNmIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBAIC01OSw2ICs1OSw4
IEBACiAjaW5jbHVkZSA8UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0
aW9uLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+
CisjaW5jbHVkZSA8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1
ZGUgPFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3Bw
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDcxMGFhMzkuLjRiZDdmN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTIwOCwxMiArMjA4LDEyIEBAIGJvb2wgRWRpdG9y
OjpoYW5kbGVUZXh0RXZlbnQoVGV4dEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGlmIChjbGll
bnQoKS0+cGVyZm9ybXNUd29TdGVwUGFzdGUoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgICAgICAgICAgcmVwbGFjZVNl
bGVjdGlvbldpdGhGcmFnbWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVu
dC0+c2hvdWxkU21hcnRSZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIGV2ZW50
LT5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOworICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC0+c2hv
dWxkU21hcnRSZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIEVkaXRBY3Rpb25Q
YXN0ZSwgZXZlbnQtPm1haWxCbG9ja3F1b3RlSGFuZGxpbmcoKSk7CiAjaWYgUExBVEZPUk0oSU9T
KQogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgZWxzZSAKLSAgICAgICAgICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoVGV4dChldmVudC0+ZGF0YSgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0
UmVwbGFjZSgpKTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChldmVudC0+
ZGF0YSgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBFZGl0QWN0aW9uUGFz
dGUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM3NCwxMiArMzc0LDEyIEBA
IGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJl
Y3Rpb24sIFRleHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRp
dG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3Zv
aWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0
ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlv
bigpLmlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAg
YXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBz
bWFydERlbGV0ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBlZGl0aW5nQWN0aW9uKSk7CiB9
CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtNTIzLDcgKzUyMyw3IEBAIGJvb2wgRWRp
dG9yOjpzaG91bGRJbnNlcnRGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50LCBQYXNzUmVmCiAgICAgcmV0dXJuIGNsaWVudCgpLT5zaG91bGRJbnNlcnROb2RlKGZy
YWdtZW50LmdldCgpLCByZXBsYWNpbmdET01SYW5nZS5nZXQoKSwgZ2l2ZW5BY3Rpb24pOwogfQog
Ci12b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNt
YXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxC
bG9ja3F1b3RlSGFuZGxpbmcpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJl
cGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24sIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5k
bGluZykKIHsKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbi5pc05vbmUoKSB8fCAhc2VsZWN0
aW9uLmlzQ29udGVudEVkaXRhYmxlKCkgfHwgIWZyYWdtZW50KQpAQCAtNTM5LDcgKzUzOSw3IEBA
IHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAgaWYgKG1haWxCbG9ja3F1b3RlSGFuZGxpbmcg
PT0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90ZSkKICAgICAgICAgb3B0
aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SWdub3JlTWFpbEJsb2NrcXVvdGU7CiAK
LSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCBmcmFnbWVudCwgb3B0aW9ucywgRWRpdEFjdGlvblBhc3RlKSk7CisgICAgYXBwbHlDb21t
YW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQs
IG9wdGlvbnMsIGVkaXRpbmdBY3Rpb24pKTsKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRp
bmdPcGVyYXRpb24oKTsKIAogICAgIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCk7CkBAIC01NTMsMTMgKzU1MywxMyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVj
dGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAog
ICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6
OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpLCBUZXh0Q2hlY2tpbmdQcm9jZXNzQmF0Y2gs
IHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CiB9CiAKLXZvaWQgRWRpdG9yOjpyZXBsYWNl
U2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2Vt
ZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKK3ZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNt
YXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2UgPSBzZWxlY3RlZFJhbmdlKCk7CiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChjcmVhdGVGcmFnbWVudEZy
b21UZXh0KCpyYW5nZSwgdGV4dCksIHNlbGVjdFJlcGxhY2VtZW50LCBzbWFydFJlcGxhY2UsIHRy
dWUpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9t
VGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVl
LCBlZGl0aW5nQWN0aW9uKTsKIH0KIAogUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpzZWxlY3Rl
ZFJhbmdlKCkKQEAgLTEwMDEsNyArMTAwMSw4IEBAIHZvaWQgRWRpdG9yOjphcHBsaWVkRWRpdGlu
ZyhQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjbWQpCiAKICAgICAvLyBEb24ndCBj
bGVhciB0aGUgdHlwaW5nIHN0eWxlIHdpdGggdGhpcyBzZWxlY3Rpb24gY2hhbmdlLiAgV2UgZG8g
dGhvc2UgdGhpbmdzIGVsc2V3aGVyZSBpZiBuZWNlc3NhcnkuCiAgICAgRnJhbWVTZWxlY3Rpb246
OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucyA9IGNtZC0+aXNEaWN0YXRpb25Db21tYW5kKCkg
PyBGcmFtZVNlbGVjdGlvbjo6RGljdGF0aW9uVHJpZ2dlcmVkIDogMDsKLSAgICBjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAKKyAgICBjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBvcHRpb25zLCBjbWQtPmFwcGx5
RWRpdFR5cGUoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNv
bXBvc2l0aW9uLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY29tcG9zaXRpb24tPmVu
ZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2No
ZWR1bGVkKCk7CkBAIC0xMDMyLDcgKzEwMzMsNyBAQCB2b2lkIEVkaXRvcjo6dW5hcHBsaWVkRWRp
dGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAgICBub3RpZnlU
ZXh0RnJvbUNvbnRyb2xzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+
ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3
U2VsZWN0aW9uKGNtZC0+c3RhcnRpbmdTZWxlY3Rpb24oKSk7Ci0gICAgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkpOworICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxl
Y3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBjbWQt
PnVuYXBwbHlFZGl0VHlwZSgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRF
dmVudHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290
RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgp
OwpAQCAtMTI2Niw3ICsxMjY3LDcgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRp
dG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0
ZWJvYXJkKCk7CiAgICAgaWYgKGFjdGlvbiA9PSBDdXRBY3Rpb24pCi0gICAgICAgIGRlbGV0ZVNl
bGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpKTsKKyAgICAgICAg
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCksIEVk
aXRBY3Rpb25DdXQpOwogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGUoKQpAQCAtMjIzOCw3ICsyMjM5
LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZChjb25z
dCBWaXNpYmxlUG9zaXRpb24gJndvcmRTdGFydCwKIAogICAgICAgICBpZiAoIW1fZnJhbWUuZWRp
dG9yKCkuc2hvdWxkSW5zZXJ0VGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBtaXNzcGVsbGluZ1Jh
bmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIG1fZnJhbWUuZWRpdG9yKCkucmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGF1dG9j
b3JyZWN0ZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIG1fZnJhbWUuZWRpdG9yKCku
cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIGZhbHNlLCBmYWxz
ZSwgRWRpdEFjdGlvbkluc2VydCk7CiAKICAgICAgICAgLy8gUmVzZXQgdGhlIGNoYXJldCBvbmUg
Y2hhcmFjdGVyIGZ1cnRoZXIuCiAgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkubW92ZVRvKG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuZW5kKCkpOwpAQCAtMjU4NCw3ICsyNTg1LDcg
QEAgdm9pZCBFZGl0b3I6OmNoYW5nZUJhY2tUb1JlcGxhY2VkU3RyaW5nKGNvbnN0IFN0cmluZyYg
cmVwbGFjZWRTdHJpbmcpCiAgICAgCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5y
ZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlUmV2ZXJzZWQocmVwbGFjZWRTdHJpbmcsIHNlbGVj
dGlvbik7CiAgICAgVGV4dENoZWNraW5nUGFyYWdyYXBoIHBhcmFncmFwaChzZWxlY3Rpb24pOwot
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChyZXBsYWNlZFN0cmluZywgZmFsc2UsIGZhbHNl
KTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVwbGFjZWRTdHJpbmcsIGZhbHNlLCBm
YWxzZSwgRWRpdEFjdGlvbkluc2VydCk7CiAgICAgUmVmUHRyPFJhbmdlPiBjaGFuZ2VkUmFuZ2Ug
PSBwYXJhZ3JhcGguc3VicmFuZ2UocGFyYWdyYXBoLmNoZWNraW5nU3RhcnQoKSwgcmVwbGFjZWRT
dHJpbmcubGVuZ3RoKCkpOwogICAgIGNoYW5nZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9j
dW1lbnQoKS5tYXJrZXJzKCkuYWRkTWFya2VyKGNoYW5nZWRSYW5nZS5nZXQoKSwgRG9jdW1lbnRN
YXJrZXI6OlJlcGxhY2VtZW50LCBTdHJpbmcoKSk7CiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyLT5tYXJrUmV2ZXJzZWQoY2hhbmdlZFJhbmdlLmdldCgpKTsKQEAgLTI4MTgsNyArMjgx
OSw3IEBAIHZvaWQgRWRpdG9yOjp0cmFuc3Bvc2UoKQogICAgIC8vIEluc2VydCB0aGUgdHJhbnNw
b3NlZCBjaGFyYWN0ZXJzLgogICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCh0cmFuc3Bvc2VkLCBy
YW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpKQogICAgICAgICByZXR1cm47Ci0g
ICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHRyYW5zcG9zZWQsIGZhbHNlLCBmYWxzZSk7Cisg
ICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHRyYW5zcG9zZWQsIGZhbHNlLCBmYWxzZSwgRWRp
dEFjdGlvbkluc2VydCk7CiB9CiAKIHZvaWQgRWRpdG9yOjphZGRUb0tpbGxSaW5nKFJhbmdlKiBy
YW5nZSwgYm9vbCBwcmVwZW5kKQpAQCAtMjg1MCw3ICsyODUxLDcgQEAgdm9pZCBFZGl0b3I6OmRp
c21pc3NDb3JyZWN0aW9uUGFuZWxBc0lnbm9yZWQoKQogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci0+ZGlzbWlzcyhSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3Jl
ZCk7CiB9CiAKLXZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCAgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvbk9wdGlvbnMgb3B0aW9ucykKK3ZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQpCiB7CiAgICAgLy8gSWYgdGhlIG5ldyBzZWxlY3Rpb24gaXMgb3JwaGFuZWQsIHRoZW4g
ZG9uJ3QgdXBkYXRlIHRoZSBzZWxlY3Rpb24uCiAgICAgaWYgKG5ld1NlbGVjdGlvbi5zdGFydCgp
LmlzT3JwaGFuKCkgfHwgbmV3U2VsZWN0aW9uLmVuZCgpLmlzT3JwaGFuKCkpCkBAIC0yODYyLDcg
KzI4NjMsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwKICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9i
bGVtLzU3MjkzMTU+IFNvbWUgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZSBjb250YWluIFJh
bmdlcyBmb3Igc2VsZWN0aW9ucyB0aGF0IGFyZSBubyBsb25nZXIgdmFsaWQKICAgICBib29sIHNl
bGVjdGlvbkRpZE5vdENoYW5nZURPTVBvc2l0aW9uID0gbmV3U2VsZWN0aW9uID09IG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRpZE5vdENoYW5nZURP
TVBvc2l0aW9uIHx8IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5l
d1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgICAgIG1fZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgaW50ZW50KTsKIAogICAgIC8vIFNvbWUgZWRp
dGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IHdpdGhvdXQgYWZm
ZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAvLyBGb3IgZXhhbXBsZSB3
aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhlIGNhcmV0IGlzIG1hcmtl
ZCBieSBeKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDc5MmJjNDYuLmQxZDMwYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlv
bkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nLCBib29sIGlzVHlwaW5n
QWN0aW9uKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFy
dERlbGV0ZShib29sIHNtYXJ0RGVsZXRlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShib29sIHNtYXJ0RGVsZXRlLCBFZGl0QWN0aW9uID0g
RWRpdEFjdGlvbkRlbGV0ZSk7CiAgICAgdm9pZCBjbGVhclRleHQoKTsKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVVbmNoYW5nZWFibGVTdHlsZXMoKTsK
QEAgLTM4Miw4ICszODIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0
QXJlYShFbGVtZW50Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgV3JpdGluZ0RpcmVjdGlvbiBiYXNl
V3JpdGluZ0RpcmVjdGlvbkZvclNlbGVjdGlvblN0YXJ0KCkgY29uc3Q7CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2Us
IGJvb2wgbWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxCbG9ja3F1b3Rl
SGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
cGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdFJlcGxhY2Vt
ZW50LCBib29sIHNtYXJ0UmVwbGFjZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNl
U2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wg
c2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUsIEVk
aXRBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0LCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFp
bEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc2Vs
ZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlv
bkluc2VydCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZWxlY3Rpb25TdGFydEhhc01hcmtl
ckZvcihEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSwgaW50IGZyb20sIGludCBsZW5ndGgpIGNv
bnN0OwogICAgIHZvaWQgdXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRpbmcoYm9v
bCBvbmx5SGFuZGxlV29yZHNDb250YWluaW5nU2VsZWN0aW9uKTsKICAgICB2b2lkIGRlbGV0ZWRB
dXRvY29ycmVjdGlvbkF0UG9zaXRpb24oY29uc3QgUG9zaXRpb24mLCBjb25zdCBTdHJpbmcmIG9y
aWdpbmFsU3RyaW5nKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBwcml2YXRlOgogICAgIGVudW0gU2V0
Q29tcG9zaXRpb25Nb2RlIHsgQ29uZmlybUNvbXBvc2l0aW9uLCBDYW5jZWxDb21wb3NpdGlvbiB9
OwogICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiwgU2V0Q29tcG9zaXRpb25N
b2RlKTsKIAotICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMpOworICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQo
KSk7CiAKICAgICBlbnVtIEVkaXRvckFjdGlvblNwZWNpZmllciB7IEN1dEFjdGlvbiwgQ29weUFj
dGlvbiB9OwogICAgIHZvaWQgcGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggNTExY2IwMi4u
N2E4MTY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0x
OTIsNyArMTkyLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZUFwcGx5UGFyYWdyYXBoU3R5bGUoRnJh
bWUmIGZyYW1lLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwKIHN0YXRpYyBib29sIGV4ZWN1
dGVJbnNlcnRGcmFnbWVudChGcmFtZSYgZnJhbWUsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZnJhZ21lbnQpCiB7CiAgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwotICAgIGFwcGx5
Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgp
LCBmcmFnbWVudCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBFZGl0
QWN0aW9uVW5zcGVjaWZpZWQpKTsKKyAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRpdEFjdGlvbkluc2VydCkpOwogICAgIHJldHVy
biB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmlu
ZGV4IDU3NDUxNzAuLjIzNDg2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNs
dWRlICJDaGFyYWN0ZXJEYXRhLmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xMzksNyArMTQwLDcgQEAgRWxlbWVudCogRnJh
bWVTZWxlY3Rpb246OnJvb3RFZGl0YWJsZUVsZW1lbnRPckRvY3VtZW50RWxlbWVudCgpIGNvbnN0
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3Ms
IEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24p
CiB7CiAgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50
KCksIHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuYWZmaW5pdHkoKSwgbV9zZWxlY3Rpb24uaXNE
aXJlY3Rpb25hbCgpKSwKLSAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNlclRy
aWdnZXJlZCksIGFsaWduKTsKKyAgICAgICAgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnModXNl
clRyaWdnZXJlZCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIGFsaWduKTsKIH0KIAogdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYmFzZSwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uICZleHRlbnQsIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQp
CkBAIC0xNzAsNyArMTcxLDggQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxp
ZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW8KICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKICAgICBuZXdTZWxlY3Rpb24uc2V0V2l0aG91dFZhbGlk
YXRpb24oYmFzZSwgZXh0ZW50KTsKICAgICBuZXdTZWxlY3Rpb24uc2V0SXNEaXJlY3Rpb25hbChz
ZWxlY3Rpb25IYXNEaXJlY3Rpb24pOwotICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RT
ZXRGb2N1cykpOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25v
d24gfSk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSwgaW50ZW50
KTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpzZXRDYXJldFBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCkBAIC0yNTQsNyArMjU2LDEzIEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJZkRpZmZlcmVudChjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBwYXNzCiAgICAgaWYgKG1fc2VsZWN0aW9uID09IG5ld1NlbGVjdGlvbiB8fCAh
c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KCkgfCBGaXJlU2VsZWN0RXZlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVs
YXJpdHkpOworICAgIAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudDsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSAmJiBuZXdTZWxlY3Rpb24u
aXNDYXJldCgpKQorICAgICAgICBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVVua25vd24gfSk7CisgICAgZWxzZQorICAgICAgICBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxl
Y3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQsIGludGVudCwgQWxpZ25DdXJzb3JPblNj
cm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgbmV3U2VsZWN0aW9uUG9zc2libHlXaXRob3V0RGlyZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBn
cmFudWxhcml0eSkKQEAgLTI3Niw3ICsyODQsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpbwog
ICAgIGlmIChEb2N1bWVudCogbmV3U2VsZWN0aW9uRG9jdW1lbnQgPSBuZXdTZWxlY3Rpb24uYmFz
ZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gbmV3U2VsZWN0aW9u
RnJhbWUgPSBuZXdTZWxlY3Rpb25Eb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYg
KG5ld1NlbGVjdGlvbkZyYW1lICE9IG1fZnJhbWUgJiYgbmV3U2VsZWN0aW9uRG9jdW1lbnQgIT0g
bV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1l
LT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwg
Z3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbkZyYW1lLT5zZWxlY3Rp
b24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpLCBhbGlnbiwgZ3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAgIC8vIEl0J3Mg
cG9zc2libGUgdGhhdCBkdXJpbmcgdGhlIGFib3ZlIHNldCBzZWxlY3Rpb24sIHRoaXMgRnJhbWVT
ZWxlY3Rpb24gaGFzIGJlZW4gbW9kaWZpZWQgYnkKICAgICAgICAgICAgICAgICAvLyBzZWxlY3RG
cmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlTZWxlY3RlZCwgYnV0IHRoYXQgdGhlIHNlbGVjdGlv
biBpcyBubyBsb25nZXIgdmFsaWQgc2luY2UKICAgICAgICAgICAgICAgICAvLyB0aGUgZnJhbWUg
aXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjbGVhciBvdXIg
c2VsZWN0aW9uLgpAQCAtMzIwLDcgKzMyOCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNl
bGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0
aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoIXNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2Uoc2VsZWN0aW9uLCBvcHRpb25zLCBhbGlnbiwgZ3JhbnVsYXJpdHkpKQog
ICAgICAgICByZXR1cm47CkBAIC0zNDEsNyArMzQ5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0
aW8KICAgICBpZiAoZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+bGF5b3V0UGVuZGluZygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRh
dGVBbmRSZXZlYWxTZWxlY3Rpb24oaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU2Vs
ZWN0aW9uQnlVcGRhdGluZ0xheW91dE9yU3R5bGUoRnJhbWUmIGZyYW1lKQpAQCAtMzYwLDcgKzM2
OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRlKCkKICAg
ICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6
dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAg
aWYgKCFtX3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3
ICszODgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
KQogICAgICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAg
IH0KIAotICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiAKICAgICBpZiAo
YXV0byogY2xpZW50ID0gbV9mcmFtZS0+ZWRpdG9yKCkuY2xpZW50KCkpCiAgICAgICAgIGNsaWVu
dC0+ZGlkQ2hhbmdlU2VsZWN0aW9uQW5kVXBkYXRlTGF5b3V0KCk7CkBAIC0xMDIxLDcgKzEwMjks
NzcgQEAgVmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2Fy
ZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBM
aW5lQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVs
YXJpdHkgPT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKKyNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCitBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbmxpbmUgRnJhbWVTZWxlY3Rpb246OlRl
eHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJv
b2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJh
dGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlOworICAgICAgICBmbGlwID0gaXNSYW5nZSgpICYmIGRpcmVjdGlvbk9mU2Vs
ZWN0aW9uKCkgPT0gUlRMOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5
KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50
LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2Ug
U2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBp
bnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAg
IGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3Vu
ZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29s
IGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2Ug
Q2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5Ogor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5l
Qm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50
Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAg
ICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkJlZ2lubmluZyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBE
aXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQorI2VuZGlmCiAKIGJv
b2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGly
ZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNlclRyaWdn
ZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3Nyw2ICsxMTU1LDExIEBAIGJvb2wgRnJhbWVT
ZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlv
bk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAg
IGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KFRleHRTZWxlY3Rpb25JbnRlbnQoYWx0ZXIs
IGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9mIHRoZSBh
Ym92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRpb24uCiAg
ICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0IHRvIHBv
c3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0aW9uIHR5
cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpAQCAtMTcx
MCw4ICsxNzkzLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAKICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25G
cm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENoYW5nZVNl
bGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsKKyAgICBp
ZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGln
dW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgfSk7CisgICAgICAgIHNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2Vs
ZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNsb3Nl
VHlwaW5nKQpAQCAtMjQyMyw3ICsyNTA4LDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNlbGVj
dGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBWaXMKIAog
ICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0
aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51
bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9uLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVT
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNl
bGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVT
ZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLmVjY2NhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rp
b25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNo
YW5nZUludGVudC5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJl
Y3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xNDQsNyArMTQ1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25z
dCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZv
Y3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygp
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIEN1
cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFu
dWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
ZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2
b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFs
U2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAg
ICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwsIFRl
eHRHcmFudWxhcml0eSk7CkBAIC0yOTgsOSArMjk5LDEwIEBAIHByaXZhdGU6CiAgICAgTGF5b3V0
VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oRVBvc2l0
aW9uVHlwZSk7CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgVGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBU
ZXh0R3JhbnVsYXJpdHkpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
QVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxl
Y3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dl
cmVkKTsKQEAgLTM2Nyw3ICszNjksNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0
VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFU
Rk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdlLi43YzhkYTNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5j
cHAKQEAgLTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4
dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCi0gICAgOiBTaW1w
bGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9u
KQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAgLCBtX3Rl
eHQodGV4dCkKQEAgLTUwLDYgKzUwLDExIEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Oklu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAg
QVNTRVJUKCFtX3RleHQuaXNFbXB0eSgpKTsKIH0KIAorY29uc3QgU3RyaW5nJiBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9
CisKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9v
bCBwYXNzd29yZEVjaG9FbmFibGVkID0gZnJhbWUoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0Vu
YWJsZWQoKTsKQEAgLTY2LDggKzcxLDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJ
R05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENo
YW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04
NCw4ICs4OSw4IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJl
Zm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hl
LT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6
OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2li
bGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5k
ZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuaAppbmRleCAzMTBiYmIzLi5mZmUzNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzQsMTQgKzM0LDE2IEBAIGNs
YXNzIFRleHQ7CiAKIGNsYXNzIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2lt
cGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpCisgICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbklu
c2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBlZGl0
aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCk7CisgICAgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKK3Byb3RlY3RlZDoK
KyAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAppbmRleCBkMTZiNWQ2Li5lZDBhNjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjksMTMgKzI5LDE1IEBACiAjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRp
dGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydE5vZGVCZWZvcmVDb21tYW5k
OjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQ
YXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLAotICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogU2lt
cGxlRWRpdENvbW1hbmQocmVmQ2hpbGQtPmRvY3VtZW50KCkpCitJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGls
ZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHJlZkNoaWxkLT5kb2N1bWVu
dCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9pbnNlcnRDaGlsZChpbnNlcnRDaGlsZCkKICAg
ICAsIG1fcmVmQ2hpbGQocmVmQ2hpbGQpCiAgICAgLCBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQpAQCAtNTcs
OCArNTksMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAg
ICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxkLmdl
dCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlm
IChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0
aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihk
b3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0
aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5cGUo
KSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlvbikp
OworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
QEAgLTY3LDggKzcxLDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBs
eSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5v
ZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24o
ZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlv
bikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9O
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaAppbmRleCBkNGI3NjJkLi4xMzg3YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0zMywyMSArMzMsMjIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgU2lt
cGxlRWRpdENvbW1hbmQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQ
dHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKLSAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisg
ICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2Vy
dEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rp
b24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNl
cnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKK3Byb3RlY3Rl
ZDoKKyAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9J
bnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBs
eSgpIG92ZXJyaWRlOwotICAgIAorCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBn
ZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
CisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9y
ZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKaW5kZXgg
MjEyODI5Yy4uN2RkMDE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC01OSw4ICs1OSw4IEBA
IHN0YXRpYyBFbGVtZW50KiBoaWdoZXN0VmlzdWFsbHlFcXVpdmFsZW50RGl2QmVsb3dSb290KEVs
ZW1lbnQqIHN0YXJ0QmxvY2spCiAgICAgcmV0dXJuIGN1ckJsb2NrOwogfQogCi1JbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCBtdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJv
b2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKLSAgICA6IENvbXBvc2l0ZUVkaXRD
b21tYW5kKGRvY3VtZW50KQorSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVz
ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3Rl
ZEFyZWEsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21t
YW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9tdXN0VXNlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQobXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KQogICAgICwgbV9wYXN0
ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFy
ZWEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oCmluZGV4IDEyODFmMGMuLjY3MzQxOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZC5oCkBAIC0zNCwxMyArMzQsMTMgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFzcyBJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21t
YW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFw
aEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0g
ZmFsc2UpCisgICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50
ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChk
b2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9V
bnF1b3RlZEFyZWEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQs
IHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVu
dCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9l
SW50b1VucXVvdGVkQXJlYSk7CisgICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChE
b2N1bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9j
a3F1dG9lSW50b1VucXVvdGVkQXJlYSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZG9BcHBseSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRl
eHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwCmluZGV4IGJkZDU5YTMuLjU3MmU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0zNywxNiArMzcsMTYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1JbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBS
ZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCkKK0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJl
YmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAg
IDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBt
X3RleHQodGV4dCkKICAgICAsIG1fc2VsZWN0SW5zZXJ0ZWRUZXh0KHNlbGVjdEluc2VydGVkVGV4
dCkKICAgICAsIG1fcmViYWxhbmNlVHlwZShyZWJhbGFuY2VUeXBlKQogewogfQogCi1JbnNlcnRU
ZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
dHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJr
ZXJTdXBwbGllcikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0
VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFy
a2VyU3VwcGxpZXIsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVk
aXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV90ZXh0KHRleHQpCiAg
ICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChmYWxzZSkKICAgICAsIG1fcmViYWxhbmNlVHlwZShS
ZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi42NTI4MTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC00OSwyMCArNDksMjEg
QEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0
SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsCi0gICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlw
ZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgICAgICBSZWJh
bGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0
ZXNwYWNlcywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3Vt
ZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNl
bGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0K
IAotICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBw
bGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxU
ZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHN0YXRpYyBS
ZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFy
a2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBF
ZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5z
ZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBt
YXJrZXJTdXBwbGllciwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3Rl
Y3RlZDoKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4
dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+LCBFZGl0QWN0aW9uKTsK
KyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9v
bCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24pOwogCi0gICAg
SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKLSAgICBJbnNlcnRUZXh0Q29tbWFuZChE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFy
a2VyU3VwcGxpZXI+KTsKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCmluZGV4IDJjMDYzYzAuLmM2Mjk3MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQor
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5vZGUt
PmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1f
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKaW5kZXggNGI5MTk3NC4u
MWIyYzQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChu
b2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbikp
OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSk7CisgICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWI5ODQz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgOiBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKHRleHQsIG9mZnNldCwgY291bnQsIEVkaXRBY3Rpb25EZWxl
dGUpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE5ODU4NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWdu
ZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0
cjxUZXh0PiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMTc4MmQwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEs
NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikK
KyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0LCBlZGl0
aW5nQWN0aW9uKQorICAgICwgbV9kZWxldGVkVGV4dChkZWxldGVkVGV4dCkKK3sKK30KKwordm9p
ZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWFRleHRFZGl0
VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0
ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICBjYWNoZS0+cG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgbV9k
ZWxldGVkVGV4dCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTYxZGIyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVmaW5l
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0
OworCitjbGFzcyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVk
VGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0LCBkZWxldGVkVGV4dCwgZWRpdGluZ0FjdGlvbikpOworICAgIH0KKworcHJvdGVjdGVk
OgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBFZGl0QWN0aW9uKTsKKwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFu
Z2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi44YWFiZjljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNDcsNiArNDcs
OCBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVkZSAiU21h
cnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCkBAIC0zNjksNyArMzcx
LDcgQEAgaW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6
OmRpZFJlcGxhY2VOb2RlKE5vZGUqIG5vZGUsIE4KIH0KIAogUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRp
dEFjdGlvbiBlZGl0QWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQp
CisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdEFjdGlvbikKICAgICAs
IG1fc2VsZWN0UmVwbGFjZW1lbnQob3B0aW9ucyAmIFNlbGVjdFJlcGxhY2VtZW50KQogICAgICwg
bV9zbWFydFJlcGxhY2Uob3B0aW9ucyAmIFNtYXJ0UmVwbGFjZSkKICAgICAsIG1fbWF0Y2hTdHls
ZShvcHRpb25zICYgTWF0Y2hTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi44OGRhMDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC00OCw5
ICs0OCw5IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgdW5zaWduZWQgQ29tbWFuZE9wdGlvbnM7
CiAKLSAgICBzdGF0aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBDb21t
YW5kT3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25QYXN0ZSkK
KyAgICBzdGF0aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBDb21tYW5k
T3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5z
ZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIGZyYWdtZW50LCBvcHRpb25zLCBhY3Rpb24pKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIGZy
YWdtZW50LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAt
MTIxLDYgKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByZXZlbnROZXN0aW5nOwogICAg
IGJvb2wgbV9tb3ZpbmdQYXJhZ3JhcGg7CiAgICAgRWRpdEFjdGlvbiBtX2VkaXRBY3Rpb247Cisg
ICAgQVhUZXh0RWRpdFR5cGUgbV9hcHBseUVkaXRUeXBlOwogICAgIGJvb2wgbV9zYW5pdGl6ZUZy
YWdtZW50OwogICAgIGJvb2wgbV9zaG91bGRNZXJnZUVuZDsKICAgICBib29sIG1faWdub3JlTWFp
bEJsb2NrcXVvdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0Nv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRl
eCA5MzI5Y2RmLi5mMDc0NDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQo
Y29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHZvaWQgVHlwaW5n
Q29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewogICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFu
ZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwg
c2VsZWN0SW5zZXJ0ZWRUZXh0LAotICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29t
cG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFp
bGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3Bh
Y2VzKTsKKyAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/
IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNl
cyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcywgRWRpdEFjdGlv
blR5cGluZyk7CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdT
ZWxlY3Rpb24oKSk7CiAKQEAgLTM5NSw3ICszOTUsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omlu
c2VydFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgaWYgKCFjYW5BcHBlbmROZXdMaW5lRmVlZFRv
U2VsZWN0aW9uKGVuZGluZ1NlbGVjdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3Jl
YXRlKGRvY3VtZW50KCkpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZmFsc2UsIGZhbHNlLCBF
ZGl0QWN0aW9uVHlwaW5nKSk7CiAgICAgdHlwaW5nQWRkZWRUb09wZW5Db21tYW5kKEluc2VydFBh
cmFncmFwaFNlcGFyYXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRr
L0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li4zMzJlMGFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0
aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwCmluZGV4IGFhYWIxNGMuLmVlNWJkMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1Mu
Y3BwCkBAIC0zOCw3ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERpY3RhdGlvbkNv
bW1hbmRJT1M6OkRpY3RhdGlvbkNvbW1hbmRJT1MoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzT3du
UHRyPFZlY3RvcjxWZWN0b3I8U3RyaW5nPiA+ID4gZGljdGF0aW9uUGhyYXNlcywgUmV0YWluUHRy
PGlkPiBtZXRhZGF0YSkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAg
IDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIEVkaXRBY3Rpb25EaWN0YXRpb24pCiAg
ICAgLCBtX2RpY3RhdGlvblBocmFzZXMoZGljdGF0aW9uUGhyYXNlcykKICAgICAsIG1fbWV0YWRh
dGEobWV0YWRhdGEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9E
aWN0YXRpb25Db21tYW5kSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRp
b25Db21tYW5kSU9TLmgKaW5kZXggNTYxMTk4Yy4uNzJjNTZkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmgKQEAgLTQ2LDcgKzQ2LDYg
QEAgcHJpdmF0ZToKICAgICBEaWN0YXRpb25Db21tYW5kSU9TKERvY3VtZW50JiBkb2N1bWVudCwg
UGFzc093blB0cjxWZWN0b3I8VmVjdG9yPFN0cmluZz4gPiA+IGRpY3RhdGlvblBocmFzZSwgUmV0
YWluUHRyPGlkPiBtZXRhZGF0YSk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsK
LSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIEVk
aXRBY3Rpb25EaWN0YXRpb247IH0KICAgICAKICAgICBPd25QdHI8VmVjdG9yPFZlY3RvcjxTdHJp
bmc+ID4gPiBtX2RpY3RhdGlvblBocmFzZXM7CiAgICAgUmV0YWluUHRyPGlkPiBtX21ldGFkYXRh
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25N
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpp
bmRleCA5YmRlZTFjLi5mZDQxOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
Yy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3Qg
YWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8g
IVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQo
KTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgpLmlzTm90TnVsbCgpICYmIG1fc2VsZWN0
aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgICAgIGNhY2hl
LT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+
cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxlY3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRP
YnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50
LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2
YzZiMi4uMzY4NGUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwxNiArNTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChpc1RleHRGb3JtQ29udHJvbCgpKTsKLSAg
ICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVy
VGV4dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFsdWUgPSBpbm5lclRleHRWYWx1ZUZyb20oKmlu
bmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1
ZTsKICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5uZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkp
IHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQTEFURk9STShDT0NPQSkKICAgICAgICAg
aWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgewogICAgICAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAg
ICAgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBBWE9iamVjdENhY2hl
OjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiAgICAgICAgIH0KKyNl
bmRpZgogICAgICAgICBpbm5lclRleHQtPnNldElubmVyVGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VY
Q0VQVElPTik7CiAKICAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVu
ZHNXaXRoKCdccicpKQogICAgICAgICAgICAgaW5uZXJUZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOworCisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgaWYgKHRleHRJ
c0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgICAg
ICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbih0aGlzLCBBWFRleHRF
ZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVl
LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZv
cmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogICAgIHNldEZvcm1Db250
cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggYzhiZWU5ZS4uYmI0ZWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtMzIxMCw3ICszMjEwLDggQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJv
YXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxl
UG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2Vy
VHJpZ2dlcmVkKSk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5r
bm93biB9KTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJh
bWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBp
bnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50
KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdmZS4uZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzQwLDggKzM0MCwxMCBAQCBib29sIEZvY3Vz
Q29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRp
cmVjdGlvbiwgS2V5YgogICAgIGlmIChjYXJldEJyb3dzaW5nKSB7CiAgICAgICAgIFBvc2l0aW9u
IHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwog
ICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24s
IERPV05TVFJFQU0pOwotICAgICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdl
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigp
LnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgICAgICBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGln
dW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgICAgICAgICAg
ZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rp
b246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgZWxlbWVudC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggYWU2ZDY3Yy4uMmZmODNmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBw
bGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAo
MTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVj
ZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNv
bnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBp
biBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5
emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmls
aXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNv
IGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5k
b05hbWVGb3JFZGl0QWN0aW9uKToKKwogMjAxNS0wNC0yMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIG1peGVkIGNvbnRlbnQgYmxvY2tpbmcg
Zm9yIGV4aXN0aW5nIFdlYktpdDEgY2xpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IGQyMWNkZjAuLmU1OTBkOTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0KQEAgLTU0Niw2ICs1NDYsNyBAQCBzdGF0aWMgTlNTdHJpbmcqIHVuZG9OYW1lRm9y
RWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiAgICAgLy8gRklYTUU6IFRoaXMgaXMg
aWRlbnRpY2FsIHRvIGNvZGUgaW4gV2ViS2l0MidzIFdlYkVkaXRDb21tYW5kUHJveHkgY2xhc3M7
IHdvdWxkIGJlIG5pY2UgdG8gc2hhcmUgdGhlIHN0cmluZ3MgaW5zdGVhZCBvZiBoYXZpbmcgdHdv
IGNvcGllcy4KICAgICBzd2l0Y2ggKGVkaXRBY3Rpb24pIHsKICAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVW5zcGVjaWZpZWQ6IHJldHVybiBuaWw7CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2Vy
dDogcmV0dXJuIG5pbDsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29sb3I6IHJldHVybiBV
SV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJTZXQgQ29sb3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNl
dEJhY2tncm91bmRDb2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBCYWNr
Z3JvdW5kIENvbG9yIiwgIlNldCBCYWNrZ3JvdW5kIENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIs
ICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblR1cm5PZmZLZXJu
aW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVHVybiBPZmYgS2VybmluZyIsICJU
dXJuIE9mZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMTU2MWJlNi4uNDRmMGNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vz
c2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0
VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJs
ZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28g
aW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBm
b3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2Fk
ZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlv
biBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBn
aXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25k
aW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rp
bmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0
Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbik6CisKIDIwMTUtMDQtMjAgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgbW9yZSBidW5kbGUgZm9y
bSBjbGllbnQgZnVuY3Rpb25zIGFzIFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZh
dGUgbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRD
b21tYW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5k
UHJveHkuY3BwCmluZGV4IDU0Y2UwM2MuLjg3ODU1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDggQEAgU3Ry
aW5nIFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRp
dEFjdGlvbikKICAgICBzd2l0Y2ggKGVkaXRBY3Rpb24pIHsKICAgICBjYXNlIEVkaXRBY3Rpb25V
bnNwZWNpZmllZDoKICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRWRpdEFjdGlv
bkluc2VydDoKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIGNhc2UgRWRpdEFjdGlvblNl
dENvbG9yOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBDb2xvciIsICJT
ZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICBj
YXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzk1MGMzNC4uZTA0NDcyZSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBA
CisyMDE1LTA0LTIyICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAg
ICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2li
aWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlw
ZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1w
bGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3Jt
IGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5j
ZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBh
bmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZl
IGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5n
IHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcg
c2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAg
ICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2
ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKworMjAxNS0w
NC0yMCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9u
cyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQg
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFw
cHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2Vi
IGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdl
cyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFu
YWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250
ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBB
bHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25I
YW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBf
bm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAg
ICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNl
aXZlZDpdKToKKwogMjAxNS0wNC0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBsb2dzIHdoZW4gcmVzZXR0
aW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaAppbmRleCAxOTM4NmNlLi45MDhkYmRjIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIuaApAQCAtNDIsNiArNDIsNyBAQAogLSAodm9pZClzZXRQbGF0
Zm9ybUVsZW1lbnQ6KGlkKXBsYXRmb3JtRWxlbWVudDsKIC0gKHZvaWQpc2V0Q2FsbGJhY2s6KEpT
T2JqZWN0UmVmKWNhbGxiYWNrOwogLSAodm9pZClzdGFydE9ic2VydmluZzsKKy0gKHZvaWQpc3Rv
cE9ic2VydmluZzsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggYWRhNjg3
YS4uZjFjOWFmZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTA0LDYgKzEwNCwxMSBA
QAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX25vdGlmaWNhdGlvblJlY2VpdmVkOikgbmFtZTpAIkFY
RFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsXTsKIH0KIAorLSAodm9pZClzdG9wT2JzZXJ2aW5n
Cit7CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNl
cnZlcjpzZWxmXTsKK30KKwogLSAodm9pZClfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6KE5TTm90aWZp
Y2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgTlNTdHJpbmcgKm5vdGlmaWNhdGlvbk5hbWUg
PSBbW25vdGlmaWNhdGlvbiB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAibm90aWZpY2F0aW9uTmFt
ZSJdOwpAQCAtMTEyLDE2ICsxMTcsMjcgQEAKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYg
bV9wbGF0Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQogICAgICAgICByZXR1
cm47CiAKKyAgICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3RpZmljYXRpb24udXNl
ckluZm9bQCJ1c2VySW5mbyJdOworCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90
aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwog
ICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJp
bmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAg
IEpTVmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3Vz
ZXJJbmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVK
U1N0cmluZ1JlZl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1
ZU1ha2VGcm9tSlNPTlN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc1VzZXJJbmZv
SlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0g
ICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50
LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24o
W21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNr
LCAwLCAxLCAmbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZp
Y2F0aW9uIG5hbWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVs
ZW1lbnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0
aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1
ZUFyZ3VtZW50OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xv
YmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1l
bnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRz
IHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpT
VmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVudHNbMF0gPSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjptYWtlSlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFttYWluRnJhbWUgZ2xv
YmFsQ29udGV4dF0sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoW25vdGlmaWNhdGlvbiBvYmplY3Rd
KSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAg
ICAgICAgYXJndW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAg
SlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlm
aWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbQppbmRleCA0NjczYTFkLi4zOTdjNjM4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMTQ0Niw2ICsx
NDQ2LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25M
aXN0ZW5lcigpCiAgICAgLy8gTWFjIHByb2dyYW1tZXJzIHNob3VsZCBub3QgYmUgdHJ5aW5nIHRv
IHJlbW92ZSBhIGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJlbW92ZWQuCiAgICAgQVNTRVJUKG1f
bm90aWZpY2F0aW9uSGFuZGxlcik7CiAKKyAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHN0b3BP
YnNlcnZpbmddOwogICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgcmVsZWFzZV07CiAgICAgbV9u
b3RpZmljYXRpb25IYW5kbGVyID0gbmlsOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCA2NTFiNTkxLi4yOGNhMDNmIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpA
QCAtMTI1LDE5ICsxMjUsMzAgQEAKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0
Zm9ybUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAK
KyAgICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9b
QCJ1c2VySW5mbyJdOworCiAgICAgV0tCdW5kbGVGcmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRs
ZVBhZ2VHZXRNYWluRnJhbWUoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgp
LT5wYWdlKCkpOwogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEph
dmFTY3JpcHRDb250ZXh0KG1haW5GcmFtZSk7CiAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25OYW1lIGNyZWF0ZUpTU3RyaW5n
UmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVl
TWFrZVN0cmluZyhjb250ZXh0LCBqc05vdGlmaWNhdGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJl
ZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gbmlsOworICAgIGlmIChbdXNlckluZm9KU09O
VmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2Vy
SW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZvSlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVm
XSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21K
U09OU3RyaW5nKGNvbnRleHQsIGpzVXNlckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAg
ICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBl
bGVtZW50IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAg
ICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0
UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAxLCAmbm90aWZpY2F0aW9u
TmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBBIGdsb2JhbCBsaXN0
ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYXMgYXJndW1l
bnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQgZ2V0cyB0aGUgbm90aWZp
Y2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1sy
XTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAg
ICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OworICAgICAgICBK
U09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1f
bm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwg
bm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gdG9KUyhjb250ZXh0LCBXVEY6OmdldFB0
cihXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbbm90aWZpY2F0aW9uIG9iamVj
dF0pKSk7CiAgICAgICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsK
KyAgICAgICAgYXJndW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAg
ICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVm
PihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4
IGVkMDJmYjcuLmUyNjA3ZTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dE1hYy5tbQpAQCAtMTQ3Niw2ICsxNDc2LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgLy8gTWFjIHByb2dyYW1tZXJzIHNo
b3VsZCBub3QgYmUgdHJ5aW5nIHRvIHJlbW92ZSBhIGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJl
bW92ZWQuCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9uSGFuZGxlcik7CiAKKyAgICBbbV9ub3Rp
ZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZpbmddOwogICAgIFttX25vdGlmaWNhdGlvbkhhbmRs
ZXIgcmVsZWFzZV07CiAgICAgbV9ub3RpZmljYXRpb25IYW5kbGVyID0gbmlsOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251495</attachid>
            <date>2015-04-23 14:49:44 -0700</date>
            <delta_ts>2015-04-23 15:59:45 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>216587</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDQ1NmIyYzNjYzc4YjdlZGNiNmJiNWFlZDc4NWI2ZGQzZmJjODdjYmQKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQyYWViOC4uMjIwNzJhNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIzICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMyAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtYnktY2hhcmFjdGVyLTAwNy5odG1sIHNob3VsZCBwYXNzIG9uIE9TIFggMTAuMTAuMy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJl
cGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYTZmODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKyAgCitUaGlz
IHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhIHdoZW4gcmVw
bGFjaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbnB1dCBmaWVsZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRU
eXBlRGVsZXRlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsxXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRl
eHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlSW5zZXJ0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsi
QVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiICIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUwZGUzMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBpZD0iYm9keSI+CisKKyAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJzZWN1
cmV2YWx1ZXRlc3QiPgorCisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ2YWx1ZXRlc3QiPgor
CisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CisgICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0Pgor
CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhIHdoZW4gcmVwbGFjaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbnB1
dCBmaWVsZC4iKTsKKworICAgICAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCA9IDE7
CisKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGVsZXRlID0gMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0ID0gQVhUZXh0RWRpdFR5cGVEZWxldGUgKyAxOworCisgICAgICAg
IHZhciB3ZWJBcmVhID0gMDsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIHJl
c3VsdHMgPSBbXTsKKyAgICAgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rp
b24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAg
ICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1ZUNoYW5nZWQiKSB7CisgICAgICAgICAg
ICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOwor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAyKSB7CisKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzFdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzFdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKwor
ICAgICAgICAgICAgICAgICAgICAvLyBQYXNzd29yZCBub3RpZmljYXRpb25zIHdpbGwgYmUgaW5z
ZXJ0IG9ubHkgYW5kIHRoZSB2YWx1ZSBzdHJpbmcgd2lsbCBiZSB3aGl0ZXNwYWNlCisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENo
YW5nZVZhbHVlXCJdIiwgIlwiIFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVk
aXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlSW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAg
ICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0dmFsdWUoKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUg
PSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZXRzZWN1cmV2YWx1ZSgpIHsK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52
YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworCisgICAgICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICAgICAgd2ViQXJl
YSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsK
KyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0
aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICAgICAgc2hvdWxkQmUo
ImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAgICAgICAgc2V0dmFsdWUoKTsK
KworICAgICAgICAgICAgc2V0c2VjdXJldmFsdWUoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
Y2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kZDIyZmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw5NSBAQAorb25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC4KKworc2V2ZW4g
ZWlnaHQgbmluZS4KKworVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMg
dXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFk
ZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFu
Z2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTc1
MzdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsMjE3IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgcm9sZT0idGV4dGJveCIg
dGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxlPXRydWU+Cis8cD5vbmUgdHdv
IHRocmVlLiBmb3VyIGZpdmUgc2l4LjwvcD4KKzxwPnNldmVuIGVpZ2h0IG5pbmUuPC9wPgorPC9k
aXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGlu
Zm8gZGF0YS4iKTsKKworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ID0gMjsKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kID0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSArIDE7CisKKyAgICB2YXIgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nICsgMTsKKyAgICB2
YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0ID0gQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgKyAxOworCisgICAgdmFyIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lICsgMTsKKyAgICB2YXIgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1
bWVudCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoICsgMjsKKworICAgIHZh
ciBncmFuID0gWyJjaGFyYWN0ZXIiLCAid29yZCIsICJzZW50ZW5jZSIsICJsaW5lIiwgInBhcmFn
cmFwaCIsICJsaW5lYm91bmRhcnkiLCAic2VudGVuY2Vib3VuZGFyeSIsICJwYXJhZ3JhcGhib3Vu
ZGFyeSIsICJkb2N1bWVudGJvdW5kYXJ5Il07CisgICAgdmFyIHdlYkFyZWEgPSAwOworICAgIHZh
ciBjb3VudCA9IDA7CisgICAgdmFyIHJlc3VsdHMgPSBbXTsKKyAgICB2YXIgcmVzdWx0SW5kZXgg
PSAwOworICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZFRleHRDaGFu
Z2VkIikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGlmICh1c2VySW5mbykK
KyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAgICAgICAgICAgaWYg
KGNvdW50ID09IGdyYW4ubGVuZ3RoICogNCkgeworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsK
KworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwi
XSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmci
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9
IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAy
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25M
aXN0ZW5lcigpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFu
Y2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRk
ZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNh
dGlvbkNhbGxiYWNrKTsKKyAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRy
dWUiKTsKKworICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRi
b3giKTsKKyAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgIC8vIFRyaWdnZXIgc2Vs
ZWN0aW9uIGNoYW5nZXMuCisgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwor
ICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFuW2ld
KTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLnNl
dFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJm
b3J3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgIH0KKyAgICB9CisKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTNhYWJlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFs
dWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACiswMjM0NTY3
ODkwCitUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRh
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlv
biBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlQ3V0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhU
ZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0
VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIyMzQ1Njc4OTAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlw
ZVBhc3RlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUi
XSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlVHlwaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhU
ZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUt
Y2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zZGFkMzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSw5NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9l
ZGl0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxk
aXYgcm9sZT0idGV4dGJveCIgdGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxl
PXRydWU+MDEyMzQ1Njc4OTA8L2Rpdj4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMi
PjwvZGl2PgorCisgICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4iKTsKKworICAgICAg
ICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCA9IDE7CisKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlRGVsZXRlID0gMTsKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlSW5zZXJ0ID0g
QVhUZXh0RWRpdFR5cGVEZWxldGUgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVUeXBp
bmcgPSBBWFRleHRFZGl0VHlwZUluc2VydCArIDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiA9IEFYVGV4dEVkaXRUeXBlVHlwaW5nICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlQ3V0ID0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gKyAxCisgICAgICAgIHZhciBB
WFRleHRFZGl0VHlwZVBhc3RlID0gQVhUZXh0RWRpdFR5cGVDdXQgKyAxOworCisgICAgICAgIHZh
ciB3ZWJBcmVhID0gMDsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIHJlc3Vs
dHMgPSBbXTsKKyAgICAgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rpb24g
bm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICAg
ICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1ZUNoYW5nZWQiKSB7CisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAg
ICAgICAgICAgICAgIGlmIChjb3VudCA9PSA2KSB7CisKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVDdXQiKTsKKworICAgICAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4
dEVkaXRUeXBlUGFzdGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjIzNDU2Nzg5MFwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlUGFzdGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFu
Z2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFu
Z2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZVR5cGlu
ZyIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wi
XVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wi
XVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAg
ICAgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3
ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4
KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3Rp
ZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91
bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICB2YXIgdGV4
dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICB0
ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRl
eHRib3gsIDApOworICAgICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0
ZXJDb21tYW5kKCk7CisgICAgICAgICAgICBjdXRDb21tYW5kKCk7CisgICAgICAgICAgICBleGVj
RXh0ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIHBh
c3RlQ29tbWFuZCgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiMSIpOworICAg
ICAgICAgICAgZGVsZXRlQ29tbWFuZCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM4ZTIwNWEuLmU3
Yzk3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNTEzLDYgKzE1MTMsOCBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0
dHJpYnV0ZUNvbW1hbmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNjY2FiZS4uOWVlNTc1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxMyBAQAorMjAxNS0wNC0yMyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNz
ZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24g
YW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVj
aCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGlu
IHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNo
YW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2Fy
dCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNj
ZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlv
bi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxk
cy4KKworICAgICAgICBUZXN0czogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVw
bGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAg
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1
ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JD
b250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpw
YXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQpOiBEZWxldGVkLgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmpl
Y3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlv
bik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlv
bnNGb3JUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVw
bGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNj
ZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6XSk6CisgICAgICAgICgtW1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZp
Y2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyk6CisgICAgICAg
IChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjp1
c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAq
IGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphcHBseUJsb2NrU3R5
bGUpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRlRWRpdENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFu
ZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlTdHlsZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0TGluZUJyZWFrKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92
ZUNoaWxkcmVuSW5SYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6aW5wdXRUZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6c2hvdWxkU3RvcENhcmV0QmxpbmtpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAg
ICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGlu
Zy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0
UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6
Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9FZGl0QWN0aW9u
Lmg6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1h
bmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6U2ltcGxlRWRpdENvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjpzZXRQ
YXJlbnQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpleGVjdXRlSW5zZXJ0RnJhZ21lbnQpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8p
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJ
ZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFy
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3Zp
bmdCYWNrd2FyZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkF0V29yZFN0YXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjppbnNlcnRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9B
cHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21t
YW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVk
aXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5k
OjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGlu
Z0NvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9h
dGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVk
aXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAg
ICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0aWFs
S2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVu
dE9yZGVyKToKKwogMjAxNS0wNC0yMyAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIE1pc3NlZCBhIGJ1dHRvbiBpbiByMTgyOTAwLgpAQCAt
MjAxMSw2ICsyMjIxLDIxIEBACiAgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29tcHV0
ZWRMaW5lSGVpZ2h0KTogQ2xhbXAgbGluZS1oZWlnaHQgdG8gYW4KICAgICAgICAgICAgIGludCB0
byBhdm9pZCBvdmVyZmxvdy4KIAorMjAxNS0wNC0xNCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjcx
OQorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZh
bHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRv
IHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworMjAxNS0wNC0xNCAg
RG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVy
IHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJj
bGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBv
c3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25z
LiBUaGlzIGNvbW1pdCBpcyBhbGwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGRvZXNuJ3QgY29udGFpbiBh
bnkgYWNjZXNzaWJpbGl0eSBzcGVjaWZpYyBjaGFuZ2VzLgorPj4+Pj4+PiA8cmRhcjovL3Byb2Js
ZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorCiAyMDE1LTA0LTE3ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGb3JjZSBtb3VzZSBldmVudHMgc2hvdWxkIGdvIHRocm91Z2ggbm9ybWFsIG1vdXNlIGV2ZW50
IGhhbmRsaW5nIGNvZGUgcGF0aHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCmluZGV4IGFjODE1MzguLjVjNTViYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ3ODcsNiArMTQ3ODcs
MzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xOTU1NSw2ICsxOTU4Myw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRl
ckNvbnRhaW5lci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0
eVxBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGFjY2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cYWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVx3aW5cQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJXaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWRqdXN0
Vmlld1NpemVPck5vdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxBbHRl
cm5hdGl2ZVRleHRDbGllbnQuaCIgLz4KQEAgLTIxMTA3LDYgKzIxMTM2LDggQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVy
ZWRQb3NpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXRO
b2RlQXR0cmlidXRlQ29tbWFuZC5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDk1YzMxZTguLmU3NmMx
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTM1MjgsNiArMzUyOCwxMiBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KQEAgLTc2NzEsNiArNzY3Nyw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxh
Y2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCI+CiAgICAgICA8RmlsdGVyPmFjY2Vzc2liaWxp
dHk8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCI+CisgICAgICAgIDxGaWx0
ZXI+YWNjZXNzaWJpbGl0eTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVx3aW5cQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJXaW4uaCI+CiAgICAgICA8RmlsdGVyPmFjY2Vzc2liaWxpdHlcd2luPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkBAIC0xMDY4MCw2ICsxMDY4OSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MjM3YWNlYi4uZjY1NWNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzI1MCw2ICszMjUwLDcgQEAKIAkJOTAwMTc3NDExMkUw
MzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAv
KiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CiAJCTkwMDE3ODgwMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpT
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi87IH07CiAJCTkwMDE3ODgxMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKKwkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFD
IC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzAyQjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4
MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBD
N0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzAyQjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNUIyNEQwOThG
MUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjM5Niw2ICs2Mzk3
LDEwIEBACiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CiAJCUY1NDRGNzg4MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlG
NTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4
REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1
NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJE
MDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4
dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9
OwpAQCAtMTA1MDEsNiArMTA1MDYsNyBAQAogCQk5MDAxNzczRjEyRTAzNDc4MDA2NDg0NjIgLyog
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw7IHBhdGggPSBjYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdFMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTFD
OUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlR3JvdXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNDA0Miw2ICsxNDA0OCwxMCBAQAogCQlGNTJBRDVFMzE1MzQy
NDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0
Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxv
Y2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBMzFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4
dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNl
VGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdB
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRvbklucHV0VHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTY2Myw2ICsxNTY3Myw3IEBACiAJ
CQkJMjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oICov
LAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywK
IAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oICovLAorCQkJ
CTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTE3Nzk2LDYgKzE3ODA3LDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIz
MkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlC
MzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1
MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAog
CQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTIzNzMxLDYgKzIzNzQ2LDcgQEAKIAkJCQk2
QzU2OENCMTE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU4MEZBRjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTRGNjU3MjFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQTUx
QUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzMwOURENzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJEMERCNTVDREMwMDFEQjc5NCAvKiBB
cHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRjBEQjU1Q0RDMDAx
REI3OTQgLyogQXBwbGljYXRpb25DYWNoZUdyb3VwLmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjU2
LDYgKzI1NjcyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAw
NzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBB
OEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBp
biBIZWFkZXJzICovLApAQCAtMjY3MTAsNiArMjY3MjcsNyBAQAogCQkJCTdDNEM5NkREMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0Mx
RDQyODE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBNjkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGguaCBpbiBIZWFkZXJzICovLAorCQkJCTkxQzlGMkY5MUFFM0JFQjAwMDk1
QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
MUQ0MjkxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDJBMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E2RDBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjg0NjgsNiArMjg0ODYsNyBAQAogCQkJCTUxMDE5MkQxMThCNkI5QUIwMDdGQzdB
MSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQzExMjUxRjEy
RDAwM0VGMjY5IC8qIEltYWdlSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4OTU4
MjU1MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCMjc1MzU3QjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VNYWMubW0gaW4gU291cmNlcyAqLywK
QEAgLTI5OTE1LDYgKzI5OTM0LDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyog
U1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZF
NTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0
NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkw
MDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3
RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAppbmRleCBhMDBiMTVjLi4yNTY4YjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDYgKzkw
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
CisvLyBQb3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVsZHMg
b3IgZWxlbWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50ZXJ2
YWwgdG8gdGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCitzdGF0aWMgZG91YmxlIEFj
Y2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwgPSAwLjAy
NTsKKwogQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBWENvbXB1dGVkT2JqZWN0QXR0cmli
dXRlQ2FjaGU6OmdldElnbm9yZWQoQVhJRCBpZCkgY29uc3QKIHsKICAgICBIYXNoTWFwPEFYSUQs
IENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9pZE1hcHBp
bmcuZmluZChpZCk7CkBAIC0xMjksNiArMTMyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRF
bmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2Fj
aGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RD
YWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzA1LDcgKzcwOSw3IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIFJlZjxEb2N1bWVudD4g
cHJvdGVjdG9yRm9yQ2FjaGVPd25lcihtX2RvY3VtZW50KTsKICAgICBtX25vdGlmaWNhdGlvblBv
c3RUaW1lci5zdG9wKCk7CiAgICAgCi0gICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlv
bnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0
aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIEluIHRl
c3RzLCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkg
cXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3Rl
ZCBiZWhhdmlvcgogICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQg
YXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCiAgICAgYXV0
byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fbm90aWZpY2F0aW9uc1RvUG9zdCk7CiAgICAg
CkBAIC03NDIsNiArNzQ2LDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9z
dFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2Jq
ZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIHRlc3RzLCBwb3N0
aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAg
b3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlv
cgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVu
ZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmlj
YXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAg
IGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKKyAgICAgICAg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQo
KSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2VuZGlm
Cit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBv
c3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjgsMjIzIEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2Ug
dGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVm
IE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAg
IGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgZGF0YUxvZygiVW5r
bm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgIGRhdGFMb2coIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGRhdGFMb2coIk1v
dmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDoKKyAgICAgICAgZGF0YUxvZygiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygiVW5r
bm93biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVE
ZWxldGU6CisgICAgICAgICAgICBkYXRhTG9nKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgZGF0YUxv
ZygiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpY3RhdGlvbkluc2VydCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6Cisg
ICAgICAgICAgICBkYXRhTG9nKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgZGF0YUxvZygiQ3V0
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3Rl
OgorICAgICAgICAgICAgZGF0YUxvZygiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBkYXRh
TG9nKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIkJlZ2lu
bmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBkYXRhTG9nKCJFbmQ6OiIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6
CisgICAgICAgICAgICBkYXRhTG9nKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAg
ZGF0YUxvZygiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgZGF0YUxvZygi
RGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBz
d2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIGRhdGFM
b2coIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAgZGF0
YUxvZygiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBkYXRh
TG9nKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJM
aW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiU2Vu
dGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJQ
YWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiRG9j
dW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxsIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICBkYXRhTG9nKCItU3luYyIpOwor
ICAgIGRhdGFMb2coIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAg
ICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3N0YXRpYyBib29sIGlzUGFz
c3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0ICYmIChvYmplY3QtPmlzUGFzc3dvcmRGaWVs
ZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSk7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2Rl
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKICAg
ICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVsZWdh
dGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0g
Z2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iamVjdCkgeworICAgICAg
ICBpZiAoaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0KSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxl
T2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZp
Y2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hh
bmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7
CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxl
Y3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Cit9CisKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRl
eHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29t
cHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmpl
Y3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2Jq
ZWN0KSB7CisgICAgICAgIGlmIChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlv
bihvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmplY3Qt
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxzZQor
ICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdl
Rm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVk
aXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBl
IGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUg
aW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47Cisg
ICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNT
RVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlw
ZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisK
KyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3JkVmFs
dWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgZGVsZXRpb25UeXBl
LCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7Cisj
ZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0
Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQo
KS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShp
bnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGlu
Z09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK2Jvb2wgQVhPYmplY3RDYWNo
ZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqZWN0KQoreworICAgIGlmICghaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBh
c3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVj
dCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgLy8gcmV0dXJuIHRydWUgZXZlbiB0aG91Z2ggdGhlIGVucXVldWUg
ZGlkbid0IGhhcHBlbiBiZWNhdXNlIHRoaXMgaXMgYSBwYXNzd29yZCBmaWVsZCBhbmQgY2FsbGVy
IHNob3VsZG4ndCBwb3N0IGEgbm90aWZpY2F0aW9uCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuY29udGFpbnMob2Jz
ZXJ2YWJsZU9iamVjdCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Qu
YXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hh
bmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1l
KiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzA5LDE0
IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkK
K3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVj
dCgpOworICAgIGlmICghcm9vdE9iamVjdCB8fCAhcm9vdE9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNh
c3Q8QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc+KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7
Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihB
WE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjMwYTdh
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEFYT2JqZWN0Q2FjaGVfaAogI2Rl
ZmluZSBBWE9iamVjdENhY2hlX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
CiAjaW5jbHVkZSA8bGltaXRzLmg+CkBAIC02Nyw2ICs2OCwxMCBAQCBwcml2YXRlOgogICAgIEhh
c2hNYXA8QVhJRCwgQ2FjaGVkQVhPYmplY3RBdHRyaWJ1dGVzPiBtX2lkTWFwcGluZzsKIH07CiAK
KyNpZiAhUExBVEZPUk0oQ09DT0EpCitlbnVtIEFYVGV4dENoYW5nZSB7IEFYVGV4dEluc2VydGVk
LCBBWFRleHREZWxldGVkIH07CisjZW5kaWYKKwogZW51bSBQb3N0VGFyZ2V0IHsgVGFyZ2V0RWxl
bWVudCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCB9OwogCiBlbnVtIFBvc3RUeXBlIHsgUG9zdFN5
bmNocm9ub3VzbHksIFBvc3RBc3luY2hyb25vdXNseSB9OwpAQCAtMTg5LDEyICsxOTQsMTUgQEAg
cHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNs
eSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1
bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5
cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKLSAgICB9OworI2lm
bmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lk
IHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAg
IGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjEz
LDEyICsyMjEsMjQgQEAgcHVibGljOgogICAgIEFYQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNo
ZSogY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSgpIHsgcmV0dXJuIG1fY29tcHV0ZWRPYmpl
Y3RBdHRyaWJ1dGVDYWNoZS5nZXQoKTsgfQogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQotICAgIAorCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IHN0YXRpYyB2b2lkIHNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZh
bHVlKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBs
YXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUs
IE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwor
ICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7
CisjZWxzZQorICAgIHN0YXRpYyBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFY
VGV4dEVkaXRUeXBlKTsKKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lk
IHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdl
ZChFbGVtZW50Kik7CkBAIC0yMjksNiArMjQ5LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNO
b2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7
IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOwor
ICAgIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRy
PEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmpl
Y3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMjY2LDExIEBAIHBy
aXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0
ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9u
b3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQo
KTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVj
dG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisK
ICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJl
Z2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2Rl
Kik7CkBAIC0yNTEsNiArMjc4LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxp
dHlPYmplY3QqIGZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAg
ICAKICAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgYm9vbCBl
bnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7
CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzMzOSw5IEBA
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxW
aWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7
IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KLWlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZp
Y2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlw
ZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpAQCAtMzIwLDYgKzM1
MiwxNCBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoTm9kZSopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKFdpZGdldCopIHsgfQogaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KikgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChOb2Rl
KikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCitpbmxp
bmUgQVhUZXh0Q2hhbmdlIEFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRl
eHRFZGl0VHlwZSkgeyByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7IH0KK2lubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2Vu
ZGlmCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk1YzI2NGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50X2gKKyNkZWZpbmUgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7Cisg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0LAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCit9OworCitlbnVtIEFYVGV4dEVkaXRU
eXBlIHsKKyAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgQVhUZXh0RWRpdFR5cGVEZWxl
dGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8g
R2VuZXJpYyB0ZXh0IGluc2VydAorICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQg
dmlhIHR5cGluZworICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRp
Y3RhdGlvbgorICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgIEFY
VGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQorfTsKKworZW51bSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24geworICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24s
CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZCwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywK
KyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkRpc2NvbnRpZ3VvdXMKK307CisKK2VudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgeworICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVdvcmQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBv
ZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5k
aW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFz
c2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJp
dHkgbm90aWZpY2F0aW9uLgorfTsKKworc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSBncmFudWxhcml0eTsKK307CisKK3N0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgdW5pb24geworICAgICAg
ICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uOworICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFu
Z2U7CisgICAgfTsKKyAgICBib29sIGlzU3luY2hyb25pemluZyB7IGZhbHNlIH07CisKKyAgICBB
WFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRl
eHRTZWxlY3Rpb24oKSkKKyAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9u
KHNlbGVjdGlvbikKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4
dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQpCisgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIGlzU3luY2hyb25p
emluZykKKyAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKCkKKyAgICAg
ICAgLCBpc1N5bmNocm9uaXppbmcoaXNTeW5jaHJvbml6aW5nKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgfQorfTsKKworfQor
CisjZW5kaWYgLy8gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRl
eCBkOGQyNmRlLi40MzhlODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBA
QCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAog
ICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29u
dGFpbmluZ1Bhc3N3b3JkRmllbGQoKQoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7Cisg
ICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAg
cmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRv
d0hvc3QoKTsKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1l
bnQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0
ZShlbGVtZW50KTsKKworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0
aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uYTgyYmQ4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
SW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29u
dHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3
b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBp
c1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uY2IzMzgwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYK
IAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgp
IGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUo
KSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxlbWVudCog
ZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICByZXR1cm4gaXM8SFRNTElucHV0RWxl
bWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmlz
UGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1
ODZmMmEuLjgxNmMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmll
bGQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENv
bnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJj
aEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNv
bnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAppbmRleCBlOWQyYTUyLi41MGZkYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0
OTEsMTQgKzE0OTEsMTcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7
CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4
dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJl
cikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRTZWxl
Y3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUo
KTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNp
YmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQg
KyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dO
U1RSRUFNKSk7CisgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oUG9zaXRpb24obm9k
ZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBQb3Np
dGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9u
SXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IG5ld0ludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKTsKKyAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBuZXdJbnRl
bnQpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAg
LTE5NjMsMTMgKzE5NjYsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRT
ZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAo
cmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQg
dG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlv
bgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0
ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChB
WFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
LCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRv
KHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAg
IFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5z
dGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiAr
NDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhP
YmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJl
YU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZF
eGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3
ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBm
aXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAg
ICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7
CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hl
QXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCmluZGV4IDU4NTJhMGYuLjczNjZlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0yNDMsNiArMjQz
LDI0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEFYCiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
KyAgICAKK0FYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUo
QVhUZXh0RWRpdFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
IHJldHVybiBBWFRleHREZWxldGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dEluc2VydGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYVGV4
dEluc2VydGVkOworfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRDaGFuZ2Ug
dGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05NSw4ICs5NSwxOSBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3Qs
IEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhWYWx1ZUNoYW5n
ZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBB
WFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0
LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li42Yjc5
MGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2Jq
ZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNl
bmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5
bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0
YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBA
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0
Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkg
aW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlzIGxlbmd0aCBp
cyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBsaW5lIG9mIHRl
eHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8gaHVydCBwZXJm
b3JtYW5jZS4KK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9u
TGVuZ3RoID0gMTAwMDsKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUg
ZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsNiAr
MTA3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRXcmFwcGVyKHdyYXBwZXIuZ2V0KCkpOwogfQogCitz
dGF0aWMgQk9PTCBheFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyA9IGZhbHNlOwor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0
cyhib29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3Rz
ID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5m
byhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24sIGlkIHVzZXJJbmZvKQoreworICAg
IE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LCBub3Rp
ZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1wbGlmeSBtb25pdG9yaW5nIGZvciBu
b3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBzaW1wbGUgTlNOb3RpZmljYXRpb24g
aW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVyZSB0byBzZXR1cCBhbiBJUEMgY2xp
ZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdlZW4gV2ViQ29yZSB0eXBlcyBhbmQg
cGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNrCisgICAgaWYgKFVOTElLRUxZKGF4
U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkKKyAgICAgICAgW29iamVjdCBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5m
b107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQogewog
ICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMTEsMTM4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3Rp
ZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgIAotICAgIE5T
QWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNh
dGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlv
bnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24sIG5pbCk7CiB9CiAKLXZv
aWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CisgICAgaWYgKCFv
YmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVj
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8g
PSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CisgICAg
aWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJp
bGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAgICBz
d2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAgICAg
ICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6Cisg
ICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICAgICAgdXNlckluZm9b
TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVj
dGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJh
bmdlID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRp
b25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJs
ZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4
dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJSYW5nZTsKKyAgICB9CisKKyAgICBp
ZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworCisgICAgQWNjZXNzaWJp
bGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7CisgICAgQVhQb3N0Tm90aWZpY2F0
aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0
ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIEFYUG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0
ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxl
YXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGlj
dGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQor
eworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVn
ZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0
dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNz
aWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAgIGlmIChsZW5ndGggPiBBWFZhbHVl
Q2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsKKyAgICAgICAgdGV4dCA9IFt0ZXh0
IHN1YnN0cmluZ1RvSW5kZXg6QVhWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGhdOworICAgIH0K
KyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXSA9IHRleHQ7CisgICAg
aWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0g
W29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246cG9zaXRpb25d
KQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0
TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxl
YXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRp
b24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7
CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCF0ZXh0Lmxl
bmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2Vy
SW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTozXTsK
KyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAo
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgdHlwZSwgdGV4dCwg
cG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFs
dWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVy
KCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9
IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFy
ZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBl
cigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsK
KyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5T
QWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1
c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxh
Y2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBB
WFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFY
VGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghb2JqZWN0KQorICAg
ICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFvYmplY3QpCisgICAgICAg
IHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFi
bGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpj
aGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgZGVsZXRpb25U
eXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6
Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRD
aGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3Np
dGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZv
W05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdl
cyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBw
ZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsK
KworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJl
YS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVz
ZXJJbmZvKTsKKyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBh
cmUgcG9zdGVkLgorICAgIFt3ZWJBcmVhLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24gdXNlcklu
Zm86dXNlckluZm9dOworCisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhV
c2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90
aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5v
dGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KKyAgICBbb2JqZWN0LT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmlj
YXRpb24gdXNlckluZm86dXNlckluZm9dOworCisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwogfQog
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9h
ZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAppbmRleCA1
ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
aApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAtIChOU1N0cmluZyAq
KWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKIAogLSAoaWQpYXR0YWNobWVudFZpZXc7Ci0v
LyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVk
IGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4g
YSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSB0ZXN0cy4KIC0gKHZvaWQp
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25O
YW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAq
KW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCiAt
IChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpQYXRoICYpcGF0
aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQ
b2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmlu
ZGV4IDVkZGZjM2EuLjg3MTBkYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDY5IEBAIHN0YXRpYyBCT09MIGFjY2Vzc2liaWxpdHlT
aG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogKyAodm9pZClhY2Nlc3NpYmlsaXR5U2V0U2hvdWxk
UmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTClyZXBvc3QKIHsKICAgICBhY2Nlc3NpYmlsaXR5U2hv
dWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJlcG9zdDsKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
IVBMQVRGT1JNKElPUykKKyAgICBBWE9iamVjdENhY2hlOjpzZXRTaG91bGRSZXBvc3ROb3RpZmlj
YXRpb25zRm9yVGVzdHMocmVwb3N0KTsKKyNlbmRpZgogfQogCiAtICh2b2lkKWFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZQogeworICAg
IGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykKKyAgICAgICAgW3Nl
bGYgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25OYW1lIHVzZXJJ
bmZvOm5pbF07Cit9CisKK3N0YXRpYyBOU0FycmF5ICphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVz
KE5TQXJyYXkgKmFycmF5KQoreworICAgIEFTU0VSVChbYXJyYXkgaXNLaW5kT2ZDbGFzczpbTlNB
cnJheSBjbGFzc11dKTsKKyAgICBOU011dGFibGVBcnJheSAqbXV0YWJsZUFycmF5ID0gW2FycmF5
IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBbbXV0YWJsZUFy
cmF5IGNvdW50XTspIHsKKyAgICAgICAgaWQgdmFsdWUgPSBtdXRhYmxlQXJyYXlbaV07CisgICAg
ICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAg
ICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkgd2l0aE9iamVjdDpk
aWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAo
W3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRh
YmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aSB3aXRoT2JqZWN0OmFycmF5UmVtb3ZpbmdO
b25KU09OVHlwZXModmFsdWUpXTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZD
bGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIg
Y2xhc3NdXSkpIHsKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVtb3ZlT2JqZWN0QXRJbmRl
eDppXTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGkrKzsKKyAg
ICB9CisgICAgcmV0dXJuIFttdXRhYmxlQXJyYXkgYXV0b3JlbGVhc2VdOworfQorCitzdGF0aWMg
TlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNEaWN0aW9uYXJ5
ICpkaWN0aW9uYXJ5KQoreworICAgIEFTU0VSVChbZGljdGlvbmFyeSBpc0tpbmRPZkNsYXNzOltO
U0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqbXV0YWJsZURp
Y3Rpb25hcnkgPSBbZGljdGlvbmFyeSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1N0cmluZyAq
a2V5IGluIGRpY3Rpb25hcnkpIHsKKyAgICAgICAgaWQgdmFsdWUgPSBkaWN0aW9uYXJ5W2tleV07
CisgICAgICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0p
CisgICAgICAgICAgICBtdXRhYmxlRGljdGlvbmFyeVtrZXldID0gZGljdGlvbmFyeVJlbW92aW5n
Tm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xh
c3M6W05TQXJyYXkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0g
PSBhcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoIShb
dmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZD
bGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkg
cmVtb3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZURpY3Rp
b25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3Rp
ZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9u
YXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlm
aWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtOU0RpY3Rpb25h
cnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1lLCBAIm5vdGlm
aWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVj
dDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5vdGlmaWNhdGlvbk5h
bWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAgICAgIGlmICh1c2Vy
SW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBbTlNKU09OU2VyaWFs
aXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVz
KHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVycm9yOm5pbF07Cisg
ICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcg
KnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnVzZXJJbmZv
RGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAgICAgICAgICAgaWYg
KHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0gQHtAIm5vdGlmaWNh
dGlvbk5hbWUiIDogbm90aWZpY2F0aW9uTmFtZSwgQCJ1c2VySW5mbyIgOiB1c2VySW5mb1N0cmlu
Z307CisgICAgICAgICAgICAgICAgW3VzZXJJbmZvU3RyaW5nIHJlbGVhc2VdOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaW5mbykKKyAgICAgICAgICAgIGluZm8gPSBA
e0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lfTsKKyAgICAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpAIkFY
RFJUTm90aWZpY2F0aW9uIiBvYmplY3Q6c2VsZiB1c2VySW5mbzppbmZvXTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCmluZGV4IDM4YzVjZDAuLjkyMjI4
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaApAQCAtMzMsNiArMzMs
OSBAQAogCiBAaW50ZXJmYWNlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlCiAKKy0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zOihXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBl
bmRQb3NpdGlvbjooV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uKWVuZFBvc2l0aW9uOworLSAoaWQp
dGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0
aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwCmluZGV4IDFkZWI0ZGIuLjgzNzkzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0yOSwxMyArMjksMTYgQEAKICNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIK
ICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFwcGVu
ZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQo
cGFyZW50LT5kb2N1bWVudCgpKQorQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVu
dC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcGFyZW50KHBhcmVudCkKICAg
ICAsIG1fbm9kZShub2RlKQogewpAQCAtNDYsMTUgKzQ5LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5k
OjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0CiAgICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFy
ZW50LT5yZW5kZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2UpCitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFr
cyhOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFs
dWUgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAv
LyBEb24ndCBjb25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2Rl
VmFsdWUgPT0gIlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG5vZGUsIHRleHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAg
ICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNh
c3Q8VGV4dD4obm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDAp
OworICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0
eXBlLCB0ZXh0LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQg
QXBwZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzc1LDE2IEBAIHZvaWQgQXBw
ZW5kTm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1f
bm9kZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmlu
Z0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7
CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBh
cHBseUVkaXRUeXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHko
KQogewogICAgIGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0
dXJuOwotICAgICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVh
bGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtz
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFY
VGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5
cGUoKSk7CiAKICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi5mNzgy
OTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0z
MiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29t
bWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFy
ZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUs
IGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOwor
ICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQ
YXNzUmVmUHRyPE5vZGU+LCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA3YzQxOGMy
Li5jYWI4ODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
LmNwcApAQCAtMTIzLDkgKzEyMyw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlU3R5bGVT
cGFuRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpB
cHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSog
c3R5bGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlM
ZXZlbCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0
eWxlLT5jb3B5KCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAs
IG1fcHJvcGVydHlMZXZlbChwcm9wZXJ0eUxldmVsKQogICAgICwgbV9zdGFydChlbmRpbmdTZWxl
Y3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0oKSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlv
bigpLmVuZCgpLnVwc3RyZWFtKCkpCkBAIC0xMzYsOSArMTM1LDggQEAgQXBwbHlTdHlsZUNvbW1h
bmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0
eWxlKiBzdHkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgY29uc3QgUG9zaXRpb24m
IHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQ
cm9wZXJ0eUxldmVsIHByb3BlcnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0
aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9u
KGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlMZXZlbCkKICAg
ICAsIG1fc3RhcnQoc3RhcnQpCiAgICAgLCBtX2VuZChlbmQpCkBAIC0xNDksOSArMTQ3LDggQEAg
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgRWRpdGluZ1N0eWxlKiBzdHkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5
bGVDb21tYW5kKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgYm9vbCByZW1vdmVPbmx5LCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChlbGVt
ZW50LT5kb2N1bWVudCgpKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9j
dW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoRWRpdGluZ1N0eWxlOjpjcmVh
dGUoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9w
ZXJ0eUxldmVsKFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9u
KCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5l
bmQoKS51cHN0cmVhbSgpKQpAQCAtMTYzLDkgKzE2MCw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpB
cHBseVN0eWxlQ29tbWFuZChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3Zl
T25sCiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIElzSW5saW5lRWxlbWVudFRvUmVt
b3ZlRnVuY3Rpb24gaXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAg
OiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1f
c3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9u
KQogICAgICwgbV9wcm9wZXJ0eUxldmVsKFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQo
ZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRp
bmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAtMjI2LDExICsyMjIsNiBAQCB2b2lk
IEFwcGx5U3R5bGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiB9CiAKLUVkaXRBY3Rpb24gQXBw
bHlTdHlsZUNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2Vk
aXRpbmdBY3Rpb247Ci19Ci0KIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5QmxvY2tTdHls
ZShFZGl0aW5nU3R5bGUgKnN0eWxlKQogewogICAgIC8vIHVwZGF0ZSBkb2N1bWVudCBsYXlvdXQg
b25jZSBiZWZvcmUgcmVtb3Zpbmcgc3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmgKaW5kZXggZTk5ZTM2YS4uOWRiZTg3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaApAQCAtNzIsNyArNzIsNiBAQCBwcml2YXRlOgog
ICAgIEFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiwgY29uc3QgRWRpdGluZ1N0eWxlKiwgYm9v
bCAoKmlzSW5saW5lRWxlbWVudFRvUmVtb3ZlKShjb25zdCBFbGVtZW50KiksIEVkaXRBY3Rpb24p
OwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gc3R5bGUt
cmVtb3ZhbCBoZWxwZXJzCiAgICAgYm9vbCBpc1N0eWxlZElubGluZUVsZW1lbnRUb1JlbW92ZShF
bGVtZW50KikgY29uc3Q7CkBAIC0xMjIsNyArMTIxLDYgQEAgcHJpdmF0ZToKICAgICBQb3NpdGlv
biBlbmRQb3NpdGlvbigpOwogCiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9zdHlsZTsKLSAg
ICBFZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbjsKICAgICBFUHJvcGVydHlMZXZlbCBtX3Byb3Bl
cnR5TGV2ZWw7CiAgICAgUG9zaXRpb24gbV9zdGFydDsKICAgICBQb3NpdGlvbiBtX2VuZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXgg
ODQ2MWVlNy4uNzM0MmY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5jcHAKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9j
a0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1
bWVudE1hcmtlci5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDEz
ICsxNjQsMzAgQEAgdm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFu
ZChIYXNoU2V0PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhUZXh0RWRpdFR5cGUgRWRp
dENvbW1hbmRDb21wb3NpdGlvbjo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBzd2l0Y2ggKGVk
aXRpbmdBY3Rpb24oKSkgeworICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICBjYXNlIEVkaXRB
Y3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBj
YXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAg
IGNhc2UgRWRpdEFjdGlvblBhc3RlOgorICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAg
ICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCiB2b2lk
IGFwcGx5Q29tbWFuZChQYXNzUmVmUHRyPENvbXBvc2l0ZUVkaXRDb21tYW5kPiBjb21tYW5kKQog
ewogICAgIGNvbW1hbmQtPmFwcGx5KCk7CiB9CiAKLUNvbXBvc2l0ZUVkaXRDb21tYW5kOjpDb21w
b3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBFZGl0Q29tbWFuZChk
b2N1bWVudCkKK0NvbXBvc2l0ZUVkaXRDb21tYW5kOjpDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IEVkaXRDb21t
YW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogewogfQogCkBAIC0xODcsNiArMjA2LDcgQEAg
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHkoKQogICAgICAgICBjYXNlIEVkaXRBY3Rp
b25TZXRXcml0aW5nRGlyZWN0aW9uOgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25DdXQ6CiAgICAg
ICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOgorICAgICAgICBjYXNlIEVkaXRBY3Rpb25J
bnNlcnQ6CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKICAgICAgICAgY2FzZSBFZGl0
QWN0aW9uRGljdGF0aW9uOgogICAgICAgICAgICAgYnJlYWs7CkBAIC0yOTYsNyArMzE2LDcgQEAg
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlU3R5bGVkRWxlbWVudChQYXNzUmVmUHRy
PEVsZW1lbnQ+IGVsZW1lbnQpCiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFBh
cmFncmFwaFNlcGFyYXRvcihib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBh
c3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCks
IHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRB
cmVhKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50
LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0K
IAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0TGluZUJyZWFrKCkKQEAgLTMyMiw3
ICszNDIsNyBAQCBib29sIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppc1JlbW92YWJsZUJsb2NrKGNv
bnN0IE5vZGUqIG5vZGUpCiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVC
ZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZD
aGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hpbGQsIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZShpbnNlcnRDaGlsZCwgcmVmQ2hp
bGQsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKCkp
KTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUFmdGVyKFBhc3NS
ZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQpCkBAIC0z
NzMsNyArMzkzLDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUF0KFBh
c3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIGNvbnN0IFBvc2kKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OmFwcGVuZE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBQYXNzUmVmUHRyPENv
bnRhaW5lck5vZGU+IHBhcmVudCkKIHsKICAgICBBU1NFUlQoY2FuSGF2ZUNoaWxkcmVuRm9yRWRp
dGluZyhwYXJlbnQuZ2V0KCkpKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShBcHBlbmRO
b2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0
aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRyZW5J
blJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8p
CkBAIC0zOTcsNyArNDE3LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9k
ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnQKIAogdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpjcmVhdGUobm9kZSwgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKCkpKTsK
IH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZUFuZFBydW5lQW5jZXN0
b3JzKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKQEAgLTUyNSwyMCArNTQ1LDIxIEBAIHZvaWQgQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0CiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0SW50
b05vZGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKIHsKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zm
c2V0LCB0ZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24o
KSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpkZWxldGVUZXh0RnJvbU5vZGUo
UGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQog
ewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQs
IGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBs
YWNlVGV4dEluTm9kZShQYXNzUmVmUHRyPFRleHQ+IHBycE5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0KQogewogICAgIFJl
ZlB0cjxUZXh0PiBub2RlKHBycE5vZGUpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50KSk7Cisg
ICAgUmVmUHRyPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGRlbGV0ZUNvbW1hbmQgPSBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQp
OworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwogICAgIGlmICgh
cmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgcmVwbGFj
ZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRl
eHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCksIGVkaXRpbmdBY3Rpb24oKSkpOwogfQog
CiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9k
ZShjb25zdCBTdHJpbmcmIHRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmgKaW5kZXggYzJiNDg5ZC4uZWNiMjg1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ7CiBj
bGFzcyBFZGl0aW5nU3R5bGU7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIFN0eWxlZEVsZW1l
bnQ7CkBAIC01OSw2ICs2MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgQVhUZXh0RWRpdFR5cGUg
dW5hcHBseUVkaXRUeXBlKCk7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlv
bihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCkBA
IC04OSw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0
QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhw
bGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb21w
b3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVj
aWZpZWQpOwogCiAgICAgLy8KICAgICAvLyBzdWdhcnktc3dlZXQgY29udmVuaWVuY2UgZnVuY3Rp
b25zIHRvIGhlbHAgY3JlYXRlIGFuZCBhcHBseSBlZGl0IGNvbW1hbmRzIGluIGNvbXBvc2l0ZSBj
b21tYW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uMWZhMDEzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yOSwxMyArMjksMTUgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCi0g
ICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5v
ZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdB
Y3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAs
IG1fY291bnQoY291bnQpCkBAIC00NSw2ICs0NywxMSBAQCBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5z
aQogICAgIEFTU0VSVChtX29mZnNldCArIG1fY291bnQgPD0gbV9ub2RlLT5sZW5ndGgoKSk7CiB9
CiAKK2NvbnN0IFN0cmluZyYgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQo
KQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7CkBAIC01OCw4ICs2NSw4IEBA
IHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVy
bjsKICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxl
dGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1f
b2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUu
Z2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24o
bV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwg
bV9jb3VudCwgZWMpOwogfQpAQCAtNzMsOCArODAsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQs
IG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpB
WFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJs
ZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZm5kZWYgTkRF
QlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oCmluZGV4IDI0OTFmMDUuLmEwMzVmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNCwxNCArMzQsMTcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHN0YXRpYyBSZWY8
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
ID0gRWRpdEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9m
ZnNldCwgY291bnQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KTsKKyAgICBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3By
b3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4s
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rpb24pOwogCitwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRvVW5hcHBseSgpIG92ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmJiYzZlZC4uZWIzYTVmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CkBAIC03Miw4ICs3Miw4IEBAIHN0YXRpYyBib29sIGlzVGFibGVSb3dFbXB0eShOb2RlKiByb3cp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLURlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlLCBib29s
IG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVj
aWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCi0gICAgOiBDb21wb3NpdGVFZGl0Q29t
bWFuZChkb2N1bWVudCkKK0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxv
Y2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9o
YXNTZWxlY3Rpb25Ub0RlbGV0ZShmYWxzZSkKICAgICAsIG1fc21hcnREZWxldGUoc21hcnREZWxl
dGUpCiAgICAgLCBtX21lcmdlQmxvY2tzQWZ0ZXJEZWxldGUobWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSkKQEAgLTkwLDggKzkwLDggQEAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWwKIHsKIH0KIAotRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxl
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywg
Ym9vbCBzYW5pdGl6ZU1hcmt1cCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKHNlbGVjdGlv
bi5zdGFydCgpLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKSkKK0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wg
cmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJr
dXAsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5k
KHNlbGVjdGlvbi5zdGFydCgpLmFuY2hvck5vZGUoKS0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlv
bikKICAgICAsIG1faGFzU2VsZWN0aW9uVG9EZWxldGUodHJ1ZSkKICAgICAsIG1fc21hcnREZWxl
dGUoc21hcnREZWxldGUpCiAgICAgLCBtX21lcmdlQmxvY2tzQWZ0ZXJEZWxldGUobWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSkKQEAgLTg4NCwxNCArODg0LDYgQEAgdm9pZCBEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjpkb0FwcGx5KCkKICAgICBjbGVhclRyYW5zaWVudFN0YXRlKCk7CiB9CiAKLUVkaXRB
Y3Rpb24gRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Ci17Ci0g
ICAgLy8gTm90ZSB0aGF0IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgaXMgYWxzbyB1c2VkIHdoZW4g
dGhlIHVzZXIgcHJlc3NlcyB0aGUgRGVsZXRlIGtleSwKLSAgICAvLyBidXQgaW4gdGhhdCBjYXNl
IHRoZXJlJ3MgYSBUeXBpbmdDb21tYW5kIHRoYXQgc3VwcGxpZXMgdGhlIGVkaXRpbmdBY3Rpb24o
KSwgc28KLSAgICAvLyB0aGUgVW5kbyBtZW51IGNvcnJlY3RseSBzaG93cyAiVW5kbyBUeXBpbmci
Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25DdXQ7Ci19Ci0KIC8vIE5vcm1hbGx5IGRlbGV0aW9uIGRv
ZXNuJ3QgcHJlc2VydmUgdGhlIHR5cGluZyBzdHlsZSB0aGF0IHdhcyBwcmVzZW50IGJlZm9yZSBp
dC4gIEZvciBleGFtcGxlLAogLy8gdHlwZSBhIGNoYXJhY3RlciwgQm9sZCwgdGhlbiBkZWxldGUg
dGhlIGNoYXJhY3RlciBhbmQgc3RhcnQgdHlwaW5nLiAgVGhlIEJvbGQgdHlwaW5nIHN0eWxlIHNo
b3VsZG4ndAogLy8gc3RpY2sgYXJvdW5kLiAgRGVsZXRpb24gc2hvdWxkIHByZXNlcnZlIGEgdHlw
aW5nIHN0eWxlIHRoYXQgKml0KiBzZXRzLCBob3dldmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBlNWJmNTFkLi4wYTliOWNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaApA
QCAtMzQsMjMgKzM0LDIyIEBAIGNsYXNzIEVkaXRpbmdTdHlsZTsKIAogY2xhc3MgRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7IAogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJE
ZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgc3RhdGlj
IFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRy
dWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9
IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0
aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBy
ZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwLCBlZGl0aW5n
QWN0aW9uKSk7CiAgICAgfQotICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4g
Y3JlYXRlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0
ZSA9IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxh
Y2UgPSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBz
YW5pdGl6ZU1hcmt1cCA9IHRydWUpCisgICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21t
YW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNtYXJ0
RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wg
cmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBi
b29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRp
dEFjdGlvbkRlbGV0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRl
ckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1
cCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5k
KHNlbGVjdGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2Us
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rpb24p
KTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3Vt
ZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29s
IHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbnRpemVNYXJr
dXApOworICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVs
ZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBh
bmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiA9IEVk
aXRBY3Rpb25EZWxldGUpOwogCiBwcml2YXRlOgotICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBi
b29sIHNhbml0aXplTWFya3VwLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0Fw
cGx5KCk7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgcHJlc2VydmVzVHlwaW5nU3R5bGUoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKaW5kZXggYzE3M2RmNC4u
OTA4ZmQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3Bw
CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKHNpemVfdCBsaW5lU3RhcnQsIHNpemVfdCBsaW4KIHsKICAgICBWZWN0
b3I8RGljdGF0aW9uQWx0ZXJuYXRpdmU+IGFsdGVybmF0aXZlc0luTGluZTsKICAgICBjb2xsZWN0
RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5SYW5nZShsaW5lU3RhcnQsIGxpbmVMZW5ndGgsIGFsdGVy
bmF0aXZlc0luTGluZSk7Ci0gICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0g
SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVudCgpLCBt
X3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGljdGF0aW9u
TWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpKTsKKyAgICBSZWZQdHI8
SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0
aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5l
U3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVy
bmF0aXZlc0luTGluZSksIEVkaXRBY3Rpb25EaWN0YXRpb24pOwogICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIH0KIApAQCAtMTI0LDcgKzEy
NCw3IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKCkK
ICAgICBpZiAoIWNhbkFwcGVuZE5ld0xpbmVGZWVkVG9TZWxlY3Rpb24oZW5kaW5nU2VsZWN0aW9u
KCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSkpOworICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25EaWN0YXRpb24pKTsKIH0K
IAogdm9pZCBEaWN0YXRpb25Db21tYW5kOjpjb2xsZWN0RGljdGF0aW9uQWx0ZXJuYXRpdmVzSW5S
YW5nZShzaXplX3QgcmFuZ2VTdGFydCwgc2l6ZV90IHJhbmdlTGVuZ3RoLCBWZWN0b3I8RGljdGF0
aW9uQWx0ZXJuYXRpdmU+JiBhbHRlcm5hdGl2ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRBY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlv
bi5oCmluZGV4IDYzN2QxZWIuLjZlZjM1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlv
bi5oCkBAIC0yOSw2ICsyOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiBl
bnVtIHsKICAgICAgICAgRWRpdEFjdGlvblVuc3BlY2lmaWVkLAorICAgICAgICBFZGl0QWN0aW9u
SW5zZXJ0LAogICAgICAgICBFZGl0QWN0aW9uU2V0Q29sb3IsCiAgICAgICAgIEVkaXRBY3Rpb25T
ZXRCYWNrZ3JvdW5kQ29sb3IsCiAgICAgICAgIEVkaXRBY3Rpb25UdXJuT2ZmS2VybmluZywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKaW5kZXggOGY1NjUzMi4uOGY3ZmNiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogCisjaW5jbHVk
ZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTM3LDkgKzM4LDEw
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCkKK0VkaXRDb21tYW5kOjpFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1l
bnQpCiAgICAgLCBtX3BhcmVudCgwKQorICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rp
b24pCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50LmZyYW1lKCkpOwogICAgIHNldFN0YXJ0aW5nU2Vs
ZWN0aW9uKG1fZG9jdW1lbnQtPmZyYW1lKCktPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpKTsKQEAg
LTY3LDcgKzY5LDcgQEAgRnJhbWUmIEVkaXRDb21tYW5kOjpmcmFtZSgpCiAKIEVkaXRBY3Rpb24g
RWRpdENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAogewotICAgIHJldHVybiBFZGl0QWN0
aW9uVW5zcGVjaWZpZWQ7CisgICAgcmV0dXJuIG1fZWRpdGluZ0FjdGlvbjsKIH0KIAogc3RhdGlj
IGlubGluZSBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKiBjb21wb3NpdGlvbklmUG9zc2libGUoRWRp
dENvbW1hbmQqIGNvbW1hbmQpCkBAIC0xMTIsNiArMTE0LDQ5IEBAIHZvaWQgRWRpdENvbW1hbmQ6
OnNldFBhcmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCogcGFyZW50KQogICAgIH0KIH0KIAorQVhU
ZXh0RWRpdFR5cGUgRWRpdENvbW1hbmQ6OmFwcGx5RWRpdFR5cGUoKQoreworICAgIHN3aXRjaCAo
ZWRpdGluZ0FjdGlvbigpKSB7CisgICAgY2FzZSBFZGl0QWN0aW9uQ3V0OgorICAgICAgICByZXR1
cm4gQVhUZXh0RWRpdFR5cGVDdXQ7CisgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgorICAgICAg
ICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0
aW9uOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb247CisgICAgY2FzZSBF
ZGl0QWN0aW9uSW5zZXJ0OgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7Cisg
ICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVBh
c3RlOworICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVk
aXRUeXBlVHlwaW5nOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWFRleHRFZGl0VHlwZSBFZGl0Q29t
bWFuZDo6dW5hcHBseUVkaXRUeXBlKCkKK3sKKyAgICBzd2l0Y2ggKGFwcGx5RWRpdFR5cGUoKSkg
eworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICByZXR1cm4gQVhUZXh0
RWRpdFR5cGVVbmtub3duOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0
OworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlw
ZVR5cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOwor
ICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitTaW1wbGVFZGl0
Q29tbWFuZDo6U2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlv
bikKK3sKK30KKwogdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6ZG9SZWFwcGx5KCkKIHsKICAgICBk
b0FwcGx5KCk7CkBAIC0xMjUsNCArMTcwLDE0IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFk
ZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiB9
CiAjZW5kaWYKIAordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgK
aW5kZXggMDNlNmMzNy4uYzViN2FhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQu
aApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRD
b21tYW5kX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVk
ZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNDYs
NyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFBhcmVudChDb21wb3NpdGVFZGl0Q29t
bWFuZCopOwogCi0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsK
KyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKIAogICAgIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGlu
Z1NlbGVjdGlvbjsgfQogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kaW5nU2VsZWN0aW9uOyB9CkBAIC01OSw4ICs2MCwxMSBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIEFYVGV4
dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKTsKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRp
dFR5cGUoKTsKKwogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50
Jik7CisgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRp
dEFjdGlvblVuc3BlY2lmaWVkKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBGcmFtZSYg
ZnJhbWUoKTsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBWaXNpYmxlU2VsZWN0aW9u
IG1fc3RhcnRpbmdTZWxlY3Rpb247CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVj
dGlvbjsKICAgICBDb21wb3NpdGVFZGl0Q29tbWFuZCogbV9wYXJlbnQ7CisgICAgRWRpdEFjdGlv
biBtX2VkaXRpbmdBY3Rpb24geyBFZGl0QWN0aW9uVW5zcGVjaWZpZWQgfTsKIH07CiAKIGVudW0g
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgewpAQCAtOTEsMTIgKzk2LDE0IEBA
IHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgU2ltcGxlRWRpdENv
bW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21tYW5kKGRvY3VtZW50KSB7IH0KKyAg
ICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0
QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgYWRkTm9kZUFu
ZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJ
bk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uMjNiYzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtNTksNiArNTksOCBAQAogI2luY2x1ZGUgPFJlbW92
ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhT
cGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgog
I2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAppbmRleCAwZmQyZjkxLi5hNzcyODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCkBAIC0yMDgsMTIgKzIwOCwxMiBAQCBib29sIEVkaXRvcjo6aGFuZGxlVGV4dEV2ZW50KFRl
eHRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBpZiAoY2xpZW50KCktPnBlcmZvcm1zVHdvU3Rl
cFBhc3RlKGV2ZW50LT5wYXN0aW5nRnJhZ21lbnQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAjZW5kaWYKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQo
ZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFj
ZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBldmVudC0+bWFpbEJsb2NrcXVvdGVIYW5k
bGluZygpKTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQt
PnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBl
dmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBFZGl0QWN0aW9uUGFzdGUsIGV2ZW50LT5tYWlsQmxv
Y2txdW90ZUhhbmRsaW5nKCkpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgfQogI2VuZGlm
CiAgICAgICAgIGVsc2UgCi0gICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZl
bnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSk7CisgICAgICAg
ICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50
LT5zaG91bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlvblBhc3RlKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCkBAIC0zNzQsMTIgKzM3NCwxMiBAQCBib29sIEVkaXRvcjo6ZGVsZXRl
V2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJp
dHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2Vs
ZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGFwcGx5Q29tbWFuZChEZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUsIHRydWUsIGZh
bHNlLCBmYWxzZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbikpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xl
YXJUZXh0KCkKQEAgLTUyMCw3ICs1MjAsNyBAQCBib29sIEVkaXRvcjo6c2hvdWxkSW5zZXJ0RnJh
Z21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgUGFzc1JlZgogICAg
IHJldHVybiBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0Tm9kZShmcmFnbWVudC5nZXQoKSwgcmVwbGFj
aW5nRE9NUmFuZ2UuZ2V0KCksIGdpdmVuQWN0aW9uKTsKIH0KIAotdm9pZCBFZGl0b3I6OnJlcGxh
Y2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0
Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQor
dm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFy
dFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBNYWls
QmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiB7CiAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwog
ICAgIGlmIChzZWxlY3Rpb24uaXNOb25lKCkgfHwgIXNlbGVjdGlvbi5pc0NvbnRlbnRFZGl0YWJs
ZSgpIHx8ICFmcmFnbWVudCkKQEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFj
ZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdt
ZW50LAogICAgIGlmIChtYWlsQmxvY2txdW90ZUhhbmRsaW5nID09IE1haWxCbG9ja3F1b3RlSGFu
ZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6Oklnbm9yZU1haWxCbG9ja3F1b3RlOwogCi0gICAgYXBwbHlDb21tYW5kKFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlv
bnMsIEVkaXRBY3Rpb25QYXN0ZSkpOworICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCBvcHRpb25zLCBlZGl0aW5nQWN0
aW9uKSk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CiAKICAg
ICBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpAQCAtNTUwLDEz
ICs1NTAsMTMgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICBtX3NwZWxsQ2hlY2tlci0+
cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRD
aGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5
cGVHcmFtbWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdl
VG9DaGVjaykpOwogfQogCi12b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNv
bnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxh
Y2UpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYg
dGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2VsZWN0ZWRS
YW5nZSgpOwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQp
LCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVlKTsKKyAgICByZXBsYWNlU2Vs
ZWN0aW9uV2l0aEZyYWdtZW50KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KSwg
c2VsZWN0UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbik7CiB9
CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6c2VsZWN0ZWRSYW5nZSgpCkBAIC05OTgsNyAr
OTk4LDggQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRl
RWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUg
d2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJl
IGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBv
cHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0
YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIAorICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+YXBwbHlFZGl0VHlwZSgpKTsKICAgICBkaXNw
YXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9v
dEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVu
dCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEwMjksNyAr
MTAzMCw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENv
bW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJvbHMoY21kLT5z
dGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVt
ZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21kLT5zdGFydGlu
Z1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSk7CisgICAg
Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246
OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUVkaXRUeXBlKCkpOwog
ICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0YXJ0aW5nUm9v
dEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAK
ICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjYzLDcgKzEyNjQsNyBA
QCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0
aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAoYWN0
aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRl
KGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZv
aWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yMjM1LDcgKzIyMzYsNyBAQCB2b2lkIEVkaXRvcjo6bWFy
a01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmd29y
ZFN0YXJ0LAogCiAgICAgICAgIGlmICghbV9mcmFtZS5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0
KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIEVkaXRvckluc2Vy
dEFjdGlvblR5cGVkKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9mcmFtZS5lZGl0
b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2Us
IGZhbHNlKTsKKyAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRl
eHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsK
IAogICAgICAgICAvLyBSZXNldCB0aGUgY2hhcmV0IG9uZSBjaGFyYWN0ZXIgZnVydGhlci4KICAg
ICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5tb3ZlVG8obV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxl
Y3Rpb24oKS5lbmQoKSk7CkBAIC0yNTgxLDcgKzI1ODIsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdl
QmFja1RvUmVwbGFjZWRTdHJpbmcoY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKICAgICAK
ICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPnJlY29yZEF1dG9jb3JyZWN0aW9uUmVz
cG9uc2VSZXZlcnNlZChyZXBsYWNlZFN0cmluZywgc2VsZWN0aW9uKTsKICAgICBUZXh0Q2hlY2tp
bmdQYXJhZ3JhcGggcGFyYWdyYXBoKHNlbGVjdGlvbik7Ci0gICAgcmVwbGFjZVNlbGVjdGlvbldp
dGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoVGV4dChyZXBsYWNlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0
KTsKICAgICBSZWZQdHI8UmFuZ2U+IGNoYW5nZWRSYW5nZSA9IHBhcmFncmFwaC5zdWJyYW5nZShw
YXJhZ3JhcGguY2hlY2tpbmdTdGFydCgpLCByZXBsYWNlZFN0cmluZy5sZW5ndGgoKSk7CiAgICAg
Y2hhbmdlZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5kb2N1bWVudCgpLm1hcmtlcnMoKS5hZGRN
YXJrZXIoY2hhbmdlZFJhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6UmVwbGFjZW1lbnQsIFN0
cmluZygpKTsKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPm1hcmtSZXZlcnNlZChj
aGFuZ2VkUmFuZ2UuZ2V0KCkpOwpAQCAtMjgxNSw3ICsyODE2LDcgQEAgdm9pZCBFZGl0b3I6OnRy
YW5zcG9zZSgpCiAgICAgLy8gSW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3RlcnMuCiAgICAg
aWYgKCFzaG91bGRJbnNlcnRUZXh0KHRyYW5zcG9zZWQsIHJhbmdlLmdldCgpLCBFZGl0b3JJbnNl
cnRBY3Rpb25UeXBlZCkpCiAgICAgICAgIHJldHVybjsKLSAgICByZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQodHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQodHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKIH0KIAog
dm9pZCBFZGl0b3I6OmFkZFRvS2lsbFJpbmcoUmFuZ2UqIHJhbmdlLCBib29sIHByZXBlbmQpCkBA
IC0yODQ3LDcgKzI4NDgsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFz
SWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNv
bkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6
OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdT
ZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQor
dm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0
aGUgbmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVj
dGlvbi4KICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxl
Y3Rpb24uZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NTksNyArMjg2MCw3IEBAIHZvaWQgRWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3
U2VsZWN0aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91
bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRo
YXQgYXJlIG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9N
UG9zaXRpb24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KTsKICAgICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5z
ZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAg
bV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsK
KyAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBv
cHRpb25zLCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdl
IHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdp
dGhpbiB0aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBp
biB0aGUgZm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgKaW5kZXggYTU3ZDQyYS4uMTMxM2RiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CkBAIC0xNzQsNyArMTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVs
YXJpdHksIGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxl
dGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAg
ICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtMzgyLDggKzM4Miw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBXcml0aW5nRGlyZWN0aW9uIGJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2Vs
ZWN0aW9uU3RhcnQoKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNl
bGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNl
bGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWls
QmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2Nr
cXVvdGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0
KGNvbnN0IFN0cmluZyYsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQo
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9v
bCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25J
bnNlcnQsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpS
ZXNwZWN0QmxvY2txdW90ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBz
bWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNlbGVjdGlvblN0YXJ0SGFzTWFya2VyRm9yKERvY3VtZW50TWFya2VyOjpN
YXJrZXJUeXBlLCBpbnQgZnJvbSwgaW50IGxlbmd0aCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVN
YXJrZXJzRm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhib29sIG9ubHlIYW5kbGVXb3Jkc0NvbnRh
aW5pbmdTZWxlY3Rpb24pOwogICAgIHZvaWQgZGVsZXRlZEF1dG9jb3JyZWN0aW9uQXRQb3NpdGlv
bihjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxTdHJpbmcpOwpAQCAtNDY4
LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25m
aXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3Np
dGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9y
QWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJm
b3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCA1MTFjYjAyLi43YTgxNjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMg
Ym9vbCBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGcmFtZSYgZnJhbWUsIEVkaXRvckNvbW1h
bmRTb3VyY2Ugc291cmNlLAogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZyYW1l
JiBmcmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCkKIHsKICAgICBB
U1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25VbnNwZWNpZmllZCkpOwor
ICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5k
b2N1bWVudCgpLCBmcmFnbWVudCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0
aW5nLCBFZGl0QWN0aW9uSW5zZXJ0KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNDQwZjM2Ni4uODFlYWI3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgog
CisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIK
ICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKQEAgLTEzOSw3ICsxNDAsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRh
YmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29uc3QKIHZvaWQgRnJhbWVTZWxlY3Rpb246
Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRy
aWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKICAgICBzZXRTZWxlY3Rpb24o
VmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50
KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAg
ICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAg
ICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3Zl
VG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4
dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNzEsOCBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlv
biYgYmFzZSwgY29uc3QgUG9zaXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9u
OwogICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwog
ICAgIG5ld1NlbGVjdGlvbi5zZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7
Ci0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoKSB8IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNl
dEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpLCBpbnRlbnQpOwogfQogCiB2b2lkIERyYWdDYXJl
dENvbnRyb2xsZXI6OnNldENhcmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3Np
dGlvbikKQEAgLTI1NCw3ICsyNTYsMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBp
ZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwg
QWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpICYmIG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgIGlu
dGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2Nv
bnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBlbHNl
CisgICAgICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVT
ZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFy
aXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0
aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJs
eVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcg
KzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGlu
Z0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdT
ZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAg
ICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRv
Y3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0g
bV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7
Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAg
ICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIGFsaWduLCBncmFu
dWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0
aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2Rp
ZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZG
dWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBz
aW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95
ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyAr
MzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5n
QXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Ny
b2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRT
ZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwg
Q3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQog
ewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rp
b24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0
MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcg
JiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihp
bnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0
T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVj
dGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rp
b24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlv
blVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBAIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVhbFNlbGVj
dGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIAogICAgIGlmIChhdXRvKiBjbGllbnQgPSBtX2ZyYW1l
LT5lZGl0b3IoKS5jbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5kaWRDaGFuZ2VTZWxlY3Rpb25B
bmRVcGRhdGVMYXlvdXQoKTsKQEAgLTEwMjEsNyArMTAyOSw3NyBAQCBWaXNpYmxlUG9zaXRpb24g
RnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxh
cml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5k
YXJ5OwotfSAgICAKK30KKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKK0FYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50IGlubGluZSBGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVudChFQWx0
ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5KQoreworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAg
aWYgKGFsdGVyID09IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBp
bnRlbnQudHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAg
IGZsaXAgPSBpc1JhbmdlKCkgJiYgZGlyZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEw7CisgICAg
fSBlbHNlCisgICAgICAgIGludGVudC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3Rl
ckdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV29yZEdyYW51bGFyaXR5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAg
ICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlTZW50ZW5jZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6
CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFy
eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50
R3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQu
c2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVu
dDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAg
ICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToK
KyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6
CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0
eToKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBh
cmFncmFwaEJvdW5kYXJ5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91
bmRhcnkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rp
b24pIHsKKyAgICBjYXNlIERpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2Fy
ZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91cyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAg
ICAgICBpZiAoYm91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
biA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgOiBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIHJldHVybiBpbnRlbnQ7Cit9CisjZW5kaWYKIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9k
aWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7
CkBAIC0xMDc3LDYgKzExNTUsMTEgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRl
cmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAg
aWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBv
cmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBp
ZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7Cisg
ICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rp
b25JbnRlbnQoVGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0
eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFu
IHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0
aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4K
ICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVz
ZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzEwLDggKzE3OTMsMTAgQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2Vs
ZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290
LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikp
Ci0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rp
b24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCBBWFRleHRTZWxlY3Rpb24g
eyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUFsbCB9KTsKKyAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVm
YXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAg
ICB9CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJh
bmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yNDIzLDcgKzI1
MDgsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29u
dGFpbmluZ0NhcmV0U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24gPSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rp
b24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVs
YXJpdHkoKSk7CisgICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwg
QWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgp
KTsKIAogICAgIFBvc2l0aW9uIHN0YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0
YXJ0KCkpOwogICAgIFBvc2l0aW9uIGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5l
bmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4
ZS4uZWNjY2EyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAt
MjYsNiArMjYsNyBAQAogI2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2Vs
ZWN0aW9uX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVk
ZSAiRWRpdGluZ1N0eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKQEAgLTE0NCw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91
dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxl
Y3Rpb25IYXNEaXJlY3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0K
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
IEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRH
cmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0
aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3Jh
bnVsYXJpdHkpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5n
ZSosIEVBZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZWxlY3RBbGwoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIs
NyArMjczLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBT
VEFSVCwgRU5ELCBCQVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2Vs
ZWN0aW9uKCk7CisgICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKICAgICB2b2lkIHVwZGF0
ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAogICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0
aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5
OCw5ICsyOTksMTAgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2lu
dEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihFUG9zaXRpb25UeXBlKTsKIAogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBUZXh0U2VsZWN0aW9uSW50ZW50
KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CisgICAg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAjZWxzZQotICAgIHZvaWQg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTZWxlY3Rpb25JbnRlbnQp
IHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNhY2hlc0lmU2VsZWN0aW9u
SXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpAQCAtMzY3LDcgKzM2OSw3
IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRy
PEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotaW5saW5l
IHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7CiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwCmluZGV4IDUzOTRlN2UuLjdjOGRhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMzksOCArMzksOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRv
Y3VtZW50KCkpCitJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21t
YW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkK
ICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fdGV4dCh0ZXh0KQpAQCAtNTAsNiArNTAs
MTEgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2kKICAgICBBU1NFUlQoIW1fdGV4dC5pc0VtcHR5
KCkpOwogfQogCitjb25zdCBTdHJpbmcmIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omluc2Vy
dGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogdm9pZCBJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQg
PSBmcmFtZSgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgpOwpAQCAtNjYsOCArNzEs
OCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9u
b2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQp
OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNl
dCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTg0LDggKzg5LDggQEAgdm9pZCBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5n
IHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZz
ZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQo
KSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1f
bm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1f
dGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLmZm
ZTM3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0zNCwxNCArMzQsMTYgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkK
KyAgICBzdGF0aWMgUmVmPEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIHRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAK
LXByaXZhdGU6Ci0gICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAgICBjb25zdCBT
dHJpbmcmIGluc2VydGVkVGV4dCgpOworcHJvdGVjdGVkOgorICAgIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKTsKIAorcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBw
bHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCmluZGV4IGQxNmI1ZDYuLmVkMGE2
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCkBAIC0yOSwxMyArMjksMTUgQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCisj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hp
bGQsCi0gICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZDaGls
ZC0+ZG9jdW1lbnQoKSkKK0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJl
ZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDog
U2ltcGxlRWRpdENvbW1hbmQocmVmQ2hpbGQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAg
ICAgLCBtX2luc2VydENoaWxkKGluc2VydENoaWxkKQogICAgICwgbV9yZWZDaGlsZChyZWZDaGls
ZCkKICAgICAsIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCkBAIC01Nyw4ICs1OSwxMCBAQCB2b2lkIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5zZXJ0QmVmb3Jl
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9FWENFUFRJT04p
OwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCAwLCBt
X2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0
PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0
Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENo
aWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5ub2Rl
VmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNzEsMTAgQEAgdm9p
ZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgMCwg
bV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4
dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihtX2luc2Vy
dENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obV9pbnNlcnRD
aGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENoaWxkLT5u
b2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogCiAgICAgbV9p
bnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0Yjc2MmQuLjEz
ODdiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmgKQEAgLTMzLDIxICszMywyMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0
QmVmb3JlLAotICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRv
SW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0
ZToKLSAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9J
bnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworcHJvdGVjdGVkOgorICAgIEluc2VydE5vZGVCZWZv
cmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2Rl
PiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSwgRWRpdEFjdGlvbik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7Ci0gICAgCisK
ICNpZm5kZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKwogICAgIFJlZlB0cjxOb2RlPiBt
X2luc2VydENoaWxkOwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAppbmRleCAyMTI4MjljLi43ZGQwMTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5jcHAKQEAgLTU5LDggKzU5LDggQEAgc3RhdGljIEVsZW1lbnQqIGhpZ2hl
c3RWaXN1YWxseUVxdWl2YWxlbnREaXZCZWxvd1Jvb3QoRWxlbWVudCogc3RhcnRCbG9jaykKICAg
ICByZXR1cm4gY3VyQmxvY2s7CiB9CiAKLUluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6
Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29s
IG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRv
VW5xdW90ZWRBcmVhKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitJbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21t
YW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBtdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1l
bnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdB
Y3Rpb24pCiAgICAgLCBtX211c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChtdXN0VXNlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQpCiAgICAgLCBtX3Bhc3RlQmxvY2txdXRvZUludG9VbnF1b3Rl
ZEFyZWEocGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgK
aW5kZXggMTI4MWYwYy4uNjczNDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKQEAgLTM0LDEzICszNCwx
MyBAQCBjbGFzcyBFZGl0aW5nU3R5bGU7CiAKIGNsYXNzIEluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29s
IHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSkKKyAgICBzdGF0aWMgUmVm
PEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJs
b2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
biA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKGRvY3VtZW50LCB1c2VEZWZhdWx0UGFy
YWdyYXBoRWxlbWVudCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKGRv
Y3VtZW50LCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgcGFzdGVCbG9ja3F1dG9lSW50b1Vu
cXVvdGVkQXJlYSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBJbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKERvY3VtZW50JiwgYm9vbCB1c2VEZWZhdWx0UGFy
YWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKTsKKyAg
ICBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKERvY3VtZW50JiwgYm9vbCB1c2VEZWZh
dWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVh
LCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAKaW5kZXggYmRkNTlhMy4uNTcy
ZThlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAK
QEAgLTM3LDE2ICszNywxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydFRleHRD
b21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNl
VHlwZSkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0VGV4dENv
bW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VU
eXBlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFu
ZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV9z
ZWxlY3RJbnNlcnRlZFRleHQoc2VsZWN0SW5zZXJ0ZWRUZXh0KQogICAgICwgbV9yZWJhbGFuY2VU
eXBlKHJlYmFsYW5jZVR5cGUpCiB7CiB9CiAKLUluc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0
cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQotICAgIDogQ29t
cG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitJbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4
dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQ
dHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllciwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVk
aXRpbmdBY3Rpb24pCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fc2VsZWN0SW5zZXJ0ZWRU
ZXh0KGZhbHNlKQogICAgICwgbV9yZWJhbGFuY2VUeXBlKFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFp
bGluZ1doaXRlc3BhY2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFu
ZC5oCmluZGV4IGYxMGQyZmUuLjY1MjgxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydFRleHRDb21tYW5kLmgKQEAgLTQ5LDIwICs0OSwyMSBAQCBwdWJsaWM6CiAgICAgfTsKIAog
ICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwK
LSAgICAgICAgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0Fu
ZFRyYWlsaW5nV2hpdGVzcGFjZXMpCisgICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlw
ZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2Vy
dGVkVGV4dCwgcmViYWxhbmNlVHlwZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJh
bGFuY2VUeXBlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxJbnNl
cnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBw
bGllcj4gbWFya2VyU3VwcGxpZXIpCisgICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3Vw
cGxpZXIsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVu
dCwgdGV4dCwgbWFya2VyU3VwcGxpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyLCBlZGl0aW5n
QWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgorICAgIEluc2VydFRleHRD
b21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNl
cnRpb25NYXJrZXJTdXBwbGllcj4sIEVkaXRBY3Rpb24pOworICAgIEluc2VydFRleHRDb21tYW5k
KERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwg
UmViYWxhbmNlVHlwZSwgRWRpdEFjdGlvbik7CiAKLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFs
YW5jZVR5cGUpOwotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworcHJpdmF0
ZToKIAogICAgIHZvaWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZC5jcHAKaW5kZXggMmMwNjNjMC4uYzYyOTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5j
cHAKQEAgLTMxLDggKzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKLSAgICA6IENvbXBv
c2l0ZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCkpCitSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZDo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSwgZWRpdGluZ0Fj
dGlvbikKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQuaAppbmRleCA0YjkxOTc0Li4xYjJjNDJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCA6IHB1YmxpYyBDb21wb3Np
dGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQ
dHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBleHBs
aWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1Yjk4NDMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworICAgIAorUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gdGV4dCwgdW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQo
dGV4dCwgb2Zmc2V0LCBjb3VudCwgRWRpdEFjdGlvbkRlbGV0ZSkKK3sKK30KKwordm9pZCBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk4NTg3MAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQg
OiBwdWJsaWMgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgdW5z
aWduZWQpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzgyZDAx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24pCisgICAgLCBtX2Rl
bGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2Rl
LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisg
ICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoK
KyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToK
KyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhU
ZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRU
ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVUeXBpbmc6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0
aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCB0eXBlLCB0ZXh0
LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmJhNjFkYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHQ7CisKK2NsYXNzIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0LCBl
ZGl0aW5nQWN0aW9uKSk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRBY3Rpb24pOworCitwcml2YXRlOgorICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworCisg
ICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGZi
Mzg4MGMuLjhhYWJmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC00Nyw2ICs0Nyw4IEBACiAjaW5jbHVkZSAiUmVuZGVy
SW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4
dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5j
bHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJTaW1w
bGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIKICNpbmNsdWRl
ICJTdHlsZVByb3BlcnRpZXMuaCIKQEAgLTM2OSw3ICszNzEsNyBAQCBpbmxpbmUgdm9pZCBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWROb2Rlczo6ZGlkUmVwbGFjZU5vZGUoTm9kZSog
bm9kZSwgTgogfQogCiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50LCBDb21tYW5kT3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCi0g
ICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRD
b21tYW5kKGRvY3VtZW50LCBlZGl0QWN0aW9uKQogICAgICwgbV9zZWxlY3RSZXBsYWNlbWVudChv
cHRpb25zICYgU2VsZWN0UmVwbGFjZW1lbnQpCiAgICAgLCBtX3NtYXJ0UmVwbGFjZShvcHRpb25z
ICYgU21hcnRSZXBsYWNlKQogICAgICwgbV9tYXRjaFN0eWxlKG9wdGlvbnMgJiBNYXRjaFN0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
CmluZGV4IGQ4N2MzZmYuLjg4ZGEwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTQ4LDkgKzQ4LDkgQEAgcHVibGljOgogCiAg
ICAgdHlwZWRlZiB1bnNpZ25lZCBDb21tYW5kT3B0aW9uczsKIAotICAgIHN0YXRpYyBSZWY8UmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVk
aXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvblBhc3RlKQorICAgIHN0YXRpYyBSZWY8UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgZnJh
Z21lbnQsIG9wdGlvbnMsIGFjdGlvbikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgZnJhZ21lbnQsIG9wdGlvbnMsIGVkaXRp
bmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0xMjEsNiArMTIxLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fcHJldmVudE5lc3Rpbmc7CiAgICAgYm9vbCBtX21vdmluZ1BhcmFncmFw
aDsKICAgICBFZGl0QWN0aW9uIG1fZWRpdEFjdGlvbjsKKyAgICBBWFRleHRFZGl0VHlwZSBtX2Fw
cGx5RWRpdFR5cGU7CiAgICAgYm9vbCBtX3Nhbml0aXplRnJhZ21lbnQ7CiAgICAgYm9vbCBtX3No
b3VsZE1lcmdlRW5kOwogICAgIGJvb2wgbV9pZ25vcmVNYWlsQmxvY2txdW90ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLmYwNzQ0NDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtMzc0LDcgKzM3NCw3
IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQpCiB7CiAgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0VGV4
dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsCi0g
ICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRU
ZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNl
cnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOworICAgICAgICBtX2NvbXBv
c2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJl
YmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6
OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzLCBFZGl0QWN0aW9uVHlwaW5nKTsKIAogICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIApAQCAtMzk1
LDcgKzM5NSw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
KCkKICAgICBpZiAoIWNhbkFwcGVuZE5ld0xpbmVGZWVkVG9TZWxlY3Rpb24oZW5kaW5nU2VsZWN0
aW9uKCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSkpOworICAg
IGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25UeXBpbmcpKTsKICAg
ICB0eXBpbmdBZGRlZFRvT3BlbkNvbW1hbmQoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25B
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3Bw
CmluZGV4IDdjMjEzNjUuLjMzMmUwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZvaWQg
bWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4g
cHJwT2JqZWN0KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKICAg
ICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNv
bW1hbmRJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFu
ZElPUy5jcHAKaW5kZXggYzE4ODMzOC4uMTM0YjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKQEAgLTM4LDcgKzM4LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRGljdGF0aW9uQ29tbWFuZElPUzo6RGljdGF0aW9uQ29t
bWFuZElPUyhEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBkaWN0
YXRpb25QaHJhc2VzLCBSZXRhaW5QdHI8aWQ+IG1ldGFkYXRhKQotICAgIDogQ29tcG9zaXRlRWRp
dENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwg
RWRpdEFjdGlvbkRpY3RhdGlvbikKICAgICAsIG1fZGljdGF0aW9uUGhyYXNlcyhXVEY6Om1vdmUo
ZGljdGF0aW9uUGhyYXNlcykpCiAgICAgLCBtX21ldGFkYXRhKFdURjo6bW92ZShtZXRhZGF0YSkp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21t
YW5kSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9T
LmgKaW5kZXggYmY5MDc2NC4uYWM1Y2IyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaApAQCAtNDQsNyArNDQsNiBAQCBwcml2YXRlOgog
ICAgIERpY3RhdGlvbkNvbW1hbmRJT1MoRG9jdW1lbnQmLCBWZWN0b3I8VmVjdG9yPFN0cmluZz4+
JiYgZGljdGF0aW9uUGhyYXNlcywgUmV0YWluUHRyPGlkPiBtZXRhZGF0YSk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRWRpdEFjdGlvbkRpY3RhdGlvbjsg
fQogCiAgICAgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiBtX2RpY3RhdGlvblBocmFzZXM7CiAgICAg
UmV0YWluUHRyPGlkPiBtX21ldGFkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
Yy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi5mZDQxOTk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcsMTMg
KzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0KENH
UmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZvaWQg
RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQor
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgIGlmIChtX3NlbGVjdGlvbi5zdGFydCgp
LmlzTm90TnVsbCgpICYmIG1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKSB7CiAgICAgICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LT5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0
YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhTZWxl
Y3RlZFRleHRDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKKyAgICAgICAgICAgIGNh
Y2hlLT5wb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG1fc2VsZWN0aW9uLnN0YXJ0KCku
ZGVwcmVjYXRlZE5vZGUoKSwgaW50ZW50LCBtX3NlbGVjdGlvbik7CiAgICAgfQogCiAjaWYgIVBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAKaW5kZXggMWU2YzZiMi4uMzY4NGUyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU0OCwxNiAr
NTQ4LDI2IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZh
bHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChp
c1RleHRGb3JtQ29udHJvbCgpKTsKLSAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBp
bm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgU3RyaW5nIHByZXZpb3VzVmFsdWUg
PSBpbm5lclRleHRWYWx1ZUZyb20oKmlubmVyVGV4dCk7CisgICAgYm9vbCB0ZXh0SXNDaGFuZ2Vk
ID0gdmFsdWUgIT0gcHJldmlvdXNWYWx1ZTsKICAgICBpZiAodGV4dElzQ2hhbmdlZCB8fCAhaW5u
ZXJUZXh0LT5oYXNDaGlsZE5vZGVzKCkpIHsKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmICFQ
TEFURk9STShDT0NPQSkKICAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkg
ewogICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKICAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNh
dGlvbih0aGlzLCBBWE9iamVjdENhY2hlOjpBWFZhbHVlQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJs
ZVBhcmVudCk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpbm5lclRleHQtPnNldElubmVy
VGV4dCh2YWx1ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgaWYgKHZhbHVlLmVu
ZHNXaXRoKCdcbicpIHx8IHZhbHVlLmVuZHNXaXRoKCdccicpKQogICAgICAgICAgICAgaW5uZXJU
ZXh0LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VS
VF9OT19FWENFUFRJT04pOworCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShD
T0NPQSkKKyAgICAgICAgaWYgKHRleHRJc0NoYW5nZWQgJiYgcmVuZGVyZXIoKSkgeworICAgICAg
ICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2Jq
ZWN0Q2FjaGUoKSkKKyAgICAgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbih0aGlzLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgcHJldmlvdXNWYWx1ZSwgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQsIHZhbHVlLCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24odGhpcywg
UG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3IpKSk7CisgICAgICAgIH0KKyNlbmRpZgog
ICAgIH0KIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggODg2Yzc2NS4uM2Q5ZmVmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIzOSw3ICszMjM5LDggQEAgc3Rh
dGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0
aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4
dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVL
ZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdmZS4u
ZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzQw
LDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVu
dE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgIGlmIChjYXJldEJyb3dz
aW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbkluT3JCZWZv
cmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVj
dGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwotICAgICAgICBpZiAoZnJhbWUu
c2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
ICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAg
ICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rp
b24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVz
ZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZWxlbWVudC0+
Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOGU2Yjk2Zi4uNmFj
YzE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA0LTIzICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBn
aXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25k
aW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNt
IHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNj
ZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisg
ICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2Yg
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFw
cHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2Vi
IGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMg
b24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JFZGl0QWN0aW9uKToKKwogMjAxNS0wNC0y
MyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVGhlcmUgc2hv
dWxkIG9ubHkgYmUgb25lIHdheSB0byBnZXQgdGhlIHN5c3RlbSBtZW1vcnkgc2l6ZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpp
bmRleCBkMjFjZGYwLi5lNTkwZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01NDYsNiArNTQ2LDcgQEAgc3RhdGlj
IE5TU3RyaW5nKiB1bmRvTmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQog
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIGlkZW50aWNhbCB0byBjb2RlIGluIFdlYktpdDIncyBXZWJF
ZGl0Q29tbWFuZFByb3h5IGNsYXNzOyB3b3VsZCBiZSBuaWNlIHRvIHNoYXJlIHRoZSBzdHJpbmdz
IGluc3RlYWQgb2YgaGF2aW5nIHR3byBjb3BpZXMuCiAgICAgc3dpdGNoIChlZGl0QWN0aW9uKSB7
CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOiByZXR1cm4gbmlsOworICAgICAg
ICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6IHJldHVybiBuaWw7CiAgICAgICAgIGNhc2UgRWRpdEFj
dGlvblNldENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IENvbG9yIiwg
IlNldCBDb2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6IHJldHVybiBVSV9TVFJJTkdf
S0VZX0lOVEVSTkFMKCJTZXQgQmFja2dyb3VuZCBDb2xvciIsICJTZXQgQmFja2dyb3VuZCBDb2xv
ciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBjYXNl
IEVkaXRBY3Rpb25UdXJuT2ZmS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwo
IlR1cm4gT2ZmIEtlcm5pbmciLCAiVHVybiBPZmYgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSki
LCAiVW5kbyBhY3Rpb24gbmFtZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDMxYjViMWMuLjUzZTE2MDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNC0yMyAgRG91ZyBSdXNzZWxsICA8ZF9y
dXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlm
aWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25z
LiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRp
b24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUg
dGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2Vz
IGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVl
IGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRo
d2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIg
YWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVj
dGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZp
ZWxkcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24pOgor
CiAyMDE1LTA0LTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtpT1NdIFdlYktpdCBzZXJ2aWNlcyBzaG91bGQgaW5oZXJpdCBlbnZpcm9ubWVudCB2YXJp
YWJsZXMgZm9yIGhvbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJF
ZGl0Q29tbWFuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29t
bWFuZFByb3h5LmNwcAppbmRleCA1NGNlMDNjLi44Nzg1NTk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCkBAIC03NCw2ICs3NCw4IEBA
IFN0cmluZyBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbihFZGl0QWN0aW9u
IGVkaXRBY3Rpb24pCiAgICAgc3dpdGNoIChlZGl0QWN0aW9uKSB7CiAgICAgY2FzZSBFZGl0QWN0
aW9uVW5zcGVjaWZpZWQ6CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBjYXNlIEVkaXRB
Y3Rpb25JbnNlcnQ6CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICBjYXNlIEVkaXRBY3Rp
b25TZXRDb2xvcjoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJTZXQgQ29sb3Ii
LCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CiAg
ICAgY2FzZSBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU1M2QxYjEuLjk4MTRkZTkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxNS0wNC0yMyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRp
dFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFj
ZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNv
IGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQg
Zm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNh
ZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rp
b24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8g
Z2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9u
ZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0
aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAg
ICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJl
Y2VpdmVkOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisKIDIw
MTUtMDQtMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBVc2UgbGVzcyBtZW1vcnkgd2hlbiBjb21waWxpbmcgY29udGVudCBleHRlbnNpb25z
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIuaAppbmRleCAxOTM4NmNlLi45MDhkYmRjIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXIuaApAQCAtNDIsNiArNDIsNyBAQAogLSAodm9pZClzZXRQbGF0Zm9ybUVsZW1l
bnQ6KGlkKXBsYXRmb3JtRWxlbWVudDsKIC0gKHZvaWQpc2V0Q2FsbGJhY2s6KEpTT2JqZWN0UmVm
KWNhbGxiYWNrOwogLSAodm9pZClzdGFydE9ic2VydmluZzsKKy0gKHZvaWQpc3RvcE9ic2Vydmlu
ZzsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggYWRhNjg3YS4uZjFjOWFm
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTA0LDYgKzEwNCwxMSBAQAogICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxl
Y3RvcjpAc2VsZWN0b3IoX25vdGlmaWNhdGlvblJlY2VpdmVkOikgbmFtZTpAIkFYRFJUTm90aWZp
Y2F0aW9uIiBvYmplY3Q6bmlsXTsKIH0KIAorLSAodm9pZClzdG9wT2JzZXJ2aW5nCit7CisgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxm
XTsKK30KKwogLSAodm9pZClfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCiB7CiAgICAgTlNTdHJpbmcgKm5vdGlmaWNhdGlvbk5hbWUgPSBbW25vdGlm
aWNhdGlvbiB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAibm90aWZpY2F0aW9uTmFtZSJdOwpAQCAt
MTEyLDE2ICsxMTcsMjcgQEAKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9y
bUVsZW1lbnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBOU1N0cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1
c2VySW5mbyJdOworCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9u
KEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFs
dWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoW21haW5G
cmFtZSBnbG9iYWxDb250ZXh0XSwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVS
ZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNP
TlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNl
ckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1Jl
Zl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9t
SlNPTlN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc1VzZXJJbmZvSlNPTlZhbHVl
LmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8v
IExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90
aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFt
ZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAxLCAm
bm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBB
IGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9uIG5h
bWUgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQgZ2V0
cyB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1syXTsKKyAgICAgICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFtZUFy
Z3VtZW50OworICAgICAgICBhcmd1bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50
OworICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAwKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVt
ZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYg
YXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVudHNbMF0gPSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjptYWtlSlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoW25vdGlmaWNhdGlvbiBvYmplY3RdKSk7CiAgICAg
ICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJn
dW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1
bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0g
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpp
bmRleCA0NjczYTFkLi4zOTdjNjM4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpAQCAtMTQ0Niw2ICsxNDQ2LDcgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigp
CiAgICAgLy8gTWFjIHByb2dyYW1tZXJzIHNob3VsZCBub3QgYmUgdHJ5aW5nIHRvIHJlbW92ZSBh
IGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJlbW92ZWQuCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0
aW9uSGFuZGxlcik7CiAKKyAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZpbmdd
OwogICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgcmVsZWFzZV07CiAgICAgbV9ub3RpZmljYXRp
b25IYW5kbGVyID0gbmlsOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCA2NTFiNTkxLi4yOGNhMDNmIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQpAQCAtMTI1LDE5
ICsxMjUsMzAgQEAKICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQgJiYgbV9wbGF0Zm9ybUVsZW1l
bnQgIT0gW25vdGlmaWNhdGlvbiBvYmplY3RdKQogICAgICAgICByZXR1cm47CiAKKyAgICBOU1N0
cmluZyAqdXNlckluZm9KU09OVmFsdWUgPSBub3RpZmljYXRpb24udXNlckluZm9bQCJ1c2VySW5m
byJdOworCiAgICAgV0tCdW5kbGVGcmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRN
YWluRnJhbWUoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkp
OwogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRD
b250ZXh0KG1haW5GcmFtZSk7CiAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNOb3Rp
ZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25OYW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAg
ICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmlu
Zyhjb250ZXh0LCBqc05vdGlmaWNhdGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5m
b0pTT05WYWx1ZUFyZ3VtZW50ID0gbmlsOworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVu
Z3RoXSkgeworICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05W
YWx1ZShBZG9wdCwgW3VzZXJJbmZvSlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAg
ICAgIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5n
KGNvbnRleHQsIGpzVXNlckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAobV9w
bGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1
c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25v
dGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAxLCAmbm90aWZpY2F0aW9uTmFtZUFyZ3Vt
ZW50LCAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRz
IHRoZSBlbGVtZW50IGFuZCB0aGUgbm90aWZpY2F0aW9uIG5hbWUgYXMgYXJndW1lbnRzLgorICAg
ICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQgZ2V0cyB0aGUgbm90aWZpY2F0aW9uIG5h
bWUgYW5kIHVzZXJJbmZvLgogICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1syXTsKKyAgICAg
ICAgYXJndW1lbnRzWzBdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1
bWVudHNbMV0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OworICAgICAgICBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0
aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0
aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsK
ICAgICAgICAgYXJndW1lbnRzWzBdID0gdG9KUyhjb250ZXh0LCBXVEY6OmdldFB0cihXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbbm90aWZpY2F0aW9uIG9iamVjdF0pKSk7CiAg
ICAgICAgIGFyZ3VtZW50c1sxXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAg
YXJndW1lbnRzWzJdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKICAgICAgICAgSlNPYmpl
Y3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlm
aWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IGVkMDJmYjcu
LmUyNjA3ZTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQpA
QCAtMTQ3Niw2ICsxNDc2LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVO
b3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgLy8gTWFjIHByb2dyYW1tZXJzIHNob3VsZCBub3Qg
YmUgdHJ5aW5nIHRvIHJlbW92ZSBhIGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJlbW92ZWQuCiAg
ICAgQVNTRVJUKG1fbm90aWZpY2F0aW9uSGFuZGxlcik7CiAKKyAgICBbbV9ub3RpZmljYXRpb25I
YW5kbGVyIHN0b3BPYnNlcnZpbmddOwogICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgcmVsZWFz
ZV07CiAgICAgbV9ub3RpZmljYXRpb25IYW5kbGVyID0gbmlsOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251507</attachid>
            <date>2015-04-23 15:59:45 -0700</date>
            <delta_ts>2015-04-23 21:56:16 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>217021</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDAwMzU2ZWQ3YzU3ODlmYTA4NGIyOWQ1MjAyMDE1YzI3YTk5ZjhkMzcKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQyYWViOC4uMjIwNzJhNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIzICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMyAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtYnktY2hhcmFjdGVyLTAwNy5odG1sIHNob3VsZCBwYXNzIG9uIE9TIFggMTAuMTAuMy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJl
cGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYTZmODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKyAgCitUaGlz
IHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhIHdoZW4gcmVw
bGFjaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbnB1dCBmaWVsZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRU
eXBlRGVsZXRlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsxXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRl
eHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlSW5zZXJ0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsi
QVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiICIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUwZGUzMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBpZD0iYm9keSI+CisKKyAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJzZWN1
cmV2YWx1ZXRlc3QiPgorCisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ2YWx1ZXRlc3QiPgor
CisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CisgICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0Pgor
CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhIHdoZW4gcmVwbGFjaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbnB1
dCBmaWVsZC4iKTsKKworICAgICAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCA9IDE7
CisKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGVsZXRlID0gMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0ID0gQVhUZXh0RWRpdFR5cGVEZWxldGUgKyAxOworCisgICAgICAg
IHZhciB3ZWJBcmVhID0gMDsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIHJl
c3VsdHMgPSBbXTsKKyAgICAgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rp
b24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAg
ICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1ZUNoYW5nZWQiKSB7CisgICAgICAgICAg
ICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOwor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAyKSB7CisKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzFdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzFdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKwor
ICAgICAgICAgICAgICAgICAgICAvLyBQYXNzd29yZCBub3RpZmljYXRpb25zIHdpbGwgYmUgaW5z
ZXJ0IG9ubHkgYW5kIHRoZSB2YWx1ZSBzdHJpbmcgd2lsbCBiZSB3aGl0ZXNwYWNlCisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENo
YW5nZVZhbHVlXCJdIiwgIlwiIFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVk
aXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlSW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAg
ICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0dmFsdWUoKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUg
PSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZXRzZWN1cmV2YWx1ZSgpIHsK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52
YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworCisgICAgICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICAgICAgd2ViQXJl
YSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsK
KyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0
aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICAgICAgc2hvdWxkQmUo
ImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAgICAgICAgc2V0dmFsdWUoKTsK
KworICAgICAgICAgICAgc2V0c2VjdXJldmFsdWUoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
Y2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kZDIyZmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw5NSBAQAorb25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC4KKworc2V2ZW4g
ZWlnaHQgbmluZS4KKworVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMg
dXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFk
ZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFu
Z2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTc1
MzdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsMjE3IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgcm9sZT0idGV4dGJveCIg
dGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxlPXRydWU+Cis8cD5vbmUgdHdv
IHRocmVlLiBmb3VyIGZpdmUgc2l4LjwvcD4KKzxwPnNldmVuIGVpZ2h0IG5pbmUuPC9wPgorPC9k
aXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGlu
Zm8gZGF0YS4iKTsKKworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ID0gMjsKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kID0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSArIDE7CisKKyAgICB2YXIgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nICsgMTsKKyAgICB2
YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0ID0gQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgKyAxOworCisgICAgdmFyIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lICsgMTsKKyAgICB2YXIgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1
bWVudCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoICsgMjsKKworICAgIHZh
ciBncmFuID0gWyJjaGFyYWN0ZXIiLCAid29yZCIsICJzZW50ZW5jZSIsICJsaW5lIiwgInBhcmFn
cmFwaCIsICJsaW5lYm91bmRhcnkiLCAic2VudGVuY2Vib3VuZGFyeSIsICJwYXJhZ3JhcGhib3Vu
ZGFyeSIsICJkb2N1bWVudGJvdW5kYXJ5Il07CisgICAgdmFyIHdlYkFyZWEgPSAwOworICAgIHZh
ciBjb3VudCA9IDA7CisgICAgdmFyIHJlc3VsdHMgPSBbXTsKKyAgICB2YXIgcmVzdWx0SW5kZXgg
PSAwOworICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZFRleHRDaGFu
Z2VkIikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGlmICh1c2VySW5mbykK
KyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAgICAgICAgICAgaWYg
KGNvdW50ID09IGdyYW4ubGVuZ3RoICogNCkgeworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsK
KworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwi
XSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmci
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9
IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAy
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25M
aXN0ZW5lcigpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFu
Y2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRk
ZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNh
dGlvbkNhbGxiYWNrKTsKKyAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRy
dWUiKTsKKworICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRi
b3giKTsKKyAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgIC8vIFRyaWdnZXIgc2Vs
ZWN0aW9uIGNoYW5nZXMuCisgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwor
ICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFuW2ld
KTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLnNl
dFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJm
b3J3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgIH0KKyAgICB9CisKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTNhYWJlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFs
dWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACiswMjM0NTY3
ODkwCitUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRh
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlv
biBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlQ3V0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhU
ZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0
VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIyMzQ1Njc4OTAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlw
ZVBhc3RlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUi
XSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlVHlwaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhU
ZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUt
Y2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zZGFkMzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSw5NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9l
ZGl0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxk
aXYgcm9sZT0idGV4dGJveCIgdGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxl
PXRydWU+MDEyMzQ1Njc4OTA8L2Rpdj4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMi
PjwvZGl2PgorCisgICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4iKTsKKworICAgICAg
ICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCA9IDE7CisKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlRGVsZXRlID0gMTsKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlSW5zZXJ0ID0g
QVhUZXh0RWRpdFR5cGVEZWxldGUgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVUeXBp
bmcgPSBBWFRleHRFZGl0VHlwZUluc2VydCArIDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiA9IEFYVGV4dEVkaXRUeXBlVHlwaW5nICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlQ3V0ID0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gKyAxCisgICAgICAgIHZhciBB
WFRleHRFZGl0VHlwZVBhc3RlID0gQVhUZXh0RWRpdFR5cGVDdXQgKyAxOworCisgICAgICAgIHZh
ciB3ZWJBcmVhID0gMDsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIHJlc3Vs
dHMgPSBbXTsKKyAgICAgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rpb24g
bm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICAg
ICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1ZUNoYW5nZWQiKSB7CisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAg
ICAgICAgICAgICAgIGlmIChjb3VudCA9PSA2KSB7CisKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVDdXQiKTsKKworICAgICAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4
dEVkaXRUeXBlUGFzdGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjIzNDU2Nzg5MFwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlUGFzdGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFu
Z2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFu
Z2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZVR5cGlu
ZyIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wi
XVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wi
XVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAg
ICAgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3
ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4
KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3Rp
ZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91
bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICB2YXIgdGV4
dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICB0
ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRl
eHRib3gsIDApOworICAgICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0
ZXJDb21tYW5kKCk7CisgICAgICAgICAgICBjdXRDb21tYW5kKCk7CisgICAgICAgICAgICBleGVj
RXh0ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIHBh
c3RlQ29tbWFuZCgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiMSIpOworICAg
ICAgICAgICAgZGVsZXRlQ29tbWFuZCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM4ZTIwNWEuLmU3
Yzk3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNTEzLDYgKzE1MTMsOCBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0
dHJpYnV0ZUNvbW1hbmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNjY2FiZS4uOWVlNTc1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxMyBAQAorMjAxNS0wNC0yMyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNz
ZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24g
YW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVj
aCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGlu
IHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNo
YW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2Fy
dCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNj
ZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlv
bi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxk
cy4KKworICAgICAgICBUZXN0czogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVw
bGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAg
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1
ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JD
b250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpw
YXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQpOiBEZWxldGVkLgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmpl
Y3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lv
cy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlv
bik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlv
bnNGb3JUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVw
bGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmg6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNj
ZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6XSk6CisgICAgICAgICgtW1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZp
Y2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyk6CisgICAgICAg
IChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjp1
c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAq
IGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5v
ZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21t
YW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphcHBseUJsb2NrU3R5
bGUpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRlRWRpdENvbW1hbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVCZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omlu
c2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFu
ZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHlTdHlsZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0TGluZUJyZWFrKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92
ZUNoaWxkcmVuSW5SYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6aW5wdXRUZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6c2hvdWxkU3RvcENhcmV0QmxpbmtpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcv
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAg
ICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGlu
Zy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgICogZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRpb25Db21tYW5kOjppbnNlcnRUZXh0
UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6
Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9FZGl0QWN0aW9u
Lmg6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1h
bmQ6OmVkaXRpbmdBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OmFwcGx5
RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OnVuYXBwbHlFZGl0VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6U2ltcGxlRWRpdENvbW1h
bmQpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjpzZXRQ
YXJlbnQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpleGVjdXRlSW5zZXJ0RnJhZ21lbnQpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om1vdmVUbyk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8p
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbkJ5TW91c2VJ
ZkRpZmZlcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0
aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNCb3VuZGFy
eSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6VGV4dFNlbGVjdGlvbkludGVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldE5lZWRzU2VsZWN0aW9uVXBkYXRl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3Zp
bmdCYWNrd2FyZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbkF0V29yZFN0YXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
OjppbnNlcnRlZFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9B
cHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFw
cGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAg
KiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21t
YW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVk
aXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2ViQ29yZTo6UmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgIChXZWJDb3JlOjpS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKToKKyAg
ICAgICAgKiBlZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
LgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA6Cisg
ICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5k
OjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGlu
Z0NvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9h
dGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVk
aXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVT
ZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAg
ICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0aWFs
S2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVu
dE9yZGVyKToKKwogMjAxNS0wNC0yMyAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIE1pc3NlZCBhIGJ1dHRvbiBpbiByMTgyOTAwLgpAQCAt
MjAxMSw2ICsyMjIxLDIxIEBACiAgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29tcHV0
ZWRMaW5lSGVpZ2h0KTogQ2xhbXAgbGluZS1oZWlnaHQgdG8gYW4KICAgICAgICAgICAgIGludCB0
byBhdm9pZCBvdmVyZmxvdy4KIAorMjAxNS0wNC0xNCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjcx
OQorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZh
bHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRv
IHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworMjAxNS0wNC0xNCAg
RG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVy
IHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIE5ldyBFZGl0Q29tbWFuZCBzdWJj
bGFzc2VzIHRvIGdpdmUgdGhlIGNvbnRleHQgdGhhdCBhY2Nlc3NpYmlsaXR5IG5lZWRzIHRvIHBv
c3QgbW9yZSBkZXRhaWxlZCB2YWx1ZSBhbmQgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25z
LiBUaGlzIGNvbW1pdCBpcyBhbGwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGRvZXNuJ3QgY29udGFpbiBh
bnkgYWNjZXNzaWJpbGl0eSBzcGVjaWZpYyBjaGFuZ2VzLgorPj4+Pj4+PiA8cmRhcjovL3Byb2Js
ZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5
KQorCiAyMDE1LTA0LTE3ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGb3JjZSBtb3VzZSBldmVudHMgc2hvdWxkIGdvIHRocm91Z2ggbm9ybWFsIG1vdXNlIGV2ZW50
IGhhbmRsaW5nIGNvZGUgcGF0aHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCmluZGV4IGFjODE1MzguLjVjNTViYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTQ3ODcsNiArMTQ3ODcs
MzQgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1
Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29u
ZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZp
eHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5D
YWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0
aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xOTU1NSw2ICsxOTU4Myw3IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRl
ckNvbnRhaW5lci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0
eVxBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGFjY2Vzc2liaWxpdHlcQVhPYmplY3RDYWNoZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cYWNjZXNzaWJpbGl0eVxBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVx3aW5cQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJXaW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWRqdXN0
Vmlld1NpemVPck5vdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxBbHRl
cm5hdGl2ZVRleHRDbGllbnQuaCIgLz4KQEAgLTIxMTA3LDYgKzIxMTM2LDggQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZUNvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVy
ZWRQb3NpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xTZXRO
b2RlQXR0cmlidXRlQ29tbWFuZC5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDk1YzMxZTguLmU3NmMx
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTM1MjgsNiArMzUyOCwxMiBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVy
PmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAiPgorICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5D
b21tYW5kLmNwcCI+CiAgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KQEAgLTc2NzEsNiArNzY3Nyw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxh
Y2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCI+CiAgICAgICA8RmlsdGVyPmFjY2Vzc2liaWxp
dHk8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCI+CisgICAgICAgIDxGaWx0
ZXI+YWNjZXNzaWJpbGl0eTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVx3aW5cQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJXaW4uaCI+CiAgICAgICA8RmlsdGVyPmFjY2Vzc2liaWxpdHlcd2luPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkBAIC0xMDY4MCw2ICsxMDY4OSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZW5kZXJlZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRlcj5lZGl0
aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiPgorICAgICAgPEZp
bHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiPgor
ICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MjM3YWNlYi4uZjY1NWNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzI1MCw2ICszMjUwLDcgQEAKIAkJOTAwMTc3NDExMkUw
MzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAv
KiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CiAJCTkwMDE3ODgwMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpT
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi87IH07CiAJCTkwMDE3ODgxMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKKwkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFD
IC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzAyQjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4
MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBD
N0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzAyQjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNUIyNEQwOThG
MUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzA1QjI0QzA5OEYxQjZCMDBDMjg4NTUgLyogVGltZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjM5Niw2ICs2Mzk3
LDEwIEBACiAJCUY1MkFENUU0MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi87IH07CiAJCUY1NDRGNzg4MTVDRkIy
QTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuY3BwICovOyB9OwogCQlGNTQ0Rjc4OTE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5oICovOyB9OworCQlG
NTUyOERBNTFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4
REEzMUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
ICovOyB9OworCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCAqLzsgfTsKKwkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REFBMUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1MjhEQTgxQUMxMDlERjAw
MEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi87IH07CiAJCUY1
NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJE
MDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4
dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9
OwpAQCAtMTA1MDEsNiArMTA1MDYsNyBAQAogCQk5MDAxNzczRjEyRTAzNDc4MDA2NDg0NjIgLyog
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw7IHBhdGggPSBjYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdFMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTFD
OUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlR3JvdXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNDA0Miw2ICsxNDA0OCwxMCBAQAogCQlGNTJBRDVFMzE1MzQy
NDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEVtcHR5Q2xpZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1NDRGNzg2MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0Zm9ybUxvY2FsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUxvY2FsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NDRGNzg3MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0
Zm9ybUxvY2FsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUxv
Y2FsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTUyOERBMzFBQzEwMzNFMDAw
RUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTgxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4
dElucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNl
VGV4dElucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1NUIzRDdB
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCYXNlVGV4dElucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJ1dHRvbklucHV0VHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTY2Myw2ICsxNTY3Myw3IEBACiAJ
CQkJMjlBODEyMTMwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlUYWJsZVJvdy5oICov
LAogCQkJCTI5ODFDQUFGMTMxODIyRUMwMEQxMkYyQSAvKiBBWE9iamVjdENhY2hlLmNwcCAqLywK
IAkJCQkyOUE4MTIxQTBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oICovLAorCQkJ
CTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBhY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTE3Nzk2LDYgKzE3ODA3LDEwIEBACiAJCQkJOTMzMDlEQjgwOTlFNjQ5MTAwNTZF
NTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggKi8sCiAJCQkJOUIz
MkNEQTgxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uY3BwICovLAogCQkJCTlC
MzJDREE3MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi8sCisJCQkJRjU1
MjhEQTQxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmNwcCAqLywKKwkJCQlGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuaCAqLywKKwkJCQlGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyog
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAorCQkJCUY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovLAog
CQkJCUE4OUNDQzUwMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5jcHAgKi8sCiAJCQkJQTg5Q0NDNTEwRjQ0RTk4MTAwQjVEQTEwIC8qIFJlcGxhY2VOb2RlV2l0
aFNwYW5Db21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcCAqLywKQEAgLTIzNzMxLDYgKzIzNzQ2LDcgQEAKIAkJCQk2
QzU2OENCMTE5REFGRUEwMDA0MzBDQTIgLyogTWFza0ltYWdlT3BlcmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU4MEZBRjE0OTgwMEQ0MDBGQjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTRGNjU3MjFBQTk5N0YxMDBFMzhDREQgLyogUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQTUx
QUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzMwOURENzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEY2QkJEMERCNTVDREMwMDFEQjc5NCAvKiBB
cHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRjBEQjU1Q0RDMDAx
REI3OTQgLyogQXBwbGljYXRpb25DYWNoZUdyb3VwLmggaW4gSGVhZGVycyAqLywKQEAgLTI1NjU2
LDYgKzI1NjcyLDcgQEAKIAkJCQlCQzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjkxNkM0OEUwREI1MTBGODAw
NzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0RGRDQ5NjBFMzA1OTJGMDA5RDEwQUQgLyogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRjU1MjhEQUExQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNGNzBB
OEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTc2MkM3NDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV2YWx1YXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBp
biBIZWFkZXJzICovLApAQCAtMjY3MTAsNiArMjY3MjcsNyBAQAogCQkJCTdDNEM5NkREMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0Mx
RDQyODE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBNjkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGguaCBpbiBIZWFkZXJzICovLAorCQkJCTkxQzlGMkY5MUFFM0JFQjAwMDk1
QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
MUQ0MjkxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFENDJBMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E2RDBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjg0NjgsNiArMjg0ODYsNyBAQAogCQkJCTUxMDE5MkQxMThCNkI5QUIwMDdGQzdB
MSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc3OTc5MTkwRDZCOUQwQzAwMzg1MUI5IC8qIEltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5NzIwNUFCNTEyMzkyOTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGNTUyOERBNjFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQzExMjUxRjEy
RDAwM0VGMjY5IC8qIEltYWdlSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4OTU4
MjU1MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCMjc1MzU3QjBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VNYWMubW0gaW4gU291cmNlcyAqLywK
QEAgLTI5OTE1LDYgKzI5OTM0LDcgQEAKIAkJCQlGRTM2RkQxNjE2Qzc4MjY1MDBGODg3QzEgLyog
U1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRTZF
NTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0
NzY1MzFCMTMzMTcwOTkwMDA2Qjc4OSAvKiBTU0xLZXlHZW5lcmF0b3JJT1MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTkxQUMxMDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5QUU2MDgyNDVFNTkw
MDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3
RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAppbmRleCBhMDBiMTVjLi4yNTY4YjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkwLDYgKzkw
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
CisvLyBQb3N0IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIGZvciBwYXNzd29yZCBmaWVsZHMg
b3IgZWxlbWVudHMgY29udGFpbmVkIGluIHBhc3N3b3JkIGZpZWxkcyBhdCBhIDQwaHogaW50ZXJ2
YWwgdG8gdGh3YXJ0IGFuYWx5c2lzIG9mIHR5cGluZyBjYWRlbmNlCitzdGF0aWMgZG91YmxlIEFj
Y2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwgPSAwLjAy
NTsKKwogQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBBWENvbXB1dGVkT2JqZWN0QXR0cmli
dXRlQ2FjaGU6OmdldElnbm9yZWQoQVhJRCBpZCkgY29uc3QKIHsKICAgICBIYXNoTWFwPEFYSUQs
IENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9pZE1hcHBp
bmcuZmluZChpZCk7CkBAIC0xMjksNiArMTMyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZXRF
bmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIEFYT2JqZWN0Q2Fj
aGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKICAgICAsIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RD
YWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCisgICAgLCBtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyKCp0aGlzLCAmQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNzA1LDcgKzcwOSw3IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIFJlZjxEb2N1bWVudD4g
cHJvdGVjdG9yRm9yQ2FjaGVPd25lcihtX2RvY3VtZW50KTsKICAgICBtX25vdGlmaWNhdGlvblBv
c3RUaW1lci5zdG9wKCk7CiAgICAgCi0gICAgLy8gSW4gRFJULCBwb3N0aW5nIG5vdGlmaWNhdGlv
bnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAgb3RoZXIgbm90aWZpY2F0
aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvcgorICAgIC8vIEluIHRl
c3RzLCBwb3N0aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkg
cXVldWUgdXAgb3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3Rl
ZCBiZWhhdmlvcgogICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQg
YXQgdGhlIGVuZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCiAgICAgYXV0
byBub3RpZmljYXRpb25zID0gV1RGOjptb3ZlKG1fbm90aWZpY2F0aW9uc1RvUG9zdCk7CiAgICAg
CkBAIC03NDIsNiArNzQ2LDIwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9z
dFRpbWVyRmlyZWQoKQogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkKG9iai0+cGFyZW50T2Jq
ZWN0KCkpOwogICAgIH0KIH0KKwordm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lckZpcmVkKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLnN0b3AoKTsKKworICAgIC8vIEluIHRlc3RzLCBwb3N0
aW5nIG5vdGlmaWNhdGlvbnMgaGFzIGEgdGVuZGVuY3kgdG8gaW1tZWRpYXRlbHkgcXVldWUgdXAg
b3RoZXIgbm90aWZpY2F0aW9ucywgd2hpY2ggY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlv
cgorICAgIC8vIHdoZW4gdGhlIG5vdGlmaWNhdGlvbiBsaXN0IGlzIGNsZWFyZWQgYXQgdGhlIGVu
ZC4gSW5zdGVhZCBjb3B5IHRoaXMgbGlzdCBhdCB0aGUgc3RhcnQuCisgICAgYXV0byBub3RpZmlj
YXRpb25zID0gV1RGOjptb3ZlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0KTsKKworICAg
IGZvciAoY29uc3QgYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKKyAgICAgICAg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQo
KSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworI2VuZGlm
Cit9CiAgICAgCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBv
c3RUYXJnZXQsIFBvc3RUeXBlIHBvc3RUeXBlKQogewpAQCAtODUwLDE2ICs4NjgsMjIzIEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKICAgICBwb3N0Tm90aWZpY2F0aW9uKHJlbmRlcmVyLCBBWFNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKIH0KIAotdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRDaGFuZ2Ug
dGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCisjaWZuZGVm
IE5ERUJVRwordm9pZCBBWE9iamVjdENhY2hlOjpzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50ICZpbnRlbnQpCit7CisgICAgc3dpdGNoIChpbnRlbnQudHlwZSkgeworICAg
IGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bjoKKyAgICAgICAgZGF0YUxvZygiVW5r
bm93biIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgIGRhdGFMb2coIkVkaXQ6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgICAgIGRhdGFMb2coIk1v
dmU6OiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZDoKKyAgICAgICAgZGF0YUxvZygiRXh0ZW5kOjoiKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuY2hhbmdlKSB7CisgICAg
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygiVW5r
bm93biIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVE
ZWxldGU6CisgICAgICAgICAgICBkYXRhTG9nKCJEZWxldGUiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgICAgICAgICAgZGF0YUxv
ZygiSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbjoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpY3RhdGlvbkluc2VydCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6Cisg
ICAgICAgICAgICBkYXRhTG9nKCJUeXBpbmdJbnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICAgICAgZGF0YUxvZygiQ3V0
Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3Rl
OgorICAgICAgICAgICAgZGF0YUxvZygiUGFzdGUiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZToKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZDoKKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgICAgICBkYXRh
TG9nKCJVbmtub3duOjoiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGRhdGFMb2coIkJlZ2lu
bmluZzo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQ6CisgICAgICAgICAgICBkYXRhTG9nKCJFbmQ6OiIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6
CisgICAgICAgICAgICBkYXRhTG9nKCJQcmV2aW91czo6Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAg
ZGF0YUxvZygiTmV4dDo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgorICAgICAgICAgICAgZGF0YUxvZygi
RGlzY29udGlndW91czo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBzd2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgor
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAgICAgICBz
d2l0Y2ggKGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkpIHsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duOgorICAgICAgICAgICAgICAgIGRhdGFM
b2coIlVua25vd24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXI6CisgICAgICAgICAgICAgICAgZGF0
YUxvZygiQ2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDoKKyAgICAgICAgICAgICAgICBkYXRh
TG9nKCJXb3JkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZToKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJM
aW5lIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiU2Vu
dGVuY2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZToKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJQ
YWdlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiRG9j
dW1lbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGw6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiQWxsIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzOgor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICBkYXRhTG9nKCItU3luYyIpOwor
ICAgIGRhdGFMb2coIlxuIik7Cit9CisjZW5kaWYKKwordm9pZCBBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKK3sKKyAg
ICBtX3RleHRTZWxlY3Rpb25JbnRlbnQgPSBpbnRlbnQ7Cit9CisKK3N0YXRpYyBib29sIGlzUGFz
c3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCkKK3sKKyAgICByZXR1cm4gb2JqZWN0ICYmIChvYmplY3QtPmlzUGFzc3dvcmRGaWVs
ZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSk7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2Rl
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbikKIHsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIGlmIChpbnRlbnQudHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVVbmtub3duKQorICAgICAgICBpbnRlbnQgPSBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7CisKICAg
ICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCi0gICAgLy8gRGVsZWdh
dGUgb24gdGhlIHJpZ2h0IHBsYXRmb3JtCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqID0g
Z2V0T3JDcmVhdGUobm9kZSk7Ci0gICAgbm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmosIHRleHRDaGFuZ2UsIG9mZnNldCwgdGV4dCk7CisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisgICAgaWYgKG9iamVjdCkgeworICAgICAg
ICBpZiAoaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0KSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxl
T2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxlY3Rpb24pOworI2Vsc2UKKyAgICBwb3N0Tm90aWZp
Y2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hh
bmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAgVU5VU0VEX1BBUkFNKGludGVudCk7
CisgICAgVU5VU0VEX1BBUkFNKHNlbGVjdGlvbik7CisjZW5kaWYKKworICAgIHNldFRleHRTZWxl
Y3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Cit9CisKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRl
eHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKHR5cGUgIT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKTsKKworICAgIHN0b3BDYWNoaW5nQ29t
cHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmpl
Y3QgPSBnZXRPckNyZWF0ZShub2RlKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAob2Jq
ZWN0KSB7CisgICAgICAgIGlmIChlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlv
bihvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYmplY3QgPSBvYmplY3Qt
Pm9ic2VydmFibGVPYmplY3QoKTsKKyAgICB9CisKKyAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisjZWxzZQor
ICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdl
Rm9yRWRpdFR5cGUodHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVk
aXRpbmdPZmZzZXQoKSwgdGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBl
IGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUg
aW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47Cisg
ICAgQVNTRVJUKGRlbGV0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURlbGV0ZSk7CisgICAgQVNT
RVJUKGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVJbnNlcnQgfHwgaW5zZXJ0aW9uVHlw
ZSA9PSBBWFRleHRFZGl0VHlwZVR5cGluZyB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uIHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVQYXN0ZSk7CisK
KyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3JkVmFs
dWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9z
dFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgZGVsZXRpb25UeXBl
LCBkZWxldGVkVGV4dCwgaW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbik7Cisj
ZWxzZQorICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0
Q2hhbmdlRm9yRWRpdFR5cGUoZGVsZXRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQo
KS5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpLCBkZWxldGVkVGV4dCk7CisgICAgbm9kZVRleHRD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShp
bnNlcnRpb25UeXBlKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkRWRpdGlu
Z09mZnNldCgpLCBpbnNlcnRlZFRleHQpOworI2VuZGlmCit9CisKK2Jvb2wgQVhPYmplY3RDYWNo
ZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqZWN0KQoreworICAgIGlmICghaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBh
c3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVj
dCgpOworICAgIGlmICghb2JzZXJ2YWJsZU9iamVjdCkgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgLy8gcmV0dXJuIHRydWUgZXZlbiB0aG91Z2ggdGhlIGVucXVldWUg
ZGlkbid0IGhhcHBlbiBiZWNhdXNlIHRoaXMgaXMgYSBwYXNzd29yZCBmaWVsZCBhbmQgY2FsbGVy
IHNob3VsZG4ndCBwb3N0IGEgbm90aWZpY2F0aW9uCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIGlmICghbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QuY29udGFpbnMob2Jz
ZXJ2YWJsZU9iamVjdCkpIHsKKyAgICAgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3Qu
YXBwZW5kKG9ic2VydmFibGVPYmplY3QpOworICAgICAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAgIG1fcGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KEFjY2Vzc2liaWxpdHlQYXNzd29yZFZhbHVlQ2hh
bmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1l
KiBmcmFtZSwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpAQCAtMTA4NCw2ICsxMzA5LDE0
IEBAIGJvb2wgaXNOb2RlQXJpYVZpc2libGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkK
K3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290T2JqZWN0ID0gdGhpcy0+cm9vdE9iamVj
dCgpOworICAgIGlmICghcm9vdE9iamVjdCB8fCAhcm9vdE9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNh
c3Q8QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc+KCpyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCk7
Cit9CisKIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjpBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcihB
WE9iamVjdENhY2hlKiBjYWNoZSkKICAgICA6IG1fY2FjaGUoY2FjaGUpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IGJmYTkyNzcuLjMwYTdh
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEFYT2JqZWN0Q2FjaGVfaAogI2Rl
ZmluZSBBWE9iamVjdENhY2hlX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgi
CiAjaW5jbHVkZSA8bGltaXRzLmg+CkBAIC02Nyw2ICs2OCwxMCBAQCBwcml2YXRlOgogICAgIEhh
c2hNYXA8QVhJRCwgQ2FjaGVkQVhPYmplY3RBdHRyaWJ1dGVzPiBtX2lkTWFwcGluZzsKIH07CiAK
KyNpZiAhUExBVEZPUk0oQ09DT0EpCitlbnVtIEFYVGV4dENoYW5nZSB7IEFYVGV4dEluc2VydGVk
LCBBWFRleHREZWxldGVkIH07CisjZW5kaWYKKwogZW51bSBQb3N0VGFyZ2V0IHsgVGFyZ2V0RWxl
bWVudCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCB9OwogCiBlbnVtIFBvc3RUeXBlIHsgUG9zdFN5
bmNocm9ub3VzbHksIFBvc3RBc3luY2hyb25vdXNseSB9OwpAQCAtMTg5LDEyICsxOTQsMTUgQEAg
cHVibGljOgogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhOb3RpZmljYXRpb24s
IFBvc3RUYXJnZXQgPSBUYXJnZXRFbGVtZW50LCBQb3N0VHlwZSA9IFBvc3RBc3luY2hyb25vdXNs
eSk7CiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1
bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5
cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogCi0gICAgZW51bSBBWFRleHRDaGFuZ2UgewotICAg
ICAgICBBWFRleHRJbnNlcnRlZCwKLSAgICAgICAgQVhUZXh0RGVsZXRlZCwKLSAgICB9OworI2lm
bmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dJbnRlbnQoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmKTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24oTm9kZSosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVk
aXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lk
IHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlIGRl
bGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5z
ZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAg
IGVudW0gQVhMb2FkaW5nRXZlbnQgewogICAgICAgICBBWExvYWRpbmdTdGFydGVkLApAQCAtMjEz
LDEyICsyMjEsMjQgQEAgcHVibGljOgogICAgIEFYQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNo
ZSogY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSgpIHsgcmV0dXJuIG1fY29tcHV0ZWRPYmpl
Y3RBdHRyaWJ1dGVDYWNoZS5nZXQoKTsgfQogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQotICAgIAorCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IHN0YXRpYyB2b2lkIHNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZh
bHVlKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKTsKICAgICB2b2lkIHBs
YXRmb3JtSGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSogb2xkRm9jdXNlZE5vZGUs
IE5vZGUqIG5ld0ZvY3VzZWROb2RlKTsKIAotICAgIHZvaWQgbm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwor
ICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7
CisjZWxzZQorICAgIHN0YXRpYyBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFY
VGV4dEVkaXRUeXBlKTsKKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0
cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lk
IHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdl
ZChFbGVtZW50Kik7CkBAIC0yMjksNiArMjQ5LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNO
b2RlSW5Vc2UoTm9kZSogbikgeyByZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7
IH0KIAogcHJpdmF0ZToKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOwor
ICAgIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAgIEhhc2hNYXA8QVhJRCwgUmVmUHRy
PEFjY2Vzc2liaWxpdHlPYmplY3Q+PiBtX29iamVjdHM7CiAgICAgSGFzaE1hcDxSZW5kZXJPYmpl
Y3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7CkBAIC0yNDQsNiArMjY2LDExIEBAIHBy
aXZhdGU6CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CiAgICAgVmVjdG9yPHN0
ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4gbV9u
b3RpZmljYXRpb25zVG9Qb3N0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQo
KTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgVmVj
dG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9wYXNzd29yZE5vdGlmaWNhdGlvbnNU
b1Bvc3Q7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisK
ICAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTGl2ZVJl
Z2lvbkNyZWF0ZWQoTm9kZSopOwogICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2Rl
Kik7CkBAIC0yNTEsNiArMjc4LDEwIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEFjY2Vzc2liaWxp
dHlPYmplY3QqIGZvY3VzZWRJbWFnZU1hcFVJRWxlbWVudChIVE1MQXJlYUVsZW1lbnQqKTsKICAg
ICAKICAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgYm9vbCBl
bnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
Kik7CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBtX3RleHRTZWxlY3Rpb25JbnRlbnQ7
CiB9OwogCiBjbGFzcyBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcgpAQCAtMzA4LDggKzMzOSw5IEBA
IGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGJhclVwZGF0ZShTY3JvbGxW
aWV3KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBFbGVtZW50KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpyZWNvbXB1dGVJc0lnbm9yZWQoUmVuZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKSB7
IH0KLWlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KLWlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBEb2N1bWVudCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZp
Y2F0aW9uKFJlbmRlck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlw
ZSkgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUq
LCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsgfQpAQCAtMzIwLDYgKzM1
MiwxNCBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoTm9kZSopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKFdpZGdldCopIHsgfQogaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KikgeyB9
CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChOb2Rl
KikgeyB9CisjaWYgUExBVEZPUk0oQ09DT0EpCitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9
CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCitpbmxp
bmUgQVhUZXh0Q2hhbmdlIEFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRl
eHRFZGl0VHlwZSkgeyByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7IH0KK2lubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2Vu
ZGlmCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk1YzI2NGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50X2gKKyNkZWZpbmUgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7Cisg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0LAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCit9OworCitlbnVtIEFYVGV4dEVkaXRU
eXBlIHsKKyAgICBBWFRleHRFZGl0VHlwZVVua25vd24sCisgICAgQVhUZXh0RWRpdFR5cGVEZWxl
dGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8g
R2VuZXJpYyB0ZXh0IGluc2VydAorICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQg
dmlhIHR5cGluZworICAgIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRp
Y3RhdGlvbgorICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgIEFY
VGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQYXN0ZQorfTsKKworZW51bSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24geworICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24s
CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZCwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywK
KyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0LAorICAgIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkRpc2NvbnRpZ3VvdXMKK307CisKK2VudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgeworICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVdvcmQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlQYXJhZ3JhcGgsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAg
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQsCisgICAgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBv
ZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5k
aW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFz
c2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJp
dHkgbm90aWZpY2F0aW9uLgorfTsKKworc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSBncmFudWxhcml0eTsKK307CisKK3N0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgdW5pb24geworICAgICAg
ICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uOworICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFu
Z2U7CisgICAgfTsKKyAgICBib29sIGlzU3luY2hyb25pemluZyB7IGZhbHNlIH07CisKKyAgICBB
WFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRl
eHRTZWxlY3Rpb24oKSkKKyAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9u
KHNlbGVjdGlvbikKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4
dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQpCisgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIGlzU3luY2hyb25p
emluZykKKyAgICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKCkKKyAgICAg
ICAgLCBpc1N5bmNocm9uaXppbmcoaXNTeW5jaHJvbml6aW5nKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgfQorfTsKKworfQor
CisjZW5kaWYgLy8gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRl
eCBkOGQyNmRlLi40MzhlODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBA
QCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAog
ICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29u
dGFpbmluZ1Bhc3N3b3JkRmllbGQoKQoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7Cisg
ICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAg
cmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRv
d0hvc3QoKTsKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1l
bnQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChBWE9iamVjdENhY2hlKiBj
YWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0
ZShlbGVtZW50KTsKKworICAgIHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0
aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3NTcyZi4uYTgyYmQ4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
SW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29u
dHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3
b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBp
c1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uY2IzMzgwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYK
IAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgp
IGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUo
KSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxlbWVudCog
ZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICByZXR1cm4gaXM8SFRNTElucHV0RWxl
bWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmlz
UGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1
ODZmMmEuLjgxNmMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmll
bGQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENv
bnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJj
aEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNv
bnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAppbmRleCBlOWQyYTUyLi41MGZkYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0
OTEsMTQgKzE0OTEsMTcgQEAgUGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7
CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4
dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJl
cikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRTZWxl
Y3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUo
KTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNp
YmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRp
b25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQg
KyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dO
U1RSRUFNKSk7CisgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oUG9zaXRpb24obm9k
ZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBQb3Np
dGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9u
SXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IG5ld0ludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKTsKKyAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBuZXdJbnRl
bnQpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAg
LTE5NjMsMTMgKzE5NjYsMTYgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRT
ZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAo
cmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQg
dG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlv
bgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0
ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChB
WFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
LCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRv
KHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAg
IFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5z
dGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUo
KS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiAr
NDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhP
YmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJl
YU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZF
eGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3
ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBm
aXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAg
ICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7
CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hl
QXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCmluZGV4IDU4NTJhMGYuLmY1ODJkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0yNDMsNiArMjQz
LDI0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIEFYCiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
KyAgICAKK0FYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUo
QVhUZXh0RWRpdFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
IHJldHVybiBBWFRleHREZWxldGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dEluc2VydGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYVGV4
dEluc2VydGVkOworfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRDaGFuZ2Ug
dGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCiB7CkBAIC0y
NjgsMTAgKzI4NiwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZQogICAgIC8vIFNlbGVjdCB0
aGUgcmlnaHQgc2lnbmFsIHRvIGJlIGVtaXR0ZWQKICAgICBDU3RyaW5nIGRldGFpbDsKICAgICBz
d2l0Y2ggKHRleHRDaGFuZ2UpIHsKLSAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkOgorICAgIGNhc2UgQVhUZXh0SW5zZXJ0ZWQ6CiAgICAgICAgIGRldGFpbCA9ICJ0ZXh0LWlu
c2VydCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZDoKKyAgICBjYXNlIEFYVGV4dERlbGV0ZWQ6CiAgICAgICAgIGRldGFpbCA9ICJ0ZXh0LXJl
bW92ZSI7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi5iNjIz
MzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVj
dENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2Jq
ZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDggKzk1LDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmlj
CiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90
aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2Us
IHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCiB7Cisg
ICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhTZWxlY3RlZFRleHRDaGFuZ2Vk
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4
dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworICAg
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYVmFsdWVDaGFuZ2VkKTsKIH0KIAog
dm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRp
bmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FY
T2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tCmluZGV4IGIzMDBlNzcuLjZiNzkwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQs
NiArNDQsNTMgQEAKICNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3Rp
ZmljYXRpb24gQCJBWExpdmVSZWdpb25DcmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNp
Zm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBA
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5VGV4dEVkaXRUeXBlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBA
IkFYVGV4dEVkaXRUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZVZhbHVlcworI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhU
ZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZVZhbHVlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4
dENoYW5nZVZhbHVlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0
aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVuZ3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3Np
YmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2Vy
IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVt
ZW50IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2Vy
UmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2Vy
UmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKKy8v
IFZlcnkgbGFyZ2Ugc3RyaW5ncyBjYW4gbmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNl
IG9mIG5vdGlmaWNhdGlvbnMsIHNvIHRoaXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0
IGFuIGF2ZXJhZ2UgcGFyYWdyYXBoIG9yIGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJp
bmdzIHRvIGJlIGxhcmdlIGVub3VnaCB0byBodXJ0IHBlcmZvcm1hbmNlLgorc3RhdGljIGNvbnN0
IE5TVUludGVnZXIgQVhWYWx1ZUNoYW5nZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOworCiAvLyBU
aGUgc2ltcGxlIENvY29hIGNhbGxzIGluIHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25z
LgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MCw2ICsxMDcsMjEgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICBvYmot
PnNldFdyYXBwZXIod3JhcHBlci5nZXQoKSk7CiB9CiAKK3N0YXRpYyBCT09MIGF4U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gZmFsc2U7CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
c2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCit7CisgICAg
YXhTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMgPSB2YWx1ZTsKK30KKworc3RhdGlj
IHZvaWQgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKGlkIG9iamVjdCwgTlNTdHJpbmcg
Km5vdGlmaWNhdGlvbiwgaWQgdXNlckluZm8pCit7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QsIG5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
ICAgIC8vIFRvIHNpbXBsaWZ5IG1vbml0b3JpbmcgZm9yIG5vdGlmaWNhdGlvbnMgaW4gdGVzdHMs
IHJlcG9zdCBhcyBhIHNpbXBsZSBOU05vdGlmaWNhdGlvbiBpbnN0ZWFkIG9mIGZvcmNpbmcgdGVz
dCBpbmZyYXN0dWN0dXJlIHRvIHNldHVwIGFuIElQQyBjbGllbnQgYW5kIGRvIGFsbCB0aGUgdHJh
bnNsYXRpb24gYmV0d2VlbiBXZWJDb3JlIHR5cGVzIGFuZCBwbGF0Zm9ybSBzcGVjaWZpYyBJUEMg
dHlwZXMgYW5kIGJhY2sKKyAgICBpZiAoVU5MSUtFTFkoYXhTaG91bGRSZXBvc3ROb3RpZmljYXRp
b25zRm9yVGVzdHMpKQorICAgICAgICBbb2JqZWN0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmlj
YXRpb246bm90aWZpY2F0aW9uIHVzZXJJbmZvOnVzZXJJbmZvXTsKK30KKwogdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
LCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pCiB7CiAgICAgaWYgKCFvYmopCkBAIC0xNDks
MTUgKzIxMSwxMzggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIEFTU0VSVChb
b2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eUlzSWdub3JlZF0gfHwgdHJ1ZSk7CiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgCi0gICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlm
aWNhdGlvbihvYmotPndyYXBwZXIoKSwgbWFjTm90aWZpY2F0aW9uKTsKLSAgICAKLSAgICAvLyBV
c2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgotICAgIFtv
YmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNh
dGlvbl07CisKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVy
KCksIG1hY05vdGlmaWNhdGlvbiwgbmlsKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRl
eHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgb2JqZWN0
ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm47CisK
KyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFy
eSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo1XTsKKyAgICBpZiAoaW50ZW50LmlzU3luY2hyb25p
emluZykKKyAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleV0g
PSBAWUVTOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtu
b3duKSB7CisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5
cGVLZXldID0gQChpbnRlbnQudHlwZSk7CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsK
KyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb25dID0gQChpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbik7CisgICAgICAgICAgICBzd2l0Y2ggKGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblVua25vd246CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25QcmV2aW91czoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dDoKKyAgICAgICAgICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHldID0gQChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9u
ZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFuZ2UgPSBbb2JqZWN0LT53cmFwcGVy
KCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVT
dGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxlRW5kKCldKQorICAgICAgICAgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGVd
ID0gdGV4dE1hcmtlclJhbmdlOworICAgIH0KKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0
LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VF
bGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0g
cm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8od2ViQXJl
YS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0
aW9uLCB1c2VySW5mbyk7CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVj
dC0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0
aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworfQorCitzdGF0aWMgTlNE
aWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmcs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgTlNTdHJpbmcgKnRleHQg
PSAoTlNTdHJpbmcgKilzdHJpbmc7CisgICAgTlNVSW50ZWdlciBsZW5ndGggPSBbdGV4dCBsZW5n
dGhdOworICAgIGlmICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gbmlsOworICAgIE5TTXV0YWJs
ZURpY3Rpb25hcnkgKmNoYW5nZSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdp
dGhDYXBhY2l0eTo0XTsKKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlXSA9
IEAodHlwZSk7CisgICAgaWYgKGxlbmd0aCA+IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3Ro
KSB7CisgICAgICAgIGNoYW5nZVtOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhd
ID0gQChsZW5ndGgpOworICAgICAgICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDpBWFZh
bHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aF07CisgICAgfQorICAgIGNoYW5nZVtOU0FjY2Vzc2li
aWxpdHlUZXh0Q2hhbmdlVmFsdWVdID0gdGV4dDsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxs
KCkpIHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4
dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBjaGFuZ2Vb
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdID0gdGV4dE1hcmtlcjsK
KyAgICB9CisgICAgcmV0dXJuIFtjaGFuZ2UgYXV0b3JlbGVhc2VdOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iamVj
dCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqZWN0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0
aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjNdOworICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0KTsKKworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENo
YW5nZURpY3Rpb25hcnkob2JqZWN0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbikpCisgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0gQFtjaGFuZ2VdOworCisg
ICAgaWYgKGlkIHdyYXBwZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9b
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworICAgIEFYUG9zdE5vdGlm
aWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZh
bHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIEFYUG9zdE5vdGlmaWNhdGlv
bldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFu
Z2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOworfQor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9u
VHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9u
VHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
cG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJB
cmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGlu
aXRXaXRoQ2FwYWNpdHk6NF07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
Q2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNN
dXRhYmxlQXJyYXkgKmNoYW5nZXMgPSBbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENh
cGFjaXR5OjJdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVu
dENoYW5nZURpY3Rpb25hcnkob2JqZWN0LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3Np
dGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0Rp
Y3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqZWN0
LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5n
ZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dENo
YW5nZVZhbHVlc10gPSBjaGFuZ2VzOworICAgIFtjaGFuZ2VzIHJlbGVhc2VdOworCisgICAgaWYg
KGlkIHdyYXBwZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnRdID0gd3JhcHBlcjsKKworICAgIEFjY2Vzc2liaWxp
dHlPYmplY3QqIHdlYkFyZWEgPSByb290V2ViQXJlYSgpOworCisgICAgTlNBY2Nlc3NpYmlsaXR5
UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyh3ZWJBcmVhLT53cmFwcGVyKCksIE5TQWNjZXNz
aWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFVzZWQg
YnkgRFJUIHRvIGtub3cgd2hlbiBub3RpZmljYXRpb25zIGFyZSBwb3N0ZWQuCisgICAgW3dlYkFy
ZWEtPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOk5TQWNjZXNzaWJp
bGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107CisKKyAgICBO
U0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+d3JhcHBl
cigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsK
KyAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4gbm90aWZpY2F0aW9ucyBhcmUgcG9zdGVk
LgorICAgIFtvYmplY3QtPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9u
Ok5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5m
b107CisKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6
ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oCmluZGV4IDVlMDZjMzUuLmI5MzQxOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oCkBAIC01Niw4ICs1Niw5IEBAIGNs
YXNzIFZpc2libGVQb3NpdGlvbjsKIC0gKE5TU3RyaW5nICopYXJpYUxhbmRtYXJrUm9sZURlc2Ny
aXB0aW9uOwogCiAtIChpZClhdHRhY2htZW50VmlldzsKLS8vIFVzZWQgdG8gaW5mb3JtIGFuIGVs
ZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBwb3N0ZWQgZm9yIGl0LiBVc2VkIGJ5IERSVC4K
Ky8vIFVzZWQgdG8gaW5mb3JtIGFuIGVsZW1lbnQgd2hlbiBhIG5vdGlmaWNhdGlvbiBpcyBwb3N0
ZWQgZm9yIGl0LiBVc2VkIGJ5IHRlc3RzLgogLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVkTm90
aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWU7CistICh2b2lkKWFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2Vy
SW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm87CiAKIC0gKENHUGF0aFJlZiljb252ZXJ0UGF0
aFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6OlBhdGggJilwYXRoOwogLSAoQ0dQb2ludCljb252ZXJ0
UG9pbnRUb1NjcmVlblNwYWNlOihXZWJDb3JlOjpGbG9hdFBvaW50ICYpcG9pbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KaW5kZXggNWRkZmMzYS4uODcxMGRjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQpAQCAtMzgzLDEzICsz
ODMsNjkgQEAgc3RhdGljIEJPT0wgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlv
bnM7CiArICh2b2lkKWFjY2Vzc2liaWxpdHlTZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOihC
T09MKXJlcG9zdAogewogICAgIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25z
ID0gcmVwb3N0OworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oSU9TKQorICAgIEFY
T2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhyZXBvc3Qp
OworI2VuZGlmCiB9CiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjoo
TlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91
bGRSZXBvc3ROb3RpZmljYXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVk
Tm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGlj
IE5TQXJyYXkgKmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7Cisg
ICAgQVNTRVJUKFthcnJheSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5T
TXV0YWJsZUFycmF5ICptdXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZv
ciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IFttdXRhYmxlQXJyYXkgY291bnRdOykgeworICAgICAg
ICBpZCB2YWx1ZSA9IG11dGFibGVBcnJheVtpXTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkg
cmVwbGFjZU9iamVjdEF0SW5kZXg6aSB3aXRoT2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpT
T05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpb
TlNBcnJheSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0
QXRJbmRleDppIHdpdGhPYmplY3Q6YXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOwor
ICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11d
IHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkgeworICAgICAgICAg
ICAgW211dGFibGVBcnJheSByZW1vdmVPYmplY3RBdEluZGV4OmldOworICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0KKyAgICAgICAgaSsrOworICAgIH0KKyAgICByZXR1cm4gW211dGFi
bGVBcnJheSBhdXRvcmVsZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25h
cnlSZW1vdmluZ05vbkpTT05UeXBlcyhOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAg
QVNTRVJUKFtkaWN0aW9uYXJ5IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsK
KyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5
IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgewor
ICAgICAgICBpZCB2YWx1ZSA9IGRpY3Rpb25hcnlba2V5XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVE
aWN0aW9uYXJ5W2tleV0gPSBkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOwor
ICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQor
ICAgICAgICAgICAgbXV0YWJsZURpY3Rpb25hcnlba2V5XSA9IGFycmF5UmVtb3ZpbmdOb25KU09O
VHlwZXModmFsdWUpOworICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltO
U1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11d
KSkKKyAgICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5
XTsKKyAgICB9CisgICAgcmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9
CisKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilu
b3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAg
IGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBO
U0RpY3Rpb25hcnkqIHVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVj
dHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0g
ICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNh
dGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlcklu
Zm9dOworICAgICAgICBBU1NFUlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlv
bmFyeSAqaW5mbyA9IG5pbDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBO
U0RhdGEgKnVzZXJJbmZvRGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9i
amVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5T
SlNPTldyaXRpbmdPcHRpb25zKTAgZXJyb3I6bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5m
b0RhdGEpIHsKKyAgICAgICAgICAgICAgICBOU1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05T
U3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0
cmluZ0VuY29kaW5nXTsKKyAgICAgICAgICAgICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAg
ICAgICAgICAgICAgICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRp
b25OYW1lLCBAInVzZXJJbmZvIiA6IHVzZXJJbmZvU3RyaW5nfTsKKyAgICAgICAgICAgICAgICBb
dXNlckluZm9TdHJpbmcgcmVsZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKCFpbmZvKQorICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6
IG5vdGlmaWNhdGlvbk5hbWV9OworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVj
dDpzZWxmIHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uOTIyMjhlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KFdlYkNv
cmU6OlZpc2libGVQb3NpdGlvbilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihXZWJDb3JlOjpW
aXNpYmxlUG9zaXRpb24pZW5kUG9zaXRpb247CistIChpZCl0ZXh0TWFya2VyRm9yVmlzaWJsZVBv
c2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKXZpc2libGVQb3M7CisKIEBl
bmQKIAogI2VuZGlmIC8vIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKaW5kZXggMWRlYjRkYi4uODM3
OTNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAK
QEAgLTI5LDEzICsyOSwxNiBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJS
ZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5n
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5v
ZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5v
ZGU+IG5vZGUpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChwYXJlbnQtPmRvY3VtZW50KCkpCitB
cHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJO
b2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uKQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVudCgpLCBlZGl0aW5n
QWN0aW9uKQogICAgICwgbV9wYXJlbnQocGFyZW50KQogICAgICwgbV9ub2RlKG5vZGUpCiB7CkBA
IC00NiwxNSArNDksMjMgQEAgQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBh
c3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHQKICAgICBBU1NFUlQobV9w
YXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhbV9wYXJlbnQtPnJlbmRlcmVyKCkpOwogfQog
Ci1zdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBu
b2RlLCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSkKK3N0YXRpYyB2b2lk
IHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYVGV4dEVk
aXRUeXBlIHR5cGUpCiB7Ci0gICAgU3RyaW5nIG5vZGVWYWx1ZSA9IG5vZGUtPm5vZGVWYWx1ZSgp
OworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJp
bmcgdGV4dCA9IG5vZGUtPm5vZGVWYWx1ZSgpOwogICAgIC8vIERvbid0IGNvbnNpZGVyIGxpbmVi
cmVha3MgaW4gdGhpcyBjb21tYW5kCi0gICAgaWYgKG5vZGVWYWx1ZSA9PSAiXG4iKQorICAgIGlm
ICh0ZXh0ID09ICJcbiIpCiAgICAgICByZXR1cm47CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBub2RlLT5kb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdGV4dENoYW5nZSwgMCwg
bm9kZVZhbHVlKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBub2RlLT5kb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9u
ID0gaXM8VGV4dD4obm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0Pihub2RlKSwgMCkgOiBj
cmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgMCk7CisgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHR5cGUsIHRleHQsIFZpc2libGVQb3Np
dGlvbihwb3NpdGlvbikpOworICAgIH0KIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9B
cHBseSgpCkBAIC02NCwxOCArNzUsMTYgQEAgdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBs
eSgpCiAKICAgICBtX3BhcmVudC0+YXBwZW5kQ2hpbGQobV9ub2RlLmdldCgpLCBJR05PUkVfRVhD
RVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSk7CiB9CiAK
IHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgaWYgKCFtX3BhcmVu
dC0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAg
Ly8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQK
LSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAg
c2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHREZWxldGVkKTsKKyAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGlu
ZUJyZWFrcyhtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpKTsKIAogICAgIG1fbm9kZS0+
cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBl
bmROb2RlQ29tbWFuZC5oCmluZGV4IGQ2NGIwNGUuLmY3ODI5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFwcGVuZE5vZGVDb21tYW5kIDogcHVibGljIFNpbXBsZUVk
aXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSkKKyAgICBzdGF0aWMgUmVmPEFwcGVuZE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBw
ZW5kTm9kZUNvbW1hbmQocGFyZW50LCBub2RlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlvbikpOwogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5l
ck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPik7CisgICAgQXBwZW5kTm9kZUNvbW1hbmQo
UGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4sIEVkaXRB
Y3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IDdjNDE4YzIuLmNhYjg4MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC0xMjMsOSArMTIzLDgg
QEAgUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVTdHlsZVNwYW5FbGVtZW50KERvY3VtZW50JiBk
b2N1bWVudCkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uLCBFUHJvcGVydHlMZXZlbCBwcm9wZXJ0eUxldmVsKQotICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVu
dCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAgICAsIG1f
ZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKHByb3Bl
cnR5TGV2ZWwpCiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0
cmVhbSgpKQogICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkK
QEAgLTEzNiw5ICsxMzUsOCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eQogfQogCiBBcHBseVN0
eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBF
ZGl0aW5nU3R5bGUqIHN0eWxlLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9u
JiBlbmQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlM
ZXZlbCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0
eWxlLT5jb3B5KCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAs
IG1fcHJvcGVydHlMZXZlbChwcm9wZXJ0eUxldmVsKQogICAgICwgbV9zdGFydChzdGFydCkKICAg
ICAsIG1fZW5kKGVuZCkKQEAgLTE0OSw5ICsxNDcsOCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBw
bHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0
eQogfQogCiBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoUGFzc1JlZlB0cjxF
bGVtZW50PiBlbGVtZW50LCBib29sIHJlbW92ZU9ubHksIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGVsZW1lbnQtPmRvY3VtZW50KCkpCisgICAg
OiBDb21wb3NpdGVFZGl0Q29tbWFuZChlbGVtZW50LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9u
KQogICAgICwgbV9zdHlsZShFZGl0aW5nU3R5bGU6OmNyZWF0ZSgpKQotICAgICwgbV9lZGl0aW5n
QWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwoUHJvcGVydHlEZWZh
dWx0KQogICAgICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgpLmRvd25zdHJlYW0o
KSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3RyZWFtKCkpCkBAIC0x
NjMsOSArMTYwLDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBhc3NS
ZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgYm9vbCByZW1vdmVPbmwKIH0KIAogQXBwbHlTdHlsZUNv
bW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGlu
Z1N0eWxlKiBzdHlsZSwgSXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiBpc0lubGluZUVs
ZW1lbnRUb1JlbW92ZUZ1bmN0aW9uLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCi0gICAgOiBD
b21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5k
KGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQot
ICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2
ZWwoUHJvcGVydHlEZWZhdWx0KQogICAgICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFy
dCgpLmRvd25zdHJlYW0oKSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVw
c3RyZWFtKCkpCkBAIC0yMjYsMTEgKzIyMiw2IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmRv
QXBwbHkoKQogICAgIH0KIH0KIAotRWRpdEFjdGlvbiBBcHBseVN0eWxlQ29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWRpdGluZ0FjdGlvbjsKLX0KLQogdm9p
ZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0eWxlKEVkaXRpbmdTdHlsZSAqc3R5bGUp
CiB7CiAgICAgLy8gdXBkYXRlIGRvY3VtZW50IGxheW91dCBvbmNlIGJlZm9yZSByZW1vdmluZyBz
dHlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAppbmRleCBl
OTllMzZhLi45ZGJlODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5oCkBAIC03Miw3ICs3Miw2IEBAIHByaXZhdGU6CiAgICAgQXBwbHlTdHlsZUNvbW1hbmQo
RG9jdW1lbnQmLCBjb25zdCBFZGl0aW5nU3R5bGUqLCBib29sICgqaXNJbmxpbmVFbGVtZW50VG9S
ZW1vdmUpKGNvbnN0IEVsZW1lbnQqKSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZG9BcHBseSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBzdHlsZS1yZW1vdmFsIGhlbHBlcnMKICAgICBi
b29sIGlzU3R5bGVkSW5saW5lRWxlbWVudFRvUmVtb3ZlKEVsZW1lbnQqKSBjb25zdDsKQEAgLTEy
Miw3ICsxMjEsNiBAQCBwcml2YXRlOgogICAgIFBvc2l0aW9uIGVuZFBvc2l0aW9uKCk7CiAKICAg
ICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBtX3N0eWxlOwotICAgIEVkaXRBY3Rpb24gbV9lZGl0aW5n
QWN0aW9uOwogICAgIEVQcm9wZXJ0eUxldmVsIG1fcHJvcGVydHlMZXZlbDsKICAgICBQb3NpdGlv
biBtX3N0YXJ0OwogICAgIFBvc2l0aW9uIG1fZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA4NDYxZWU3Li43MzQyZjY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAt
NTgsNiArNTgsOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJl
bmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCisjaW5jbHVk
ZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNw
YW5Db21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNs
dWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCkBAIC0xNjIsMTMgKzE2NCwzMCBAQCB2b2lkIEVkaXRD
b21tYW5kQ29tcG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JiBub2Rl
cykKIH0KICNlbmRpZgogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1
bmFwcGx5RWRpdFR5cGUoKQoreworICAgIHN3aXRjaCAoZWRpdGluZ0FjdGlvbigpKSB7CisgICAg
Y2FzZSBFZGl0QWN0aW9uQ3V0OgorICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKKyAgICAgICAg
cmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlv
bjoKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CisgICAgY2FzZSBFZGl0QWN0aW9uUGFzdGU6
CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5
cGVEZWxldGU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVy
biBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NSZWZQ
dHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBwbHko
KTsKIH0KIAotQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCkKLSAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50KQorQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdB
Y3Rpb24pCiB7CiB9CiAKQEAgLTE4Nyw2ICsyMDYsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjphcHBseSgpCiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb246
CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5z
cGVjaWZpZWQ6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKICAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uRGVsZXRlOgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTI5Niw3ICszMTYsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZW1vdmVTdHlsZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIAog
dm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wg
dXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVv
dGVkQXJlYSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9j
dW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9V
bnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnRMaW5lQnJlYWsoKQpAQCAtMzIyLDcgKzM0Miw3IEBAIGJvb2wgQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKIAogdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+
IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkK
IHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6
Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGls
ZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTM3Myw3ICszOTMsNyBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRD
aGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5kTm9kZShQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50KQog
ewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQoKSkpOwot
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFy
ZW50LCBub2RlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1h
bmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1JlZlB0cjxOb2Rl
PiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTM5Nyw3ICs0MTcsNyBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9k
ZSwgU2hvdWxkQXNzdW1lQ29udGVudAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZW1vdmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMoUGFzc1JlZlB0cjxOb2RlPiBu
b2RlKQpAQCAtNTI1LDIwICs1NDUsMjEgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5w
dXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICgh
dGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRl
KG5vZGUsIG9mZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
Y291bnQpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9
CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQ
dHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3Qg
U3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9k
ZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCk7CisgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoZGVsZXRlQ29tbWFuZCk7CiAgICAgaWYgKCFyZXBsYWNlbWVudFRleHQuaXNFbXB0
eSgpKQotICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQpKTsKKyAgICAgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmNyZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVs
ZXRlZFRleHQoKSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBj
MmI0ODlkLi5lY2IyODUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDsKIGNsYXNzIEVkaXRpbmdTdHlsZTsKIGNs
YXNzIEhUTUxFbGVtZW50OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKQEAgLTU5LDYgKzYwLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYpOwogI2VuZGlmCiAKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKTsKKwog
cHJpdmF0ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKQEAgLTg5LDcgKzkyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29t
bWFuZChEb2N1bWVudCYpOworICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3Vt
ZW50JiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICAgICAvLwogICAg
IC8vIHN1Z2FyeS1zd2VldCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gaGVscCBjcmVhdGUgYW5k
IGFwcGx5IGVkaXQgY29tbWFuZHMgaW4gY29tcG9zaXRlIGNvbW1hbmRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAy
ZWE5NmQ1Li4xZmEwMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDEzICsyOSwxNSBAQAog
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRt
bGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5k
KG5vZGUtPmRvY3VtZW50KCkpCitEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogU2ltcGxlRWRp
dENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbm9kZShu
b2RlKQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAgICwgbV9jb3VudChjb3VudCkKQEAgLTQ1
LDYgKzQ3LDExIEBAIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpCiAgICAgQVNTRVJUKG1fb2Zmc2V0
ICsgbV9jb3VudCA8PSBtX25vZGUtPmxlbmd0aCgpKTsKIH0KIAorY29uc3QgU3RyaW5nJiBEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4
dDsKK30KKwogdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIHsKICAg
ICBBU1NFUlQobV9ub2RlKTsKQEAgLTU4LDggKzY1LDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIC8vIE5lZWQg
dG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYg
KEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgp
LCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwog
CiAgICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX2NvdW50LCBlYyk7CiB9CkBAIC03
Myw4ICs4MCw4IEBAIHZvaWQgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkK
IAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhDRVBU
SU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29mZnNl
dCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQo
KSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgp
LCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9u
b2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMjQ5MWYwNS4u
YTAzNWYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1
LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDE0ICszNCwxNyBAQCBj
bGFzcyBUZXh0OwogCiBjbGFzcyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIDogcHVibGljIFNp
bXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQpCisgICAgc3RhdGljIFJlZjxEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0Fj
dGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpOworICAg
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQoKTsKKworcHJvdGVjdGVkOgorICAgIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCwgRWRpdEFjdGlvbik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRv
QXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcAppbmRleCAyYmJjNmVkLi5lYjNhNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTcyLDggKzcyLDggQEAgc3Rh
dGljIGJvb2wgaXNUYWJsZVJvd0VtcHR5KE5vZGUqIHJvdykKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVu
dCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5p
dGl6ZU1hcmt1cCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1l
bnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCBy
ZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1
cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX2hhc1NlbGVjdGlvblRvRGVsZXRlKGZh
bHNlKQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtOTAsOCArOTAsOCBAQCBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBzbWFydERlbAogewogfQogCi1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwg
Ym9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxh
Y2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQot
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgp
LT5kb2N1bWVudCgpKQorRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUs
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5n
QWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5j
aG9yTm9kZSgpLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rp
b25Ub0RlbGV0ZSh0cnVlKQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAs
IG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtODg0
LDE0ICs4ODQsNiBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAg
IGNsZWFyVHJhbnNpZW50U3RhdGUoKTsKIH0KIAotRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25D
b21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKLXsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBE
ZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1h
bmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRv
IG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlv
bkN1dDsKLX0KLQogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlw
aW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCiAvLyB0
eXBlIGEgY2hhcmFjdGVyLCBCb2xkLCB0aGVuIGRlbGV0ZSB0aGUgY2hhcmFjdGVyIGFuZCBzdGFy
dCB0eXBpbmcuICBUaGUgQm9sZCB0eXBpbmcgc3R5bGUgc2hvdWxkbid0CiAvLyBzdGljayBhcm91
bmQuICBEZWxldGlvbiBzaG91bGQgcHJlc2VydmUgYSB0eXBpbmcgc3R5bGUgdGhhdCAqaXQqIHNl
dHMsIGhvd2V2ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oCmluZGV4IGU1YmY1MWQuLjBhOWI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0zNCwyMyArMzQsMjIgQEAgY2xh
c3MgRWRpdGluZ1N0eWxlOwogCiBjbGFzcyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGlj
IENvbXBvc2l0ZUVkaXRDb21tYW5kIHsgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVT
ZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVs
ZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVw
bGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29s
IHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxz
ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFs
c2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVN
YXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxh
Y2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21h
cnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNp
YWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9Ci0gICAg
c3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkK
KyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBt
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0
cnVlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxl
Y3Rpb24sIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBh
bmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0
ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJvdGVjdGVk
OgotICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRG
b3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywg
Ym9vbCBzYW50aXplTWFya3VwLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAKIHBy
aXZhdGU6Ci0gICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJl
cGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3Vw
KTsKKyAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVk
aXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBw
cmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0Li45MDhmZDc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2
b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90
IGxpbmVTdGFydCwgc2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2
ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJ
blJhbmdlKGxpbmVTdGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBS
ZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3Jl
YXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmlu
ZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRl
KGFsdGVybmF0aXZlc0luTGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29t
bWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1l
bnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERp
Y3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSwgRWRpdEFj
dGlvbkRpY3RhdGlvbik7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5k
aW5nU2VsZWN0aW9uKCkpOwogfQogCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBEaWN0YXRpb25D
b21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3
TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNl
LCBmYWxzZSwgRWRpdEFjdGlvbkRpY3RhdGlvbikpOwogfQogCiB2b2lkIERpY3RhdGlvbkNvbW1h
bmQ6OmNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKHNpemVfdCByYW5nZVN0YXJ0
LCBzaXplX3QgcmFuZ2VMZW5ndGgsIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVy
bmF0aXZlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggNjM3ZDFlYi4uNmVm
MzUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBFZGl0QWN0
aW9uVW5zcGVjaWZpZWQsCisgICAgICAgIEVkaXRBY3Rpb25JbnNlcnQsCiAgICAgICAgIEVkaXRB
Y3Rpb25TZXRDb2xvciwKICAgICAgICAgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvciwKICAg
ICAgICAgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi44ZjdmY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMzcsOSArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1FZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQorRWRp
dENvbW1hbmQ6OkVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uKQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fcGFyZW50KDAp
CisgICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQoZG9j
dW1lbnQuZnJhbWUoKSk7CiAgICAgc2V0U3RhcnRpbmdTZWxlY3Rpb24obV9kb2N1bWVudC0+ZnJh
bWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOwpAQCAtNjcsNyArNjksNyBAQCBGcmFtZSYg
RWRpdENvbW1hbmQ6OmZyYW1lKCkKIAogRWRpdEFjdGlvbiBFZGl0Q29tbWFuZDo6ZWRpdGluZ0Fj
dGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsKKyAgICBy
ZXR1cm4gbV9lZGl0aW5nQWN0aW9uOwogfQogCiBzdGF0aWMgaW5saW5lIEVkaXRDb21tYW5kQ29t
cG9zaXRpb24qIGNvbXBvc2l0aW9uSWZQb3NzaWJsZShFZGl0Q29tbWFuZCogY29tbWFuZCkKQEAg
LTExMiw2ICsxMTQsNDkgQEAgdm9pZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0ZUVk
aXRDb21tYW5kKiBwYXJlbnQpCiAgICAgfQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFu
ZDo6YXBwbHlFZGl0VHlwZSgpCit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIEVkaXRBY3Rpb25DdXQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUN1dDsK
KyAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlw
ZURlbGV0ZTsKKyAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgICAgIHJldHVybiBB
WFRleHRFZGl0VHlwZURpY3RhdGlvbjsKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CisgICAg
ICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0
ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlUGFzdGU7CisgICAgY2FzZSBFZGl0QWN0
aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVUeXBpbmc7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVu
a25vd247Cit9CisKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjp1bmFwcGx5RWRpdFR5cGUo
KQoreworICAgIHN3aXRjaCAoYXBwbHlFZGl0VHlwZSgpKSB7CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZVVua25vd246CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0Ogor
ICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAg
ICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAgfQorICAgIHJldHVybiBBWFRl
eHRFZGl0VHlwZVVua25vd247Cit9CisKK1NpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0Q29t
bWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6
IEVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQoreworfQorCiB2b2lkIFNpbXBs
ZUVkaXRDb21tYW5kOjpkb1JlYXBwbHkoKQogewogICAgIGRvQXBwbHkoKTsKQEAgLTEyNSw0ICsx
NzAsMTQgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5v
ZGUqIHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KIH0KICNlbmRpZgogCit2b2lkIFNpbXBs
ZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2Rl
LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisg
ICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
bihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAwM2U2YzM3Li5jNWI3YWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
aWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRfaAogCisjaW5jbHVkZSAi
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5j
bHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKik7CiAKLSAgICB2aXJ0dWFs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OworICAgIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbigpIGNvbnN0OwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdT
ZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0aW5nU2VsZWN0aW9uOyB9CiAgICAgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9l
bmRpbmdTZWxlY3Rpb247IH0KQEAgLTU5LDggKzYwLDExIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisgICAgQVhUZXh0RWRpdFR5cGUgYXBwbHlFZGl0VHlw
ZSgpOworICAgIEFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0VHlwZSgpOworCiBwcm90ZWN0ZWQ6
Ci0gICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBFZGl0
Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwog
ICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIEZyYW1lJiBmcmFtZSgpOwpAQCAtNzQsNiArNzgs
NyBAQCBwcml2YXRlOgogICAgIFZpc2libGVTZWxlY3Rpb24gbV9zdGFydGluZ1NlbGVjdGlvbjsK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fZW5kaW5nU2VsZWN0aW9uOwogICAgIENvbXBvc2l0ZUVk
aXRDb21tYW5kKiBtX3BhcmVudDsKKyAgICBFZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbiB7IEVk
aXRBY3Rpb25VbnNwZWNpZmllZCB9OwogfTsKIAogZW51bSBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSB7CkBAIC05MSwxMiArOTYsMTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
b3RlY3RlZDoKLSAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1l
bnQpIDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsgfQorICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRD
b21tYW5kKERvY3VtZW50JiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAK
ICNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhh
c2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAppbmRleCBkYzNhZTMz
Li4yM2JjNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJ
bk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3Bw
CkBAIC01OSw2ICs1OSw4IEBACiAjaW5jbHVkZSA8UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgogI2lu
Y2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcD4KICNpbmNsdWRl
IDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KKyNpbmNsdWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcD4KICNpbmNs
dWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJp
YnV0ZUNvbW1hbmQuY3BwPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDBmZDJmOTEu
LmE3NzI4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTIwOCwxMiArMjA4LDEy
IEBAIGJvb2wgRWRpdG9yOjpoYW5kbGVUZXh0RXZlbnQoVGV4dEV2ZW50KiBldmVudCkKICAgICAg
ICAgICAgIGlmIChjbGllbnQoKS0+cGVyZm9ybXNUd29TdGVwUGFzdGUoZXZlbnQtPnBhc3RpbmdG
cmFnbWVudCgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgICAg
ICAgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50
KCksIGZhbHNlLCBldmVudC0+c2hvdWxkU21hcnRSZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRj
aFN0eWxlKCksIGV2ZW50LT5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOworICAgICAgICAgICAg
cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZh
bHNlLCBldmVudC0+c2hvdWxkU21hcnRSZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxl
KCksIEVkaXRBY3Rpb25QYXN0ZSwgZXZlbnQtPm1haWxCbG9ja3F1b3RlSGFuZGxpbmcoKSk7CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgZWxzZSAKLSAgICAg
ICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChldmVudC0+ZGF0YSgpLCBmYWxzZSwgZXZl
bnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpKTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25X
aXRoVGV4dChldmVudC0+ZGF0YSgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgp
LCBFZGl0QWN0aW9uUGFzdGUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM3
NCwxMiArMzc0LDEyIEBAIGJvb2wgRWRpdG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlv
bkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBz
bWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9yOjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUo
Ym9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmICht
X2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBs
eUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0
RGVsZXRlKSk7CisgICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBlZGl0
aW5nQWN0aW9uKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjbGVhclRleHQoKQpAQCAtNTIwLDcgKzUy
MCw3IEBAIGJvb2wgRWRpdG9yOjpzaG91bGRJbnNlcnRGcmFnbWVudChQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBQYXNzUmVmCiAgICAgcmV0dXJuIGNsaWVudCgpLT5zaG91
bGRJbnNlcnROb2RlKGZyYWdtZW50LmdldCgpLCByZXBsYWNpbmdET01SYW5nZS5nZXQoKSwgZ2l2
ZW5BY3Rpb24pOwogfQogCi12b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVu
dChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxh
Y2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90
ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNl
bGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0
eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFp
bEJsb2NrcXVvdGVIYW5kbGluZykKIHsKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9
IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbi5pc05v
bmUoKSB8fCAhc2VsZWN0aW9uLmlzQ29udGVudEVkaXRhYmxlKCkgfHwgIWZyYWdtZW50KQpAQCAt
NTM2LDcgKzUzNiw3IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50
KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsCiAgICAgaWYgKG1haWxCbG9j
a3F1b3RlSGFuZGxpbmcgPT0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90
ZSkKICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SWdub3JlTWFp
bEJsb2NrcXVvdGU7CiAKLSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwgb3B0aW9ucywgRWRpdEFjdGlvblBhc3RlKSk7
CisgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIGVkaXRpbmdBY3Rpb24pKTsKICAgICByZXZlYWxTZWxl
Y3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24oKTsKIAogICAgIHNlbGVjdGlvbiA9IG1fZnJhbWUu
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CkBAIC01NTAsMTMgKzU1MCwxMyBAQCB2b2lkIEVkaXRv
cjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50LAogICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3Bl
bGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENo
ZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpLCBUZXh0Q2hlY2tp
bmdQcm9jZXNzQmF0Y2gsIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CiB9CiAKLXZvaWQg
RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKK3ZvaWQgRWRpdG9yOjpyZXBs
YWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxh
Y2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewog
ICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJhbmdlKCk7CiAgICAgaWYgKCFyYW5n
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChj
cmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCksIHNlbGVjdFJlcGxhY2VtZW50LCBz
bWFydFJlcGxhY2UsIHRydWUpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3Jl
YXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21h
cnRSZXBsYWNlLCB0cnVlLCBlZGl0aW5nQWN0aW9uKTsKIH0KIAogUGFzc1JlZlB0cjxSYW5nZT4g
RWRpdG9yOjpzZWxlY3RlZFJhbmdlKCkKQEAgLTk5OCw3ICs5OTgsOCBAQCB2b2lkIEVkaXRvcjo6
YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAg
ICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNo
YW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZy
YW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0
aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0g
ICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7Cisg
ICAgCisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9u
cywgY21kLT5hcHBseUVkaXRUeXBlKCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hh
bmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNv
bXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRp
dG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAyOSw3ICsxMDMwLDcgQEAgdm9pZCBFZGl0b3I6
OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQp
CiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxl
bWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNo
YW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSwgY21kLT51bmFwcGx5RWRpdFR5cGUoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNv
bnRlbnRDaGFuZ2VkRXZlbnRzKGNtZC0+c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNt
ZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93
SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjMsNyArMTI2NCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3Jt
Q3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAg
ICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUo
KSk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlP
ckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAg
LTIyMzUsNyArMjIzNiw3IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBp
bmdUb1dvcmQoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZ3b3JkU3RhcnQsCiAKICAgICAgICAgaWYg
KCFtX2ZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywg
bWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpKQogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBtX2ZyYW1lLmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25X
aXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBtX2Zy
YW1lLmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5n
LCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogCiAgICAgICAgIC8vIFJlc2V0IHRo
ZSBjaGFyZXQgb25lIGNoYXJhY3RlciBmdXJ0aGVyLgogICAgICAgICBtX2ZyYW1lLnNlbGVjdGlv
bigpLm1vdmVUbyhtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmVuZCgpKTsKQEAgLTI1
ODEsNyArMjU4Miw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhj
b25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQogICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0
Q29udHJvbGxlci0+cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZVJldmVyc2VkKHJlcGxhY2Vk
U3RyaW5nLCBzZWxlY3Rpb24pOwogICAgIFRleHRDaGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGgo
c2VsZWN0aW9uKTsKLSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQocmVwbGFjZWRTdHJpbmcs
IGZhbHNlLCBmYWxzZSk7CisgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3Ry
aW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogICAgIFJlZlB0cjxSYW5nZT4g
Y2hhbmdlZFJhbmdlID0gcGFyYWdyYXBoLnN1YnJhbmdlKHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0
KCksIHJlcGxhY2VkU3RyaW5nLmxlbmd0aCgpKTsKICAgICBjaGFuZ2VkUmFuZ2UtPnN0YXJ0Q29u
dGFpbmVyKCktPmRvY3VtZW50KCkubWFya2VycygpLmFkZE1hcmtlcihjaGFuZ2VkUmFuZ2UuZ2V0
KCksIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudCwgU3RyaW5nKCkpOwogICAgIG1fYWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlci0+bWFya1JldmVyc2VkKGNoYW5nZWRSYW5nZS5nZXQoKSk7CkBA
IC0yODE1LDcgKzI4MTYsNyBAQCB2b2lkIEVkaXRvcjo6dHJhbnNwb3NlKCkKICAgICAvLyBJbnNl
cnQgdGhlIHRyYW5zcG9zZWQgY2hhcmFjdGVycy4KICAgICBpZiAoIXNob3VsZEluc2VydFRleHQo
dHJhbnNwb3NlZCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxz
ZSwgZmFsc2UpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxz
ZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogfQogCiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxs
UmluZyhSYW5nZSogcmFuZ2UsIGJvb2wgcHJlcGVuZCkKQEAgLTI4NDcsNyArMjg0OCw3IEBAIHZv
aWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0
aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJD
b21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0
aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2Vs
ZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwg
RnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9y
cGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxl
Y3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigp
KQpAQCAtMjg1OSw3ICsyODYwLDcgQEAgdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2Vl
IDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlk
CiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlv
biA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25E
aWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5n
ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAg
ICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxs
eSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8g
Rm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBj
YXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCBhNTdkNDJh
Li4xMzEzZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVj
dGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywg
Ym9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwg
RWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpOwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2Vh
YmxlU3R5bGVzKCk7CkBAIC0zODIsOCArMzgyLDggQEAgcHVibGljOgogICAgIHZvaWQgdGV4dERp
ZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopOwogICAgIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdE
aXJlY3Rpb24gYmFzZVdyaXRpbmdEaXJlY3Rpb25Gb3JTZWxlY3Rpb25TdGFydCgpIGNvbnN0Owog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBh
c3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wg
c21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBN
YWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBz
ZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBt
YXRjaFN0eWxlLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCwgTWFpbEJsb2NrcXVvdGVI
YW5kbGluZyA9IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJp
bmcmLCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgRWRpdEFjdGlv
biA9IEVkaXRBY3Rpb25JbnNlcnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2VsZWN0aW9u
U3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUsIGludCBmcm9tLCBp
bnQgbGVuZ3RoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVk
QnlFZGl0aW5nKGJvb2wgb25seUhhbmRsZVdvcmRzQ29udGFpbmluZ1NlbGVjdGlvbik7CiAgICAg
dm9pZCBkZWxldGVkQXV0b2NvcnJlY3Rpb25BdFBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgY29u
c3QgU3RyaW5nJiBvcmlnaW5hbFN0cmluZyk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToK
ICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2Vs
Q29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNl
dENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25PcHRpb25zLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRB
Y3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0
aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmlu
ZGV4IDUxMWNiMDIuLjdhODE2NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVBcHBseVBhcmFn
cmFwaFN0eWxlKEZyYW1lJiBmcmFtZSwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsCiBzdGF0
aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50KQogewogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgp
KTsKLSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqZnJh
bWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50
TmVzdGluZywgRWRpdEFjdGlvblVuc3BlY2lmaWVkKSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25JbnNlcnQp
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcAppbmRleCA0NDBmMzY2Li44MWVhYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCiAjaW5jbHVkZSAiQ2hhcmFjdGVyRGF0YS5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTM5LDcgKzE0MCw3IEBA
IEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVs
ZW1lbnQoKSBjb25zdAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQ
b3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsIGFsaWduKQogewogICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5k
ZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1f
c2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7CisgICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBhbGln
bik7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRp
b24gJmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1
c2VyVHJpZ2dlcmVkKQpAQCAtMTcwLDcgKzE3MSw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1v
dmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlv
CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNl
dFdpdGhvdXRWYWxpZGF0aW9uKGJhc2UsIGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElz
RGlyZWN0aW9uYWwoc2VsZWN0aW9uSGFzRGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3Vz
ID8gMCA6IERvTm90U2V0Rm9jdXMpKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duIH0pOworICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRG
b2N1cyksIGludGVudCk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQ
b3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1Niwx
MyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQo
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdT
ZWxlY3Rpb24gfHwgIXNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZO
ZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAgICAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYg
bmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0
aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgIGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0
U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0yNzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNp
YmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3
U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+
IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAg
ICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlv
bkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdT
ZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0
aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25G
cmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgYWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAg
ICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9u
LCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAg
ICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0
IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAg
Ly8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2Fz
ZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2Vs
ZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2li
bGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rp
b25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxh
cml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9u
cywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFs
aWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rp
b25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdy
YW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBl
bmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9u
KCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2
b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkK
QEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlv
blVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJh
bWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0
aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50KQogewogICAgIGlmICghbV9wZW5kaW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1
cm47CkBAIC0zODAsNyArMzg4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2
ZWFsU2VsZWN0aW9uKCkKICAgICAgICAgcmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFs
RXh0ZW50KTsKICAgICB9CiAKLSAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKCk7CisgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQp
OwogCiAgICAgaWYgKGF1dG8qIGNsaWVudCA9IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpKQog
ICAgICAgICBjbGllbnQtPmRpZENoYW5nZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpOwpAQCAt
MTAyMSw3ICsxMDI5LDc3IEBAIFZpc2libGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5
TW92aW5nQmFja3dhcmQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBp
c0JvdW5kYXJ5KFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3Jh
bnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5k
YXJ5IHx8IGdyYW51bGFyaXR5ID09IERvY3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQorQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW5saW5lIEZyYW1l
U2VsZWN0aW9uOjpUZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rp
b25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7Cisg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxl
Y3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgZmxpcCA9IGlzUmFuZ2UoKSAmJiBk
aXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTDsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50
LnR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNo
IChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6Cisg
ICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0
eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24u
Z3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFy
eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFu
dWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2Vs
ZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNl
IERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkg
PSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkp
IHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFy
aXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxh
cml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRH
cmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5Ogor
ICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAg
Y2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0
aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRh
cnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9u
ID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0
OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAg
ICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlw
ID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30K
KyNlbmRpZgogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIs
IFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE1NSwxMSBA
QCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlv
bkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVy
ID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
CisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChUZXh0U2VsZWN0aW9u
SW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8g
U29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dO
YXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28g
c2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFS
VCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291
bGQgYmUKQEAgLTE3MTAsOCArMTc5MywxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RB
bGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChz
aG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RF
dmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7Cisg
ICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIH0pOworICAg
ICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNl
bGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0
eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUwOCw3IEBAIFZpc2libGVTZWxlY3Rp
b24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24o
Y29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2Vs
ZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFy
aXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNj
cm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNl
bGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZO
ZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAgUG9zaXRpb24gc3Rh
cnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgUG9zaXRpb24g
ZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi5lY2NjYTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVm
IEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAi
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTQ0LDcgKzE0
NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBv
c2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9v
bCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRp
b25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9
IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVy
R3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVl
ZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNs
b3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzMsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVO
VCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVj
dGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNl
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGln
bk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk4LDkgKzI5OSwxMCBAQCBwcml2YXRl
OgogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZp
Z2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IFRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlv
bkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKEFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZv
aWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJv
bChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzY5LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkK
IAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZM
KSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRT
dGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uN2M4
ZGEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKK0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0
PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSwg
ZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9vZmZzZXQob2Zmc2V0
KQogICAgICwgbV90ZXh0KHRleHQpCkBAIC01MCw2ICs1MCwxMSBAQCBJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9k
ZSwgdW5zaQogICAgIEFTU0VSVCghbV90ZXh0LmlzRW1wdHkoKSk7CiB9CiAKK2NvbnN0IFN0cmlu
ZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KCkKK3sKKyAgICByZXR1
cm4gbV90ZXh0OworfQorCiB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQogewogICAgIGJvb2wgcGFzc3dvcmRFY2hvRW5hYmxlZCA9IGZyYW1lKCkuc2V0dGluZ3MoKS5w
YXNzd29yZEVjaG9FbmFibGVkKCk7CkBAIC02Niw4ICs3MSw4IEBAIHZvaWQgSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZz
ZXQsIG1fdGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNo
ZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2li
bGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZP
Uk0oSU9TKQpAQCAtODQsOCArODksOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6
OmRvVW5hcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgLy8gTmVlZCB0byBu
b3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQot
ICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBB
WE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwg
bV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAog
ICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVf
RVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uZmZlMzcyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM0LDE0
ICszNCwxNiBAQCBjbGFzcyBUZXh0OwogCiBjbGFzcyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
IDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWdu
ZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9
IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQpOworICAgIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0KCk7
Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRl
eHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lmIFBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4uZWQwYTY2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKQEAgLTI5LDEzICsy
OSwxNSBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwKLSAgICBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHJlZkNoaWxkLT5kb2N1bWVudCgpKQorSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9k
ZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZD
aGlsZC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faW5zZXJ0Q2hpbGQoaW5z
ZXJ0Q2hpbGQpCiAgICAgLCBtX3JlZkNoaWxkKHJlZkNoaWxkKQogICAgICwgbV9zaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkKQEAgLTU3LDggKzU5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRv
QXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwg
bV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1
ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgewor
ICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkp
ID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3Jl
YXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBh
cHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRp
b24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs3MSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlm
eSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVj
dENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAg
ICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFs
dWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsK
KyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgp
KSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNy
ZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAg
ICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwg
dW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9z
aXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdO
T1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uMTM4N2JhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMzMsMjEgKzMz
LDIyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEluc2VydE5vZGVCZWZvcmVDb21tYW5k
IDogcHVibGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPElu
c2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsCi0gICAgICAgIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQorICAgICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRC
ZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21tYW5kKGNoaWxkVG9JbnNlcnQs
IGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
LCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydE5vZGVCZWZv
cmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2Rl
PiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSk7Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uKTsKIAorcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKLSAgICAKKwogI2lmbmRlZiBOREVCVUcKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsK
ICNlbmRpZgotICAgIAorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVm
UHRyPE5vZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1h
bmQuY3BwCmluZGV4IDIxMjgyOWMuLjdkZDAxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAt
NTksOCArNTksOCBAQCBzdGF0aWMgRWxlbWVudCogaGlnaGVzdFZpc3VhbGx5RXF1aXZhbGVudERp
dkJlbG93Um9vdChFbGVtZW50KiBzdGFydEJsb2NrKQogICAgIHJldHVybiBjdXJCbG9jazsKIH0K
IAotSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVzZURlZmF1bHRQYXJhZ3Jh
cGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCi0gICAgOiBD
b21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50
LCBib29sIG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0
b2VJbnRvVW5xdW90ZWRBcmVhLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21w
b3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbXVzdFVz
ZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCkK
ICAgICAsIG1fcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYShwYXN0ZUJsb2NrcXV0b2VJ
bnRvVW5xdW90ZWRBcmVhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaAppbmRleCAxMjgxZjBjLi42NzM0MTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQuaApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNzIEVkaXRpbmdTdHls
ZTsKIAogY2xhc3MgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZCA6IHB1YmxpYyBDb21w
b3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3Jh
cGhTZXBhcmF0b3JDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1Vu
cXVvdGVkQXJlYSA9IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFy
YWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFy
ZWEgPSBmYWxzZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJs
b2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJh
Z3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBlZGl0aW5nQWN0
aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQoRG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBh
c3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpOworICAgIEluc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBi
b29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIEVkaXRBY3Rpb24pOwogCiAgICAg
dmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmNwcAppbmRleCBiZGQ1OWEzLi41NzJlOGVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMzcsMTYgKzM3LDE2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21t
YW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQotICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQoZG9jdW1lbnQpCitJbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1h
bmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5z
ZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0
aW9uKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChzZWxl
Y3RJbnNlcnRlZFRleHQpCiAgICAgLCBtX3JlYmFsYW5jZVR5cGUocmViYWxhbmNlVHlwZSkKIHsK
IH0KIAotSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJT
dXBwbGllcj4gbWFya2VyU3VwcGxpZXIpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1
bWVudCkKK0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2Vy
U3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAg
OiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1f
dGV4dCh0ZXh0KQogICAgICwgbV9zZWxlY3RJbnNlcnRlZFRleHQoZmFsc2UpCiAgICAgLCBtX3Jl
YmFsYW5jZVR5cGUoUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uNjUy
ODE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAt
NDksMjAgKzQ5LDIxIEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxJbnNlcnRU
ZXh0Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLAotICAgICAgICBSZWJhbGFuY2VUeXBl
IHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykK
KyAgICAgICAgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0Fu
ZFRyYWlsaW5nV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rp
b25JbnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0
Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3Vt
ZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUsIGVkaXRpbmdBY3Rp
b24pKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVX
aXRoTWFya2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQs
IFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikK
KyAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxp
ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4
dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllciwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGll
cikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1
bWVudCwgdGV4dCwgbWFya2VyU3VwcGxpZXIsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXBy
aXZhdGU6Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25z
dCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiwg
RWRpdEFjdGlvbik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlLCBFZGl0QWN0
aW9uKTsKIAotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Ci0gICAgSW5zZXJ0
VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4
dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPik7Citwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVD
aGFyYWN0ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAppbmRleCAyYzA2M2MwLi5j
NjI5NzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcApAQCAtMzEsOCArMzEsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+
IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQobm9kZS0+
ZG9jdW1lbnQoKSkKK1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9ub2RlKG5v
ZGUpCiAgICAgLCBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCmlu
ZGV4IDRiOTE5NzQuLjFiMmM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKQEAgLTMyLDEz
ICszMiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICBzdGF0aWMg
UmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0
cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVk
aXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpOworICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZTViOTg0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgor
CisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQoUGFzc1JlZlB0cjxUZXh0PiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50
KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCh0ZXh0LCBvZmZzZXQsIGNvdW50LCBF
ZGl0QWN0aW9uRGVsZXRlKQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hOTg1ODcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEs
NTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0OworCitjbGFz
cyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCBjb3VudCkp
OworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kKFBhc3NSZWZQdHI8VGV4dD4sIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisKK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3Zl
cnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ODJkMDEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24pCisgICAgOiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNl
dCwgdGV4dCwgZWRpdGluZ0FjdGlvbikKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRlZFRleHQp
Cit7Cit9CisKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sK
KyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdB
WE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOworICAgIHN3
aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEaWN0YXRpb246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+cG9zdFRl
eHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwgdGV4
dCwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlUGFzdGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5
cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE2MWRiMgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisKKyNpbmNs
dWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVGV4dDsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQg
OiBwdWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8
VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQsIGVkaXRpbmdBY3Rpb24pKTsKKyAgICB9
CisKK3Byb3RlY3RlZDoKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPFRleHQ+LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRp
dEFjdGlvbik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4
dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uOGFhYmY5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
QEAgLTQ3LDYgKzQ3LDggQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJS
ZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgog
I2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpA
QCAtMzY5LDcgKzM3MSw3IEBAIGlubGluZSB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJ
bnNlcnRlZE5vZGVzOjpkaWRSZXBsYWNlTm9kZShOb2RlKiBub2RlLCBOCiB9CiAKIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1l
bnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25z
IG9wdGlvbnMsIEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21t
YW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRB
Y3Rpb24pCiAgICAgLCBtX3NlbGVjdFJlcGxhY2VtZW50KG9wdGlvbnMgJiBTZWxlY3RSZXBsYWNl
bWVudCkKICAgICAsIG1fc21hcnRSZXBsYWNlKG9wdGlvbnMgJiBTbWFydFJlcGxhY2UpCiAgICAg
LCBtX21hdGNoU3R5bGUob3B0aW9ucyAmIE1hdGNoU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uODhkYTA0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuaApAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIENv
bW1hbmRPcHRpb25zOwogCi0gICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0
QWN0aW9uUGFzdGUpCisgICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0g
RWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgYWN0aW9u
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
KGRvY3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAog
cHJpdmF0ZToKQEAgLTEyMSw2ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcmV2ZW50
TmVzdGluZzsKICAgICBib29sIG1fbW92aW5nUGFyYWdyYXBoOwogICAgIEVkaXRBY3Rpb24gbV9l
ZGl0QWN0aW9uOworICAgIEFYVGV4dEVkaXRUeXBlIG1fYXBwbHlFZGl0VHlwZTsKICAgICBib29s
IG1fc2FuaXRpemVGcmFnbWVudDsKICAgICBib29sIG1fc2hvdWxkTWVyZ2VFbmQ7CiAgICAgYm9v
bCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uZjA3NDQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5k
OjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQp
CiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3Qg
U3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKICAgICBSZWZQdHI8SW5z
ZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3Vt
ZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKLSAgICAgICAgbV9jb21wb3NpdGlvblR5
cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VM
ZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFu
Y2VBbGxXaGl0ZXNwYWNlcyk7CisgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21w
b3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWls
aW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFj
ZXMsIEVkaXRBY3Rpb25UeXBpbmcpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29t
bWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBUeXBp
bmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5k
TmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZh
bHNlLCBmYWxzZSwgRWRpdEFjdGlvblR5cGluZykpOwogICAgIHR5cGluZ0FkZGVkVG9PcGVuQ29t
bWFuZChJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uMzMyZTBh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25B
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRr
LmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFu
Z2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcAppbmRleCBjMTg4MzM4
Li4xMzRiMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRp
b25Db21tYW5kSU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRp
b25Db21tYW5kSU9TLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBEaWN0YXRpb25Db21tYW5kSU9TOjpEaWN0YXRpb25Db21tYW5kSU9TKERvY3VtZW50JiBkb2N1
bWVudCwgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYmIGRpY3RhdGlvblBocmFzZXMsIFJldGFpblB0
cjxpZD4gbWV0YWRhdGEpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBFZGl0QWN0aW9uRGljdGF0aW9uKQog
ICAgICwgbV9kaWN0YXRpb25QaHJhc2VzKFdURjo6bW92ZShkaWN0YXRpb25QaHJhc2VzKSkKICAg
ICAsIG1fbWV0YWRhdGEoV1RGOjptb3ZlKG1ldGFkYXRhKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaAppbmRleCBiZjkwNzY0Li5hYzVj
YjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21t
YW5kSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFu
ZElPUy5oCkBAIC00NCw3ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgRGljdGF0aW9uQ29tbWFuZElP
UyhEb2N1bWVudCYsIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBkaWN0YXRpb25QaHJhc2VzLCBS
ZXRhaW5QdHI8aWQ+IG1ldGFkYXRhKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBFZGl0QWN0aW9uRGljdGF0aW9uOyB9CiAKICAgICBWZWN0b3I8VmVjdG9y
PFN0cmluZz4+IG1fZGljdGF0aW9uUGhyYXNlczsKICAgICBSZXRhaW5QdHI8aWQ+IG1fbWV0YWRh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlv
bk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
CmluZGV4IDliZGVlMWMuLmZkNDE5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVj
dCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVu
dCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxl
Y3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2Fj
aGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgp
LT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdl
dE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRl
bnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAx
ZTZjNmIyLi4zNjg0ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwot
ICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5u
ZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgq
aW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1Zh
bHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMo
KSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAg
ICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQog
ICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2Fj
aGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQor
I2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUu
ZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxC
UkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4
dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAg
ICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYVGV4
dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWFRleHRFZGl0VHlwZUluc2VydCwgdmFs
dWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0Jl
Zm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNv
bnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAppbmRleCA4ODZjNzY1Li4zZDlmZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCkBAIC0zMjM5LDcgKzMyMzksOCBAQCBzdGF0aWMgdm9pZCBzZXRJbml0aWFsS2V5
Ym9hcmRTZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2li
bGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVz
ZXJUcmlnZ2VyZWQpKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duIH0pOworICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCks
IGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1l
bnQoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA3N2MwN2ZlLi5kOGQyNWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zNDAsOCArMzQwLDEwIEBAIGJvb2wgRm9j
dXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBLZXliCiAgICAgaWYgKGNhcmV0QnJvd3NpbmcpIHsKICAgICAgICAgUG9zaXRp
b24gcG9zaXRpb24gPSBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoZWxlbWVudC5nZXQoKSk7
CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKHBvc2l0aW9uLCBwb3NpdGlv
biwgRE9XTlNUUkVBTSk7Ci0gICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBpZiAoZnJhbWUuc2VsZWN0aW9u
KCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgICAgIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250
aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24gfSk7CisgICAgICAgICAg
ICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCksIGludGVudCk7
CisgICAgICAgIH0KICAgICB9CiAKICAgICBlbGVtZW50LT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZTZiOTZmLi42YWNjMTdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDQtMjMgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBh
cHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9k
dWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBw
cyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIg
Y29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2Vz
IGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5h
bHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2li
aWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90
aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRl
eHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFs
c28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgICh1
bmRvTmFtZUZvckVkaXRBY3Rpb24pOgorCiAyMDE1LTA0LTIzICBBbmRyZWFzIEtsaW5nICA8YWts
aW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgd2F5IHRv
IGdldCB0aGUgc3lzdGVtIG1lbW9yeSBzaXplLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IGQyMWNkZjAuLmU1OTBkOTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0KQEAgLTU0Niw2ICs1NDYsNyBAQCBzdGF0aWMgTlNTdHJpbmcqIHVuZG9OYW1lRm9y
RWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiAgICAgLy8gRklYTUU6IFRoaXMgaXMg
aWRlbnRpY2FsIHRvIGNvZGUgaW4gV2ViS2l0MidzIFdlYkVkaXRDb21tYW5kUHJveHkgY2xhc3M7
IHdvdWxkIGJlIG5pY2UgdG8gc2hhcmUgdGhlIHN0cmluZ3MgaW5zdGVhZCBvZiBoYXZpbmcgdHdv
IGNvcGllcy4KICAgICBzd2l0Y2ggKGVkaXRBY3Rpb24pIHsKICAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVW5zcGVjaWZpZWQ6IHJldHVybiBuaWw7CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2Vy
dDogcmV0dXJuIG5pbDsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29sb3I6IHJldHVybiBV
SV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJTZXQgQ29sb3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlv
biBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNl
dEJhY2tncm91bmRDb2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBCYWNr
Z3JvdW5kIENvbG9yIiwgIlNldCBCYWNrZ3JvdW5kIENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIs
ICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblR1cm5PZmZLZXJu
aW5nOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiVHVybiBPZmYgS2VybmluZyIsICJU
dXJuIE9mZiBLZXJuaW5nIChVbmRvIGFjdGlvbiBuYW1lKSIsICJVbmRvIGFjdGlvbiBuYW1lIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMzFiNWIxYy4uNTNlMTYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE1LTA0LTIzICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisg
ICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vz
c2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0
VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNl
bWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJs
ZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28g
aW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBm
b3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2Fk
ZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlv
biBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBn
aXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25k
aW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rp
bmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0
Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbik6CisKIDIwMTUtMDQtMjIgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gV2ViS2l0IHNlcnZp
Y2VzIHNob3VsZCBpbmhlcml0IGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgaG9tZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDU0
Y2UwM2MuLjg3ODU1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJF
ZGl0Q29tbWFuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRp
dENvbW1hbmRQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDggQEAgU3RyaW5nIFdlYkVkaXRDb21tYW5k
UHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICBzd2l0
Y2ggKGVkaXRBY3Rpb24pIHsKICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICAgICAg
cmV0dXJuIFN0cmluZygpOwogICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgogICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICBjYXNlIEVkaXRBY3Rpb25TZXRC
YWNrZ3JvdW5kQ29sb3I6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggNTUzZDFiMS4uOTgxNGRlOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA0LTIzICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBn
aXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25k
aW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNt
IHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNj
ZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisg
ICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2Yg
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFw
cHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2Vi
IGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMg
b24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKwogMjAxNS0wNC0yMyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBsZXNzIG1lbW9y
eSB3aGVuIGNvbXBpbGluZyBjb250ZW50IGV4dGVuc2lvbnMuCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5o
CmluZGV4IDE5Mzg2Y2UuLjkwOGRiZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oCkBAIC00Miw2
ICs0Miw3IEBACiAtICh2b2lkKXNldFBsYXRmb3JtRWxlbWVudDooaWQpcGxhdGZvcm1FbGVtZW50
OwogLSAodm9pZClzZXRDYWxsYmFjazooSlNPYmplY3RSZWYpY2FsbGJhY2s7CiAtICh2b2lkKXN0
YXJ0T2JzZXJ2aW5nOworLSAodm9pZClzdG9wT2JzZXJ2aW5nOwogCiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0
aW9uSGFuZGxlci5tbQppbmRleCBhZGE2ODdhLi5mMWM5YWZkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyLm1tCkBAIC0xMDQsNiArMTA0LDExIEBACiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfbm90aWZp
Y2F0aW9uUmVjZWl2ZWQ6KSBuYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpuaWxdOwog
fQogCistICh2b2lkKXN0b3BPYnNlcnZpbmcKK3sKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOworfQorCiAtICh2b2lkKV9ub3Rp
ZmljYXRpb25SZWNlaXZlZDooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBO
U1N0cmluZyAqbm90aWZpY2F0aW9uTmFtZSA9IFtbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmpl
Y3RGb3JLZXk6QCJub3RpZmljYXRpb25OYW1lIl07CkBAIC0xMTIsMTYgKzExNywyNyBAQAogICAg
IGlmIChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0
aW9uIG9iamVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pT
T05WYWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4ganNOb3RpZmljYXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25O
YW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAgICAgSlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1l
QXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmluZyhbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBq
c05vdGlmaWNhdGlvbi5nZXQoKSk7CisgICAgSlNWYWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFy
Z3VtZW50ID0gbmlsOworICAgIGlmIChbdXNlckluZm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAg
ICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwg
W3VzZXJJbmZvSlNPTlZhbHVlIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZv
SlNPTlZhbHVlQXJndW1lbnQgPSBKU1ZhbHVlTWFrZUZyb21KU09OU3RyaW5nKFttYWluRnJhbWUg
Z2xvYmFsQ29udGV4dF0sIGpzVXNlckluZm9KU09OVmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBp
ZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVt
ZW50IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRoZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAg
ICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25v
dGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1l
bnQsIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMg
dGhlIGVsZW1lbnQgYW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAg
ICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFt
ZSBhbmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAg
ICBhcmd1bWVudHNbMF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3Vt
ZW50c1sxXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2Fs
bEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5j
dGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAg
IC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1l
IGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAg
IGFyZ3VtZW50c1swXSA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudChbbm90aWZpY2F0aW9uIG9iamVjdF0pKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90
aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pT
T05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJh
bWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwg
YXJndW1lbnRzLCAwKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCmluZGV4IDQ2NzNhMWQuLjM5N2M2Mzgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCkBAIC0xNDQ2LDYgKzE0NDYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKICAgICAvLyBNYWMgcHJvZ3JhbW1l
cnMgc2hvdWxkIG5vdCBiZSB0cnlpbmcgdG8gcmVtb3ZlIGEgbGlzdGVuZXIgdGhhdCdzIGFscmVh
ZHkgcmVtb3ZlZC4KICAgICBBU1NFUlQobV9ub3RpZmljYXRpb25IYW5kbGVyKTsKIAorICAgIFtt
X25vdGlmaWNhdGlvbkhhbmRsZXIgc3RvcE9ic2VydmluZ107CiAgICAgW21fbm90aWZpY2F0aW9u
SGFuZGxlciByZWxlYXNlXTsKICAgICBtX25vdGlmaWNhdGlvbkhhbmRsZXIgPSBuaWw7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmlu
ZGV4IDY1MWI1OTEuLjI4Y2EwM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMjUsMTkgKzEyNSwzMCBAQAogICAgIGlmICht
X3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0aW9uIG9i
amVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pTT05WYWx1
ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVzZXJJbmZvIl07CisKICAgICBXS0J1bmRsZUZy
YW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShXVFI6OkluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSk7CiAgICAgSlNDb250ZXh0UmVmIGNv
bnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1lKTsKIAog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlm
aWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzTm90aWZpY2F0
aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBu
aWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9K
U09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVB
cmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoY29udGV4dCwganNVc2VySW5mb0pT
T05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAg
ICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwg
dGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNv
bnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxs
YmFjayksIDAsIDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDApOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQgYW5kIHRoZSBu
b3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8vIExpc3RlbmVyIGZvciBv
bmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAgICAg
ICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1bWVudHNbMF0gPSBub3Rp
ZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9IHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwg
Y29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwg
MCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBBIGdsb2JhbCBs
aXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8u
CisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzNdOwogICAgICAgICBhcmd1bWVudHNbMF0g
PSB0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkpKTsKICAgICAgICAgYXJndW1lbnRzWzFdID0g
bm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5m
b0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRl
eHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFj
ayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggZWQwMmZiNy4uZTI2MDdlMSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xNDc2LDYgKzE0NzYsNyBAQCBi
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkK
ICAgICAvLyBNYWMgcHJvZ3JhbW1lcnMgc2hvdWxkIG5vdCBiZSB0cnlpbmcgdG8gcmVtb3ZlIGEg
bGlzdGVuZXIgdGhhdCdzIGFscmVhZHkgcmVtb3ZlZC4KICAgICBBU1NFUlQobV9ub3RpZmljYXRp
b25IYW5kbGVyKTsKIAorICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgc3RvcE9ic2VydmluZ107
CiAgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciByZWxlYXNlXTsKICAgICBtX25vdGlmaWNhdGlv
bkhhbmRsZXIgPSBuaWw7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251536</attachid>
            <date>2015-04-23 21:56:16 -0700</date>
            <delta_ts>2015-04-23 22:58:24 -0700</delta_ts>
            <desc>Update from review</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>221364</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDRhOWFkZmFiM2U0MWRhODBiOWIyMWQ4NDM3NzA2NDZlZjE2NzAzODIKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQyYWViOC4uMjIwNzJhNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIzICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMyAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtYnktY2hhcmFjdGVyLTAwNy5odG1sIHNob3VsZCBwYXNzIG9uIE9TIFggMTAuMTAuMy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJl
cGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYTZmODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKyAgCitUaGlz
IHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhIHdoZW4gcmVw
bGFjaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbnB1dCBmaWVsZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRU
eXBlRGVsZXRlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsxXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRl
eHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlSW5zZXJ0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsi
QVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiICIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUwZGUzMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBpZD0iYm9keSI+CisKKyAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJzZWN1
cmV2YWx1ZXRlc3QiPgorCisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ2YWx1ZXRlc3QiPgor
CisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CisgICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0Pgor
CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhIHdoZW4gcmVwbGFjaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbnB1
dCBmaWVsZC4iKTsKKworICAgICAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCA9IDE7
CisKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGVsZXRlID0gMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0ID0gQVhUZXh0RWRpdFR5cGVEZWxldGUgKyAxOworCisgICAgICAg
IHZhciB3ZWJBcmVhID0gMDsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIHJl
c3VsdHMgPSBbXTsKKyAgICAgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rp
b24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAg
ICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1ZUNoYW5nZWQiKSB7CisgICAgICAgICAg
ICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOwor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAyKSB7CisKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzFdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzFdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKwor
ICAgICAgICAgICAgICAgICAgICAvLyBQYXNzd29yZCBub3RpZmljYXRpb25zIHdpbGwgYmUgaW5z
ZXJ0IG9ubHkgYW5kIHRoZSB2YWx1ZSBzdHJpbmcgd2lsbCBiZSB3aGl0ZXNwYWNlCisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENo
YW5nZVZhbHVlXCJdIiwgIlwiIFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVk
aXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlSW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAg
ICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0dmFsdWUoKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUg
PSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZXRzZWN1cmV2YWx1ZSgpIHsK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52
YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworCisgICAgICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICAgICAgd2ViQXJl
YSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsK
KyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0
aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICAgICAgc2hvdWxkQmUo
ImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAgICAgICAgc2V0dmFsdWUoKTsK
KworICAgICAgICAgICAgc2V0c2VjdXJldmFsdWUoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
Y2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kZDIyZmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw5NSBAQAorb25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC4KKworc2V2ZW4g
ZWlnaHQgbmluZS4KKworVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMg
dXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFk
ZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFu
Z2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTc1
MzdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsMjE3IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgcm9sZT0idGV4dGJveCIg
dGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxlPXRydWU+Cis8cD5vbmUgdHdv
IHRocmVlLiBmb3VyIGZpdmUgc2l4LjwvcD4KKzxwPnNldmVuIGVpZ2h0IG5pbmUuPC9wPgorPC9k
aXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGlu
Zm8gZGF0YS4iKTsKKworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ID0gMjsKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kID0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSArIDE7CisKKyAgICB2YXIgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nICsgMTsKKyAgICB2
YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0ID0gQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgKyAxOworCisgICAgdmFyIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lICsgMTsKKyAgICB2YXIgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1
bWVudCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoICsgMjsKKworICAgIHZh
ciBncmFuID0gWyJjaGFyYWN0ZXIiLCAid29yZCIsICJzZW50ZW5jZSIsICJsaW5lIiwgInBhcmFn
cmFwaCIsICJsaW5lYm91bmRhcnkiLCAic2VudGVuY2Vib3VuZGFyeSIsICJwYXJhZ3JhcGhib3Vu
ZGFyeSIsICJkb2N1bWVudGJvdW5kYXJ5Il07CisgICAgdmFyIHdlYkFyZWEgPSAwOworICAgIHZh
ciBjb3VudCA9IDA7CisgICAgdmFyIHJlc3VsdHMgPSBbXTsKKyAgICB2YXIgcmVzdWx0SW5kZXgg
PSAwOworICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZFRleHRDaGFu
Z2VkIikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGlmICh1c2VySW5mbykK
KyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAgICAgICAgICAgaWYg
KGNvdW50ID09IGdyYW4ubGVuZ3RoICogNCkgeworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsK
KworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwi
XSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmci
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9
IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAy
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25M
aXN0ZW5lcigpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFu
Y2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRk
ZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNh
dGlvbkNhbGxiYWNrKTsKKyAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRy
dWUiKTsKKworICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRi
b3giKTsKKyAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgIC8vIFRyaWdnZXIgc2Vs
ZWN0aW9uIGNoYW5nZXMuCisgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwor
ICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFuW2ld
KTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLnNl
dFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJm
b3J3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgIH0KKyAgICB9CisKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTNhYWJlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFs
dWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACiswMjM0NTY3
ODkwCitUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRh
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlv
biBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlQ3V0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhU
ZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0
VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIyMzQ1Njc4OTAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlw
ZVBhc3RlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUi
XSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlVHlwaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhU
ZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUt
Y2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zZGFkMzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSw5NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9l
ZGl0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxk
aXYgcm9sZT0idGV4dGJveCIgdGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxl
PXRydWU+MDEyMzQ1Njc4OTA8L2Rpdj4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMi
PjwvZGl2PgorCisgICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4iKTsKKworICAgICAg
ICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCA9IDE7CisKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlRGVsZXRlID0gMTsKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlSW5zZXJ0ID0g
QVhUZXh0RWRpdFR5cGVEZWxldGUgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVUeXBp
bmcgPSBBWFRleHRFZGl0VHlwZUluc2VydCArIDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiA9IEFYVGV4dEVkaXRUeXBlVHlwaW5nICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlQ3V0ID0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gKyAxCisgICAgICAgIHZhciBB
WFRleHRFZGl0VHlwZVBhc3RlID0gQVhUZXh0RWRpdFR5cGVDdXQgKyAxOworCisgICAgICAgIHZh
ciB3ZWJBcmVhID0gMDsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIHJlc3Vs
dHMgPSBbXTsKKyAgICAgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rpb24g
bm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICAg
ICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1ZUNoYW5nZWQiKSB7CisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAg
ICAgICAgICAgICAgIGlmIChjb3VudCA9PSA2KSB7CisKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVDdXQiKTsKKworICAgICAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4
dEVkaXRUeXBlUGFzdGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjIzNDU2Nzg5MFwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlUGFzdGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFu
Z2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFu
Z2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZVR5cGlu
ZyIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wi
XVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wi
XVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAg
ICAgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3
ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4
KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3Rp
ZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91
bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICB2YXIgdGV4
dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICB0
ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRl
eHRib3gsIDApOworICAgICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0
ZXJDb21tYW5kKCk7CisgICAgICAgICAgICBjdXRDb21tYW5kKCk7CisgICAgICAgICAgICBleGVj
RXh0ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIHBh
c3RlQ29tbWFuZCgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiMSIpOworICAg
ICAgICAgICAgZGVsZXRlQ29tbWFuZCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM4ZTIwNWEuLmU3
Yzk3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNTEzLDYgKzE1MTMsOCBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0
dHJpYnV0ZUNvbW1hbmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNjY2FiZS4uOTNhMzg1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMyBAQAorMjAxNS0wNC0yMyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNz
ZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24g
YW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVj
aCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGlu
IHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNo
YW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2Fy
dCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNj
ZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlv
bi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxk
cy4KKworICAgICAgICBUZXN0czogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVw
bGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAg
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1
ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6Y29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQp
OiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpz
ZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6c2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW06CisgICAgICAgICgrW1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uczpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246XSk6CisgICAgICAgIChhcnJh
eVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAgKGRpY3Rpb25hcnlSZW1vdmluZ05vbkpT
T05UeXBlcyk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOnVzZXJJbmZvOl0pOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW06CisgICAgICAgICh0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyk6CisgICAg
ICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zOmVuZFBvc2l0aW9uOl0pOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OkFw
cGVuZE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpk
b0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkp
OgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OkFw
cGx5U3R5bGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjph
cHBseUJsb2NrU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRlRWRpdENv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFw
cGVuZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Np
dGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVC
cmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUF0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAgICAgICogZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6cHJlc2VydmVzVHlwaW5nU3R5bGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdEFjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRDb21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjp1bmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OlNpbXBs
ZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29t
bWFuZDo6c2V0UGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aGFuZGxlVGV4dEV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0
RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhG
cmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6dW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpt
YXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnRyYW5zcG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUluc2Vy
dEZyYWdtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGlu
Z0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFs
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3
b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1
bGx5U2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
OnNlbGVjdGlvbkF0V29yZFN0YXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2VsZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZCk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFy
a2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgICog
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6
CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmguCisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6Okluc2VydGVkTm9kZXM6OmRpZFJlcGxhY2VOb2RlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRBc0xpc3RJdGVtcyk6IERl
bGV0ZWQuCisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0Nv
bW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAg
ICogZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25Db21tYW5kSU9TOjpEaWN0YXRpb25Db21tYW5kSU9TKToKKyAgICAgICAgKiBl
ZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmg6CisgICAgICAgICogZWRpdGluZy9tYWMv
RnJhbWVTZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmNv
bmNsdWRlRWRpdERyYWcpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbik6CisgICAgICAgICogcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVy
OjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCiAyMDE1LTA0LTIzICBSb2dlciBGb25n
ICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gTWlzc2VkIGEg
YnV0dG9uIGluIHIxODI5MDAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvagppbmRleCBhYzgxNTM4Li41YzU1YmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Nzg3LDYgKzE0Nzg3LDM0
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1NTUsNiArMTk1ODMsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJD
b250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlc
QWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxh
Y2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEFkanVzdFZp
ZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTEwNyw2ICsyMTEzNiw4IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVk
UG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA5NWMzMWU4Li5lNzZjMWFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCkBAIC0zNTI4LDYgKzM1MjgsMTIgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29t
bWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CkBAIC03NjcxLDYgKzc2NzcsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNj
ZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxh
Y2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiPgorICAgICAgICA8RmlsdGVy
PmFjY2Vzc2liaWxpdHk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
V2luLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5XHdpbjwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtMTA2ODAsNiArMTA2ODksMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4K
ICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIz
N2FjZWIuLmY2NTVjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNTAsNiArMzI1MCw3IEBACiAJCTkwMDE3NzQxMTJFMDM0
NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIgLyog
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MDEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYxQyAv
KiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlGODI5
MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAwQzdF
RTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDVCMjREMDk4RjFC
NkIwMEMyODg1NSAvKiBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTYsNiArNjM5Nywx
MCBAQAogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0
NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4
MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1
MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVC
M0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsK
QEAgLTEwNTAxLDYgKzEwNTA2LDcgQEAKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RTEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxQzlG
MkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUdyb3VwLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQwNDIsNiArMTQwNDgsMTAgQEAKIAkJRjUyQUQ1RTMxNTM0MjQ1
RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2Nh
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjMsNiArMTU2NzMsNyBAQAogCQkJ
CTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCAqLywK
IAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8sCiAJ
CQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKKwkJCQk5
MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0xNzc5Niw2ICsxNzgwNywxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4
MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJD
REE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMy
Q0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4
REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJ
CQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQu
Y3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhT
cGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzczMSw2ICsyMzc0Niw3IEBACiAJCQkJNkM1
NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBw
bGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURC
Nzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTY1Niw2
ICsyNTY3Miw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgwMDc2
Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcwQThE
MTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3
NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmggaW4g
SGVhZGVycyAqLywKQEAgLTI2NzEwLDYgKzI2NzI3LDcgQEAKIAkJCQk3QzRDOTZERDFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0
MjgxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTY5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MUM5RjJGOTFBRTNCRUIwMDA5NUI2
MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFE
NDI5MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQyQTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNkQwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmggaW4gSGVhZGVycyAq
LywKQEAgLTI4NDY4LDYgKzI4NDg2LDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3QTEg
LyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYxMkQw
MDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1ODI1
NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTkxNSw2ICsyOTkzNCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8qIFNR
TFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2RTU5
MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDc2
NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5MDAx
RTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDN0ZB
NjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uMjU2OGIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5MCw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAor
Ly8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgcGFzc3dvcmQgZmllbGRzIG9y
IGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMgYXQgYSA0MGh6IGludGVydmFs
IHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQorc3RhdGljIGRvdWJsZSBBY2Nl
c3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFsID0gMC4wMjU7
CisKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhDb21wdXRlZE9iamVjdEF0dHJpYnV0
ZUNhY2hlOjpnZXRJZ25vcmVkKEFYSUQgaWQpIGNvbnN0CiB7CiAgICAgSGFzaE1hcDxBWElELCBD
YWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1faWRNYXBwaW5n
LmZpbmQoaWQpOwpAQCAtMTI5LDYgKzEzMiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0RW5o
YW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENhY2hl
OjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoZG9j
dW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2Fj
aGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTcwNSw3ICs3MDksNyBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBSZWY8RG9jdW1lbnQ+IHBy
b3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7CiAgICAgbV9ub3RpZmljYXRpb25Qb3N0
VGltZXIuc3RvcCgpOwogICAgIAotICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25z
IGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlv
bnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyBJbiB0ZXN0
cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1
ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQg
YmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0
IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgogICAgIGF1dG8g
bm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlvbnNUb1Bvc3QpOwogICAgIApA
QCAtNzQyLDYgKzc0NiwyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiB0ZXN0cywgcG9zdGlu
ZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90
aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IK
KyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQu
IEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0
aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAgICBm
b3IgKGNvbnN0IGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCks
IEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgor
fQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVj
dCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0
VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY4LDIyMyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVu
Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNo
ZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBO
REVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRhdGFMb2coIlVua25v
d24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
OgorICAgICAgICBkYXRhTG9nKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBkYXRhTG9nKCJNb3Zl
OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2coIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25v
d24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlOgorICAgICAgICAgICAgZGF0YUxvZygiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIGRhdGFMb2co
Ikluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEaWN0YXRpb246CisgICAgICAgICAgICBkYXRhTG9nKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAg
ICAgICAgICAgZGF0YUxvZygiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRhdGFMb2coIkN1dCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgICAgIGRhdGFMb2coIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6
CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgZGF0YUxv
ZygiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRhTG9nKCJCZWdpbm5p
bmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgZGF0YUxvZygiRW5kOjoiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgor
ICAgICAgICAgICAgZGF0YUxvZygiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIGRh
dGFMb2coIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIkRp
c2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIGRhdGFM
b2coIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgZGF0YUxv
ZygiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiTGlu
ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlNlbnRl
bmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlBh
cmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiUGFn
ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkRvY3Vt
ZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbCIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBp
ZiAoaW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAgZGF0YUxvZygiLVN5bmMiKTsKKyAg
ICBkYXRhTG9nKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4
dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAg
bV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCitzdGF0aWMgYm9vbCBpc1Bhc3N3
b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QpCit7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQo
KSB8fCBvYmplY3QtPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
VW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCiAgICAg
c3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAotICAgIC8vIERlbGVnYXRl
IG9uIHRoZSByaWdodCBwbGF0Zm9ybQotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdl
dE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAg
aWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9i
amVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmplY3QsIGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNh
dGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5n
ZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOwor
ICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0
aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0
RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VS
VCh0eXBlICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1
dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iamVj
dCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24o
b2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5v
YnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAg
ICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBk
ZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGlu
c2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VS
VChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIGRlbGV0aW9uVHlwZSwg
ZGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vs
c2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENo
YW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCku
ZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5z
ZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdP
ZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCitib29sIEFYT2JqZWN0Q2FjaGU6
OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNz
d29yZEZpZWxkKG9iamVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICBpZiAoIW9ic2VydmFibGVPYmplY3QpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIC8vIHJldHVybiB0cnVlIGV2ZW4gdGhvdWdoIHRoZSBlbnF1ZXVlIGRp
ZG4ndCBoYXBwZW4gYmVjYXVzZSB0aGlzIGlzIGEgcGFzc3dvcmQgZmllbGQgYW5kIGNhbGxlciBz
aG91bGRuJ3QgcG9zdCBhIG5vdGlmaWNhdGlvbgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmNvbnRhaW5zKG9ic2Vy
dmFibGVPYmplY3QpKSB7CisgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFw
cGVuZChvYnNlcnZhYmxlT2JqZWN0KTsKKyAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdChBY2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5n
ZU5vdGlmaWNhdGlvbkludGVydmFsKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
dm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSog
ZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMwOSwxNCBA
QCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3Qo
KTsKKyAgICBpZiAoIXJvb3RPYmplY3QgfHwgIXJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXcoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGRvd25jYXN0
PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgpOwor
fQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhP
YmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li4zMGE3YTQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZp
bmUgQVhPYmplY3RDYWNoZV9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5o
IgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPGxpbWl0cy5oPgpAQCAtNjcsNiArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPEFYSUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz4gbV9pZE1hcHBpbmc7CiB9OwogCisj
aWYgIVBMQVRGT1JNKENPQ09BKQorZW51bSBBWFRleHRDaGFuZ2UgeyBBWFRleHRJbnNlcnRlZCwg
QVhUZXh0RGVsZXRlZCB9OworI2VuZGlmCisKIGVudW0gUG9zdFRhcmdldCB7IFRhcmdldEVsZW1l
bnQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQgfTsKIAogZW51bSBQb3N0VHlwZSB7IFBvc3RTeW5j
aHJvbm91c2x5LCBQb3N0QXN5bmNocm9ub3VzbHkgfTsKQEAgLTE4OSwxMiArMTk0LDE1IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkp
OwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1l
bnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAg
ICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAgfTsKKyNpZm5k
ZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRT
dGF0ZUNoYW5nZUludGVudCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSBkZWxl
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2Vy
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBl
bnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxMywx
MiArMjIxLDI0IEBAIHB1YmxpYzoKICAgICBBWENvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUq
IGNvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUoKSB7IHJldHVybiBtX2NvbXB1dGVkT2JqZWN0
QXR0cmlidXRlQ2FjaGUuZ2V0KCk7IH0KIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KLSAgICAKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBz
dGF0aWMgdm9pZCBzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMoYm9vbCB2YWx1
ZSk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBwbGF0
Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2RlLCBO
b2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwor
I2Vsc2UKKyAgICBzdGF0aWMgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRl
eHRFZGl0VHlwZSk7CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9pZCB0
ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5nZWQo
RWxlbWVudCopOwpAQCAtMjI5LDYgKzI0OSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9k
ZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9
CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKyAg
ICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0
KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzI2NiwxMSBAQCBwcml2
YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6
OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90
aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7
CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZlY3Rv
cjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Q
b3N0OworICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAg
ICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdp
b25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSop
OwpAQCAtMjUxLDYgKzI3OCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAg
CiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIGJvb2wgZW5x
dWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCop
OworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50Owog
fTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4ICszMzksOSBAQCBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmll
dyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9
Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9Ci1pbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdl
dCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNh
dGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUp
IHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KQEAgLTMyMCw2ICszNTIs
MTQgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKE5vZGUqKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShXaWRnZXQqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSop
IHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQoraW5saW5l
IEFYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0
RWRpdFR5cGUpIHsgcmV0dXJuIEFYVGV4dEluc2VydGVkOyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRp
ZgogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45NWMyNjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBWFRleHRTdGF0
ZUNoYW5nZUludGVudF9oCisjZGVmaW5lIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIAorZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAg
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdCwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorfTsKKworZW51bSBBWFRleHRFZGl0VHlw
ZSB7CisgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRl
LCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdl
bmVyaWMgdGV4dCBpbnNlcnQKKyAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZp
YSB0eXBpbmcKKyAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0
YXRpb24KKyAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICBBWFRl
eHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKK307CisKK2VudW0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAor
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzCit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
IHsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFyYWdyYXBoLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50LAorICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Yg
c2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGlu
ZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3Nl
cyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5
IG5vdGlmaWNhdGlvbi4KK307CisKK3N0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHk7Cit9OworCitzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
eworICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAgIHVuaW9uIHsKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdl
OworICAgIH07CisgICAgYm9vbCBpc1N5bmNocm9uaXppbmcgeyBmYWxzZSB9OworCisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0
U2VsZWN0aW9uKCkpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbihz
ZWxlY3Rpb24pCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRF
ZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
KQorICAgICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBpc1N5bmNocm9uaXpp
bmcpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbigpCisgICAgICAg
ICwgaXNTeW5jaHJvbml6aW5nKGlzU3luY2hyb25pemluZykKKyAgICB7CisgICAgICAgIEFTU0VS
VCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAgIH0KK307CisKK30KKwor
I2VuZGlmIC8vIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXgg
ZDhkMjZkZS4uNDM4ZTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsMjcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAg
ICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElu
cHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAg
ICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzOworICAgIH0KKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dI
b3N0KCk7CisgICAgaWYgKCFlbGVtZW50IHx8ICFpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUo
ZWxlbWVudCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhp
cy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLmE4MmJkODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUlt
YWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29y
ZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNT
bGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmNiMzM4MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcApAQCAtMjY0Niw0ICsyNjQ2LDE3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQogI2VuZGlmCiAK
K2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBj
b25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkg
IT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCk7CisgICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1l
bnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1Bh
c3N3b3JkRmllbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2
ZjJhLi44MTZjMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250
cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25z
dCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggZTlkMmE1Mi4uNTBmZGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDkx
LDE0ICsxNDkxLDE3IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewog
ICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIp
LnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0
aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7
Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9u
SXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNU
UkVBTSkpOworICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUs
IHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBuZXdJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSk7CisgICAg
bV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgbmV3SW50ZW50
KTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgpIGNvbnN0CkBAIC0x
OTYzLDEzICsxOTY2LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7CiAgICAgaWYgKHJh
bmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRv
IHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24K
LSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChyYW5nZS5zdGFydCA9
PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmpl
Y3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhy
YW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3Rh
cnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYgKzQz
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2Jq
ZWN0Q2FjaGUqKSBvdmVycmlkZTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFP
YmplY3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhp
c3RzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2Vi
QXJlYU9iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmly
c3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQogICAg
IEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciopOwog
ICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRr
LmNwcAppbmRleCA1ODUyYTBmLi5mNTgyZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtMjQzLDYgKzI0Mywy
NCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBBWAogICAgICAgICBicmVhazsKICAgICB9CiB9Cisg
ICAgCitBWFRleHRDaGFuZ2UgQVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKEFY
VGV4dEVkaXRUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBy
ZXR1cm4gQVhUZXh0RGVsZXRlZDsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgICAgIHJldHVybiBBWFRl
eHRJbnNlcnRlZDsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBWFRleHRJ
bnNlcnRlZDsKK30KIAogdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewpAQCAtMjY4
LDEwICsyODYsMTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamUKICAgICAvLyBTZWxlY3QgdGhl
IHJpZ2h0IHNpZ25hbCB0byBiZSBlbWl0dGVkCiAgICAgQ1N0cmluZyBkZXRhaWw7CiAgICAgc3dp
dGNoICh0ZXh0Q2hhbmdlKSB7Ci0gICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRl
ZDoKKyAgICBjYXNlIEFYVGV4dEluc2VydGVkOgogICAgICAgICBkZXRhaWwgPSAidGV4dC1pbnNl
cnQiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0
ZWQ6CisgICAgY2FzZSBBWFRleHREZWxldGVkOgogICAgICAgICBkZXRhaWwgPSAidGV4dC1yZW1v
dmUiOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVj
dENhY2hlSU9TLm1tCkBAIC05NSw4ICs5NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwog
ICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlm
aWNhdGlvblN0cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAg
IHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBw
b3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZv
aWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5n
RXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9i
amVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmpl
Y3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li5iMGE1NTg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYg
KzQ0LDUzIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZp
Y2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3Np
YmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nl
c3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
biIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxh
cml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJB
WFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4
dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRD
aGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGgg
QCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRl
eHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVu
dCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJh
bmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJh
bmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBW
ZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBv
ZiBub3RpZmljYXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBh
biBhdmVyYWdlIHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5n
cyB0byBiZSBsYXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBjb25zdCBO
U1VJbnRlZ2VyIEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKwogLy8gVGhl
IHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsNiArMTA3LDIxIEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCiAgICAgb2JqLT5z
ZXRXcmFwcGVyKHdyYXBwZXIuZ2V0KCkpOwogfQogCitzdGF0aWMgQk9PTCBheFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyA9IGZhbHNlOworCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNl
dFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQoreworICAgIGF4
U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2
b2lkIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpu
b3RpZmljYXRpb24sIGlkIHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3Rp
ZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAg
ICAvLyBUbyBzaW1wbGlmeSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCBy
ZXBvc3QgYXMgYSBzaW1wbGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3Qg
aW5mcmFzdHVjdHVyZSB0byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5z
bGF0aW9uIGJldHdlZW4gV2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5
cGVzIGFuZCBiYWNrCisgICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9u
c0ZvclRlc3RzKSkKKyAgICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0
aW9uOm5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwg
QVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1
ICsyMTEsMTMxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29i
ai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmlj
YXRpb24ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNl
ZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2Jq
LT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRp
b25dOworCisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigp
LCBtYWNOb3RpZmljYXRpb24sIG5pbCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRl
eHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24pCiB7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9
IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXpp
bmcpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0g
QFlFUzsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
bikgeworICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBl
S2V5XSA9IEAoaW50ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1
c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50
LnNlbGVjdGlvbi5kaXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0
aW9uLmRpcmVjdGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25Vbmtub3duOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQ6CisgICAgICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVV
bmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUo
KSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVjdC0+d3JhcHBlcigp
IHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3Rh
cnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVz
ZXJJbmZvW05TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9
IHRleHRNYXJrZXJSYW5nZTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+
d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxl
bWVudF0gPSB3cmFwcGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJv
b3RXZWJBcmVhKCk7CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEt
PndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
biwgdXNlckluZm8pOworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3Qt
PndyYXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
biwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGlj
dGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3RyaW5nICp0ZXh0ID0g
KE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3Ro
XTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVE
aWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6NF07CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBA
KHR5cGUpOworICAgIGlmIChsZW5ndGggPiBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCkg
eworICAgICAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9
IEAobGVuZ3RoKTsKKyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6QVhWYWx1
ZUNoYW5nZVRydW5jYXRpb25MZW5ndGhdOworICAgIH0KKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgp
KSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRN
YXJrZXJGb3JWaXNpYmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7Cisg
ICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3Qp
CisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlv
bmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2li
aWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCk7CisKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFu
Z2VEaWN0aW9uYXJ5KG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAg
IGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmlj
YXRpb25XaXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1
ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25X
aXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdl
ZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5
cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5
cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBv
c2l0aW9uKQoreworICAgIGlmICghb2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJl
YSgpOworCisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJs
ZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNo
YW5nZVR5cGVLZXldID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0
YWJsZUFycmF5ICpjaGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBh
Y2l0eToyXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRD
aGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRp
b24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0
aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwg
aW5zZXJ0aW9uVHlwZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2Vz
IGFkZE9iamVjdDpjaGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZXNdID0gY2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChp
ZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25X
aXRoVXNlckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5n
ZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlm
aWNhdGlvbiwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBB
WE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4u
YjkzNDE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU2
LDggKzU2LDkgQEAgY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogLSAoTlNTdHJpbmcgKilhcmlhTGFu
ZG1hcmtSb2xlRGVzY3JpcHRpb247CiAKIC0gKGlkKWF0dGFjaG1lbnRWaWV3OwotLy8gVXNlZCB0
byBpbmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQu
IFVzZWQgYnkgRFJULgorLy8gVXNlZCB0byBpbmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90aWZp
Y2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgdGVzdHMuCiAtICh2b2lkKWFjY2Vzc2li
aWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZTsKKy0g
KHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmlj
YXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbzsKIAogLSAoQ0dQYXRo
UmVmKWNvbnZlcnRQYXRoVG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6UGF0aCAmKXBhdGg7CiAtIChD
R1BvaW50KWNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6OkZsb2F0UG9pbnQgJilw
b2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQppbmRleCA1ZGRm
YzNhLi43N2UzOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1t
CkBAIC0zODMsMTMgKzM4Myw2OSBAQCBzdGF0aWMgQk9PTCBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9uczsKICsgKHZvaWQpYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5v
dGlmaWNhdGlvbnM6KEJPT0wpcmVwb3N0CiB7CiAgICAgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnMgPSByZXBvc3Q7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIEFYT2JqZWN0
Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhyZXBvc3QpOworI2Vu
ZGlmCiB9CiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJp
bmcgKilub3RpZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBv
c3ROb3RpZmljYXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZp
Y2F0aW9uOm5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGljIE5TQXJy
YXkgKmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7CisgICAgQVNT
RVJUKFthcnJheSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5TTXV0YWJs
ZUFycmF5ICptdXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZvciAoTlNV
SW50ZWdlciBpID0gMDsgaSA8IFttdXRhYmxlQXJyYXkgY291bnRdOykgeworICAgICAgICBpZCB2
YWx1ZSA9IG11dGFibGVBcnJheVtpXTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNz
OltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFj
ZU9iamVjdEF0SW5kZXg6aSB3aXRoT2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBl
cyh2YWx1ZSldOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJh
eSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRl
eDppIHdpdGhPYmplY3Q6YXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAg
ICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2
YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkgeworICAgICAgICAgICAgW211
dGFibGVBcnJheSByZW1vdmVPYmplY3RBdEluZGV4OmldOworICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIH0KKyAgICAgICAgaSsrOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVBcnJh
eSBhdXRvcmVsZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnlSZW1v
dmluZ05vbkpTT05UeXBlcyhOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAgQVNTRVJU
KFtkaWN0aW9uYXJ5IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAgICBO
U011dGFibGVEaWN0aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11dGFi
bGVDb3B5XTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgeworICAgICAg
ICBpZCB2YWx1ZSA9IGRpY3Rpb25hcnlba2V5XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9u
YXJ5W2tleV0gPSBkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOworICAgICAg
ICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAg
ICAgICAgbXV0YWJsZURpY3Rpb25hcnlba2V5XSA9IGFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMo
dmFsdWUpOworICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmlu
ZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAg
ICAgICAgICAgIFttdXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAg
ICB9CisgICAgcmV0dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0g
KHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmlj
YXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChh
Y2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rp
b25hcnkqIHVzZXJJbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRL
ZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5h
bWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOwor
ICAgICAgICBBU1NFUlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAq
aW5mbyA9IG5pbDsKKyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEg
KnVzZXJJbmZvRGF0YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpk
aWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldy
aXRpbmdPcHRpb25zKTAgZXJyb3I6bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEp
IHsKKyAgICAgICAgICAgICAgICBOU1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5n
IGFsbG9jXSBpbml0V2l0aERhdGE6dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXTsKKyAgICAgICAgICAgICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAg
ICAgICAgICAgIGluZm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1l
LCBAInVzZXJJbmZvIiA6IHVzZXJJbmZvU3RyaW5nfTsKKyAgICAgICAgICAgICAgICBbdXNlcklu
Zm9TdHJpbmcgcmVsZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYg
KCFpbmZvKQorICAgICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlm
aWNhdGlvbk5hbWV9OworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxm
IHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uMWYwZWNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UK
IAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KGNvbnN0IFdlYkNv
cmU6OlZpc2libGVQb3NpdGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooY29uc3QgV2Vi
Q29yZTo6VmlzaWJsZVBvc2l0aW9uJillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JW
aXNpYmxlUG9zaXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBv
czsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBmYWNkMzNiLi44MjEx
MDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTEzNiwx
NCArMTEzNiwxNCBAQCBzdGF0aWMgTlNTdHJpbmcqIG5zU3RyaW5nRm9yUmVwbGFjZWROb2RlKE5v
ZGUqIHJlcGxhY2VkTm9kZSkKICAgICByZXR1cm4gW2F0dHJTdHJpbmcgYXV0b3JlbGVhc2VdOwog
fQogCi1zdGF0aWMgaWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhPYmpl
Y3RDYWNoZSAqY2FjaGUsIFZpc2libGVQb3NpdGlvbiBzdGFydFBvc2l0aW9uLCBWaXNpYmxlUG9z
aXRpb24gZW5kUG9zaXRpb24pCitzdGF0aWMgaWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQ
b3NpdGlvbnMoQVhPYmplY3RDYWNoZSAqY2FjaGUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRQb3NpdGlvbikKIHsKICAgICBp
ZCBzdGFydFRleHRNYXJrZXIgPSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBz
dGFydFBvc2l0aW9uKTsKICAgICBpZCBlbmRUZXh0TWFya2VyID0gdGV4dE1hcmtlckZvclZpc2li
bGVQb3NpdGlvbihjYWNoZSwgZW5kUG9zaXRpb24pOwogICAgIHJldHVybiB0ZXh0TWFya2VyUmFu
Z2VGcm9tTWFya2VycyhzdGFydFRleHRNYXJrZXIsIGVuZFRleHRNYXJrZXIpOwogfQogCi0tIChp
ZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooVmlzaWJsZVBvc2l0aW9uKXN0
YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFZpc2libGVQb3NpdGlvbillbmRQb3NpdGlvbgorLSAo
aWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooY29uc3QgVmlzaWJsZVBvc2l0aW9uJill
bmRQb3NpdGlvbgogewogICAgIHJldHVybiB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0
aW9ucyhtX29iamVjdC0+YXhPYmplY3RDYWNoZSgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlv
bik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IDFkZWI0ZGIuLmNlNzRmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCwxMiArMzAsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIlJlbmRl
ckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1BcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQoKSkKK0FwcGVu
ZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChwYXJlbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rp
b24pCiAgICAgLCBtX3BhcmVudChwYXJlbnQpCiAgICAgLCBtX25vZGUobm9kZSkKIHsKQEAgLTQ2
LDE1ICs0NywyMyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVu
dC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5
cGUgdHlwZSkKIHsKLSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyB0
ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFr
cyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYgKHRl
eHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBub2Rl
VmFsdWUpOworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBp
czxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9u
KHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKQEAgLTY0LDE4ICs3MywxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
IAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJ
T04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0g
ICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9p
ZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50LT5o
YXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBO
ZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1v
dmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4uZjc4Mjk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2Rl
KQorICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPENv
bnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmRO
b2RlQ29tbWFuZChwYXJlbnQsIG5vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QXBwZW5kTm9kZUNvbW1hbmQocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQog
CiBwcml2YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiwgRWRpdEFjdGlv
bik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggN2M0MThjMi4uY2FiODgyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEyMyw5ICsxMjMsOCBAQCBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVN0eWxlU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogfQogCiBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24sIEVQcm9wZXJ0eUxldmVsIHByb3BlcnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBl
ZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0
aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlM
ZXZlbCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFt
KCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAt
MTM2LDkgKzEzNSw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5CiB9CiAKIEFwcGx5U3R5bGVD
b21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRp
bmdTdHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVu
ZCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBFUHJvcGVydHlMZXZlbCBwcm9wZXJ0eUxldmVs
KQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUt
PmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9w
cm9wZXJ0eUxldmVsKHByb3BlcnR5TGV2ZWwpCiAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAgICwg
bV9lbmQoZW5kKQpAQCAtMTQ5LDkgKzE0Nyw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0
eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5CiB9
CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChQYXNzUmVmUHRyPEVsZW1l
bnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25seSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQot
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSkKKyAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGVsZW1lbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAg
ICAgLCBtX3N0eWxlKEVkaXRpbmdTdHlsZTo6Y3JlYXRlKCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rp
b24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChQcm9wZXJ0eURlZmF1bHQp
CiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQog
ICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTE2Myw5
ICsxNjAsOCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50LCBib29sIHJlbW92ZU9ubAogfQogCiBBcHBseVN0eWxlQ29tbWFu
ZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5
bGUqIHN0eWxlLCBJc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9uIGlzSW5saW5lRWxlbWVu
dFRvUmVtb3ZlRnVuY3Rpb24sIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKLSAgICA6IENvbXBv
c2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9j
dW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0gICAg
LCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChQ
cm9wZXJ0eURlZmF1bHQpCiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCku
ZG93bnN0cmVhbSgpKQogICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJl
YW0oKSkKQEAgLTIyNiwxMSArMjIyLDYgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6ZG9BcHBs
eSgpCiAgICAgfQogfQogCi1FZGl0QWN0aW9uIEFwcGx5U3R5bGVDb21tYW5kOjplZGl0aW5nQWN0
aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lZGl0aW5nQWN0aW9uOwotfQotCiB2b2lkIEFw
cGx5U3R5bGVDb21tYW5kOjphcHBseUJsb2NrU3R5bGUoRWRpdGluZ1N0eWxlICpzdHlsZSkKIHsK
ICAgICAvLyB1cGRhdGUgZG9jdW1lbnQgbGF5b3V0IG9uY2UgYmVmb3JlIHJlbW92aW5nIHN0eWxl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCmluZGV4IGU5OWUz
NmEuLjlkYmU4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
LmgKQEAgLTcyLDcgKzcyLDYgQEAgcHJpdmF0ZToKICAgICBBcHBseVN0eWxlQ29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IEVkaXRpbmdTdHlsZSosIGJvb2wgKCppc0lubGluZUVsZW1lbnRUb1JlbW92
ZSkoY29uc3QgRWxlbWVudCopLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0Fw
cGx5KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIC8vIHN0eWxlLXJlbW92YWwgaGVscGVycwogICAgIGJvb2wg
aXNTdHlsZWRJbmxpbmVFbGVtZW50VG9SZW1vdmUoRWxlbWVudCopIGNvbnN0OwpAQCAtMTIyLDcg
KzEyMSw2IEBAIHByaXZhdGU6CiAgICAgUG9zaXRpb24gZW5kUG9zaXRpb24oKTsKIAogICAgIFJl
ZlB0cjxFZGl0aW5nU3R5bGU+IG1fc3R5bGU7Ci0gICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rp
b247CiAgICAgRVByb3BlcnR5TGV2ZWwgbV9wcm9wZXJ0eUxldmVsOwogICAgIFBvc2l0aW9uIG1f
c3RhcnQ7CiAgICAgUG9zaXRpb24gbV9lbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLmI1NDFlYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC01OCw2
ICs1OCw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKKyNpbmNsdWRlICJS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUg
IlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTE2MiwxMyArMTY0LDMxIEBAIHZvaWQgRWRpdENvbW1h
bmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQog
fQogI2VuZGlmCiAKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBw
bHlFZGl0VHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIEVkaXRBY3Rpb25DdXQ6CisgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgorICAgICAg
ICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0
aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0
ZToKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0
VHlwZURlbGV0ZTsKKyAgICAvLyBJbmNsdWRlIGRlZmF1bHQgY2FzZSBmb3IgdW5oYW5kbGVkIEVk
aXRBY3Rpb24gY2FzZXMuCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBh
c3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+
YXBwbHkoKTsKIH0KIAotQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
KERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50KQorQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVk
aXRpbmdBY3Rpb24pCiB7CiB9CiAKQEAgLTE4Nyw2ICsyMDcsNyBAQCB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjphcHBseSgpCiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJl
Y3Rpb246CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKICAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVW5zcGVjaWZpZWQ6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKICAgICAgICAg
Y2FzZSBFZGl0QWN0aW9uRGVsZXRlOgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246
CiAgICAgICAgICAgICBicmVhazsKQEAgLTI5Niw3ICszMTcsNyBAQCB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZW1vdmVTdHlsZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVu
dCkKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
KGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50
b1VucXVvdGVkQXJlYSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVh
dGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRv
ZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWsoKQpAQCAtMzIyLDcgKzM0Myw3IEBAIGJvb2wg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkK
IAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNl
cnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTM3Myw3ICszOTQsNyBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5k
Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFy
ZW50KQogewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQo
KSkpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVh
dGUocGFyZW50LCBub2RlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9k
ZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1JlZlB0
cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTM5Nyw3ICs0MTgs
NyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMoUGFzc1JlZlB0cjxO
b2RlPiBub2RlKQpAQCAtNTI1LDIwICs1NDYsMjEgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAg
IGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAg
ICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbigp
KSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBh
c3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwg
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUo
cHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIGNvdW50KTsKKyAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVDb21tYW5kKTsKICAgICBpZiAoIXJlcGxh
Y2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50
VGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKFdURjo6bW92ZShub2RlKSwgb2Zmc2V0LCByZXBsYWNl
bWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCksIGVkaXRpbmdBY3Rpb24oKSkp
OwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4
dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xMjg5LDcgKzEzMTEsNyBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0T2ZQYXJhZ3JhcAogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpDb21tYW5kT3B0
aW9ucyBvcHRpb25zID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNlbGVjdFJlcGxhY2VtZW50
IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1vdmluZ1BhcmFncmFwaDsKICAgICBpZiAoIXBy
ZXNlcnZlU3R5bGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
Ok1hdGNoU3R5bGU7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwgb3B0aW9ucykpOworICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9j
dW1lbnQoKSwgV1RGOjptb3ZlKGZyYWdtZW50KSwgb3B0aW9ucykpOwogCiAgICAgZnJhbWUoKS5l
ZGl0b3IoKS5tYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcihlbmRpbmdTZWxlY3Rpb24oKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRl
eCBjMmI0ODlkLi43MDQ0YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgQVhU
ZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgRWRp
dENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0
YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24s
IEVkaXRBY3Rpb24pOwogCkBAIC04OSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsK
KyAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24g
PSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAgICAgLy8KICAgICAvLyBzdWdhcnktc3dlZXQg
Y29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGhlbHAgY3JlYXRlIGFuZCBhcHBseSBlZGl0IGNvbW1h
bmRzIGluIGNvbXBvc2l0ZSBjb21tYW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uZjkzY2MyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw4ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQp
Ci0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5n
QWN0aW9uKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAg
LCBtX2NvdW50KGNvdW50KQpAQCAtNTgsOCArNTgsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgLy8gTmVlZCB0
byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCks
IG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAK
ICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTcz
LDggKzczLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQog
CiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJ
T04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0
LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCks
IHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25v
ZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li40
ZTYxOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTQgKzM0LDE3IEBAIGNs
YXNzIFRleHQ7CiAKIGNsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2lt
cGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIGNvdW50LCBl
ZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3Vu
dCk7CisgICAgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCwgRWRpdEFjdGlvbik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3Zl
cnJpZGU7CiAgICAgCkBAIC01NSw2ICs1OCwxMSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Rl
eHQ7CiB9OwogCitpbmxpbmUgY29uc3QgU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRl
eCAyYmJjNmVkLi5lYjNhNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTcyLDggKzcyLDggQEAgc3RhdGljIGJvb2wgaXNU
YWJsZVJvd0VtcHR5KE5vZGUqIHJvdykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBs
YWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkK
LSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21h
cnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVk
aXRpbmdBY3Rpb24pCiAgICAgLCBtX2hhc1NlbGVjdGlvblRvRGVsZXRlKGZhbHNlKQogICAgICwg
bV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtOTAsOCArOTAsOCBAQCBEZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9v
bCBzbWFydERlbAogewogfQogCi1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rp
b25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERl
bGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQotICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgp
KQorRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAg
IDogQ29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5k
b2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rpb25Ub0RlbGV0ZSh0
cnVlKQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtODg0LDE0ICs4ODQsNiBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGNsZWFyVHJhbnNp
ZW50U3RhdGUoKTsKIH0KIAotRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0
aW5nQWN0aW9uKCkgY29uc3QKLXsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAot
ICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBw
bGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVj
dGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKLX0KLQog
Ly8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRo
YXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCiAvLyB0eXBlIGEgY2hhcmFj
dGVyLCBCb2xkLCB0aGVuIGRlbGV0ZSB0aGUgY2hhcmFjdGVyIGFuZCBzdGFydCB0eXBpbmcuICBU
aGUgQm9sZCB0eXBpbmcgc3R5bGUgc2hvdWxkbid0CiAvLyBzdGljayBhcm91bmQuICBEZWxldGlv
biBzaG91bGQgcHJlc2VydmUgYSB0eXBpbmcgc3R5bGUgdGhhdCAqaXQqIHNldHMsIGhvd2V2ZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmlu
ZGV4IGU1YmY1MWQuLjBhOWI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0zNCwyMyArMzQsMjIgQEAgY2xhc3MgRWRpdGluZ1N0
eWxlOwogCiBjbGFzcyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVk
aXRDb21tYW5kIHsgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21t
YW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2Us
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFy
a3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVu
dCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywg
c2FuaXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZjxE
ZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRl
bGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxF
bGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMg
UmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3Bl
Y2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0
RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6
ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChE
b2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwg
Ym9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXpl
TWFya3VwLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAKIHByaXZhdGU6Ci0gICAg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFy
dERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKTsKKyAgICBEZWxl
dGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVs
ZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBh
bmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24pOwog
CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbigpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBp
bmdTdHlsZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21t
YW5kLmNwcAppbmRleCBjMTczZGY0Li45MDhmZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlv
bkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwg
c2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRp
dmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVT
dGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0
VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQs
IGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZl
c0luTGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2Vy
dFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0
VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtl
clN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSwgRWRpdEFjdGlvbkRpY3RhdGlv
bik7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9u
KCkpOwogfQogCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1Nl
bGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRp
dEFjdGlvbkRpY3RhdGlvbikpOwogfQogCiB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6OmNvbGxlY3RE
aWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKHNpemVfdCByYW5nZVN0YXJ0LCBzaXplX3QgcmFu
Z2VMZW5ndGgsIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggNjM3ZDFlYi4uNmVmMzUwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBFZGl0QWN0aW9uVW5zcGVjaWZp
ZWQsCisgICAgICAgIEVkaXRBY3Rpb25JbnNlcnQsCiAgICAgICAgIEVkaXRBY3Rpb25TZXRDb2xv
ciwKICAgICAgICAgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvciwKICAgICAgICAgRWRpdEFj
dGlvblR1cm5PZmZLZXJuaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApp
bmRleCA4ZjU2NTMyLi42NDc4YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVk
aXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgpAQCAtMzcsOSArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1FZGl0
Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQorRWRpdENvbW1hbmQ6OkVk
aXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQog
ICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fcGFyZW50KDApCisgICAgLCBtX2Vk
aXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQuZnJhbWUo
KSk7CiAgICAgc2V0U3RhcnRpbmdTZWxlY3Rpb24obV9kb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCkpOwpAQCAtNjcsNyArNjksNyBAQCBGcmFtZSYgRWRpdENvbW1hbmQ6
OmZyYW1lKCkKIAogRWRpdEFjdGlvbiBFZGl0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsKKyAgICByZXR1cm4gbV9lZGl0
aW5nQWN0aW9uOwogfQogCiBzdGF0aWMgaW5saW5lIEVkaXRDb21tYW5kQ29tcG9zaXRpb24qIGNv
bXBvc2l0aW9uSWZQb3NzaWJsZShFZGl0Q29tbWFuZCogY29tbWFuZCkKQEAgLTExMiw2ICsxMTQs
NTAgQEAgdm9pZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKiBw
YXJlbnQpCiAgICAgfQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAgICBjYXNl
IEVkaXRBY3Rpb25DdXQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUN1dDsKKyAgICBj
YXNlIEVkaXRBY3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0
ZTsKKyAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgICAgIHJldHVybiBBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjsKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CisgICAgICAgIHJl
dHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAg
ICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlUGFzdGU7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlw
aW5nOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVUeXBpbmc7CisgICAgLy8gSW5jbHVk
ZSBkZWZhdWx0IGNhc2UgZm9yIHVuaGFuZGxlZCBFZGl0QWN0aW9uIGNhc2VzLgorICAgIGRlZmF1
bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtu
b3duOworfQorCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkg
Y29uc3QKK3sKKyAgICBzd2l0Y2ggKGFwcGx5RWRpdFR5cGUoKSkgeworICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVVbmtub3duOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOwor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1
dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAgIH0KKyAgICByZXR1cm4g
QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitTaW1wbGVFZGl0Q29tbWFuZDo6U2ltcGxlRWRp
dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisg
ICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKK3sKK30KKwogdm9pZCBT
aW1wbGVFZGl0Q29tbWFuZDo6ZG9SZWFwcGx5KCkKIHsKICAgICBkb0FwcGx5KCk7CkBAIC0xMjUs
NCArMTcxLDE0IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50
cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiB9CiAjZW5kaWYKIAordm9pZCBT
aW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSog
bm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hl
KQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uMWE5
OTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1
ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgog
I2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldFBhcmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCopOwogCi0gICAgdmly
dHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKKyAgICBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdDsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0
aW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGluZ1NlbGVjdGlvbjsgfQogICAg
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZW5kaW5nU2VsZWN0aW9uOyB9CkBAIC01OSw4ICs2MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKSBjb25zdDsKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBjb25z
dDsKKwogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7Cisg
ICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlv
blVuc3BlY2lmaWVkKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBGcmFtZSYgZnJhbWUo
KTsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3Rh
cnRpbmdTZWxlY3Rpb247CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsK
ICAgICBDb21wb3NpdGVFZGl0Q29tbWFuZCogbV9wYXJlbnQ7CisgICAgRWRpdEFjdGlvbiBtX2Vk
aXRpbmdBY3Rpb24geyBFZGl0QWN0aW9uVW5zcGVjaWZpZWQgfTsKIH07CiAKIGVudW0gU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgewpAQCAtOTEsMTIgKzk2LDE0IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQo
RG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21tYW5kKGRvY3VtZW50KSB7IH0KKyAgICBleHBs
aWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9u
VW5zcGVjaWZpZWQpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgYWRkTm9kZUFuZERlc2Nl
bmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5j
cHAKaW5kZXggZGMzYWUzMy4uMjNiYzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dGluZ0FsbEluT25lLmNwcApAQCAtNTksNiArNTksOCBAQAogI2luY2x1ZGUgPFJlbW92ZU5vZGVD
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1
ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAppbmRleCAwZmQyZjkxLi5hNzcyODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBA
IC0yMDgsMTIgKzIwOCwxMiBAQCBib29sIEVkaXRvcjo6aGFuZGxlVGV4dEV2ZW50KFRleHRFdmVu
dCogZXZlbnQpCiAgICAgICAgICAgICBpZiAoY2xpZW50KCktPnBlcmZvcm1zVHdvU3RlcFBhc3Rl
KGV2ZW50LT5wYXN0aW5nRnJhZ21lbnQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQt
PnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBl
dmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBldmVudC0+bWFpbEJsb2NrcXVvdGVIYW5kbGluZygp
KTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3Rp
bmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+
c2hvdWxkTWF0Y2hTdHlsZSgpLCBFZGl0QWN0aW9uUGFzdGUsIGV2ZW50LT5tYWlsQmxvY2txdW90
ZUhhbmRsaW5nKCkpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgfQogI2VuZGlmCiAgICAg
ICAgIGVsc2UgCi0gICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRh
dGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSk7CisgICAgICAgICAgICBy
ZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91
bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlvblBhc3RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCkBAIC0zNzQsMTIgKzM3NCwxMiBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERp
cmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNt
YXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUsIHRydWUsIGZhbHNlLCBm
YWxzZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbikpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0
KCkKQEAgLTUyMCw3ICs1MjAsNyBAQCBib29sIEVkaXRvcjo6c2hvdWxkSW5zZXJ0RnJhZ21lbnQo
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgUGFzc1JlZgogICAgIHJldHVy
biBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0Tm9kZShmcmFnbWVudC5nZXQoKSwgcmVwbGFjaW5nRE9N
UmFuZ2UuZ2V0KCksIGdpdmVuQWN0aW9uKTsKIH0KIAotdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxl
Y3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwg
Ym9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHls
ZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQordm9pZCBF
ZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxh
Y2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBNYWlsQmxvY2tx
dW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiB7CiAgICAgVmlzaWJsZVNlbGVj
dGlvbiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlm
IChzZWxlY3Rpb24uaXNOb25lKCkgfHwgIXNlbGVjdGlvbi5pc0NvbnRlbnRFZGl0YWJsZSgpIHx8
ICFmcmFnbWVudCkKQEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVj
dGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAog
ICAgIGlmIChtYWlsQmxvY2txdW90ZUhhbmRsaW5nID09IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6
Oklnbm9yZUJsb2NrcXVvdGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6Oklnbm9yZU1haWxCbG9ja3F1b3RlOwogCi0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIEVk
aXRBY3Rpb25QYXN0ZSkpOworICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7
CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CiAKICAgICBzZWxl
Y3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpAQCAtNTUwLDEzICs1NTAs
MTMgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVz
dENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2lu
Z1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFt
bWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVj
aykpOwogfQogCi12b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCit2
b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbikKIHsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgp
OwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxl
Y3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9u
V2l0aEZyYWdtZW50KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KSwgc2VsZWN0
UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbik7CiB9CiAKIFBh
c3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6c2VsZWN0ZWRSYW5nZSgpCkBAIC05OTgsNyArOTk4LDgg
QEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENv
bW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0
aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5l
Y2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
ID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25U
cmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rp
b24sIG9wdGlvbnMpOworICAgIAorICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+YXBwbHlFZGl0VHlwZSgpKTsKICAgICBkaXNwYXRjaEVk
aXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRh
YmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsK
IAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEwMjksNyArMTAzMCw3
IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRD
b21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJvbHMoY21kLT5zdGFydGlu
Z1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkp
OwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21kLT5zdGFydGluZ1NlbGVj
dGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSk7CisgICAgY2hhbmdl
U2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUVkaXRUeXBlKCkpOwogICAgIGRp
c3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRh
YmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1
cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjYzLDcgKzEyNjQsNyBAQCB2b2lk
IEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQog
CiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAoYWN0aW9uID09
IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNt
YXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxl
dGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRp
dG9yOjpwYXN0ZSgpCkBAIC0yMjM1LDcgKzIyMzYsNyBAQCB2b2lkIEVkaXRvcjo6bWFya01pc3Nw
ZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmd29yZFN0YXJ0
LAogCiAgICAgICAgIGlmICghbV9mcmFtZS5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KGF1dG9j
b3JyZWN0ZWRTdHJpbmcsIG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlv
blR5cGVkKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5y
ZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNl
KTsKKyAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0
b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKIAogICAg
ICAgICAvLyBSZXNldCB0aGUgY2hhcmV0IG9uZSBjaGFyYWN0ZXIgZnVydGhlci4KICAgICAgICAg
bV9mcmFtZS5zZWxlY3Rpb24oKS5tb3ZlVG8obV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KS5lbmQoKSk7CkBAIC0yNTgxLDcgKzI1ODIsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlQmFja1Rv
UmVwbGFjZWRTdHJpbmcoY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKICAgICAKICAgICBt
X2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VS
ZXZlcnNlZChyZXBsYWNlZFN0cmluZywgc2VsZWN0aW9uKTsKICAgICBUZXh0Q2hlY2tpbmdQYXJh
Z3JhcGggcGFyYWdyYXBoKHNlbGVjdGlvbik7Ci0gICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0
KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRo
VGV4dChyZXBsYWNlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKICAg
ICBSZWZQdHI8UmFuZ2U+IGNoYW5nZWRSYW5nZSA9IHBhcmFncmFwaC5zdWJyYW5nZShwYXJhZ3Jh
cGguY2hlY2tpbmdTdGFydCgpLCByZXBsYWNlZFN0cmluZy5sZW5ndGgoKSk7CiAgICAgY2hhbmdl
ZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5kb2N1bWVudCgpLm1hcmtlcnMoKS5hZGRNYXJrZXIo
Y2hhbmdlZFJhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6UmVwbGFjZW1lbnQsIFN0cmluZygp
KTsKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPm1hcmtSZXZlcnNlZChjaGFuZ2Vk
UmFuZ2UuZ2V0KCkpOwpAQCAtMjgxNSw3ICsyODE2LDcgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9z
ZSgpCiAgICAgLy8gSW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3RlcnMuCiAgICAgaWYgKCFz
aG91bGRJbnNlcnRUZXh0KHRyYW5zcG9zZWQsIHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rp
b25UeXBlZCkpCiAgICAgICAgIHJldHVybjsKLSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQo
dHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQo
dHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKIH0KIAogdm9pZCBF
ZGl0b3I6OmFkZFRvS2lsbFJpbmcoUmFuZ2UqIHJhbmdlLCBib29sIHByZXBlbmQpCkBAIC0yODQ3
LDcgKzI4NDgsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3Jl
ZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRp
c21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBF
ZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlv
bnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3
IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4K
ICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24u
ZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NTksNyArMjg2MCw3IEBAIHZvaWQgRWRpdG9yOjpjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJl
IG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRp
b24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAg
ICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rp
b24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFt
ZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAg
ICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25z
LCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBz
ZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0
aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUg
Zm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggYTU3ZDQyYS4uMTMxM2RiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0x
NzQsNyArMTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHks
IGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJv
b2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lk
IGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtMzgyLDggKzM4Miw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBXcml0aW5nRGlyZWN0aW9uIGJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9u
U3RhcnQoKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNlbGVjdFJl
cGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWlsQmxvY2tx
dW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0
IFN0cmluZyYsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFy
dFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQs
IE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0
QmxvY2txdW90ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJl
cGxhY2UsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KTsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHNlbGVjdGlvblN0YXJ0SGFzTWFya2VyRm9yKERvY3VtZW50TWFya2VyOjpNYXJrZXJU
eXBlLCBpbnQgZnJvbSwgaW50IGxlbmd0aCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVNYXJrZXJz
Rm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhib29sIG9ubHlIYW5kbGVXb3Jkc0NvbnRhaW5pbmdT
ZWxlY3Rpb24pOwogICAgIHZvaWQgZGVsZXRlZEF1dG9jb3JyZWN0aW9uQXRQb3NpdGlvbihjb25z
dCBQb3NpdGlvbiYsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxTdHJpbmcpOwpAQCAtNDY4LDcgKzQ2
OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29t
cG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihj
b25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9u
U3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0
T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcAppbmRleCA1MTFjYjAyLi43YTgxNjY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMgYm9vbCBl
eGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGcmFtZSYgZnJhbWUsIEVkaXRvckNvbW1hbmRTb3Vy
Y2Ugc291cmNlLAogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZyYW1lJiBmcmFt
ZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCkKIHsKICAgICBBU1NFUlQo
ZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25VbnNwZWNpZmllZCkpOworICAgIGFw
cGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVu
dCgpLCBmcmFnbWVudCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBF
ZGl0QWN0aW9uSW5zZXJ0KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNDQwZjM2Ni4uNWRjYjE0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNs
dWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAg
LTEzOSw3ICsxNDAsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxl
bWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29uc3QKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVU
byhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJl
ZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKICAgICBzZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBv
cy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgICAgICBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29u
c3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwg
RVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNzEsOCBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFz
ZSwgY29uc3QgUG9zaXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAg
IG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5l
d1NlbGVjdGlvbi5zZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAg
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8
IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFY
VGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3Vz
ID8gMCA6IERvTm90U2V0Rm9jdXMpLCBpbnRlbnQpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRy
b2xsZXI6OnNldENhcmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
QEAgLTI1NCw3ICsyNTYsMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlN
b3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9z
ZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpICYmIG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgIGludGVudCA9
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBlbHNlCisgICAg
ICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RF
dmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsK
IH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBw
ZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhv
dXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNj
cm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVh
cmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rp
b25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBp
ZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50
LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFt
ZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAg
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAg
ICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0
eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJv
dmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBi
eQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNl
bGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQog
ICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElm
IHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcg
QEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFs
aWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rp
b25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29y
QWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAg
IGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9w
dGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICsz
NDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJh
bWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQp
OwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHls
ZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigp
OwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQor
dm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0
ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rp
b246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihh
bGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UoaW50ZW50KTsKIAogICAgIGlmIChhdXRvKiBjbGllbnQgPSBtX2ZyYW1lLT5lZGl0
b3IoKS5jbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5kaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRh
dGVMYXlvdXQoKTsKQEAgLTEwMjEsNyArMTAyOSw3NSBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVT
ZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7
CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9
PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5Owot
fSAgICAKK30KKworQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgRnJhbWVTZWxlY3Rpb246OnRleHRT
ZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJl
Y3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wg
ZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlv
bk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlOworICAgICAgICBmbGlwID0gaXNSYW5nZSgpICYmIGRpcmVjdGlvbk9mU2VsZWN0
aW9uKCkgPT0gUlRMOworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7
CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlv
bi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2Vu
dGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5l
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNh
c2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJp
dHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFy
eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJv
dW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hh
cmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBT
ZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2Ug
UGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91
bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91
bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBj
YXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkJlZ2lubmluZyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJl
Y3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50
LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5k
IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQogCiBib29sIEZyYW1lU2Vs
ZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJl
Y3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRy
aWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE1MywxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpt
b2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRl
eAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBv
c2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFi
bGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0
VGV4dFNlbGVjdGlvbkludGVudCh0ZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24s
IGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0
aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRp
bmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0
b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0
cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MTAsOCArMTc5MSwx
MCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVj
dGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRz
T2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYVGV4
dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIH0pOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBp
bnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5n
ZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAg
LTI0MjMsNyArMjUwNiw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRT
ZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAg
IG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0g
ICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVj
dGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdy
YW51bGFyaXR5KCkpOwogCiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2Vs
ZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNl
bGVjdGlvbigpLmVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApp
bmRleCAwZTRlMjhlLi45NTdiNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZp
bmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQu
aCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24m
LCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAg
ICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3Nl
bGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5l
ZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRT
ZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBDdXJzb3JBbGlnbk9u
U2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBD
aGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3Rl
ZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIo
KTsKQEAgLTI3Miw3ICsyNzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0
aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVB
bmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihB
WFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAg
IHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRT
ZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJp
dHkpOwpAQCAtMjk3LDEwICsyOTgsMTEgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgbGlu
ZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUp
OwogCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgdGV4dFNlbGVjdGlvbkludGVudChFQWx0
ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOwogI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25D
aGFuZ2UoKTsKKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKICNl
bHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9
CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFNl
bGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2Fj
aGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBA
IC0zNjcsNyArMzY5LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0
eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09D
T0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uOTRhZjA0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0z
OSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAgIDogU2ltcGxlRWRpdENv
bW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKK0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNp
bXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBt
X25vZGUobm9kZSkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fdGV4dCh0ZXh0KQpA
QCAtNjYsOCArNjYsOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHko
KQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENF
UFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zm
c2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0
KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9u
b2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTg0LDggKzg0LDgg
QEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICBy
ZXR1cm47CiAgICAgICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVh
bGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9u
KFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEo
bV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4
IDMxMGJiYjMuLjA3NjA5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0zNCwxNCArMzQsMTcgQEAgY2xhc3MgVGV4dDsK
IAogY2xhc3MgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29t
bWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
PiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCkKKyAgICBzdGF0aWMgUmVmPEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNy
ZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
bm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVkaXRp
bmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KTsKKyAgICBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6
CisgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBA
IC01Nyw2ICs2MCwxMSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3RleHQ7CiB9OwogCitpbmxp
bmUgY29uc3QgU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQo
KQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li5j
NmIyMjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcApAQCAtMjksMTMgKzI5LDEzIEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNo
ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5v
ZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8
Tm9kZT4gcmVmQ2hpbGQsCi0gICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBTaW1wbGVFZGl0Q29t
bWFuZChyZWZDaGlsZC0+ZG9jdW1lbnQoKSkKK0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChSZWZQdHI8Tm9kZT4mJiBpbnNlcnRDaGlsZCwgUmVmUHRyPE5v
ZGU+JiYgcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0Fj
dGlvbikKICAgICAsIG1faW5zZXJ0Q2hpbGQoaW5zZXJ0Q2hpbGQpCiAgICAgLCBtX3JlZkNoaWxk
KHJlZkNoaWxkKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKQEAgLTU3LDggKzU3LDEwIEBAIHZv
aWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNl
cnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VY
Q0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3Rp
ZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0
ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9
IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4o
bV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1f
aW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4
dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hp
bGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAK
IHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs2OSwx
MCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxl
dGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24g
PSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+
KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbiht
X2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0
Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAK
ICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRi
NzYyZC4uNWNlYTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQuaApAQCAtMzIsMjIgKzMyLDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1h
bmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hp
bGRUb0luc2VydEJlZm9yZSwKLSAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgc3RhdGljIFJl
ZjxJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9J
bnNlcnQsIFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQoV1RGOjptb3ZlKGNoaWxkVG9JbnNlcnQpLCBXVEY6Om1vdmUoY2hp
bGRUb0luc2VydEJlZm9yZSksIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBl
ZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBj
aGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUmVmUHRyPE5vZGU+JiYg
Y2hpbGRUb0luc2VydCwgUmVmUHRyPE5vZGU+JiYgY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCitwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRv
VW5hcHBseSgpIG92ZXJyaWRlOwotICAgIAorCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwg
dm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlm
Ci0gICAgCisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9k
ZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBt
X3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAK
aW5kZXggMjEyODI5Yy4uN2RkMDE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC01OSw4ICs1
OSw4IEBAIHN0YXRpYyBFbGVtZW50KiBoaWdoZXN0VmlzdWFsbHlFcXVpdmFsZW50RGl2QmVsb3dS
b290KEVsZW1lbnQqIHN0YXJ0QmxvY2spCiAgICAgcmV0dXJuIGN1ckJsb2NrOwogfQogCi1JbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21t
YW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBtdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1l
bnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKLSAgICA6IENvbXBvc2l0
ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
bXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9V
bnF1b3RlZEFyZWEsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVk
aXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9tdXN0VXNlRGVmYXVs
dFBhcmFncmFwaEVsZW1lbnQobXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KQogICAgICwg
bV9wYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKHBhc3RlQmxvY2txdXRvZUludG9VbnF1
b3RlZEFyZWEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCmluZGV4IDEyODFmMGMuLjY3MzQxOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZC5oCkBAIC0zNCwxMyArMzQsMTMgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBj
bGFzcyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVk
aXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgdXNlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRB
cmVhID0gZmFsc2UpCisgICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21t
YW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhF
bGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZh
bHNlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRv
ZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24pKTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChE
b2N1bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9j
a3F1dG9lSW50b1VucXVvdGVkQXJlYSk7CisgICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZChEb2N1bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFz
dGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENv
bW1hbmQuY3BwCmluZGV4IGJkZDU5YTMuLjU3MmU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0zNywxNiArMzcsMTYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1JbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRU
ZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29t
bWFuZChkb2N1bWVudCkKK0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRl
eHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAg
ICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fc2VsZWN0SW5zZXJ0ZWRUZXh0KHNlbGVjdEluc2Vy
dGVkVGV4dCkKICAgICAsIG1fcmViYWxhbmNlVHlwZShyZWJhbGFuY2VUeXBlKQogewogfQogCi1J
bnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVy
PiBtYXJrZXJTdXBwbGllcikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQor
SW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGll
cj4gbWFya2VyU3VwcGxpZXIsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBv
c2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV90ZXh0KHRl
eHQpCiAgICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChmYWxzZSkKICAgICAsIG1fcmViYWxhbmNl
VHlwZShSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi42NTI4MTYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC00OSwyMCAr
NDksMjEgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21t
YW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsCi0gICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxh
bmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgICAg
ICBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxp
bmdXaGl0ZXNwYWNlcywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2Vy
dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5k
KGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRl
eHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSwgZWRpdGluZ0FjdGlvbikpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJr
ZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1Jl
ZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHN0
YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0
aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0
ZXh0LCBtYXJrZXJTdXBwbGllciwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToK
K3Byb3RlY3RlZDoKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+LCBFZGl0QWN0
aW9uKTsKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4
dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24pOwog
Ci0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKLSAgICBJbnNlcnRUZXh0Q29t
bWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0
aW9uTWFya2VyU3VwcGxpZXI+KTsKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3Rl
cigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25D
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCmluZGV4IGNlODg0NzguLmQ2ZWNmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgTW92ZVNl
bGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpD
b21tYW5kT3B0aW9ucyBvcHRpb25zID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNlbGVjdFJl
cGxhY2VtZW50IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nOwogICAg
IGlmIChtX3NtYXJ0SW5zZXJ0KQogICAgICAgICBvcHRpb25zIHw9IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjpTbWFydFJlcGxhY2U7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBtX2ZyYWdtZW50LCBvcHRpb25z
KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCBXVEY6Om1vdmUobV9mcmFnbWVudCksIG9wdGlvbnMpKTsKIH0K
IAogRWRpdEFjdGlvbiBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCmluZGV4IDJjMDYzYzAuLmM2Mjk3MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQor
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5vZGUt
PmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1f
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKaW5kZXggNGI5MTk3NC4u
MWIyYzQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChu
b2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbikp
OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSk7CisgICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOThhOTlk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJU
ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4
dD4mJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChXVEY6Om1vdmUodGV4dCksIG9mZnNldCwgY291bnQsIEVkaXRB
Y3Rpb25EZWxldGUpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjJjNzIxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kIGZpbmFsIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKHRleHQpLCBvZmZzZXQsIGNvdW50KSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJl
ZlB0cjxUZXh0PiYmLCB1bnNpZ25lZCwgdW5zaWduZWQpOworICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi44MzQ4YzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw2NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIK
KworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRy
PFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVk
aXRpbmdBY3Rpb24pCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2
b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFB
WE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47Cisg
ICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNo
ZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUp
IHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9u
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYVGV4dEVk
aXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBh
c3RlOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBt
X2RlbGV0ZWRUZXh0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNjNiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZp
bmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIGZpbmFsIDogcHVibGljIEluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZz
ZXQsIHRleHQsIGRlbGV0ZWRUZXh0LCBlZGl0aW5nQWN0aW9uKSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmLCB1
bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRpdEFjdGlvbik7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAK
aW5kZXggZmIzODgwYy4uZmQ1NzQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTQ3LDYgKzQ3LDggQEAKICNpbmNsdWRl
ICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgog
I2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpAQCAtMzY4LDE1ICszNzAsMTQgQEAgaW5saW5l
IHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6OmRpZFJlcGxhY2VO
b2RlKE5vZGUqIG5vZGUsIE4KICAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0gbmV3Tm9kZTsK
IH0KIAotUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwg
Q29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQotICAgIDogQ29t
cG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4mJiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBl
ZGl0QWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRBY3Rp
b24pCiAgICAgLCBtX3NlbGVjdFJlcGxhY2VtZW50KG9wdGlvbnMgJiBTZWxlY3RSZXBsYWNlbWVu
dCkKICAgICAsIG1fc21hcnRSZXBsYWNlKG9wdGlvbnMgJiBTbWFydFJlcGxhY2UpCiAgICAgLCBt
X21hdGNoU3R5bGUob3B0aW9ucyAmIE1hdGNoU3R5bGUpCiAgICAgLCBtX2RvY3VtZW50RnJhZ21l
bnQoZnJhZ21lbnQpCiAgICAgLCBtX3ByZXZlbnROZXN0aW5nKG9wdGlvbnMgJiBQcmV2ZW50TmVz
dGluZykKICAgICAsIG1fbW92aW5nUGFyYWdyYXBoKG9wdGlvbnMgJiBNb3ZpbmdQYXJhZ3JhcGgp
Ci0gICAgLCBtX2VkaXRBY3Rpb24oZWRpdEFjdGlvbikKICAgICAsIG1fc2FuaXRpemVGcmFnbWVu
dChvcHRpb25zICYgU2FuaXRpemVGcmFnbWVudCkKICAgICAsIG1fc2hvdWxkTWVyZ2VFbmQoZmFs
c2UpCiAgICAgLCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlKG9wdGlvbnMgJiBJZ25vcmVNYWlsQmxv
Y2txdW90ZSkKQEAgLTE0MjcsMTEgKzE0MjgsNiBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjptZXJnZVRleHROb2Rlc0Fyb3VuZFBvc2l0aW9uKFBvc2l0aW9uJiBwb3NpdGlvbiwgUAog
ICAgIH0KIH0KIAotRWRpdEFjdGlvbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0Fj
dGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWRpdEFjdGlvbjsKLX0KLQogLy8gSWYgdGhl
IHVzZXIgaXMgaW5zZXJ0aW5nIGEgbGlzdCBpbnRvIGFuIGV4aXN0aW5nIGxpc3QsIGluc3RlYWQg
b2YgbmVzdGluZyB0aGUgbGlzdCwKIC8vIHdlIHB1dCB0aGUgbGlzdCBpdGVtcyBpbnRvIHRoZSBl
eGlzdGluZyBsaXN0LgogTm9kZSogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlz
dEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBycExpc3RFbGVtZW50LCBOb2RlKiBpbnNl
cnRpb25CbG9jaywgY29uc3QgUG9zaXRpb24mIGluc2VydFBvcywgSW5zZXJ0ZWROb2RlcyYgaW5z
ZXJ0ZWROb2RlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi45Y2ZkZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC00OCwxNyArNDgsMTYgQEAg
cHVibGljOgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBDb21tYW5kT3B0aW9uczsKIAotICAgIHN0
YXRpYyBSZWY8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25z
IG9wdGlvbnMsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvblBhc3RlKQorICAgIHN0YXRp
YyBSZWY8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBDb21tYW5kT3B0aW9ucyBvcHRp
b25zLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9j
dW1lbnQsIGZyYWdtZW50LCBvcHRpb25zLCBhY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIFdURjo6bW92ZShmcmFn
bWVudCksIG9wdGlvbnMsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+LCBDb21tYW5kT3B0aW9ucywgRWRpdEFjdGlvbik7CisgICAgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQoRG9jdW1lbnQmLCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiwgQ29tbWFuZE9w
dGlvbnMsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2
aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwotICAgIAorCiAgICAgY2xh
c3MgSW5zZXJ0ZWROb2RlcyB7CiAgICAgcHVibGljOgogICAgICAgICB2b2lkIHJlc3BvbmRUb05v
ZGVJbnNlcnRpb24oTm9kZSopOwpAQCAtMTIwLDcgKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IG1fZG9jdW1lbnRGcmFnbWVudDsKICAgICBib29sIG1fcHJl
dmVudE5lc3Rpbmc7CiAgICAgYm9vbCBtX21vdmluZ1BhcmFncmFwaDsKLSAgICBFZGl0QWN0aW9u
IG1fZWRpdEFjdGlvbjsKICAgICBib29sIG1fc2FuaXRpemVGcmFnbWVudDsKICAgICBib29sIG1f
c2hvdWxkTWVyZ2VFbmQ7CiAgICAgYm9vbCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uZjA3NDQ0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0zNzQsNyArMzc0
LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwg
Ym9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRS
dW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCkKIHsKICAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRU
ZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwK
LSAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2Vy
dFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IElu
c2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CisgICAgICAgIG1fY29t
cG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6
UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFu
ZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb25UeXBpbmcpOwogCiAgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogCkBAIC0z
OTUsNyArMzk1LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxl
Y3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7Cisg
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlvblR5cGluZykpOwog
ICAgIHR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZChJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlv
bkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5j
cHAKaW5kZXggN2MyMTM2NS4uMzMyZTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9p
ZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0
PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nl
c3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewog
ICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21t
YW5kSU9TLmNwcAppbmRleCBjMTg4MzM4Li4xMzRiMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcApAQCAtMzgsNyArMzgsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBEaWN0YXRpb25Db21tYW5kSU9TOjpEaWN0YXRpb25D
b21tYW5kSU9TKERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYmIGRp
Y3RhdGlvblBocmFzZXMsIFJldGFpblB0cjxpZD4gbWV0YWRhdGEpCi0gICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50
LCBFZGl0QWN0aW9uRGljdGF0aW9uKQogICAgICwgbV9kaWN0YXRpb25QaHJhc2VzKFdURjo6bW92
ZShkaWN0YXRpb25QaHJhc2VzKSkKICAgICAsIG1fbWV0YWRhdGEoV1RGOjptb3ZlKG1ldGFkYXRh
KSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNv
bW1hbmRJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJ
T1MuaAppbmRleCBiZjkwNzY0Li5hYzVjYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5oCkBAIC00NCw3ICs0NCw2IEBAIHByaXZhdGU6
CiAgICAgRGljdGF0aW9uQ29tbWFuZElPUyhEb2N1bWVudCYsIFZlY3RvcjxWZWN0b3I8U3RyaW5n
Pj4mJiBkaWN0YXRpb25QaHJhc2VzLCBSZXRhaW5QdHI8aWQ+IG1ldGFkYXRhKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBFZGl0QWN0aW9uRGljdGF0aW9u
OyB9CiAKICAgICBWZWN0b3I8VmVjdG9yPFN0cmluZz4+IG1fZGljdGF0aW9uUGhyYXNlczsKICAg
ICBSZXRhaW5QdHI8aWQ+IG1fbWV0YWRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLmZkNDE5OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00Nywx
MyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3Qo
Q0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9p
ZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgp
Cit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0
KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAg
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RD
YWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24u
c3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNl
bGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQo
KS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAh
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi4zNjg0ZTI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2
ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0
VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJU
KGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9
IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1
ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5n
ZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFp
bm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
IVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigp
KSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZp
Y2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZh
YmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5u
ZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUu
ZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5l
clRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JN
KENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAg
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhP
YmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50
Tm90aWZpY2F0aW9uKHRoaXMsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBB
WFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlz
LCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlm
CiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggOTllNmQ1OS4uMjgzZDIz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTUyNCw3ICs1MjQs
NyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKERyYWdEYXRhJiBkcmFn
RGF0YSkKICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6U21hcnRSZXBsYWNlOwogICAgICAgICAgICAgICAgIGlmIChjaG9zZVBsYWluVGV4dCkK
ICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6
TWF0Y2hTdHlsZTsKLSAgICAgICAgICAgICAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIGZyYWdtZW50LCBvcHRpb25z
KSk7CisgICAgICAgICAgICAgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUoKm1fZG9jdW1lbnRVbmRlck1vdXNlLCBXVEY6Om1vdmUoZnJhZ21lbnQpLCBvcHRp
b25zKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDg4NmM3NjUuLjNkOWZlZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMyMzksNyArMzIzOSw4IEBAIHN0YXRpYyB2b2lk
IHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5zZXRT
ZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rp
b24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVVua25vd24gfSk7CisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNp
YmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhV
c2VyVHJpZ2dlcmVkKSwgaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRT
ZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDc3YzA3ZmUuLmQ4ZDI1Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTM0MCw4ICszNDAs
MTAgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICBpZiAoY2FyZXRCcm93c2luZykgewog
ICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShl
bGVtZW50LmdldCgpKTsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24ocG9z
aXRpb24sIHBvc2l0aW9uLCBET1dOU1RSRUFNKTsKLSAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlv
bigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgZnJh
bWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIGlmIChm
cmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgewor
ICAgICAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9
KTsKKyAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dl
cmVkKSwgaW50ZW50KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGVsZW1lbnQtPmZvY3VzKGZh
bHNlLCBkaXJlY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDhlNmI5NmYuLjZhY2MxN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNC0yMyAgRG91ZyBSdXNzZWxs
ICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdl
IG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmlj
YXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Np
c3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBj
aGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0
IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tz
IHRvIHRod2FydCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBS
aWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJv
ZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUg
cmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50
IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3
b3JkIGZpZWxkcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bToKKyAgICAgICAgKHVuZG9OYW1lRm9yRWRpdEFjdGlvbik6CisKIDIwMTUtMDQtMjMgIEFuZHJl
YXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFRoZXJlIHNob3VsZCBvbmx5
IGJlIG9uZSB3YXkgdG8gZ2V0IHRoZSBzeXN0ZW0gbWVtb3J5IHNpemUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggZDIx
Y2RmMC4uZTU5MGQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNTQ2LDYgKzU0Niw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyogdW5kb05hbWVGb3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICAvLyBG
SVhNRTogVGhpcyBpcyBpZGVudGljYWwgdG8gY29kZSBpbiBXZWJLaXQyJ3MgV2ViRWRpdENvbW1h
bmRQcm94eSBjbGFzczsgd291bGQgYmUgbmljZSB0byBzaGFyZSB0aGUgc3RyaW5ncyBpbnN0ZWFk
IG9mIGhhdmluZyB0d28gY29waWVzLgogICAgIHN3aXRjaCAoZWRpdEFjdGlvbikgewogICAgICAg
ICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDogcmV0dXJuIG5pbDsKKyAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uSW5zZXJ0OiByZXR1cm4gbmlsOwogICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRD
b2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBDb2xvciIsICJTZXQgQ29s
b3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2Fz
ZSBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRF
Uk5BTCgiU2V0IEJhY2tncm91bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91bmQgQ29sb3IgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVHVybk9mZktlcm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUdXJuIE9m
ZiBLZXJuaW5nIiwgIlR1cm4gT2ZmIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzMWI1YjFjLi41M2UxNjAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDQtMjMgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBh
cHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9k
dWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBw
cyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIg
Y29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2Vz
IGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5h
bHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2li
aWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90
aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRl
eHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFs
c28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKToKKwogMjAxNS0w
NC0yMiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBXZWJLaXQgc2VydmljZXMgc2hvdWxkIGluaGVyaXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZv
ciBob21lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1h
bmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94
eS5jcHAKaW5kZXggNTRjZTAzYy4uODc4NTU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcApAQCAtNzQsNiArNzQsOCBAQCBTdHJpbmcg
V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0
aW9uKQogICAgIHN3aXRjaCAoZWRpdEFjdGlvbikgewogICAgIGNhc2UgRWRpdEFjdGlvblVuc3Bl
Y2lmaWVkOgogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgY2FzZSBFZGl0QWN0aW9uSW5z
ZXJ0OgorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29s
b3I6CiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IENvbG9yIiwgIlNldCBD
b2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNhc2Ug
RWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvcjoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1NTNkMWIxLi4zYWRhZjNkIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTUtMDQtMjMgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAg
QVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0
eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90
aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRl
eHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1l
bnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmll
bGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9m
IGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5n
ZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBh
biBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8g
Y2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxl
Y3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06Cisg
ICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZpbmdd
KToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNh
dGlvblJlY2VpdmVkOl0pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVt
b3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAg
ICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVj
ZWl2ZWQ6XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorCiAyMDE1LTA0LTIzICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNl
IGxlc3MgbWVtb3J5IHdoZW4gY29tcGlsaW5nIGNvbnRlbnQgZXh0ZW5zaW9ucy4KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLmgKaW5kZXggMTkzODZjZS4uOTA4ZGJkYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
LmgKQEAgLTQyLDYgKzQyLDcgQEAKIC0gKHZvaWQpc2V0UGxhdGZvcm1FbGVtZW50OihpZClwbGF0
Zm9ybUVsZW1lbnQ7CiAtICh2b2lkKXNldENhbGxiYWNrOihKU09iamVjdFJlZiljYWxsYmFjazsK
IC0gKHZvaWQpc3RhcnRPYnNlcnZpbmc7CistICh2b2lkKXN0b3BPYnNlcnZpbmc7CiAKIEBlbmQK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLmYxYzlhZmQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KQEAgLTEwNCw2ICsxMDQsMTEgQEAKICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKF9ub3RpZmljYXRpb25SZWNlaXZlZDopIG5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2Jq
ZWN0Om5pbF07CiB9CiAKKy0gKHZvaWQpc3RvcE9ic2VydmluZworeworICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07Cit9CisKIC0g
KHZvaWQpX25vdGlmaWNhdGlvblJlY2VpdmVkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgogewogICAgIE5TU3RyaW5nICpub3RpZmljYXRpb25OYW1lID0gW1tub3RpZmljYXRpb24gdXNl
ckluZm9dIG9iamVjdEZvcktleTpAIm5vdGlmaWNhdGlvbk5hbWUiXTsKQEAgLTExMiwxNiArMTE3
LDI3IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9
IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcg
KnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsK
KwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25v
dGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlm
aWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFs
Q29udGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZv
SlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5n
dGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZh
bHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAg
ICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmco
W21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7Cisg
ICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBm
b3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBu
YW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29u
dGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlv
bk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlz
dGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3Vt
ZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlm
aWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
Ml07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAg
ICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAg
SlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlm
aWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZp
Y2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1sz
XTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpT
QWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVu
dHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9
IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxi
YWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggNDY3M2Ex
ZC4uMzk3YzYzOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0NDYsNiArMTQ0Niw3IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIC8vIE1h
YyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUgYSBsaXN0ZW5lciB0
aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkhhbmRsZXIp
OwogCisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXTsKICAgICBbbV9u
b3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90aWZpY2F0aW9uSGFuZGxlciA9
IG5pbDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwxOSArMTI1LDMwIEBA
CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3Rp
ZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJ
bmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAg
IFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKFdU
Ujo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsKICAgICBKU0Nv
bnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWlu
RnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9uKEFk
b3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFsdWVS
ZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwg
anNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVB
cmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAg
ICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQs
IFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAgICB1c2VySW5m
b0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBq
c1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVt
ZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25l
IGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFz
RnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25G
dW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVu
dCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlz
dGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2Vy
SW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50
c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0g
dXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlv
bihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9u
Q2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8v
IEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFu
ZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFy
Z3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwogICAgICAgICBhcmd1
bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sy
XSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVu
Y3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5j
dGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCBlZDAyZmI3Li5lMjYwN2UxIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0NzYsNiAr
MTQ3Niw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0
byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVCht
X25vdGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9w
T2JzZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1f
bm90aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251541</attachid>
            <date>2015-04-23 22:58:24 -0700</date>
            <delta_ts>2015-04-24 19:32:38 -0700</delta_ts>
            <desc>Fix windows builds</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>221295</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDljYTdhZTQ4Y2U0MGM1MjQ0ZWUzZmE2ZjMwNjhjYjkzNzAwMmVkMTcKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgV2VkIEFwciA4IDEzOjE0
OjQ4IDIwMTUgLTA3MDAKCiAgICA8cmRhcjovL3Byb2JsZW0vMjAxNjkwNTg+IEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQogICAgCiAgICBBWDogcmljaGVyIHRl
eHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKICAgIAogICAgUmljaGVyIGFjY2Vzc2liaWxpdHkg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBj
aGFuZ2VzLgogICAgCiAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92
ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlv
biBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTQyYWViOC4uMjIwNzJhNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA0LTIzICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBh
bmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNo
IGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4g
d2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hh
bmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3Rpbmcgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZh
bHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNl
cmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby5odG1sOiBBZGRlZC4KKwogMjAxNS0wNC0yMyAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtYnktY2hhcmFjdGVyLTAwNy5odG1sIHNob3VsZCBwYXNzIG9uIE9TIFggMTAuMTAuMy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJl
cGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYTZmODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKyAgCitUaGlz
IHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhIHdoZW4gcmVw
bGFjaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbnB1dCBmaWVsZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsw
XVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRU
eXBlRGVsZXRlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVsxXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJBWFRl
eHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlSW5zZXJ0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsi
QVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiICIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmls
aXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUwZGUzMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2VkaXRpbmcvZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBpZD0iYm9keSI+CisKKyAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJzZWN1
cmV2YWx1ZXRlc3QiPgorCisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ2YWx1ZXRlc3QiPgor
CisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CisgICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0Pgor
CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zIHVzZXIgaW5mbyBkYXRhIHdoZW4gcmVwbGFjaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbnB1
dCBmaWVsZC4iKTsKKworICAgICAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCA9IDE7
CisKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGVsZXRlID0gMTsKKyAgICAgICAgdmFyIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0ID0gQVhUZXh0RWRpdFR5cGVEZWxldGUgKyAxOworCisgICAgICAg
IHZhciB3ZWJBcmVhID0gMDsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIHJl
c3VsdHMgPSBbXTsKKyAgICAgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rp
b24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAg
ICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1ZUNoYW5nZWQiKSB7CisgICAgICAgICAg
ICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOwor
ICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAyKSB7CisKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzFdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVz
XCJdWzFdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNlcnQiKTsKKwor
ICAgICAgICAgICAgICAgICAgICAvLyBQYXNzd29yZCBub3RpZmljYXRpb25zIHdpbGwgYmUgaW5z
ZXJ0IG9ubHkgYW5kIHRoZSB2YWx1ZSBzdHJpbmcgd2lsbCBiZSB3aGl0ZXNwYWNlCisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENo
YW5nZVZhbHVlXCJdIiwgIlwiIFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVk
aXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlSW5zZXJ0Iik7CisKKyAgICAgICAgICAgICAgICAg
ICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0dmFsdWUoKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmFsdWV0ZXN0IikudmFsdWUg
PSAiMSI7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZXRzZWN1cmV2YWx1ZSgpIHsK
KyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWN1cmV2YWx1ZXRlc3QiKS52
YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIwIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworCisgICAgICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICAgICAgd2ViQXJl
YSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLnJvb3RFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsK
KyAgICAgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90aWZpY2F0
aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICAgICAgc2hvdWxkQmUo
ImFkZGVkTm90aWZpY2F0aW9uIiwgInRydWUiKTsKKworICAgICAgICAgICAgc2V0dmFsdWUoKTsK
KworICAgICAgICAgICAgc2V0c2VjdXJldmFsdWUoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
Y2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kZDIyZmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw5NSBAQAorb25lIHR3byB0aHJlZS4gZm91ciBmaXZlIHNpeC4KKworc2V2ZW4g
ZWlnaHQgbmluZS4KKworVGhpcyB0ZXN0cyBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMg
dXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFk
ZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
UHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGlu
ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlz
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5n
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0g
aXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4
XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFu
Z2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTc1
MzdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCkBAIC0wLDAgKzEsMjE3IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgcm9sZT0idGV4dGJveCIg
dGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxlPXRydWU+Cis8cD5vbmUgdHdv
IHRocmVlLiBmb3VyIGZpdmUgc2l4LjwvcD4KKzxwPnNldmVuIGVpZ2h0IG5pbmUuPC9wPgorPC9k
aXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8ZGl2IGlkPSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGlu
Zm8gZGF0YS4iKTsKKworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ID0gMjsKKyAgICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kID0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSArIDE7CisKKyAgICB2YXIgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kID0gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nICsgMTsKKyAgICB2
YXIgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0ID0gQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgKyAxOworCisgICAgdmFyIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyID0gMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgKyAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVdvcmQgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNl
bnRlbmNlID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lICsgMTsKKyAgICB2YXIgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVNlbnRlbmNlICsgMTsKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1
bWVudCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoICsgMjsKKworICAgIHZh
ciBncmFuID0gWyJjaGFyYWN0ZXIiLCAid29yZCIsICJzZW50ZW5jZSIsICJsaW5lIiwgInBhcmFn
cmFwaCIsICJsaW5lYm91bmRhcnkiLCAic2VudGVuY2Vib3VuZGFyeSIsICJwYXJhZ3JhcGhib3Vu
ZGFyeSIsICJkb2N1bWVudGJvdW5kYXJ5Il07CisgICAgdmFyIHdlYkFyZWEgPSAwOworICAgIHZh
ciBjb3VudCA9IDA7CisgICAgdmFyIHJlc3VsdHMgPSBbXTsKKyAgICB2YXIgcmVzdWx0SW5kZXgg
PSAwOworICAgIGZ1bmN0aW9uIG5vdGlmaWNhdGlvbkNhbGxiYWNrKG5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhTZWxlY3RlZFRleHRDaGFu
Z2VkIikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGlmICh1c2VySW5mbykK
KyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAgICAgICAgICAgaWYg
KGNvdW50ID09IGdyYW4ubGVuZ3RoICogNCkgeworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMiKTsK
KworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwi
XSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50
ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAg
cmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmci
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIs
ICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1
bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9
IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUiKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAy
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25M
aXN0ZW5lcigpOworICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh3aW5kb3cuYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFu
Y2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKworICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICB2YXIgYWRk
ZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNh
dGlvbkNhbGxiYWNrKTsKKyAgICAgICAgc2hvdWxkQmUoImFkZGVkTm90aWZpY2F0aW9uIiwgInRy
dWUiKTsKKworICAgICAgICB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRi
b3giKTsKKyAgICAgICAgdGV4dGJveC5mb2N1cygpOworCisgICAgICAgIC8vIFRyaWdnZXIgc2Vs
ZWN0aW9uIGNoYW5nZXMuCisgICAgICAgIHZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwor
ICAgICAgICBzLnNldFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImZvcndhcmQiLCBncmFuW2ld
KTsKKyAgICAgICAgICAgIHMubW9kaWZ5KCJtb3ZlIiwgImJhY2t3YXJkIiwgZ3JhbltpXSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSBpbiBncmFuKSB7CisgICAgICAgICAgICBzLnNl
dFBvc2l0aW9uKHRleHRib3gsIDApOworICAgICAgICAgICAgcy5tb2RpZnkoImV4dGVuZCIsICJm
b3J3YXJkIiwgZ3JhbltpXSk7CisgICAgICAgIH0KKyAgICB9CisKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTNhYWJlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFs
dWUtY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACiswMjM0NTY3
ODkwCitUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRh
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlmaWNhdGlv
biBpcyB0cnVlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlQ3V0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhU
ZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBp
cyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMCIKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0
VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIyMzQ1Njc4OTAiCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0RWRpdFR5cGUiXSBpcyBBWFRleHRFZGl0VHlw
ZVBhc3RlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUi
XSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhUZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlVHlwaW5nCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRDaGFuZ2VWYWx1ZXMiXVswXVsiQVhU
ZXh0Q2hhbmdlVmFsdWUiXSBpcyAiMSIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUt
Y2hhbmdlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zZGFkMzQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCAr
MSw5NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9l
ZGl0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxk
aXYgcm9sZT0idGV4dGJveCIgdGFiaW5kZXg9MCBpZD0idGV4dGJveCIgY29udGVudGVkaXRhYmxl
PXRydWU+MDEyMzQ1Njc4OTA8L2Rpdj4KKworICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMi
PjwvZGl2PgorCisgICAgPHNjcmlwdD4KKworICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4iKTsKKworICAgICAg
ICB2YXIgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCA9IDE7CisKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlRGVsZXRlID0gMTsKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlSW5zZXJ0ID0g
QVhUZXh0RWRpdFR5cGVEZWxldGUgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVUeXBp
bmcgPSBBWFRleHRFZGl0VHlwZUluc2VydCArIDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiA9IEFYVGV4dEVkaXRUeXBlVHlwaW5nICsgMTsKKyAgICAgICAgdmFyIEFYVGV4
dEVkaXRUeXBlQ3V0ID0gQVhUZXh0RWRpdFR5cGVEaWN0YXRpb24gKyAxCisgICAgICAgIHZhciBB
WFRleHRFZGl0VHlwZVBhc3RlID0gQVhUZXh0RWRpdFR5cGVDdXQgKyAxOworCisgICAgICAgIHZh
ciB3ZWJBcmVhID0gMDsKKyAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgdmFyIHJlc3Vs
dHMgPSBbXTsKKyAgICAgICAgdmFyIHJlc3VsdEluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rpb24g
bm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICAg
ICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAiQVhWYWx1ZUNoYW5nZWQiKSB7CisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2godXNlckluZm8pOworICAg
ICAgICAgICAgICAgIGlmIChjb3VudCA9PSA2KSB7CisKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwg
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVDdXQiKTsKKworICAgICAgICAgICAgICAg
ICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwi
MFwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4
dEVkaXRUeXBlUGFzdGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRD
aGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjIzNDU2Nzg5MFwi
Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVk
aXRUeXBlUGFzdGUiKTsKKworICAgICAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAg
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFu
Z2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFu
Z2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZVR5cGlu
ZyIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wi
XVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wi
XVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisKKyAg
ICAgICAgICAgICAgICAgICAgd2ViQXJlYS5yZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHdp
bmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3
ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4
KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3Rp
ZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91
bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICB2YXIgdGV4
dGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0Ym94Iik7CisgICAgICAgICAgICB0
ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRl
eHRib3gsIDApOworICAgICAgICAgICAgZXhlY0V4dGVuZFNlbGVjdGlvblJpZ2h0QnlDaGFyYWN0
ZXJDb21tYW5kKCk7CisgICAgICAgICAgICBjdXRDb21tYW5kKCk7CisgICAgICAgICAgICBleGVj
RXh0ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIHBh
c3RlQ29tbWFuZCgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiMSIpOworICAg
ICAgICAgICAgZGVsZXRlQ29tbWFuZCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM4ZTIwNWEuLmU3
Yzk3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNTEzLDYgKzE1MTMsOCBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcv
UmVuZGVyZWRQb3NpdGlvbi5jcHAKKyAgICBlZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCiAgICAgZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAKICAgICBl
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0
dHJpYnV0ZUNvbW1hbmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNjY2FiZS4uOTNhMzg1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMyBAQAorMjAxNS0wNC0yMyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNz
ZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJ
bnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24g
YW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVj
aCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGlu
IHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNo
YW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2Fy
dCBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNj
ZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUg
Y29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlv
bi4gQWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxk
cy4KKworICAgICAgICBUZXN0czogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVw
bGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAg
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNob3dJbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1
ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cm9vdFdlYkFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6Y29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQp
OiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpz
ZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6c2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyk6CisgICAgICAgIChXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW06CisgICAgICAgICgrW1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uczpdKToKKyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246XSk6CisgICAgICAgIChhcnJh
eVJlbW92aW5nTm9uSlNPTlR5cGVzKToKKyAgICAgICAgKGRpY3Rpb25hcnlSZW1vdmluZ05vbkpT
T05UeXBlcyk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOnVzZXJJbmZvOl0pOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW06CisgICAgICAgICh0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyk6CisgICAg
ICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zOmVuZFBvc2l0aW9uOl0pOgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kTm9kZUNvbW1hbmQ6OkFw
cGVuZE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpk
b0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkp
OgorICAgICAgICAqIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OkFw
cGx5U3R5bGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjph
cHBseUJsb2NrU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRlRWRpdENv
bW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dE5vZGVCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFw
cGVuZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Np
dGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFwaHMpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5U3R5bGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVC
cmVhayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
aW5zZXJ0Tm9kZUF0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlucHV0VGV4dCk6IERlbGV0ZWQuCisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCk6CisgICAgICAgICogZWRpdGluZy9EZWxl
dGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6cHJlc2VydmVzVHlwaW5nU3R5bGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6
aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAqIGVkaXRpbmcv
RWRpdEFjdGlvbi5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdENvbW1hbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRDb21tYW5kOjplZGl0aW5nQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21t
YW5kOjphcHBseUVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kOjp1bmFw
cGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRWRpdENvbW1hbmQ6OlNpbXBs
ZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29t
bWFuZDo6c2V0UGFyZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aGFuZGxlVGV4dEV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0
RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhG
cmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6dW5hcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpt
YXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnRyYW5zcG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlv
bkFmdGVyQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZUluc2Vy
dEZyYWdtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3ZlVG8pOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGlu
Z0FwcGVhcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFs
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQm91bmRhcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnRleHRTZWxlY3Rpb25JbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246Om1vZGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2VsZWN0QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjp3
b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6c2VsZWN0RnJhbWVFbGVtZW50SW5QYXJlbnRJZkZ1
bGx5U2VsZWN0ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246
OnNlbGVjdGlvbkF0V29yZFN0YXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6c2VsZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydE5vZGVCZWZv
cmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZCk6CisgICAgICAgICog
ZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAq
IGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFy
a2VyU3VwcGxpZXIpOgorICAgICAgICAqIGVkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6CisgICAgICAg
ICogZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmguCisgICAgICAgICog
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZSk6
CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmguCisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6Okluc2VydGVkTm9kZXM6OmRpZFJlcGxhY2VOb2RlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRBc0xpc3RJdGVtcyk6IERl
bGV0ZWQuCisgICAgICAgICogZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0Nv
bW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAg
ICogZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaWN0YXRpb25Db21tYW5kSU9TOjpEaWN0YXRpb25Db21tYW5kSU9TKToKKyAgICAgICAgKiBl
ZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmg6CisgICAgICAgICogZWRpdGluZy9tYWMv
RnJhbWVTZWxlY3Rpb25NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSk6CisgICAgICAgICogaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUpOgorICAgICAgICAqIHBhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmNv
bmNsdWRlRWRpdERyYWcpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbik6CisgICAgICAgICogcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVy
OjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorCiAyMDE1LTA0LTIzICBSb2dlciBGb25n
ICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gTWlzc2VkIGEg
YnV0dG9uIGluIHIxODI5MDAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvagppbmRleCBhYzgxNTM4Li41YzU1YmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Nzg3LDYgKzE0Nzg3LDM0
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRp
dGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJv
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fp
cm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9u
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1NTUsNiArMTk1ODMsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJD
b250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlc
QWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxh
Y2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEFkanVzdFZp
ZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTEwNyw2ICsyMTEzNiw4IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRlcmVk
UG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0Tm9k
ZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA5NWMzMWU4Li5lNzZjMWFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCkBAIC0zNTI4LDYgKzM1MjgsMTIgQEAKICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRlcj5l
ZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+CisgICAg
ICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQu
Y3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29t
bWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+CkBAIC03NjcxLDYgKzc2NzcsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNj
ZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxh
Y2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiPgorICAgICAgICA8RmlsdGVy
PmFjY2Vzc2liaWxpdHk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
V2luLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5XHdpbjwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtMTA2ODAsNiArMTA2ODksMTIgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGlu
ZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0
ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4KKyAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIj4K
ICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIz
N2FjZWIuLmY2NTVjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNTAsNiArMzI1MCw3IEBACiAJCTkwMDE3NzQxMTJFMDM0
NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIgLyog
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MDEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYxQyAv
KiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlGODI5
MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAwQzdF
RTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDVCMjREMDk4RjFC
NkIwMEMyODg1NSAvKiBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTYsNiArNjM5Nywx
MCBAQAogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUzNDI0
NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZCMkE4
MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRmb3Jt
TG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJRjU1
MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERB
MzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCAq
LzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlGNTVC
M0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAwM0VG
MjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklu
cHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsgfTsK
QEAgLTEwNTAxLDYgKzEwNTA2LDcgQEAKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RTEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxQzlG
MkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUdyb3VwLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQwNDIsNiArMTQwNDgsMTAgQEAKIAkJRjUyQUQ1RTMxNTM0MjQ1
RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZv
cm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Mb2Nh
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAwMEVG
N0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJ
bnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZVRl
eHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3QTEy
NTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjMsNiArMTU2NzMsNyBAQAogCQkJ
CTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCAqLywK
IAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8sCiAJ
CQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKKwkJCQk5
MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0xNzc5Niw2ICsxNzgwNywxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2RTU4
MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlCMzJD
REE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5QjMy
Q0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1NTI4
REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5j
cHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8qIFJl
cGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywKIAkJ
CQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQu
Y3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhT
cGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzczMSw2ICsyMzc0Niw3IEBACiAJCQkJNkM1
NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1MUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyogQXBw
bGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAwMURC
Nzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTY1Niw2
ICsyNTY3Miw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgwMDc2
Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcwQThE
MTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3
NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmggaW4g
SGVhZGVycyAqLywKQEAgLTI2NzEwLDYgKzI2NzI3LDcgQEAKIAkJCQk3QzRDOTZERDFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0
MjgxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTY5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MUM5RjJGOTFBRTNCRUIwMDA5NUI2
MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQzFE
NDI5MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQyQTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNkQwRDAw
QkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmggaW4gSGVhZGVycyAq
LywKQEAgLTI4NDY4LDYgKzI4NDg2LDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3QTEg
LyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYxMkQw
MDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1ODI1
NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTkxNSw2ICsyOTkzNCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8qIFNR
TFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2RTU5
MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDc2
NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5MDAx
RTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDN0ZB
NjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
aW5kZXggYTAwYjE1Yy4uODY0ZTE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5MCw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAor
Ly8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgcGFzc3dvcmQgZmllbGRzIG9y
IGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMgYXQgYSA0MGh6IGludGVydmFs
IHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQorc3RhdGljIGRvdWJsZSBBY2Nl
c3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFsID0gMC4wMjU7
CisKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhDb21wdXRlZE9iamVjdEF0dHJpYnV0
ZUNhY2hlOjpnZXRJZ25vcmVkKEFYSUQgaWQpIGNvbnN0CiB7CiAgICAgSGFzaE1hcDxBWElELCBD
YWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1faWRNYXBwaW5n
LmZpbmQoaWQpOwpAQCAtMTI5LDYgKzEzMiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0RW5o
YW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENhY2hl
OjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQoZG9j
dW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2Fj
aGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlmaWNh
dGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTcwNSw3ICs3MDksNyBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBSZWY8RG9jdW1lbnQ+IHBy
b3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7CiAgICAgbV9ub3RpZmljYXRpb25Qb3N0
VGltZXIuc3RvcCgpOwogICAgIAotICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRpb25z
IGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlv
bnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyBJbiB0ZXN0
cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1
ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQg
YmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0
IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgogICAgIGF1dG8g
bm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlvbnNUb1Bvc3QpOwogICAgIApA
QCAtNzQyLDYgKzc0NiwyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9iamVj
dCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNzd29y
ZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiB0ZXN0cywgcG9zdGlu
ZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90
aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IK
KyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQu
IEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZpY2F0
aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAgICBm
b3IgKGNvbnN0IGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCks
IEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgor
fQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVj
dCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0
VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY4LDIyMyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVu
Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNo
ZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRl
eHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBO
REVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBj
YXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRhdGFMb2coIlVua25v
d24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
OgorICAgICAgICBkYXRhTG9nKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBkYXRhTG9nKCJNb3Zl
OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2coIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25v
d24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVs
ZXRlOgorICAgICAgICAgICAgZGF0YUxvZygiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIGRhdGFMb2co
Ikluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVEaWN0YXRpb246CisgICAgICAgICAgICBkYXRhTG9nKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAg
ICAgICAgICAgZGF0YUxvZygiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRhdGFMb2coIkN1dCIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgICAgIGRhdGFMb2coIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6
CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgZGF0YUxv
ZygiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRhTG9nKCJCZWdpbm5p
bmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgZGF0YUxvZygiRW5kOjoiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgor
ICAgICAgICAgICAgZGF0YUxvZygiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIGRh
dGFMb2coIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIkRp
c2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAg
ICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBkYXRhTG9n
KCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIGRhdGFM
b2coIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgZGF0YUxv
ZygiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiTGlu
ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlNlbnRl
bmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlBh
cmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiUGFn
ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkRvY3Vt
ZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbCIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBp
ZiAoaW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAgZGF0YUxvZygiLVN5bmMiKTsKKyAg
ICBkYXRhTG9nKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4
dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAg
bV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCitzdGF0aWMgYm9vbCBpc1Bhc3N3
b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QpCit7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQo
KSB8fCBvYmplY3QtPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
VW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCiAgICAg
c3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAotICAgIC8vIERlbGVnYXRl
IG9uIHRoZSByaWdodCBwbGF0Zm9ybQotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdl
dE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
b2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAg
aWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9i
amVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNh
dGlvbihvYmplY3QsIGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNh
dGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5n
ZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOwor
ICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0
aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworfQorCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0
RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VS
VCh0eXBlICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1
dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iamVj
dCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24o
b2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5v
YnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAg
ICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBk
ZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGlu
c2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAg
IEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VS
VChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlw
ZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIGRlbGV0aW9uVHlwZSwg
ZGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vs
c2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENo
YW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCku
ZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5z
ZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdP
ZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCitib29sIEFYT2JqZWN0Q2FjaGU6
OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNz
d29yZEZpZWxkKG9iamVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3Qo
KTsKKyAgICBpZiAoIW9ic2VydmFibGVPYmplY3QpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIC8vIHJldHVybiB0cnVlIGV2ZW4gdGhvdWdoIHRoZSBlbnF1ZXVlIGRp
ZG4ndCBoYXBwZW4gYmVjYXVzZSB0aGlzIGlzIGEgcGFzc3dvcmQgZmllbGQgYW5kIGNhbGxlciBz
aG91bGRuJ3QgcG9zdCBhIG5vdGlmaWNhdGlvbgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmNvbnRhaW5zKG9ic2Vy
dmFibGVPYmplY3QpKSB7CisgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmFw
cGVuZChvYnNlcnZhYmxlT2JqZWN0KTsKKyAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdChBY2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5n
ZU5vdGlmaWNhdGlvbkludGVydmFsKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
dm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFtZSog
ZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMwOSwxNCBA
QCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCit7
CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmplY3Qo
KTsKKyAgICBpZiAoIXJvb3RPYmplY3QgfHwgIXJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0eVNj
cm9sbFZpZXcoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGRvd25jYXN0
PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgpOwor
fQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIoQVhP
YmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpAQCAtMTA5Niw2ICsx
MzI5LDI2IEBAIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjp+QVhBdHRyaWJ1dGVDYWNoZUVuYWJs
ZXIoKQogICAgIGlmIChtX2NhY2hlKQogICAgICAgICBtX2NhY2hlLT5zdG9wQ2FjaGluZ0NvbXB1
dGVkT2JqZWN0QXR0cmlidXRlcygpOwogfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQorQVhUZXh0
Q2hhbmdlIEFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlw
ZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVD
dXQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4
dERlbGV0ZWQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7
CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7Cit9
CisjZW5kaWYKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li4zMGE3YTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgsIDIw
MDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZpbmUg
QVhPYmplY3RDYWNoZV9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIgog
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2lu
Y2x1ZGUgPGxpbWl0cy5oPgpAQCAtNjcsNiArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFw
PEFYSUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz4gbV9pZE1hcHBpbmc7CiB9OwogCisjaWYg
IVBMQVRGT1JNKENPQ09BKQorZW51bSBBWFRleHRDaGFuZ2UgeyBBWFRleHRJbnNlcnRlZCwgQVhU
ZXh0RGVsZXRlZCB9OworI2VuZGlmCisKIGVudW0gUG9zdFRhcmdldCB7IFRhcmdldEVsZW1lbnQs
IFRhcmdldE9ic2VydmFibGVQYXJlbnQgfTsKIAogZW51bSBQb3N0VHlwZSB7IFBvc3RTeW5jaHJv
bm91c2x5LCBQb3N0QXN5bmNocm9ub3VzbHkgfTsKQEAgLTE4OSwxMiArMTk0LDE1IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwog
ICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQq
LCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0g
UG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAg
QVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAgfTsKKyNpZm5kZWYg
TkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0
ZUNoYW5nZUludGVudCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5v
ZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAg
dm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlv
blR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlv
blR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBlbnVt
IEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxMywxMiAr
MjIxLDI0IEBAIHB1YmxpYzoKICAgICBBWENvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUqIGNv
bXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUoKSB7IHJldHVybiBtX2NvbXB1dGVkT2JqZWN0QXR0
cmlidXRlQ2FjaGUuZ2V0KCk7IH0KIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jdW1lbnQ7IH0KLSAgICAKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0
aWMgdm9pZCBzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMoYm9vbCB2YWx1ZSk7
CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBwbGF0Zm9y
bUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2Rl
KiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKKyAgICB2
b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworI2Vs
c2UKKyAgICBzdGF0aWMgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRF
ZGl0VHlwZSk7CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9pZCB0ZXh0
Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5nZWQoRWxl
bWVudCopOwpAQCAtMjI5LDYgKzI0OSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9kZUlu
VXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9CiAK
IHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKyAgICAK
ICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nl
c3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0Kiwg
QVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzI2NiwxMSBAQCBwcml2YXRl
OgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBh
aXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZp
Y2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisK
KyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZlY3RvcjxS
ZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0
OworICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAgICAg
dm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25D
cmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwpA
QCAtMjUxLDYgKzI3OCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgCiAg
ICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIGJvb2wgZW5xdWV1
ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCopOwor
CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogfTsK
IAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4ICszMzksOSBAQCBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyop
IHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1p
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9Ci1pbmxpbmUgdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwg
UG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlv
bihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUpIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KQEAgLTMyMCw2ICszNTIsMTQg
QEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKE5vZGUqKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShXaWRnZXQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCopIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSopIHsg
fQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9i
amVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQoraW5saW5lIEFY
VGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRp
dFR5cGUpIHsgcmV0dXJuIEFYVGV4dEluc2VydGVkOyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRpZgog
I2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45NWMyNjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBWFRleHRTdGF0ZUNo
YW5nZUludGVudF9oCisjZGVmaW5lIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworICAgIAorZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAgIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRp
dCwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorfTsKKworZW51bSBBWFRleHRFZGl0VHlwZSB7
CisgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCAv
LyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdlbmVy
aWMgdGV4dCBpbnNlcnQKKyAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZpYSB0
eXBpbmcKKyAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0YXRp
b24KKyAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICBBWFRleHRF
ZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKK307CisKK2VudW0gQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAorICAg
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25FbmQsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisgICAg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25EaXNjb250aWd1b3VzCit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IHsK
KyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlX
b3JkLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICBBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
UGFyYWdyYXBoLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50LAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Ygc2Vs
ZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGluZyBz
ZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3NlcyB0
aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5IG5v
dGlmaWNhdGlvbi4KK307CisKK3N0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHk7Cit9OworCitzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgewor
ICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAgIHVuaW9uIHsKKyAgICAgICAgQVhU
ZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdlOwor
ICAgIH07CisgICAgYm9vbCBpc1N5bmNocm9uaXppbmcgeyBmYWxzZSB9OworCisgICAgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0U2Vs
ZWN0aW9uKCkpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbihzZWxl
Y3Rpb24pCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRFZGl0
VHlwZSBjaGFuZ2UpCisgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KQor
ICAgICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBpc1N5bmNocm9uaXppbmcp
CisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbigpCisgICAgICAgICwg
aXNTeW5jaHJvbml6aW5nKGlzU3luY2hyb25pemluZykKKyAgICB7CisgICAgICAgIEFTU0VSVCh0
eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAgIH0KK307CisKK30KKworI2Vu
ZGlmIC8vIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggZDhk
MjZkZS4uNDM4ZTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsMjcgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAgICBy
ZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRhaW5p
bmdQYXNzd29yZEZpZWxkKCkKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAgICAg
ICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJldHVy
biB0aGlzOworICAgIH0KKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0
KCk7CisgICAgaWYgKCFlbGVtZW50IHx8ICFpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBheE9iamVjdENhY2hlKCkpCisgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUoZWxl
bWVudCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+
bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLmE4MmJkODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgK
QEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2wo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29yZEZp
ZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29s
IGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTbGlk
ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmNiMzM4MDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMjY0Niw0ICsyNjQ2LDE3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6c2V0
UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQogI2VuZGlmCiAKK2Jv
b2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25z
dAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkgIT0g
VW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEVsZW1lbnQqIGVsZW1l
bnQgPSBub2RlLT5zaGFkb3dIb3N0KCk7CisgICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1lbnQ+
KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1Bhc3N3
b3JkRmllbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2ZjJh
Li44MTZjMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJv
b2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxkKCkg
eyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9s
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVs
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7
IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
aW5kZXggZTlkMmE1Mi4uNTBmZGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDkxLDE0
ICsxNDkxLDE3IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNl
bGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewogICAg
IGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxl
Y3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYg
dGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIpLnRl
eHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0aW9u
UmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7Ci0g
ICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9uSXNP
ZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsgcmFu
Z2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNUUkVB
TSkpOworICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJh
bmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgUG9zaXRpb24o
bm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBu
ZXdJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSk7CisgICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgbmV3SW50ZW50KTsK
IH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgpIGNvbnN0CkBAIC0xOTYz
LDEzICsxOTY2LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0
ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7CiAgICAgaWYgKHJhbmdl
LnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRvIHVz
ZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24KLSAg
ICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChyYW5nZS5zdGFydCA9PSBy
YW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RD
YWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1
ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhyYW5n
ZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBWaXNp
YmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3RhcnQs
IHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2Vs
ZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYgKzQzLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7CiAgICAg
dmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2JqZWN0
Q2FjaGUqKSBvdmVycmlkZTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmpl
Y3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Nyb2xs
VmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhpc3Rz
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJl
YU9iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmlyc3RD
aGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQogICAgIEFj
Y2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNw
cAppbmRleCA1ODUyYTBmLi5hZTI1NjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtMjY4LDEwICsyNjgsMTAg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamUKICAgICAvLyBTZWxlY3QgdGhlIHJpZ2h0IHNpZ25h
bCB0byBiZSBlbWl0dGVkCiAgICAgQ1N0cmluZyBkZXRhaWw7CiAgICAgc3dpdGNoICh0ZXh0Q2hh
bmdlKSB7Ci0gICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDoKKyAgICBjYXNl
IEFYVGV4dEluc2VydGVkOgogICAgICAgICBkZXRhaWwgPSAidGV4dC1pbnNlcnQiOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ6CisgICAgY2Fz
ZSBBWFRleHREZWxldGVkOgogICAgICAgICBkZXRhaWwgPSAidGV4dC1yZW1vdmUiOwogICAgICAg
ICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1t
CkBAIC05NSw4ICs5NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmotPndy
YXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmlu
Z107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1O
b3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RD
YWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bQppbmRleCBiMzAwZTc3Li5iMGE1NTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhM
aXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRT
dGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdl
VHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0
YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0
VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlw
ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVl
cyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIK
KyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFu
Z2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisj
aWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRl
CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRl
IEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0
cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRp
b25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBh
cmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJn
ZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIEFY
VmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKwogLy8gVGhlIHNpbXBsZSBDb2Nv
YSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNjAsNiArMTA3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNo
V3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRXcmFwcGVyKHdy
YXBwZXIuZ2V0KCkpOwogfQogCitzdGF0aWMgQk9PTCBheFNob3VsZFJlcG9zdE5vdGlmaWNhdGlv
bnNGb3JUZXN0cyA9IGZhbHNlOworCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVwb3N0
Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIEFYUG9zdE5v
dGlmaWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24s
IGlkIHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1w
bGlmeSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBz
aW1wbGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVy
ZSB0byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdl
ZW4gV2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNr
CisgICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkK
KyAgICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNh
dGlvbiB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRp
b24gbm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMTEsMTMxIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigp
IGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53
cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8g
a25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkg
YWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAg
QVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmlj
YXRpb24sIG5pbCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24pCiB7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVh
KCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldID0gQFlFUzsKKyAgICBp
ZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoaW50
ZW50LnR5cGUpOworICAgICAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgICAgIGNhc2Ug
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZToKKyAgICAgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgICAgICB1c2VySW5mb1tOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXSA9IEAoaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24pOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
bikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlv
dXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAg
ICAgICAgICAgICAgdXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XSA9IEAoaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRp
Z3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAg
ICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAg
ICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJS
YW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3Np
dGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAgICAgICAgICAgIHVzZXJJbmZvW05TQWNj
ZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXSA9IHRleHRNYXJrZXJS
YW5nZTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQor
ICAgICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFw
cGVyOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYSA9IHJvb3RXZWJBcmVhKCk7
CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHdlYkFyZWEtPndyYXBwZXIoKSwg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmplY3QtPndyYXBwZXIoKSwg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8p
OworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4
dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3Qs
IEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICop
c3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAo
IWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpj
aGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07
CisgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZV0gPSBAKHR5cGUpOworICAg
IGlmIChsZW5ndGggPiBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBj
aGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoXSA9IEAobGVuZ3RoKTsK
KyAgICAgICAgdGV4dCA9IFt0ZXh0IHN1YnN0cmluZ1RvSW5kZXg6QVhWYWx1ZUNoYW5nZVRydW5j
YXRpb25MZW5ndGhdOworICAgIH0KKyAgICBjaGFuZ2VbTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5n
ZVZhbHVlXSA9IHRleHQ7CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAg
IGlmIChpZCB0ZXh0TWFya2VyID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNp
YmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgY2hhbmdlW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyXSA9IHRleHRNYXJrZXI7CisgICAgfQorICAgIHJl
dHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9i
amVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOU011
dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTozXTsKKyAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3Rh
dGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBp
ZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5
KG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pKQorICAgICAgICB1c2VySW5mb1tOU0FjY2Vz
c2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXSA9IEBbY2hhbmdlXTsKKworICAgIGlmIChpZCB3cmFw
cGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiB3ZWJBcmVhID0gcm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNl
ckluZm8od2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3Rp
ZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
b2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlv
biwgdXNlckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKK30KKwordm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghb2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAg
aWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkg
KnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5
OjRdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXld
ID0gQChBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0KTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpj
aGFuZ2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eToyXTsKKyAg
ICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFuZ2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9u
YXJ5KG9iamVjdCwgZGVsZXRpb25UeXBlLCBkZWxldGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAg
ICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBpZiAoTlNEaWN0aW9uYXJ5ICpjaGFu
Z2UgPSB0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KG9iamVjdCwgaW5zZXJ0aW9uVHlw
ZSwgaW5zZXJ0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpj
aGFuZ2VdOworICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXNdID0g
Y2hhbmdlczsKKyAgICBbY2hhbmdlcyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0g
b2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJB
cmVhID0gcm9vdFdlYkFyZWEoKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
d2ViQXJlYS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRp
b24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0
LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNl
ckluZm8pOworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hl
OjpmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIGF4RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4uYjkzNDE4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU2LDggKzU2LDkgQEAg
Y2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogLSAoTlNTdHJpbmcgKilhcmlhTGFuZG1hcmtSb2xlRGVz
Y3JpcHRpb247CiAKIC0gKGlkKWF0dGFjaG1lbnRWaWV3OwotLy8gVXNlZCB0byBpbmZvcm0gYW4g
ZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgRFJU
LgorLy8gVXNlZCB0byBpbmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBv
c3RlZCBmb3IgaXQuIFVzZWQgYnkgdGVzdHMuCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZTsKKy0gKHZvaWQpYWNjZXNz
aWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVz
ZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbzsKIAogLSAoQ0dQYXRoUmVmKWNvbnZlcnRQ
YXRoVG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6UGF0aCAmKXBhdGg7CiAtIChDR1BvaW50KWNvbnZl
cnRQb2ludFRvU2NyZWVuU3BhY2U6KFdlYkNvcmU6OkZsb2F0UG9pbnQgJilwb2ludDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQppbmRleCA1ZGRmYzNhLi43N2UzOTQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0zODMsMTMg
KzM4Myw2OSBAQCBzdGF0aWMgQk9PTCBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uczsKICsgKHZvaWQpYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6
KEJPT0wpcmVwb3N0CiB7CiAgICAgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlv
bnMgPSByZXBvc3Q7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIEFYT2JqZWN0Q2FjaGU6OnNldFNo
b3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhyZXBvc3QpOworI2VuZGlmCiB9CiAKIC0g
KHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmlj
YXRpb25OYW1lCiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRp
b25zKQorICAgICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlm
aWNhdGlvbk5hbWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGljIE5TQXJyYXkgKmFycmF5UmVt
b3ZpbmdOb25KU09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7CisgICAgQVNTRVJUKFthcnJheSBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5TTXV0YWJsZUFycmF5ICptdXRh
YmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZvciAoTlNVSW50ZWdlciBpID0g
MDsgaSA8IFttdXRhYmxlQXJyYXkgY291bnRdOykgeworICAgICAgICBpZCB2YWx1ZSA9IG11dGFi
bGVBcnJheVtpXTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25h
cnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5k
ZXg6aSB3aXRoT2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOwor
ICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQor
ICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppIHdpdGhPYmpl
Y3Q6YXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNlIGlmICgh
KFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRP
ZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkgeworICAgICAgICAgICAgW211dGFibGVBcnJheSBy
ZW1vdmVPYmplY3RBdEluZGV4OmldOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
KyAgICAgICAgaSsrOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVBcnJheSBhdXRvcmVsZWFz
ZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05U
eXBlcyhOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAgQVNTRVJUKFtkaWN0aW9uYXJ5
IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAgICBOU011dGFibGVEaWN0
aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11dGFibGVDb3B5XTsKKyAg
ICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgeworICAgICAgICBpZCB2YWx1ZSA9
IGRpY3Rpb25hcnlba2V5XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0Rp
Y3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIG11dGFibGVEaWN0aW9uYXJ5W2tleV0gPSBk
aWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOworICAgICAgICBlbHNlIGlmIChb
dmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICAgICAgbXV0YWJs
ZURpY3Rpb25hcnlba2V5XSA9IGFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpOworICAg
ICAgICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8
IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAgIFtt
dXRhYmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAgICB9CisgICAgcmV0
dXJuIFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNz
aWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVz
ZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5
U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJ
bmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNh
dGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5v
dGlmaWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOworICAgICAgICBBU1NF
UlQobm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsK
KyAgICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0
YSA9IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpkaWN0aW9uYXJ5UmVt
b3ZpbmdOb25KU09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldyaXRpbmdPcHRpb25z
KTAgZXJyb3I6bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEpIHsKKyAgICAgICAg
ICAgICAgICBOU1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0
V2l0aERhdGE6dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKKyAg
ICAgICAgICAgICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAgICAgICAgICAgIGlu
Zm8gPSBAe0Aibm90aWZpY2F0aW9uTmFtZSIgOiBub3RpZmljYXRpb25OYW1lLCBAInVzZXJJbmZv
IiA6IHVzZXJJbmZvU3RyaW5nfTsKKyAgICAgICAgICAgICAgICBbdXNlckluZm9TdHJpbmcgcmVs
ZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbmZvKQorICAg
ICAgICAgICAgaW5mbyA9IEB7QCJub3RpZmljYXRpb25OYW1lIiA6IG5vdGlmaWNhdGlvbk5hbWV9
OworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3Rp
ZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOmlu
Zm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5k
ZXggMzhjNWNkMC4uMWYwZWNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4
dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQ
b3NpdGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uJillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRp
b246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAog
CiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBmYWNkMzNiLi44MjExMDFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTEzNiwxNCArMTEzNiwxNCBA
QCBzdGF0aWMgTlNTdHJpbmcqIG5zU3RyaW5nRm9yUmVwbGFjZWROb2RlKE5vZGUqIHJlcGxhY2Vk
Tm9kZSkKICAgICByZXR1cm4gW2F0dHJTdHJpbmcgYXV0b3JlbGVhc2VdOwogfQogCi1zdGF0aWMg
aWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhPYmplY3RDYWNoZSAqY2Fj
aGUsIFZpc2libGVQb3NpdGlvbiBzdGFydFBvc2l0aW9uLCBWaXNpYmxlUG9zaXRpb24gZW5kUG9z
aXRpb24pCitzdGF0aWMgaWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhP
YmplY3RDYWNoZSAqY2FjaGUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRQb3NpdGlvbikKIHsKICAgICBpZCBzdGFydFRleHRN
YXJrZXIgPSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBzdGFydFBvc2l0aW9u
KTsKICAgICBpZCBlbmRUZXh0TWFya2VyID0gdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbihj
YWNoZSwgZW5kUG9zaXRpb24pOwogICAgIHJldHVybiB0ZXh0TWFya2VyUmFuZ2VGcm9tTWFya2Vy
cyhzdGFydFRleHRNYXJrZXIsIGVuZFRleHRNYXJrZXIpOwogfQogCi0tIChpZCl0ZXh0TWFya2Vy
UmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooVmlzaWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24g
ZW5kUG9zaXRpb246KFZpc2libGVQb3NpdGlvbillbmRQb3NpdGlvbgorLSAoaWQpdGV4dE1hcmtl
clJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpc3RhcnRQ
b3NpdGlvbiBlbmRQb3NpdGlvbjooY29uc3QgVmlzaWJsZVBvc2l0aW9uJillbmRQb3NpdGlvbgog
ewogICAgIHJldHVybiB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhtX29iamVj
dC0+YXhPYmplY3RDYWNoZSgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIu
LmNlNzRmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQu
Y3BwCkBAIC0zMCwxMiArMzAsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
KyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1BcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKLSAgICA6
IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQoKSkKK0FwcGVuZE5vZGVDb21tYW5k
OjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFz
c1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1w
bGVFZGl0Q29tbWFuZChwYXJlbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBt
X3BhcmVudChwYXJlbnQpCiAgICAgLCBtX25vZGUobm9kZSkKIHsKQEAgLTQ2LDE1ICs0NywyMyBA
QCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFi
bGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNl
bmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsK
LSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyB0ZXh0ID0gbm9kZS0+
bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNv
bW1hbmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYgKHRleHQgPT0gIlxuIikK
ICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAg
IGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Pihub2Rl
KSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRp
bmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7
CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDE4
ICs3MywxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFy
ZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAg
aWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRB
WFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2Rl
Q29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0
eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlm
eSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdl
ZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERl
bGV0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5n
ZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VY
Q0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgK
aW5kZXggZDY0YjA0ZS4uZjc4Mjk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlKQorICAgIHN0YXRp
YyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChw
YXJlbnQsIG5vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwZW5kTm9kZUNv
bW1hbmQocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQ
YXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRh
aW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiwgRWRpdEFjdGlvbik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBw
bHkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAKaW5kZXggN2M0MThjMi4uY2FiODgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEyMyw5ICsxMjMsOCBAQCBSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGNyZWF0ZVN0eWxlU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogfQogCiBB
cHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9w
ZXJ0eUxldmVsIHByb3BlcnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1
bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9u
KQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVk
aXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlMZXZlbCkKICAgICAs
IG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBt
X2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAtMTM2LDkgKzEzNSw4
IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5CiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBs
eVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5
bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uLCBFUHJvcGVydHlMZXZlbCBwcm9wZXJ0eUxldmVsKQotICAgIDogQ29t
cG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAg
ICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVs
KHByb3BlcnR5TGV2ZWwpCiAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAgICwgbV9lbmQoZW5kKQpA
QCAtMTQ5LDkgKzE0Nyw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5CiB9CiAKIEFwcGx5U3R5
bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQs
IGJvb2wgcmVtb3ZlT25seSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQotICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSkKKyAgICA6IENvbXBvc2l0ZUVkaXRD
b21tYW5kKGVsZW1lbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxl
KEVkaXRpbmdTdHlsZTo6Y3JlYXRlKCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0Fj
dGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChQcm9wZXJ0eURlZmF1bHQpCiAgICAgLCBtX3N0
YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQogICAgICwgbV9lbmQo
ZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTE2Myw5ICsxNjAsOCBAQCBB
cHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoUGFzc1JlZlB0cjxFbGVtZW50PiBl
bGVtZW50LCBib29sIHJlbW92ZU9ubAogfQogCiBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHls
ZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBJ
c0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9uIGlzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVu
Y3Rpb24sIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21t
YW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRp
bmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0gICAgLCBtX2VkaXRpbmdB
Y3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChQcm9wZXJ0eURlZmF1
bHQpCiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgp
KQogICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTIy
NiwxMSArMjIyLDYgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgfQog
fQogCi1FZGl0QWN0aW9uIEFwcGx5U3R5bGVDb21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9lZGl0aW5nQWN0aW9uOwotfQotCiB2b2lkIEFwcGx5U3R5bGVDb21t
YW5kOjphcHBseUJsb2NrU3R5bGUoRWRpdGluZ1N0eWxlICpzdHlsZSkKIHsKICAgICAvLyB1cGRh
dGUgZG9jdW1lbnQgbGF5b3V0IG9uY2UgYmVmb3JlIHJlbW92aW5nIHN0eWxlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCmluZGV4IGU5OWUzNmEuLjlkYmU4NzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKQEAgLTcyLDcg
KzcyLDYgQEAgcHJpdmF0ZToKICAgICBBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYsIGNvbnN0
IEVkaXRpbmdTdHlsZSosIGJvb2wgKCppc0lubGluZUVsZW1lbnRUb1JlbW92ZSkoY29uc3QgRWxl
bWVudCopLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIC8vIHN0eWxlLXJlbW92YWwgaGVscGVycwogICAgIGJvb2wgaXNTdHlsZWRJbmxp
bmVFbGVtZW50VG9SZW1vdmUoRWxlbWVudCopIGNvbnN0OwpAQCAtMTIyLDcgKzEyMSw2IEBAIHBy
aXZhdGU6CiAgICAgUG9zaXRpb24gZW5kUG9zaXRpb24oKTsKIAogICAgIFJlZlB0cjxFZGl0aW5n
U3R5bGU+IG1fc3R5bGU7Ci0gICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb247CiAgICAgRVBy
b3BlcnR5TGV2ZWwgbV9wcm9wZXJ0eUxldmVsOwogICAgIFBvc2l0aW9uIG1fc3RhcnQ7CiAgICAg
UG9zaXRpb24gbV9lbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLmI1NDFlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC01OCw2ICs1OCw4IEBACiAj
aW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2lu
Y2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNp
bmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50
UXVldWUuaCIKQEAgLTE2MiwxMyArMTY0LDMxIEBAIHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlv
bjo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAK
K0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSgp
IGNvbnN0Cit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAgICBjYXNlIEVkaXRB
Y3Rpb25DdXQ6CisgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgorICAgICAgICByZXR1cm4gQVhU
ZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgorICAgIGNh
c2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICBjYXNl
IEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0ZTsK
KyAgICAvLyBJbmNsdWRlIGRlZmF1bHQgY2FzZSBmb3IgdW5oYW5kbGVkIEVkaXRBY3Rpb24gY2Fz
ZXMuCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRl
eHRFZGl0VHlwZVVua25vd247Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NSZWZQdHI8Q29t
cG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBwbHkoKTsKIH0K
IAotQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBk
b2N1bWVudCkKLSAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50KQorQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQorICAgIDogRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24p
CiB7CiB9CiAKQEAgLTE4Nyw2ICsyMDcsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjph
cHBseSgpCiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb246CiAgICAg
ICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZp
ZWQ6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKICAgICAgICAgY2FzZSBFZGl0QWN0
aW9uRGVsZXRlOgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTI5Niw3ICszMTcsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpy
ZW1vdmVTdHlsZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIAogdm9pZCBD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJl
YSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQs
IHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3Rl
ZEFyZWEsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjppbnNlcnRMaW5lQnJlYWsoKQpAQCAtMzIyLDcgKzM0Myw3IEBAIGJvb2wgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKIAogdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2Vy
dENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRl
KGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFz
c1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTM3Myw3ICszOTQsNyBAQCB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwg
Y29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5kTm9kZShQYXNzUmVm
UHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50KQogewogICAg
IEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQoKSkpOwotICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFyZW50LCBu
b2RlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNy
ZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1JlZlB0cjxOb2RlPiBub2Rl
LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTM5Nyw3ICs0MTgsNyBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hv
dWxkQXNzdW1lQ29udGVudAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
CiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZW1vdmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQpA
QCAtNTI1LDIwICs1NDYsMjEgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKIHZvaWQgQ29tcG9z
aXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5p
c0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUs
IG9mZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQp
KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4
dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0g
ICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3Jl
YXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShkZWxldGVDb21tYW5kKTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5p
c0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAg
ICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6Y3JlYXRlKFdURjo6bW92ZShub2RlKSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRl
bGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCksIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiBQb3Np
dGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25z
dCBTdHJpbmcmIHRleHQpCkBAIC0xMjg5LDcgKzEzMTEsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJh
Z3JhcAogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpDb21tYW5kT3B0aW9ucyBvcHRpb25z
ID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6Ok1vdmluZ1BhcmFncmFwaDsKICAgICBpZiAoIXByZXNlcnZlU3R5bGUp
CiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5bGU7
Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwgb3B0aW9ucykpOworICAgIGFwcGx5Q29tbWFuZFRv
Q29tcG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgV1RG
Ojptb3ZlKGZyYWdtZW50KSwgb3B0aW9ucykpOwogCiAgICAgZnJhbWUoKS5lZGl0b3IoKS5tYXJr
TWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcihlbmRpbmdTZWxlY3Rpb24oKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi43
MDQ0YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJ
bkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgQVhUZXh0RWRpdFR5cGUg
dW5hcHBseUVkaXRUeXBlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21w
b3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0
aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24p
OwogCkBAIC04OSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3Rv
cENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNp
dCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9u
VW5zcGVjaWZpZWQpOwogCiAgICAgLy8KICAgICAvLyBzdWdhcnktc3dlZXQgY29udmVuaWVuY2Ug
ZnVuY3Rpb25zIHRvIGhlbHAgY3JlYXRlIGFuZCBhcHBseSBlZGl0IGNvbW1hbmRzIGluIGNvbXBv
c2l0ZSBjb21tYW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uZjkzY2MyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zNCw4ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCi0gICAgOiBTaW1w
bGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAg
OiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAg
ICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAgLCBtX2NvdW50KGNv
dW50KQpAQCAtNTgsOCArNTgsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRv
QXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhp
cyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBj
YWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUt
PmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzczLDggQEAg
dm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2Rl
LT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOwor
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0
VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0
KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li40ZTYxOTY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAy
MDA2LCAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTQgKzM0LDE3IEBAIGNsYXNzIFRleHQ7CiAK
IGNsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1h
bmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4g
Y3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShS
ZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZz
ZXQsIGNvdW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIGNvdW50LCBlZGl0aW5nQWN0aW9u
KSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFz
c1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CisgICAgY29u
c3QgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBj
b3VudCwgRWRpdEFjdGlvbik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAg
CkBAIC01NSw2ICs1OCwxMSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3RleHQ7CiB9OwogCitp
bmxpbmUgY29uc3QgU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4
dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi5l
YjNhNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKQEAgLTcyLDggKzcyLDggQEAgc3RhdGljIGJvb2wgaXNUYWJsZVJvd0VtcHR5
KE5vZGUqIHJvdykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnRE
ZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4
cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKLSAgICA6IENvbXBv
c2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRl
U2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJv
b2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24p
CiAgICAgLCBtX2hhc1NlbGVjdGlvblRvRGVsZXRlKGZhbHNlKQogICAgICwgbV9zbWFydERlbGV0
ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlKQpAQCAtOTAsOCArOTAsOCBAQCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpE
ZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbAog
ewogfQogCi1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBt
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1h
bmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgpKQorRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRl
bGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBz
YW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgpLCBl
ZGl0aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rpb25Ub0RlbGV0ZSh0cnVlKQogICAgICwg
bV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtODg0LDE0ICs4ODQsNiBAQCB2b2lkIERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGNsZWFyVHJhbnNpZW50U3RhdGUoKTsK
IH0KIAotRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkg
Y29uc3QKLXsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNv
IHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBp
biB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRp
dGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJV
bmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKLX0KLQogLy8gTm9ybWFsbHkg
ZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNl
bnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCiAvLyB0eXBlIGEgY2hhcmFjdGVyLCBCb2xkLCB0
aGVuIGRlbGV0ZSB0aGUgY2hhcmFjdGVyIGFuZCBzdGFydCB0eXBpbmcuICBUaGUgQm9sZCB0eXBp
bmcgc3R5bGUgc2hvdWxkbid0CiAvLyBzdGljayBhcm91bmQuICBEZWxldGlvbiBzaG91bGQgcHJl
c2VydmUgYSB0eXBpbmcgc3R5bGUgdGhhdCAqaXQqIHNldHMsIGhvd2V2ZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGU1YmY1MWQu
LjBhOWI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5oCkBAIC0zNCwyMyArMzQsMjIgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFz
cyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsg
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkK
KyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxl
dGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0
ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJr
dXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rp
b25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29s
IHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUs
IGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZh
bHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0g
dHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRz
ID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVsZXRlLCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNh
bml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRp
dGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJE
ZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wg
c2FudGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJv
b2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwLCBFZGl0
QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAKIHByaXZhdGU6Ci0gICAgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSwgYm9v
bCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3Bl
Y2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKTsKKyAgICBEZWxldGVTZWxlY3Rpb25D
b21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigp
IGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRl
eCBjMTczZGY0Li45MDhmZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9u
Q29tbWFuZC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omlu
c2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgog
ewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwog
ICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxl
bmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRv
Y3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgp
LCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOwor
ICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5k
OjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vi
c3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpj
cmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSwgRWRpdEFjdGlvbkRpY3RhdGlvbik7CiAgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCkBA
IC0xMjQsNyArMTI0LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRp
bmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgp
KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlvbkRpY3Rh
dGlvbikpOwogfQogCiB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6OmNvbGxlY3REaWN0YXRpb25BbHRl
cm5hdGl2ZXNJblJhbmdlKHNpemVfdCByYW5nZVN0YXJ0LCBzaXplX3QgcmFuZ2VMZW5ndGgsIFZl
Y3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0QWN0aW9uLmgKaW5kZXggNjM3ZDFlYi4uNmVmMzUwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0QWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICB0eXBlZGVmIGVudW0gewogICAgICAgICBFZGl0QWN0aW9uVW5zcGVjaWZpZWQsCisgICAgICAg
IEVkaXRBY3Rpb25JbnNlcnQsCiAgICAgICAgIEVkaXRBY3Rpb25TZXRDb2xvciwKICAgICAgICAg
RWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvciwKICAgICAgICAgRWRpdEFjdGlvblR1cm5PZmZL
ZXJuaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMy
Li42NDc4YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgi
CiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENv
bW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAt
MzcsOSArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1FZGl0Q29tbWFuZDo6RWRp
dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQorRWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogbV9kb2N1
bWVudChkb2N1bWVudCkKICAgICAsIG1fcGFyZW50KDApCisgICAgLCBtX2VkaXRpbmdBY3Rpb24o
ZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQuZnJhbWUoKSk7CiAgICAgc2V0
U3RhcnRpbmdTZWxlY3Rpb24obV9kb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0
aW9uKCkpOwpAQCAtNjcsNyArNjksNyBAQCBGcmFtZSYgRWRpdENvbW1hbmQ6OmZyYW1lKCkKIAog
RWRpdEFjdGlvbiBFZGl0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsKKyAgICByZXR1cm4gbV9lZGl0aW5nQWN0aW9uOwog
fQogCiBzdGF0aWMgaW5saW5lIEVkaXRDb21tYW5kQ29tcG9zaXRpb24qIGNvbXBvc2l0aW9uSWZQ
b3NzaWJsZShFZGl0Q29tbWFuZCogY29tbWFuZCkKQEAgLTExMiw2ICsxMTQsNTAgQEAgdm9pZCBF
ZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKiBwYXJlbnQpCiAgICAg
fQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpIGNvbnN0
Cit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25D
dXQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUN1dDsKKyAgICBjYXNlIEVkaXRBY3Rp
b25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0ZTsKKyAgICBjYXNl
IEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURpY3Rh
dGlvbjsKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CisgICAgICAgIHJldHVybiBBWFRleHRF
ZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJu
IEFYVGV4dEVkaXRUeXBlUGFzdGU7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAg
ICByZXR1cm4gQVhUZXh0RWRpdFR5cGVUeXBpbmc7CisgICAgLy8gSW5jbHVkZSBkZWZhdWx0IGNh
c2UgZm9yIHVuaGFuZGxlZCBFZGl0QWN0aW9uIGNhc2VzLgorICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitB
WFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAg
ICBzd2l0Y2ggKGFwcGx5RWRpdFR5cGUoKSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtu
b3duOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVEZWxldGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAg
cmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNl
cnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0
dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5
cGVVbmtub3duOworfQorCitTaW1wbGVFZGl0Q29tbWFuZDo6U2ltcGxlRWRpdENvbW1hbmQoRG9j
dW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29t
bWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKK3sKK30KKwogdm9pZCBTaW1wbGVFZGl0Q29t
bWFuZDo6ZG9SZWFwcGx5KCkKIHsKICAgICBkb0FwcGx5KCk7CkBAIC0xMjUsNCArMTcxLDE0IEBA
IHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFy
dE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiB9CiAjZW5kaWYKIAordm9pZCBTaW1wbGVFZGl0Q29t
bWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0
RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1l
bnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICBy
ZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwg
dHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uMWE5OTdjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBF
ZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZp
c2libGVTZWxlY3Rpb24uaCIKIApAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldFBhcmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCopOwogCi0gICAgdmlydHVhbCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24o
KSBjb25zdDsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGluZ1NlbGVjdGlvbjsgfQogICAgIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kaW5nU2Vs
ZWN0aW9uOyB9CkBAIC01OSw4ICs2MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZG9BcHBseSgpID0gMDsKIAorICAgIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBjb25z
dDsKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBjb25zdDsKKwogcHJvdGVj
dGVkOgotICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CisgICAgZXhwbGljaXQg
RWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVk
KTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBGcmFtZSYgZnJhbWUoKTsKQEAgLTc0LDYg
Kzc4LDcgQEAgcHJpdmF0ZToKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3RhcnRpbmdTZWxlY3Rp
b247CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsKICAgICBDb21wb3Np
dGVFZGl0Q29tbWFuZCogbV9wYXJlbnQ7CisgICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb24g
eyBFZGl0QWN0aW9uVW5zcGVjaWZpZWQgfTsKIH07CiAKIGVudW0gU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgewpAQCAtOTEsMTIgKzk2LDE0IEBAIHB1YmxpYzoKICNlbmRpZgog
CiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRv
Y3VtZW50KSA6IEVkaXRDb21tYW5kKGRvY3VtZW50KSB7IH0KKyAgICBleHBsaWNpdCBTaW1wbGVF
ZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQp
OwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUq
LCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKaW5kZXggZGMz
YWUzMy4uMjNiYzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5n
QWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25l
LmNwcApAQCAtNTksNiArNTksOCBAQAogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4K
ICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5j
bHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAj
aW5jbHVkZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVB
dHRyaWJ1dGVDb21tYW5kLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAwZmQy
ZjkxLi5hNzcyODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yMDgsMTIgKzIw
OCwxMiBAQCBib29sIEVkaXRvcjo6aGFuZGxlVGV4dEV2ZW50KFRleHRFdmVudCogZXZlbnQpCiAg
ICAgICAgICAgICBpZiAoY2xpZW50KCktPnBlcmZvcm1zVHdvU3RlcFBhc3RlKGV2ZW50LT5wYXN0
aW5nRnJhZ21lbnQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAg
ICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFn
bWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxk
TWF0Y2hTdHlsZSgpLCBldmVudC0+bWFpbEJsb2NrcXVvdGVIYW5kbGluZygpKTsKKyAgICAgICAg
ICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgp
LCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hT
dHlsZSgpLCBFZGl0QWN0aW9uUGFzdGUsIGV2ZW50LT5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkp
OwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGVsc2UgCi0g
ICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2Us
IGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSk7CisgICAgICAgICAgICByZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxh
Y2UoKSwgRWRpdEFjdGlvblBhc3RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBA
IC0zNzQsMTIgKzM3NCwxMiBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJv
b2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVs
ZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBp
ZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
YXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBz
bWFydERlbGV0ZSkpOworICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwg
ZWRpdGluZ0FjdGlvbikpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTUyMCw3
ICs1MjAsNyBAQCBib29sIEVkaXRvcjo6c2hvdWxkSW5zZXJ0RnJhZ21lbnQoUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgUGFzc1JlZgogICAgIHJldHVybiBjbGllbnQoKS0+
c2hvdWxkSW5zZXJ0Tm9kZShmcmFnbWVudC5nZXQoKSwgcmVwbGFjaW5nRE9NUmFuZ2UuZ2V0KCks
IGdpdmVuQWN0aW9uKTsKIH0KIAotdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJh
Z21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RS
ZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgTWFpbEJsb2Nr
cXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQordm9pZCBFZGl0b3I6OnJlcGxh
Y2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0
Y2hTdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5n
IG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiB7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rp
b24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb24u
aXNOb25lKCkgfHwgIXNlbGVjdGlvbi5pc0NvbnRlbnRFZGl0YWJsZSgpIHx8ICFmcmFnbWVudCkK
QEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIGlmIChtYWls
QmxvY2txdW90ZUhhbmRsaW5nID09IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2Nr
cXVvdGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Oklnbm9y
ZU1haWxCbG9ja3F1b3RlOwogCi0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIEVkaXRBY3Rpb25QYXN0
ZSkpOworICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIGZyYWdtZW50LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgcmV2ZWFs
U2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CiAKICAgICBzZWxlY3Rpb24gPSBtX2Zy
YW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpAQCAtNTUwLDEzICs1NTAsMTMgQEAgdm9pZCBF
ZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCwKICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9y
KFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRl
eHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwgVGV4dENo
ZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCi12
b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCit2b2lkIEVkaXRvcjo6
cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RS
ZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikK
IHsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOwogICAgIGlmICgh
cmFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21l
bnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVu
dCwgc21hcnRSZXBsYWNlLCB0cnVlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50
KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KSwgc2VsZWN0UmVwbGFjZW1lbnQs
IHNtYXJ0UmVwbGFjZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbik7CiB9CiAKIFBhc3NSZWZQdHI8UmFu
Z2U+IEVkaXRvcjo6c2VsZWN0ZWRSYW5nZSgpCkBAIC05OTgsNyArOTk4LDggQEAgdm9pZCBFZGl0
b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkK
IAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlv
biBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAg
ICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0Rp
Y3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAw
OwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMp
OworICAgIAorICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9w
dGlvbnMsIGNtZC0+YXBwbHlFZGl0VHlwZSgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVu
dENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgp
LCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0
ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEwMjksNyArMTAzMCw3IEBAIHZvaWQgRWRp
dG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4g
Y21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJvbHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJs
ZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgVmlz
aWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21kLT5zdGFydGluZ1NlbGVjdGlvbigpKTsKLSAg
ICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0
ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKCksIGNtZC0+dW5hcHBseUVkaXRUeXBlKCkpOwogICAgIGRpc3BhdGNoRWRpdGFi
bGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgp
LCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JV
SU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjYzLDcgKzEyNjQsNyBAQCB2b2lkIEVkaXRvcjo6cGVy
Zm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogCiAgICAgZGlkV3Jp
dGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikK
LSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVs
ZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRD
b3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgp
CkBAIC0yMjM1LDcgKzIyMzYsNyBAQCB2b2lkIEVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVy
VHlwaW5nVG9Xb3JkKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmd29yZFN0YXJ0LAogCiAgICAgICAg
IGlmICghbV9mcmFtZS5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KGF1dG9jb3JyZWN0ZWRTdHJp
bmcsIG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAg
bV9mcmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0
cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKIAogICAgICAgICAvLyBSZXNl
dCB0aGUgY2hhcmV0IG9uZSBjaGFyYWN0ZXIgZnVydGhlci4KICAgICAgICAgbV9mcmFtZS5zZWxl
Y3Rpb24oKS5tb3ZlVG8obV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5lbmQoKSk7CkBA
IC0yNTgxLDcgKzI1ODIsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJp
bmcoY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKICAgICAKICAgICBtX2FsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXItPnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VSZXZlcnNlZChyZXBs
YWNlZFN0cmluZywgc2VsZWN0aW9uKTsKICAgICBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGggcGFyYWdy
YXBoKHNlbGVjdGlvbik7Ci0gICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3Ry
aW5nLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChyZXBsYWNl
ZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKICAgICBSZWZQdHI8UmFu
Z2U+IGNoYW5nZWRSYW5nZSA9IHBhcmFncmFwaC5zdWJyYW5nZShwYXJhZ3JhcGguY2hlY2tpbmdT
dGFydCgpLCByZXBsYWNlZFN0cmluZy5sZW5ndGgoKSk7CiAgICAgY2hhbmdlZFJhbmdlLT5zdGFy
dENvbnRhaW5lcigpLT5kb2N1bWVudCgpLm1hcmtlcnMoKS5hZGRNYXJrZXIoY2hhbmdlZFJhbmdl
LmdldCgpLCBEb2N1bWVudE1hcmtlcjo6UmVwbGFjZW1lbnQsIFN0cmluZygpKTsKICAgICBtX2Fs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXItPm1hcmtSZXZlcnNlZChjaGFuZ2VkUmFuZ2UuZ2V0KCkp
OwpAQCAtMjgxNSw3ICsyODE2LDcgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9zZSgpCiAgICAgLy8g
SW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3RlcnMuCiAgICAgaWYgKCFzaG91bGRJbnNlcnRU
ZXh0KHRyYW5zcG9zZWQsIHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQodHJhbnNwb3NlZCwg
ZmFsc2UsIGZhbHNlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQodHJhbnNwb3NlZCwg
ZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKIH0KIAogdm9pZCBFZGl0b3I6OmFkZFRv
S2lsbFJpbmcoUmFuZ2UqIHJhbmdlLCBib29sIHByZXBlbmQpCkBAIC0yODQ3LDcgKzI4NDgsNyBA
QCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9h
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRl
cm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFm
dGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBp
cyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3
U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBo
YW4oKSkKQEAgLTI4NTksNyArMjg2MCw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25B
ZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8v
IFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2
YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxl
Y3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0
aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5z
ZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwog
CiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlz
dWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAg
IC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0
aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggYTU3
ZDQyYS4uMTMxM2RiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhE
aXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJp
bmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxl
dGUsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgp
OwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hh
bmdlYWJsZVN0eWxlcygpOwpAQCAtMzgyLDggKzM4Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHRl
eHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKTsKICAgICBXRUJDT1JFX0VYUE9SVCBXcml0
aW5nRGlyZWN0aW9uIGJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQoKSBjb25z
dDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVu
dChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBi
b29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5n
ID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYsIGJv
b2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJv
b2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQsIE1haWxCbG9ja3F1
b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3Qg
U3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRB
Y3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNlbGVj
dGlvblN0YXJ0SGFzTWFya2VyRm9yKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlLCBpbnQgZnJv
bSwgaW50IGxlbmd0aCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVNYXJrZXJzRm9yV29yZHNBZmZl
Y3RlZEJ5RWRpdGluZyhib29sIG9ubHlIYW5kbGVXb3Jkc0NvbnRhaW5pbmdTZWxlY3Rpb24pOwog
ICAgIHZvaWQgZGVsZXRlZEF1dG9jb3JyZWN0aW9uQXRQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYs
IGNvbnN0IFN0cmluZyYgb3JpZ2luYWxTdHJpbmcpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZh
dGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENh
bmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcm
LCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlv
bjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsg
Q3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRv
ckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNw
cAppbmRleCA1MTFjYjAyLi43YTgxNjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlQXBwbHlQ
YXJhZ3JhcGhTdHlsZShGcmFtZSYgZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLAog
c3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZyYW1lJiBmcmFtZSwgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCkKIHsKICAgICBBU1NFUlQoZnJhbWUuZG9jdW1l
bnQoKSk7Ci0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUo
KmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJl
dmVudE5lc3RpbmcsIEVkaXRBY3Rpb25VbnNwZWNpZmllZCkpOworICAgIGFwcGx5Q29tbWFuZChS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBmcmFnbWVu
dCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBFZGl0QWN0aW9uSW5z
ZXJ0KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKaW5kZXggNDQwZjM2Ni4uNWRjYjE0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgogI2luY2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNsdWRlICJEZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEzOSw3ICsxNDAs
NyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1l
bnRFbGVtZW50KCkgY29uc3QKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNp
YmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxp
Z25PblNjcm9sbCBhbGlnbikKIHsKICAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihw
b3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgp
LCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgICAgICBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwg
YWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJUcmlnZ2Vy
ZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNzEsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
Ojptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFzZSwgY29uc3QgUG9z
aXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAgIG5ld1NlbGVjdGlv
bi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5ld1NlbGVjdGlvbi5z
ZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRG
b2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
aW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlv
biB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90
U2V0Rm9jdXMpLCBpbnRlbnQpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xsZXI6OnNldENh
cmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAgLTI1NCw3ICsy
NTYsMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVy
ZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0g
bmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9s
bElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
ICYmIG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgIGludGVudCA9IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNl
bGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBlbHNlCisgICAgICAgIGludGVudCA9
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50
LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24s
IFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwg
VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJh
bWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9
IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZy
YW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7
CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxl
Y3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAg
bmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0
aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMs
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAg
ICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVj
dGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAg
ICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQg
dGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAg
ICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhl
IGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFt
ZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBW
aXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2Vs
ZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9w
dGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9s
bCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2Vs
ZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWdu
LCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDksNyBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlv
dXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0
aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJh
bWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxl
Y3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lk
IEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNl
bGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudCkKIHsKICAgICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJl
dmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50
ZW50KTsKIAogICAgIGlmIChhdXRvKiBjbGllbnQgPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQo
KSkKICAgICAgICAgY2xpZW50LT5kaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsK
QEAgLTEwMjEsNyArMTAyOSw3NSBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1v
ZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJv
b2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJu
IGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhC
b3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKwor
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgRnJhbWVTZWxlY3Rpb246OnRleHRTZWxlY3Rpb25JbnRl
bnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBp
bnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNl
OworICAgIGlmIChhbHRlciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAg
ICAgICAgaW50ZW50LnR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOwor
ICAgICAgICBmbGlwID0gaXNSYW5nZSgpICYmIGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRM
OworICAgIH0gZWxzZQorICAgICAgICBpbnRlbnQudHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBD
aGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFu
dWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFy
eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBo
Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
b2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAg
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFs
c2U7CisgICAgc3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3Jh
bnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsK
KyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAg
Y2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAg
ICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAo
ZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlv
bkZvcndhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2Fy
ZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5k
aXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICByZXR1cm4gaW50ZW50OworfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2Rp
ZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSBncmFudWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsK
QEAgLTEwNzcsNiArMTE1MywxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVy
YXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBp
ZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9y
aWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlm
IChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAg
ICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlv
bkludGVudCh0ZXh0U2VsZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5
KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4g
eFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rp
b24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgog
ICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNl
IGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUKQEAgLTE3MTAsOCArMTc5MSwxMCBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3Qu
Z2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkK
LSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlv
bihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVu
dChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5QWxsIH0pOworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAg
IH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFu
Z2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUw
Niw3IEBAIFZpc2libGVTZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250
YWluaW5nQ2FyZXRTZWxlY3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5l
d1NlbGVjdGlvbiA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlv
bi5leHBhbmRVc2luZ0dyYW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxl
Y3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoKSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxh
cml0eSgpKTsKKyAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBB
bGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkp
OwogCiAgICAgUG9zaXRpb24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3Rh
cnQoKSk7CiAgICAgUG9zaXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVu
ZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhl
Li45NTdiNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxl
Y3Rpb25faAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRl
ICJFZGl0aW5nU3R5bGUuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0
UmVjdC5oIgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0
VmFsaWRhdGlvblRvKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVj
dGlvbkhhc0RpcmVjdGlvbiwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwg
Q3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdy
YW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRp
b25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxp
Z25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFu
dWxhcml0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdl
KiwgRUFmZmluaXR5LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNlbGVjdEFsbCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3
ICsyNzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNU
QVJULCBFTkQsIEJBU0UsIEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oKTsKKyAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWFRleHRTdGF0ZUNo
YW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRl
RGF0YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRo
b3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rp
b25PcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk3
LDEwICsyOTgsMTEgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBv
aW50Rm9yQmxvY2tEaXJlY3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgdGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2Vs
ZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkpOwogI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAg
ICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKICNlbHNlCi0gICAgdm9p
ZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFNlbGVjdGlvbkludGVu
dCkgeyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rp
b25Jc0luc2lkZVRleHRGb3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzY5
LDcgQEAgaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQ
dHI8RWRpdGluZ1N0eWxlPiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxp
bmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZSgpCitpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5jcHAKaW5kZXggNTM5NGU3ZS4uOTRhZjA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zOSw4ICszOSw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+
ZG9jdW1lbnQoKSkKK0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21t
YW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkK
ICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fdGV4dCh0ZXh0KQpAQCAtNjYsOCArNjYs
OCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9u
b2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0g
ICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0
Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9k
ZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQp
OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAg
ICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRp
dFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNl
dCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTg0LDggKzg0LDggQEAgdm9pZCBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5n
IHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZp
Y2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZz
ZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQo
KSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1f
bm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1f
dGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLjA3
NjA5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oCkBAIC0zNCwxNCArMzQsMTcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFz
c1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkK
KyAgICBzdGF0aWMgUmVmPEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8
VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0
LCB0ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24pKTsK
ICAgICB9CiAKLXByaXZhdGU6Ci0gICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVm
UHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAg
ICBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKTsKIAorcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01Nyw2ICs2MCwx
MSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3RleHQ7CiB9OwogCitpbmxpbmUgY29uc3QgU3Ry
aW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJl
dHVybiBtX3RleHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li5jNmIyMjliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNw
cApAQCAtMjksMTMgKzI5LDEzIEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisj
aW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hp
bGQsCi0gICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZDaGls
ZC0+ZG9jdW1lbnQoKSkKK0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChSZWZQdHI8Tm9kZT4mJiBpbnNlcnRDaGlsZCwgUmVmUHRyPE5vZGU+JiYgcmVmQ2hp
bGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1w
bGVFZGl0Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAs
IG1faW5zZXJ0Q2hpbGQoaW5zZXJ0Q2hpbGQpCiAgICAgLCBtX3JlZkNoaWxkKHJlZkNoaWxkKQog
ICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKQEAgLTU3LDggKzU3LDEwIEBAIHZvaWQgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9p
bnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAK
LSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9p
bnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5z
ZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1f
aW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGls
ZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQu
Z2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2lu
c2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1
ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs2OSwxMCBAQCB2b2lkIElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAg
ICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4
dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbiht
X2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2lu
c2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Piht
X2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hp
bGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxk
LmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9p
bnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVW
YWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2Vy
dENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uNWNlYTIx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQuaApAQCAtMzIsMjIgKzMyLDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVm
UHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJl
Zm9yZSwKLSAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9JbnNlcnQsIFJlZlB0
cjxOb2RlPiYmIGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0lu
c2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQoV1RGOjptb3ZlKGNoaWxkVG9JbnNlcnQpLCBXVEY6Om1vdmUoY2hpbGRUb0luc2VydEJl
Zm9yZSksIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9u
KSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NS
ZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0
QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Citwcm90ZWN0ZWQ6
CisgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUmVmUHRyPE5vZGU+JiYgY2hpbGRUb0luc2Vy
dCwgUmVmUHRyPE5vZGU+JiYgY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92
ZXJyaWRlOwotICAgIAorCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rl
c0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKICAg
ICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGls
ZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKaW5kZXggMjEyODI5
Yy4uN2RkMDE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC01OSw4ICs1OSw4IEBAIHN0YXRp
YyBFbGVtZW50KiBoaWdoZXN0VmlzdWFsbHlFcXVpdmFsZW50RGl2QmVsb3dSb290KEVsZW1lbnQq
IHN0YXJ0QmxvY2spCiAgICAgcmV0dXJuIGN1ckJsb2NrOwogfQogCi1JbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCBtdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFz
dGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5k
KGRvY3VtZW50KQorSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVzZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRv
Y3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9tdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQobXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KQogICAgICwgbV9wYXN0ZUJsb2Nr
cXV0b2VJbnRvVW5xdW90ZWRBcmVhKHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5oCmluZGV4IDEyODFmMGMuLjY3MzQxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5o
CkBAIC0zNCwxMyArMzQsMTMgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFzcyBJbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ+
IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1l
bnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2Up
CisgICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kPiBjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFs
c2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVu
dCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3Rl
ZEFyZWEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3Rl
QmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYsIGJv
b2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1Vu
cXVvdGVkQXJlYSk7CisgICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVu
dCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9l
SW50b1VucXVvdGVkQXJlYSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCmlu
ZGV4IGJkZDU5YTMuLjU3MmU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
VGV4dENvbW1hbmQuY3BwCkBAIC0zNywxNiArMzcsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1JbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFu
Y2VUeXBlIHJlYmFsYW5jZVR5cGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVu
dCkKK0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5j
ZVR5cGUgcmViYWxhbmNlVHlwZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29t
cG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3RleHQo
dGV4dCkKICAgICAsIG1fc2VsZWN0SW5zZXJ0ZWRUZXh0KHNlbGVjdEluc2VydGVkVGV4dCkKICAg
ICAsIG1fcmViYWxhbmNlVHlwZShyZWJhbGFuY2VUeXBlKQogewogfQogCi1JbnNlcnRUZXh0Q29t
bWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBw
bGllcikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0VGV4dENv
bW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3Vw
cGxpZXIsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21t
YW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBt
X3NlbGVjdEluc2VydGVkVGV4dChmYWxzZSkKICAgICAsIG1fcmViYWxhbmNlVHlwZShSZWJhbGFu
Y2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi42NTI4MTYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC00OSwyMCArNDksMjEgQEAgcHVi
bGljOgogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0
ZWRUZXh0ID0gZmFsc2UsCi0gICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJl
YmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgICAgICBSZWJhbGFuY2VU
eXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNl
cywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0
ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdElu
c2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5z
ZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHN0YXRpYyBSZWY8SW5z
ZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3Vw
cGxpZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4
dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJT
dXBwbGllciwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
KyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFz
c1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+LCBFZGl0QWN0aW9uKTsKKyAgICBJ
bnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24pOwogCi0gICAgSW5zZXJ0
VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5z
ZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVu
dCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3Vw
cGxpZXI+KTsKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGNl
ODg0NzguLmQ2ZWNmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgTW92ZVNlbGVjdGlvbkNvbW1h
bmQ6OmRvQXBwbHkoKQogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpDb21tYW5kT3B0aW9u
cyBvcHRpb25zID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwg
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nOwogICAgIGlmIChtX3NtYXJ0
SW5zZXJ0KQogICAgICAgICBvcHRpb25zIHw9IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTbWFy
dFJlcGxhY2U7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBtX2ZyYWdtZW50LCBvcHRpb25zKSk7CisgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1
bWVudCgpLCBXVEY6Om1vdmUobV9mcmFnbWVudCksIG9wdGlvbnMpKTsKIH0KIAogRWRpdEFjdGlv
biBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGls
ZHJlbkNvbW1hbmQuY3BwCmluZGV4IDJjMDYzYzAuLmM2Mjk3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0g
ICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCks
IGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKaW5kZXggNGI5MTk3NC4uMWIyYzQyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQgOiBwdWJs
aWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChub2RlLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChub2RlLCBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7
CisgICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1Jl
ZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rp
b24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOThhOTlkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiB0ZXh0LCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZChXVEY6Om1vdmUodGV4dCksIG9mZnNldCwgY291bnQsIEVkaXRBY3Rpb25EZWxldGUp
Cit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjJjNzIxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kIGZpbmFsIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShS
ZWZQdHI8VGV4dD4mJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoV1RGOjptb3ZlKHRleHQpLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcml2
YXRlOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYm
LCB1bnNpZ25lZCwgdW5zaWduZWQpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzQ4
YzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUg
IkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVs
ZXRlZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24p
CisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlm
ICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRF
ZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRp
b24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0
LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0
LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmUyNjNiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kIGZpbmFsIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGRl
bGV0ZWRUZXh0LCBlZGl0aW5nQWN0aW9uKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmLCB1bnNpZ25lZCwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRpdEFjdGlvbik7CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBT
dHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgw
Yy4uZmQ1NzQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTQ3LDYgKzQ3LDggQEAKICNpbmNsdWRlICJSZW5kZXJJbmxp
bmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Lmgi
CisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRl
ICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5
TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0
eWxlUHJvcGVydGllcy5oIgpAQCAtMzY4LDE1ICszNzAsMTQgQEAgaW5saW5lIHZvaWQgUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6OmRpZFJlcGxhY2VOb2RlKE5vZGUqIG5v
ZGUsIE4KICAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0gbmV3Tm9kZTsKIH0KIAotUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlv
bnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQoZG9jdW1lbnQpCitSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiBm
cmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQor
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRBY3Rpb24pCiAgICAgLCBt
X3NlbGVjdFJlcGxhY2VtZW50KG9wdGlvbnMgJiBTZWxlY3RSZXBsYWNlbWVudCkKICAgICAsIG1f
c21hcnRSZXBsYWNlKG9wdGlvbnMgJiBTbWFydFJlcGxhY2UpCiAgICAgLCBtX21hdGNoU3R5bGUo
b3B0aW9ucyAmIE1hdGNoU3R5bGUpCiAgICAgLCBtX2RvY3VtZW50RnJhZ21lbnQoZnJhZ21lbnQp
CiAgICAgLCBtX3ByZXZlbnROZXN0aW5nKG9wdGlvbnMgJiBQcmV2ZW50TmVzdGluZykKICAgICAs
IG1fbW92aW5nUGFyYWdyYXBoKG9wdGlvbnMgJiBNb3ZpbmdQYXJhZ3JhcGgpCi0gICAgLCBtX2Vk
aXRBY3Rpb24oZWRpdEFjdGlvbikKICAgICAsIG1fc2FuaXRpemVGcmFnbWVudChvcHRpb25zICYg
U2FuaXRpemVGcmFnbWVudCkKICAgICAsIG1fc2hvdWxkTWVyZ2VFbmQoZmFsc2UpCiAgICAgLCBt
X2lnbm9yZU1haWxCbG9ja3F1b3RlKG9wdGlvbnMgJiBJZ25vcmVNYWlsQmxvY2txdW90ZSkKQEAg
LTE0MjcsMTEgKzE0MjgsNiBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjptZXJnZVRl
eHROb2Rlc0Fyb3VuZFBvc2l0aW9uKFBvc2l0aW9uJiBwb3NpdGlvbiwgUAogICAgIH0KIH0KIAot
RWRpdEFjdGlvbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fZWRpdEFjdGlvbjsKLX0KLQogLy8gSWYgdGhlIHVzZXIgaXMgaW5z
ZXJ0aW5nIGEgbGlzdCBpbnRvIGFuIGV4aXN0aW5nIGxpc3QsIGluc3RlYWQgb2YgbmVzdGluZyB0
aGUgbGlzdCwKIC8vIHdlIHB1dCB0aGUgbGlzdCBpdGVtcyBpbnRvIHRoZSBleGlzdGluZyBsaXN0
LgogTm9kZSogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IHBycExpc3RFbGVtZW50LCBOb2RlKiBpbnNlcnRpb25CbG9jaywg
Y29uc3QgUG9zaXRpb24mIGluc2VydFBvcywgSW5zZXJ0ZWROb2RlcyYgaW5zZXJ0ZWROb2RlcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApp
bmRleCBkODdjM2ZmLi45Y2ZkZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC00OCwxNyArNDgsMTYgQEAgcHVibGljOgogCiAg
ICAgdHlwZWRlZiB1bnNpZ25lZCBDb21tYW5kT3B0aW9uczsKIAotICAgIHN0YXRpYyBSZWY8UmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVk
aXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvblBhc3RlKQorICAgIHN0YXRpYyBSZWY8UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBDb21tYW5kT3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIGZyYWdt
ZW50LCBvcHRpb25zLCBhY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIFdURjo6bW92ZShmcmFnbWVudCksIG9wdGlv
bnMsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBDb21t
YW5kT3B0aW9ucywgRWRpdEFjdGlvbik7CisgICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9j
dW1lbnQmLCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiwgQ29tbWFuZE9wdGlvbnMsIEVkaXRB
Y3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwotICAgIAorCiAgICAgY2xhc3MgSW5zZXJ0ZWRO
b2RlcyB7CiAgICAgcHVibGljOgogICAgICAgICB2b2lkIHJlc3BvbmRUb05vZGVJbnNlcnRpb24o
Tm9kZSopOwpAQCAtMTIwLDcgKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IG1fZG9jdW1lbnRGcmFnbWVudDsKICAgICBib29sIG1fcHJldmVudE5lc3Rpbmc7
CiAgICAgYm9vbCBtX21vdmluZ1BhcmFncmFwaDsKLSAgICBFZGl0QWN0aW9uIG1fZWRpdEFjdGlv
bjsKICAgICBib29sIG1fc2FuaXRpemVGcmFnbWVudDsKICAgICBib29sIG1fc2hvdWxkTWVyZ2VF
bmQ7CiAgICAgYm9vbCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uZjA3NDQ0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBU
eXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJ
bnNlcnRlZFRleHQpCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3
bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKICAg
ICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6
Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKLSAgICAgICAgbV9j
b21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5k
OjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21t
YW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CisgICAgICAgIG1fY29tcG9zaXRpb25UeXBl
ID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVh
ZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNl
QWxsV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb25UeXBpbmcpOwogCiAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogCkBAIC0zOTUsNyArMzk1LDcg
QEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlm
ICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRv
Y3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlvblR5cGluZykpOwogICAgIHR5cGluZ0Fk
ZGVkVG9PcGVuQ29tbWFuZChJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2My
MTM2NS4uMzMyZTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJh
bWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1l
U2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRU
ZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3Qp
CiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVj
dGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcApp
bmRleCBjMTg4MzM4Li4xMzRiMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBEaWN0YXRpb25Db21tYW5kSU9TOjpEaWN0YXRpb25Db21tYW5kSU9TKERv
Y3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYmIGRpY3RhdGlvblBocmFz
ZXMsIFJldGFpblB0cjxpZD4gbWV0YWRhdGEpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBFZGl0QWN0aW9u
RGljdGF0aW9uKQogICAgICwgbV9kaWN0YXRpb25QaHJhc2VzKFdURjo6bW92ZShkaWN0YXRpb25Q
aHJhc2VzKSkKICAgICAsIG1fbWV0YWRhdGEoV1RGOjptb3ZlKG1ldGFkYXRhKSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaAppbmRleCBi
ZjkwNzY0Li5hYzVjYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9E
aWN0YXRpb25Db21tYW5kSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGlj
dGF0aW9uQ29tbWFuZElPUy5oCkBAIC00NCw3ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgRGljdGF0
aW9uQ29tbWFuZElPUyhEb2N1bWVudCYsIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBkaWN0YXRp
b25QaHJhc2VzLCBSZXRhaW5QdHI8aWQ+IG1ldGFkYXRhKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
b0FwcGx5KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24o
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBFZGl0QWN0aW9uRGljdGF0aW9uOyB9CiAKICAgICBW
ZWN0b3I8VmVjdG9yPFN0cmluZz4+IG1fZGljdGF0aW9uUGhyYXNlczsKICAgICBSZXRhaW5QdHI8
aWQ+IG1fbWV0YWRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9G
cmFtZVNlbGVjdGlvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2Vs
ZWN0aW9uTWFjLm1tCmluZGV4IDliZGVlMWMuLmZkNDE5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAg
c3RhdGljIENHUmVjdCBhY2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5k
cykKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1l
U2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxs
KCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXBy
ZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENo
YW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVk
Tm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAppbmRleCAxZTZjNmIyLi4zNjg0ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAg
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1D
b250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZh
bHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4
dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAh
PSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhh
c0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENP
Q09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAg
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmpl
Y3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMs
IEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsK
ICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVl
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xu
JykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVu
ZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KHRoaXMsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWFRleHRFZGl0VHlw
ZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6
UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAg
ICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggOTllNmQ1OS4uMjgzZDIzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTUyNCw3ICs1MjQsNyBAQCBib29sIERy
YWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6U21hcnRS
ZXBsYWNlOwogICAgICAgICAgICAgICAgIGlmIChjaG9zZVBsYWluVGV4dCkKICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6TWF0Y2hTdHlsZTsK
LSAgICAgICAgICAgICAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIGZyYWdtZW50LCBvcHRpb25zKSk7CisgICAgICAg
ICAgICAgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKm1f
ZG9jdW1lbnRVbmRlck1vdXNlLCBXVEY6Om1vdmUoZnJhZ21lbnQpLCBvcHRpb25zKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDg4NmM3NjUuLjNkOWZlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKQEAgLTMyMzksNyArMzIzOSw4IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxL
ZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rp
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlz
aWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
VXNlclRyaWdnZXJlZCkpOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eVVua25vd24gfSk7CisgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24s
IEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVk
KSwgaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3Zl
bWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDc3YzA3ZmUuLmQ4ZDI1Y2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTM0MCw4ICszNDAsMTAgQEAgYm9vbCBG
b2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIEtleWIKICAgICBpZiAoY2FyZXRCcm93c2luZykgewogICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShlbGVtZW50LmdldCgp
KTsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24ocG9zaXRpb24sIHBvc2l0
aW9uLCBET1dOU1RSRUFNKTsKLSAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rp
b24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2Nv
bnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICAgICAg
ICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2Vs
ZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50
KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGVsZW1lbnQtPmZvY3VzKGZhbHNlLCBkaXJlY3Rp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDhlNmI5NmYuLjZhY2MxN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNC0yMyAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0RWRpdFR5cGUsIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5k
IHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBh
cHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdl
YiBjb250ZW50LiBBbHNvIGltcGxlbWVudCBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5n
ZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydCBh
bmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNz
aWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCwgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29u
dGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4g
QWxzbyBibG9jayBwb3N0aW5nIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAg
KHVuZG9OYW1lRm9yRWRpdEFjdGlvbik6CisKIDIwMTUtMDQtMjMgIEFuZHJlYXMgS2xpbmcgIDxh
a2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSB3YXkg
dG8gZ2V0IHRoZSBzeXN0ZW0gbWVtb3J5IHNpemUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggZDIxY2RmMC4uZTU5MGQ5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQpAQCAtNTQ2LDYgKzU0Niw3IEBAIHN0YXRpYyBOU1N0cmluZyogdW5kb05hbWVG
b3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICAvLyBGSVhNRTogVGhpcyBp
cyBpZGVudGljYWwgdG8gY29kZSBpbiBXZWJLaXQyJ3MgV2ViRWRpdENvbW1hbmRQcm94eSBjbGFz
czsgd291bGQgYmUgbmljZSB0byBzaGFyZSB0aGUgc3RyaW5ncyBpbnN0ZWFkIG9mIGhhdmluZyB0
d28gY29waWVzLgogICAgIHN3aXRjaCAoZWRpdEFjdGlvbikgewogICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25VbnNwZWNpZmllZDogcmV0dXJuIG5pbDsKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uSW5z
ZXJ0OiByZXR1cm4gbmlsOwogICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRDb2xvcjogcmV0dXJu
IFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9u
U2V0QmFja2dyb3VuZENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IEJh
Y2tncm91bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91bmQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHVybk9mZktl
cm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUdXJuIE9mZiBLZXJuaW5nIiwg
IlR1cm4gT2ZmIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAzMWI1YjFjLi41M2UxNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTUtMDQtMjMgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisK
KyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNj
ZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVk
aXRUeXBlLCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxh
Y2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlh
YmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxz
byBpbXBsZW1lbnQgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3Jk
IGZvcm0gZmllbGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRv
IGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3Bv
bmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9z
dGluZyBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKToKKwogMjAxNS0wNC0yMiAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBXZWJLaXQgc2Vy
dmljZXMgc2hvdWxkIGluaGVyaXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBob21lCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKaW5kZXgg
NTRjZTAzYy4uODc4NTU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJF
ZGl0Q29tbWFuZFByb3h5LmNwcApAQCAtNzQsNiArNzQsOCBAQCBTdHJpbmcgV2ViRWRpdENvbW1h
bmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogICAgIHN3
aXRjaCAoZWRpdEFjdGlvbikgewogICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOgogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29sb3I6CiAgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IENvbG9yIiwgIlNldCBDb2xvciAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvblNl
dEJhY2tncm91bmRDb2xvcjoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA1NTNkMWIxLi4zYWRhZjNkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDQtMjMgIERv
dWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0
ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLCBwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRv
IGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3Bv
bmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQgYSBtZWNoYW5p
c20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNvYWxl
c2NlZCB0aWNrcyB0byB0aHdhcnQgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMuCisK
KyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGFuZCBhbiBvdmVybG9hZCBv
ZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2gg
YXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3
ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZyBzZWxlY3Rpb24gY2hhbmdl
cyBvbiBwYXNzd29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIHN0b3BPYnNlcnZpbmddKToKKyAgICAgICAg
KC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVk
Ol0pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TWFjLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0
aW9uTGlzdGVuZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorCiAyMDE1LTA0LTIzICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIGxlc3MgbWVtb3J5
IHdoZW4gY29tcGlsaW5nIGNvbnRlbnQgZXh0ZW5zaW9ucy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgK
aW5kZXggMTkzODZjZS4uOTA4ZGJkYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKQEAgLTQyLDYg
KzQyLDcgQEAKIC0gKHZvaWQpc2V0UGxhdGZvcm1FbGVtZW50OihpZClwbGF0Zm9ybUVsZW1lbnQ7
CiAtICh2b2lkKXNldENhbGxiYWNrOihKU09iamVjdFJlZiljYWxsYmFjazsKIC0gKHZvaWQpc3Rh
cnRPYnNlcnZpbmc7CistICh2b2lkKXN0b3BPYnNlcnZpbmc7CiAKIEBlbmQKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLmYxYzlhZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0KQEAgLTEwNCw2ICsxMDQsMTEgQEAKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9ub3RpZmlj
YXRpb25SZWNlaXZlZDopIG5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07CiB9
CiAKKy0gKHZvaWQpc3RvcE9ic2VydmluZworeworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07Cit9CisKIC0gKHZvaWQpX25vdGlm
aWNhdGlvblJlY2VpdmVkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIE5T
U3RyaW5nICpub3RpZmljYXRpb25OYW1lID0gW1tub3RpZmljYXRpb24gdXNlckluZm9dIG9iamVj
dEZvcktleTpAIm5vdGlmaWNhdGlvbk5hbWUiXTsKQEAgLTExMiwxNiArMTE3LDI3IEBACiAgICAg
aWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRp
b24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNP
TlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5h
bWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVB
cmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpz
Tm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJn
dW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAg
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBb
dXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBn
bG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlm
IChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1l
bnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAg
ICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90
aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0
aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAg
ICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1l
IGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAg
IGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1l
bnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxs
QXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0
aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Ly8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUg
YW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAg
YXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0
eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3Rp
ZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFt
ZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBh
cmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggNDY3M2ExZC4uMzk3YzYzOCAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW0KQEAgLTE0NDYsNiArMTQ0Niw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFtbWVy
cyBzaG91bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFk
eSByZW1vdmVkLgogICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAgW21f
bm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRpb25I
YW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5k
ZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwxOSArMTI1LDMwIEBACiAgICAgaWYgKG1f
cGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2Jq
ZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVl
ID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIFdLQnVuZGxlRnJh
bWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsKICAgICBKU0NvbnRleHRSZWYgY29u
dGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwogCiAg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZp
Y2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0
aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNOb3RpZmljYXRp
b24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5p
bDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pT
T05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFy
Z3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBqc1VzZXJJbmZvSlNP
TlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAg
ICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0
aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29u
dGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxi
YWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5v
dGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9u
ZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAg
ICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlm
aWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09O
VmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBj
b25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAw
LCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxp
c3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4K
KyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9
IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
cmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBu
b3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZv
SlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4
dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNr
KSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFj
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCBlZDAyZmI3Li5lMjYwN2UxIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0NzYsNiArMTQ3Niw3IEBAIGJv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQog
ICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUgYSBs
aXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX25vdGlmaWNhdGlv
bkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXTsK
ICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90aWZpY2F0aW9u
SGFuZGxlciA9IG5pbDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251604</attachid>
            <date>2015-04-24 19:32:38 -0700</date>
            <delta_ts>2015-04-24 19:55:44 -0700</delta_ts>
            <desc>Remove subscripting/object literals</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>222330</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGU3Yjk0NTYzMDhhYTM3NWVlOTQ2NTIzM2U2MzRiYjI3ZTgwN2M4NTAKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgRnJpIEFwciAyNCAxNTo1
MDoxNyAyMDE1IC0wNzAwCgogICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NzE5CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCiAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlCiAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5n
IHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CiAgICBhIG1lY2hhbmlz
bSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVz
Y2VkIHRpY2tzIHRvIHRod2FydAogICAgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAogICAgYW5kIGFuIG92ZXJs
b2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUg
dGVjaCBhcHBzIG1vcmUKICAgIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZwogICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyODIxMjk4Li5jNzA3
MmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMDQtMjQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLAorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlCisgICAgICAgIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQKKyAgICAg
ICAgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmll
bGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQKKyAgICAgICAgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsCisgICAgICAgIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlCisgICAgICAgIHJlbGlhYmxl
IGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rp
b24uIEFsc28gYmxvY2sgcG9zdGluZworICAgICAgICBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1
dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTI0ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGZhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctcmVzaXplLWV2ZW50LWNvdW50Lmh0bWwgdGlt
ZXMgb3V0IG9uIFlvc2VtaXRlIFdLMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWZhNmY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0
IGZpZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlm
aWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4
dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVk
aXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kZTBkZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0
aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1
dCB0eXBlPSJwYXNzd29yZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InZhbHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25z
Ij48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNp
bmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVE
ZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0
VHlwZURlbGV0ZSArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIg
Y291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0
SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmlj
YXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZh
bHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAg
IHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIp
IHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0
VHlwZURlbGV0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIs
ICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJB
WFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3Jk
IG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3
aWxsIGJlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNl
cnQiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBzZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHNldHNlY3VyZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAi
MCI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAg
ICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRy
dWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9v
dEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwor
CisgICAgICAgICAgICBzZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rp
b24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVl
LiBmb3VyIGZpdmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVj
dGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBh
cmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZv
Lmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50
ZWRpdGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+
c2V2ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2
PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ICsgMTsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmcgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cyA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyAr
IDE7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUNoYXJhY3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGggKyAyOworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwg
InNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5j
ZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAg
ICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9
IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9u
Q2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0
aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOwor
ICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsr
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3Jk
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3
ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAg
ICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0
SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRC
ZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7
CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwg
MCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAg
ICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQor
ICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5m
by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92
YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjM5M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVD
dXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBp
bmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFu
Z2UtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlk
PSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAg
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVz
ZXIgaW5mbyBkYXRhLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2
YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsK
KyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBp
bmcgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbiArIDEKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0
VHlwZUN1dCArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291
bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5k
ZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRp
b24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVl
Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJl
c3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsK
KworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlw
ZUN1dCIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5n
ZVZhbHVlXCJdIiwgIlwiMjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZh
bHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBl
XCJdIiwgIkFYVGV4dEVkaXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhU
ZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7
CisgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxp
dHkodHJ1ZSk7CisKKyAgICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3Rp
ZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNh
bGxiYWNrKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVl
Iik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHRib3giKTsKKyAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAg
ZXhlY1NldFNlbGVjdGlvbkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0
ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENv
bW1hbmQoKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVy
Q29tbWFuZCgpOworICAgICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggYzhlMjA1YS4uZTdjOTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE1MTMsNiArMTUxMyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1JlbW92
ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAorICAgIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA1YTU4NWYwLi45MDg1ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQwIEBACisyMDE1LTA0
LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBy
aWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQu
IEFsc28gaW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdl
cyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0Cisg
ICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIFRlc3RzOiBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVj
dENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzUGFzc3dvcmRGaWVsZE9y
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5n
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2Fk
aW5nRXZlbnROb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4
dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6Y29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNz
d29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQpOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBWFBvc3ROb3RpZmlj
YXRpb25XaXRoVXNlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6XSk6Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpTT05UeXBl
cyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAodGV4dE1h
cmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczplbmRQ
b3NpdGlvbjpdKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0eWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9z
aXRpb246OmdldE5vZGVzSW5Db21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWspOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRy
ZW5JblJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnB1dFRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZGVsZXRlZFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxl
Y3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OnByZXNlcnZlc1R5cGluZ1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0
TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRBY3Rpb24uaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21t
YW5kOjpFZGl0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0Q29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OnNldFBhcmVudCk6IERl
bGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmhhbmRsZVRleHRFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0
T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVy
VHlwaW5nVG9Xb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlQmFja1RvUmVw
bGFjZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cmFuc3Bvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRGcmFnbWVudCk6CisgICAgICAg
ICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3Zl
V2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojp0ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5p
bmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9k
aWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdvcmRTdGFy
dCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omlu
c2VydGVkVGV4dCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Okluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJbnNlcnRU
ZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAg
ICAgKiBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oLgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVz
OjpkaWRSZXBsYWNlTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6aW5zZXJ0QXNMaXN0SXRlbXMpOiBEZWxldGVkLgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvaW9zL0RpY3Rh
dGlvbkNvbW1hbmRJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZElP
Uzo6RGljdGF0aW9uQ29tbWFuZElPUyk6CisgICAgICAgICogZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5oOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKToKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0
aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKToKKwogMjAxNS0wNC0yNCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgcmFuZ2VFeHBhbmRlZEFyb3VuZFBvc2l0aW9uQnlDaGFyYWN0
ZXJzIHRvIGFsbCBwbGF0Zm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagppbmRleCAzNjlmNTJiLi45NmQ4OTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Nzc3LDYgKzE0Nzc3
LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1NDUsNiArMTk1NzMsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxp
dHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEFkanVz
dFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA4Nyw2ICsyMTExNiw4IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRl
cmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0
Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBhMDMxODA4Li5mZTlm
YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNTI1LDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC03NjY4LDYgKzc2NzQsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmls
aXR5PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiPgorICAgICAgICA8Rmls
dGVyPmFjY2Vzc2liaWxpdHk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyV2luLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5XHdpbjwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpAQCAtMTA2NzcsNiArMTA2ODYsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhjYzdiNTQuLjliNTEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNTAsNiArMzI1MCw3IEBACiAJCTkwMDE3NzQxMTJF
MDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIg
LyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MDEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBK
U09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYx
QyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlG
ODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDVCMjREMDk4
RjFCNkIwMEMyODg1NSAvKiBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTUsNiArNjM5
NiwxMCBAQAogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUz
NDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJ
RjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUy
OERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlG
NTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsg
fTsKQEAgLTEwNTAwLDYgKzEwNTA1LDcgQEAKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkx
QzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3Jv
dXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUdyb3VwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNDAsNiArMTQwNDYsMTAgQEAKIAkJRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1M
b2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFz
ZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3
QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjEsNiArMTU2NzEsNyBAQAog
CQkJCTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCAq
LywKIAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8s
CiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKKwkJ
CQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xNzc5NCw2ICsxNzgwNSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2
RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlC
MzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5
QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1
NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywK
IAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzcyOCw2ICsyMzc0Myw3IEBACiAJCQkJ
NkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyog
QXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAw
MURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTY1
Myw2ICsyNTY2OSw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcw
QThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NzA2LDYgKzI2NzIzLDcgQEAKIAkJCQk3QzRDOTZERDFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
MUQ0MjgxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QTY5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljU21vb3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MUM5RjJGOTFBRTNCRUIwMDA5
NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
QzFENDI5MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQyQTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNkQw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4NDY0LDYgKzI4NDgyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3
QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYx
MkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1
ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTkxMSw2ICsyOTkzMCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2
RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5
MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggYTAwYjE1Yy4uODY0ZTE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5
MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAorLy8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgcGFzc3dvcmQgZmllbGRz
IG9yIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMgYXQgYSA0MGh6IGludGVy
dmFsIHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQorc3RhdGljIGRvdWJsZSBB
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFsID0gMC4w
MjU7CisKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhDb21wdXRlZE9iamVjdEF0dHJp
YnV0ZUNhY2hlOjpnZXRJZ25vcmVkKEFYSUQgaWQpIGNvbnN0CiB7CiAgICAgSGFzaE1hcDxBWElE
LCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1faWRNYXBw
aW5nLmZpbmQoaWQpOwpAQCAtMTI5LDYgKzEzMiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0
RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENh
Y2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTcwNSw3ICs3MDksNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBSZWY8RG9jdW1lbnQ+
IHByb3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7CiAgICAgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXIuc3RvcCgpOwogICAgIAotICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRp
b25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNh
dGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyBJbiB0
ZXN0cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5
IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0
ZWQgYmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVk
IGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgogICAgIGF1
dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlvbnNUb1Bvc3QpOwogICAg
IApAQCAtNzQyLDYgKzc0NiwyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9i
amVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiB0ZXN0cywgcG9z
dGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVw
IG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZp
b3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBl
bmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZp
Y2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAg
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0
KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRp
ZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBw
b3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY4LDIyMyBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxk
cmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdl
IHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRl
ZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRhdGFMb2coIlVu
a25vd24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0OgorICAgICAgICBkYXRhTG9nKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBkYXRhTG9nKCJN
b3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2coIkV4dGVuZDo6Iik7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVu
a25vd24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
RGVsZXRlOgorICAgICAgICAgICAgZGF0YUxvZygiRGVsZXRlIik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIGRhdGFM
b2coIkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBkYXRhTG9nKCJEaWN0YXRpb25JbnNlcnQiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgor
ICAgICAgICAgICAgZGF0YUxvZygiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRhdGFMb2coIkN1
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0
ZToKKyAgICAgICAgICAgIGRhdGFMb2coIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgZGF0
YUxvZygiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRhTG9nKCJCZWdp
bm5pbmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgZGF0YUxvZygiRW5kOjoiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OgorICAgICAgICAgICAgZGF0YUxvZygiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAg
IGRhdGFMb2coIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGRhdGFMb2co
IkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBkYXRh
TG9nKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIGRh
dGFMb2coIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgZGF0
YUxvZygiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
TGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlNl
bnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIGRhdGFMb2co
IlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
UGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkRv
Y3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBpZiAoaW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAgZGF0YUxvZygiLVN5bmMiKTsK
KyAgICBkYXRhTG9nKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0
VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7Cisg
ICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCitzdGF0aWMgYm9vbCBpc1Bh
c3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QpCit7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmll
bGQoKSB8fCBvYmplY3QtPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9k
ZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCiAg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAotICAgIC8vIERlbGVn
YXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9
IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmplY3QpIHsKKyAgICAg
ICAgaWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJs
ZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmplY3QsIGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlm
aWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENo
YW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQp
OworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2Vs
ZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhU
ZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFT
U0VSVCh0eXBlICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0Nv
bXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9i
amVjdCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRp
b24ob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0
LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5n
ZUZvckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRF
ZGl0aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlw
ZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBl
IGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFT
U0VSVChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5
cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIGRlbGV0aW9uVHlw
ZSwgZGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOwor
I2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50
KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUo
aW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCitib29sIEFYT2JqZWN0Q2Fj
aGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKG9iamVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmpl
Y3QoKTsKKyAgICBpZiAoIW9ic2VydmFibGVPYmplY3QpIHsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIC8vIHJldHVybiB0cnVlIGV2ZW4gdGhvdWdoIHRoZSBlbnF1ZXVl
IGRpZG4ndCBoYXBwZW4gYmVjYXVzZSB0aGlzIGlzIGEgcGFzc3dvcmQgZmllbGQgYW5kIGNhbGxl
ciBzaG91bGRuJ3QgcG9zdCBhIG5vdGlmaWNhdGlvbgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmNvbnRhaW5zKG9i
c2VydmFibGVPYmplY3QpKSB7CisgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0
LmFwcGVuZChvYnNlcnZhYmxlT2JqZWN0KTsKKyAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdChBY2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbkludGVydmFsKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFt
ZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMwOSwx
NCBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgp
Cit7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmpl
Y3QoKTsKKyAgICBpZiAoIXJvb3RPYmplY3QgfHwgIXJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGRvd25j
YXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgp
OworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIo
QVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpAQCAtMTA5Niw2
ICsxMzI5LDI2IEBAIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjp+QVhBdHRyaWJ1dGVDYWNoZUVu
YWJsZXIoKQogICAgIGlmIChtX2NhY2hlKQogICAgICAgICBtX2NhY2hlLT5zdG9wQ2FjaGluZ0Nv
bXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQorQVhU
ZXh0Q2hhbmdlIEFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0
VHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVDdXQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dERlbGV0ZWQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0SW5zZXJ0
ZWQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7
Cit9CisjZW5kaWYKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li4zMGE3YTQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZp
bmUgQVhPYmplY3RDYWNoZV9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5o
IgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPGxpbWl0cy5oPgpAQCAtNjcsNiArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPEFYSUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz4gbV9pZE1hcHBpbmc7CiB9OwogCisj
aWYgIVBMQVRGT1JNKENPQ09BKQorZW51bSBBWFRleHRDaGFuZ2UgeyBBWFRleHRJbnNlcnRlZCwg
QVhUZXh0RGVsZXRlZCB9OworI2VuZGlmCisKIGVudW0gUG9zdFRhcmdldCB7IFRhcmdldEVsZW1l
bnQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQgfTsKIAogZW51bSBQb3N0VHlwZSB7IFBvc3RTeW5j
aHJvbm91c2x5LCBQb3N0QXN5bmNocm9ub3VzbHkgfTsKQEAgLTE4OSwxMiArMTk0LDE1IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkp
OwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1l
bnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAg
ICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAgfTsKKyNpZm5k
ZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRT
dGF0ZUNoYW5nZUludGVudCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSBkZWxl
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2Vy
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBl
bnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxMywx
MiArMjIxLDI0IEBAIHB1YmxpYzoKICAgICBBWENvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUq
IGNvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUoKSB7IHJldHVybiBtX2NvbXB1dGVkT2JqZWN0
QXR0cmlidXRlQ2FjaGUuZ2V0KCk7IH0KIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KLSAgICAKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBz
dGF0aWMgdm9pZCBzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMoYm9vbCB2YWx1
ZSk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBwbGF0
Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2RlLCBO
b2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwor
I2Vsc2UKKyAgICBzdGF0aWMgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRl
eHRFZGl0VHlwZSk7CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9pZCB0
ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5nZWQo
RWxlbWVudCopOwpAQCAtMjI5LDYgKzI0OSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9k
ZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9
CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKyAg
ICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0
KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzI2NiwxMSBAQCBwcml2
YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6
OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90
aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7
CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZlY3Rv
cjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Q
b3N0OworICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAg
ICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdp
b25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSop
OwpAQCAtMjUxLDYgKzI3OCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAg
CiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIGJvb2wgZW5x
dWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCop
OworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50Owog
fTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4ICszMzksOSBAQCBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmll
dyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9
Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9Ci1pbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdl
dCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNh
dGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUp
IHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KQEAgLTMyMCw2ICszNTIs
MTQgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKE5vZGUqKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShXaWRnZXQqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSop
IHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQoraW5saW5l
IEFYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0
RWRpdFR5cGUpIHsgcmV0dXJuIEFYVGV4dEluc2VydGVkOyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRp
ZgogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45NWMyNjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBWFRleHRTdGF0
ZUNoYW5nZUludGVudF9oCisjZGVmaW5lIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIAorZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAg
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdCwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorfTsKKworZW51bSBBWFRleHRFZGl0VHlw
ZSB7CisgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRl
LCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdl
bmVyaWMgdGV4dCBpbnNlcnQKKyAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZp
YSB0eXBpbmcKKyAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0
YXRpb24KKyAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICBBWFRl
eHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKK307CisKK2VudW0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAor
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzCit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
IHsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFyYWdyYXBoLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50LAorICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Yg
c2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGlu
ZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3Nl
cyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5
IG5vdGlmaWNhdGlvbi4KK307CisKK3N0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHk7Cit9OworCitzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
eworICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAgIHVuaW9uIHsKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdl
OworICAgIH07CisgICAgYm9vbCBpc1N5bmNocm9uaXppbmcgeyBmYWxzZSB9OworCisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0
U2VsZWN0aW9uKCkpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbihz
ZWxlY3Rpb24pCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRF
ZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
KQorICAgICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBpc1N5bmNocm9uaXpp
bmcpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbigpCisgICAgICAg
ICwgaXNTeW5jaHJvbml6aW5nKGlzU3luY2hyb25pemluZykKKyAgICB7CisgICAgICAgIEFTU0VS
VCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAgIH0KK307CisKK30KKwor
I2VuZGlmIC8vIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXgg
ZDhkMjZkZS4uNDM4ZTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsMjcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAg
ICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElu
cHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAg
ICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzOworICAgIH0KKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dI
b3N0KCk7CisgICAgaWYgKCFlbGVtZW50IHx8ICFpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUo
ZWxlbWVudCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhp
cy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLmE4MmJkODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUlt
YWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29y
ZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNT
bGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmNiMzM4MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcApAQCAtMjY0Niw0ICsyNjQ2LDE3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQogI2VuZGlmCiAK
K2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBj
b25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkg
IT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCk7CisgICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1l
bnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1Bh
c3N3b3JkRmllbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2
ZjJhLi44MTZjMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250
cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25z
dCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggZTlkMmE1Mi4uNTBmZGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDkx
LDE0ICsxNDkxLDE3IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewog
ICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIp
LnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0
aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7
Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9u
SXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNU
UkVBTSkpOworICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUs
IHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBuZXdJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSk7CisgICAg
bV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgbmV3SW50ZW50
KTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgpIGNvbnN0CkBAIC0x
OTYzLDEzICsxOTY2LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7CiAgICAgaWYgKHJh
bmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRv
IHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24K
LSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChyYW5nZS5zdGFydCA9
PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmpl
Y3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhy
YW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3Rh
cnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYgKzQz
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2Jq
ZWN0Q2FjaGUqKSBvdmVycmlkZTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFP
YmplY3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhp
c3RzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2Vi
QXJlYU9iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmly
c3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQogICAg
IEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciopOwog
ICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRr
LmNwcAppbmRleCA1ODUyYTBmLi5hZTI1NjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtMjY4LDEwICsyNjgs
MTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamUKICAgICAvLyBTZWxlY3QgdGhlIHJpZ2h0IHNp
Z25hbCB0byBiZSBlbWl0dGVkCiAgICAgQ1N0cmluZyBkZXRhaWw7CiAgICAgc3dpdGNoICh0ZXh0
Q2hhbmdlKSB7Ci0gICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDoKKyAgICBj
YXNlIEFYVGV4dEluc2VydGVkOgogICAgICAgICBkZXRhaWwgPSAidGV4dC1pbnNlcnQiOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ6CisgICAg
Y2FzZSBBWFRleHREZWxldGVkOgogICAgICAgICBkZXRhaWwgPSAidGV4dC1yZW1vdmUiOwogICAg
ICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9T
Lm1tCkBAIC05NSw4ICs5NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmot
PndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0
cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQppbmRleCBiMzAwZTc3Li45YTY5MmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBA
CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAi
QVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRF
ZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0
VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZh
bHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1
ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0
aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRD
aGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdl
IHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmlj
YXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdl
IHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBs
YXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2Vy
IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKwogLy8gVGhlIHNpbXBsZSBD
b2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNjAsNiArMTA3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0
YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRXcmFwcGVy
KHdyYXBwZXIuZ2V0KCkpOwogfQogCitzdGF0aWMgQk9PTCBheFNob3VsZFJlcG9zdE5vdGlmaWNh
dGlvbnNGb3JUZXN0cyA9IGZhbHNlOworCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJl
cG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIEFYUG9z
dE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRp
b24sIGlkIHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25X
aXRoVXNlckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBz
aW1wbGlmeSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMg
YSBzaW1wbGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVj
dHVyZSB0byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJl
dHdlZW4gV2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBi
YWNrCisgICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3Rz
KSkKKyAgICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlm
aWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmlj
YXRpb24gbm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMTEsMTE0
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBl
cigpIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2Jq
LT53cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQg
dG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVy
KCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisg
ICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3Rp
ZmljYXRpb24sIG5pbCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVh
KCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IFt1c2VySW5mbyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5
Ok5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldOworICAgIGlmIChpbnRlbnQudHlwZSAh
PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIFt1c2VySW5mbyBzZXRP
YmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aW50ZW50LnR5cGVdIGZvcktleTpOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQu
dHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6
CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAg
ICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDppbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbl0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rp
b25EaXJlY3Rpb25dOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3du
OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJl
dmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6Cisg
ICAgICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aElu
dDppbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5XSBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFy
a2VyUmFuZ2UgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQ
b3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52
aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDp0ZXh0TWFya2Vy
UmFuZ2UgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlXTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQor
ICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0OndyYXBwZXIgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50XTsKKworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5m
byhyb290V2ViQXJlYSgpLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsK
IH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKQorc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewor
ICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIg
bGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgW2NoYW5nZSBzZXRPYmplY3Q6
W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6dHlwZV0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRF
ZGl0VHlwZV07CisgICAgaWYgKGxlbmd0aCA+IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3Ro
KSB7CisgICAgICAgIFtjaGFuZ2Ugc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50Omxl
bmd0aF0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF07CisgICAg
ICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OkFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9u
TGVuZ3RoXTsKKyAgICB9CisgICAgW2NoYW5nZSBzZXRPYmplY3Q6dGV4dCBmb3JLZXk6TlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXTsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkp
IHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1h
cmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBbY2hhbmdlIHNl
dE9iamVjdDp0ZXh0TWFya2VyIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVT
dGFydE1hcmtlcl07CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30K
Kwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGV4dFJl
cGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFRleHRFZGl0VHlwZVVua25v
d24sICIiLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGlu
c2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAo
IW9iamVjdCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2Jq
ZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5m
byA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9
IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5T
RGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmpl
Y3QsIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5n
ZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4
dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIGluc2VydGlvblR5cGUsIGluc2Vy
dGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsK
KyAgICBpZiAoY2hhbmdlcy5jb3VudCkKKyAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpjaGFu
Z2VzIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXTsKKyAgICBbY2hhbmdl
cyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBw
ZXI7CisKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ocm9vdFdlYkFyZWEoKS0+
d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJ
bmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVy
KCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1l
TG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhG
cmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBW
aXNpYmxlUG9zaXRpb247CiAtIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlv
bjsKIAogLSAoaWQpYXR0YWNobWVudFZpZXc7Ci0vLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50
IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBV
c2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZv
ciBpdC4gVXNlZCBieSB0ZXN0cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNh
dGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86
KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1Nj
cmVlblNwYWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50
VG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLmUyYjUwNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDcw
IEBAIHN0YXRpYyBCT09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwog
KyAodm9pZClhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTCly
ZXBvc3QKIHsKICAgICBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJl
cG9zdDsKKyNpZiBQTEFURk9STShNQUMpCisgICAgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKHJlcG9zdCk7CisjZW5kaWYKIH0KIAogLSAodm9pZClh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5h
bWUKIHsKKyAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpCisg
ICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9u
TmFtZSB1c2VySW5mbzpuaWxdOworfQorCitzdGF0aWMgTlNBcnJheSAqYXJyYXlSZW1vdmluZ05v
bkpTT05UeXBlcyhOU0FycmF5ICphcnJheSkKK3sKKyAgICBBU1NFUlQoW2FycmF5IGlzS2luZE9m
Q2xhc3M6W05TQXJyYXkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJh
eSA9IFthcnJheSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwg
W211dGFibGVBcnJheSBjb3VudF07KSB7CisgICAgICAgIGlkIHZhbHVlID0gW211dGFibGVBcnJh
eSBvYmplY3RBdEluZGV4OmldOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
RGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2Jq
ZWN0QXRJbmRleDppIHdpdGhPYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZh
bHVlKV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNs
YXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkg
d2l0aE9iamVjdDphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVs
c2UgaWYgKCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3ZhbHVl
IGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pKSB7CisgICAgICAgICAgICBbbXV0YWJs
ZUFycmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aV07CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorICAgICAgICBpKys7CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZUFycmF5IGF1
dG9yZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeVJlbW92aW5n
Tm9uSlNPTlR5cGVzKE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKK3sKKyAgICBBU1NFUlQoW2Rp
Y3Rpb25hcnkgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pOworICAgIE5TTXV0
YWJsZURpY3Rpb25hcnkgKm11dGFibGVEaWN0aW9uYXJ5ID0gW2RpY3Rpb25hcnkgbXV0YWJsZUNv
cHldOworICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBkaWN0aW9uYXJ5KSB7CisgICAgICAgIGlk
IHZhbHVlID0gW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OmtleV07CisgICAgICAgIGlmIChbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0
YWJsZURpY3Rpb25hcnkgc2V0T2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2
YWx1ZSkgZm9yS2V5OmtleV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNz
OltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgc2V0T2Jq
ZWN0OmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpIGZvcktleTprZXldOworICAgICAg
ICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2
YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkgeworICAgICAgICAgICAgW211
dGFibGVEaWN0aW9uYXJ5IHJlbW92ZU9iamVjdEZvcktleTprZXldOworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiBbbXV0YWJsZURpY3Rpb25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2
b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0
aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNj
ZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9u
YXJ5KiB1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5
czpub3RpZmljYXRpb25OYW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1l
OkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAg
ICAgICAgQVNTRVJUKG5vdGlmaWNhdGlvbk5hbWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmlu
Zm8gPSBuaWw7CisgICAgICAgIGlmICh1c2VySW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1
c2VySW5mb0RhdGEgPSBbTlNKU09OU2VyaWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGlj
dGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0
aW5nT3B0aW9ucykwIGVycm9yOm5pbF07CisgICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7
CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBh
bGxvY10gaW5pdFdpdGhEYXRhOnVzZXJJbmZvRGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNv
ZGluZ107CisgICAgICAgICAgICAgICAgaWYgKHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAg
ICAgICAgICBpbmZvID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlz
Om5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIHVzZXJJbmZvU3RyaW5nLCBA
InVzZXJJbmZvIiwgbmlsXTsKKyAgICAgICAgICAgICAgICBbdXNlckluZm9TdHJpbmcgcmVsZWFz
ZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbmZvKQorICAgICAg
ICAgICAgaW5mbyA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpu
b3RpZmljYXRpb25OYW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOworICAgICAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAi
QVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uMWYw
ZWNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICsz
Myw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJv
bVZpc2libGVQb3NpdGlvbnM6KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpc3RhcnRQ
b3NpdGlvbiBlbmRQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJillbmRQ
b3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFdlYkNv
cmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5tbQppbmRleCBmYWNkMzNiLi44MjExMDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTEzNiwxNCArMTEzNiwxNCBAQCBzdGF0aWMgTlNTdHJp
bmcqIG5zU3RyaW5nRm9yUmVwbGFjZWROb2RlKE5vZGUqIHJlcGxhY2VkTm9kZSkKICAgICByZXR1
cm4gW2F0dHJTdHJpbmcgYXV0b3JlbGVhc2VdOwogfQogCi1zdGF0aWMgaWQgdGV4dE1hcmtlclJh
bmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhPYmplY3RDYWNoZSAqY2FjaGUsIFZpc2libGVQb3Np
dGlvbiBzdGFydFBvc2l0aW9uLCBWaXNpYmxlUG9zaXRpb24gZW5kUG9zaXRpb24pCitzdGF0aWMg
aWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhPYmplY3RDYWNoZSAqY2Fj
aGUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBlbmRQb3NpdGlvbikKIHsKICAgICBpZCBzdGFydFRleHRNYXJrZXIgPSB0ZXh0TWFy
a2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBzdGFydFBvc2l0aW9uKTsKICAgICBpZCBlbmRU
ZXh0TWFya2VyID0gdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbihjYWNoZSwgZW5kUG9zaXRp
b24pOwogICAgIHJldHVybiB0ZXh0TWFya2VyUmFuZ2VGcm9tTWFya2VycyhzdGFydFRleHRNYXJr
ZXIsIGVuZFRleHRNYXJrZXIpOwogfQogCi0tIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJs
ZVBvc2l0aW9uczooVmlzaWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFZp
c2libGVQb3NpdGlvbillbmRQb3NpdGlvbgorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3Np
dGlvbjooY29uc3QgVmlzaWJsZVBvc2l0aW9uJillbmRQb3NpdGlvbgogewogICAgIHJldHVybiB0
ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhtX29iamVjdC0+YXhPYmplY3RDYWNo
ZSgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLmNlNzRmMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0zMCwxMiAr
MzAsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQ
bGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1B
cHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJO
b2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKLSAgICA6IFNpbXBsZUVkaXRDb21t
YW5kKHBhcmVudC0+ZG9jdW1lbnQoKSkKK0FwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBu
b2RlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChw
YXJlbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3BhcmVudChwYXJlbnQp
CiAgICAgLCBtX25vZGUobm9kZSkKIHsKQEAgLTQ2LDE1ICs0NywyMyBAQCBBcHBlbmROb2RlQ29t
bWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQs
IFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFt
X3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5n
ZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsKLSAgICBTdHJpbmcgbm9k
ZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAg
ICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAo
bm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYgKHRleHQgPT0gIlxuIikKICAgICAgIHJldHVybjsK
IAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsK
KyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRv
d25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2Rl
LCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9k
ZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2
b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDE4ICs3MywxNiBAQCB2b2lk
IEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGls
ZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0
ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQo
KSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFw
cGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBh
Y3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJy
ZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNl
bmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVk
aXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4u
Zjc4Mjk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApA
QCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXBwZW5kTm9k
ZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlKQorICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9k
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwZW5kTm9kZUNvbW1hbmQocGFyZW50LCBu
b2RlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIEFwcGVuZE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+
KTsKKyAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVu
dCwgUGFzc1JlZlB0cjxOb2RlPiwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9B
cHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggN2M0
MThjMi4uY2FiODgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0
eWxlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5jcHAKQEAgLTEyMyw5ICsxMjMsOCBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVN0
eWxlU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogfQogCiBBcHBseVN0eWxlQ29tbWFu
ZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5
bGUqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxldmVsIHByb3Bl
cnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHls
ZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAg
ICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlMZXZlbCkKICAgICAsIG1fc3RhcnQoZW5kaW5n
U2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxl
Y3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAtMTM2LDkgKzEzNSw4IEBAIEFwcGx5U3R5bGVD
b21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRp
bmdTdHlsZSogc3R5CiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0
aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
LCBFUHJvcGVydHlMZXZlbCBwcm9wZXJ0eUxldmVsKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1h
bmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGlu
Z0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0Fj
dGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKHByb3BlcnR5TGV2ZWwp
CiAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAgICwgbV9lbmQoZW5kKQpAQCAtMTQ5LDkgKzE0Nyw4
IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5CiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBs
eVN0eWxlQ29tbWFuZChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25s
eSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZWxlbWVudC0+ZG9jdW1lbnQoKSkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGVsZW1lbnQt
PmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKEVkaXRpbmdTdHlsZTo6
Y3JlYXRlKCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1f
cHJvcGVydHlMZXZlbChQcm9wZXJ0eURlZmF1bHQpCiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVj
dGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQogICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9u
KCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTE2Myw5ICsxNjAsOCBAQCBBcHBseVN0eWxlQ29tbWFu
ZDo6QXBwbHlTdHlsZUNvbW1hbmQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBib29sIHJl
bW92ZU9ubAogfQogCiBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBJc0lubGluZUVsZW1lbnRU
b1JlbW92ZUZ1bmN0aW9uIGlzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24sIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQor
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAg
LCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0Fj
dGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChQcm9wZXJ0eURlZmF1bHQpCiAgICAgLCBtX3N0
YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQogICAgICwgbV9lbmQo
ZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTIyNiwxMSArMjIyLDYgQEAg
dm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgfQogfQogCi1FZGl0QWN0aW9u
IEFwcGx5U3R5bGVDb21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9lZGl0aW5nQWN0aW9uOwotfQotCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUJsb2Nr
U3R5bGUoRWRpdGluZ1N0eWxlICpzdHlsZSkKIHsKICAgICAvLyB1cGRhdGUgZG9jdW1lbnQgbGF5
b3V0IG9uY2UgYmVmb3JlIHJlbW92aW5nIHN0eWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9B
cHBseVN0eWxlQ29tbWFuZC5oCmluZGV4IGU5OWUzNmEuLjlkYmU4NzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKQEAgLTcyLDcgKzcyLDYgQEAgcHJpdmF0
ZToKICAgICBBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYsIGNvbnN0IEVkaXRpbmdTdHlsZSos
IGJvb2wgKCppc0lubGluZUVsZW1lbnRUb1JlbW92ZSkoY29uc3QgRWxlbWVudCopLCBFZGl0QWN0
aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIHN0
eWxlLXJlbW92YWwgaGVscGVycwogICAgIGJvb2wgaXNTdHlsZWRJbmxpbmVFbGVtZW50VG9SZW1v
dmUoRWxlbWVudCopIGNvbnN0OwpAQCAtMTIyLDcgKzEyMSw2IEBAIHByaXZhdGU6CiAgICAgUG9z
aXRpb24gZW5kUG9zaXRpb24oKTsKIAogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1fc3R5bGU7
Ci0gICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb247CiAgICAgRVByb3BlcnR5TGV2ZWwgbV9w
cm9wZXJ0eUxldmVsOwogICAgIFBvc2l0aW9uIG1fc3RhcnQ7CiAgICAgUG9zaXRpb24gbV9lbmQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmlu
ZGV4IDg0NjFlZTcuLmI1NDFlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC01OCw2ICs1OCw4IEBACiAjaW5jbHVkZSAiUmVuZGVy
QmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVk
RG9jdW1lbnRNYXJrZXIuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAj
aW5jbHVkZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTE2
MiwxMyArMTY0LDMxIEBAIHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYVGV4dEVkaXRUeXBl
IEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSgpIGNvbnN0Cit7CisgICAg
c3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25DdXQ6CisgICAg
Y2FzZSBFZGl0QWN0aW9uRGVsZXRlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNl
cnQ7CisgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbklu
c2VydDoKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBp
bmc6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0ZTsKKyAgICAvLyBJbmNsdWRl
IGRlZmF1bHQgY2FzZSBmb3IgdW5oYW5kbGVkIEVkaXRBY3Rpb24gY2FzZXMuCisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25v
d247Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1h
bmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+YXBwbHkoKTsKIH0KIAotQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6
IEVkaXRDb21tYW5kKGRvY3VtZW50KQorQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVk
aXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQor
ICAgIDogRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiB7CiB9CiAKQEAgLTE4
Nyw2ICsyMDcsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSgpCiAgICAgICAg
IGNhc2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJlY3Rpb246CiAgICAgICAgIGNhc2UgRWRpdEFj
dGlvbkN1dDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ6CisgICAgICAgIGNh
c2UgRWRpdEFjdGlvbkluc2VydDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgogICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CiAgICAgICAgICAgICBicmVhazsKQEAgLTI5
Niw3ICszMTcsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVTdHlsZWRFbGVt
ZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVs
ZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKIHsKLSAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVh
dGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRv
ZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdB
Y3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJl
YWsoKQpAQCAtMzIyLDcgKzM0Myw3IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVt
b3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVm
UHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCBy
ZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2Vy
dENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVk
aXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRO
b2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiBy
ZWZDaGlsZCkKQEAgLTM3Myw3ICszOTQsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpp
bnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgY29uc3QgUG9zaQogdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5kTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50KQogewogICAgIEFTU0VSVChjYW5IYXZl
Q2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQoKSkpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlKSk7CisgICAgYXBw
bHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5v
ZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpy
ZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9t
LCB1bnNpZ25lZCB0bykKQEAgLTM5Nyw3ICs0MTgsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVu
dAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
OjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRp
bmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2Rl
QW5kUHJ1bmVBbmNlc3RvcnMoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQpAQCAtNTI1LDIwICs1NDYs
MjEgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYg
dGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6
Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAg
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCwg
ZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNv
bW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwg
b2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRl
eHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5k
VG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNl
dCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRl
Q29tbWFuZCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUoV1RGOjpt
b3ZlKG5vZGUpLCBvZmZzZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShk
ZWxldGVDb21tYW5kKTsKICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAg
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNy
ZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBhcHBseUNvbW1h
bmRUb0NvbXBvc2l0ZShSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKFdU
Rjo6bW92ZShub2RlKSwgb2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRl
bGV0ZWRUZXh0KCksIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVF
ZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQp
CkBAIC0xMjg5LDcgKzEzMTEsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFy
YWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJhZ3JhcAogICAgIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpDb21tYW5kT3B0aW9ucyBvcHRpb25zID0gUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
Ok1vdmluZ1BhcmFncmFwaDsKICAgICBpZiAoIXByZXNlcnZlU3R5bGUpCiAgICAgICAgIG9wdGlv
bnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5bGU7Ci0gICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgp
LCBmcmFnbWVudCwgb3B0aW9ucykpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgV1RGOjptb3ZlKGZyYWdtZW50
KSwgb3B0aW9ucykpOwogCiAgICAgZnJhbWUoKS5lZGl0b3IoKS5tYXJrTWlzc3BlbGxpbmdzQW5k
QmFkR3JhbW1hcihlbmRpbmdTZWxlY3Rpb24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi43MDQ0YzQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC01OSw2ICs1
OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNl
dDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgQVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBl
KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVu
dCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCkBAIC04OSw3ICs5
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0Qmxpbmtpbmco
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ29t
cG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0
Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwog
CiAgICAgLy8KICAgICAvLyBzdWdhcnktc3dlZXQgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGhl
bHAgY3JlYXRlIGFuZCBhcHBseSBlZGl0IGNvbW1hbmRzIGluIGNvbXBvc2l0ZSBjb21tYW5kcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAKaW5kZXggMmVhOTZkNS4uZjkzY2MyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw4
ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChu
b2RlLT5kb2N1bWVudCgpKQorRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29t
bWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9ub2RlKG5vZGUp
CiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAgLCBtX2NvdW50KGNvdW50KQpAQCAtNTgsOCAr
NTgsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFs
bHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1
bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRD
aGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxl
dGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2Uo
bV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9v
ZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTczLDggKzczLDggQEAgdm9pZCBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1f
b2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAg
Y2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RD
YWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQs
IFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZu
ZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li40ZTYxOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzQsMTQgKzM0LDE3IEBAIGNsYXNzIFRleHQ7CiAKIGNsYXNzIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQ
dHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICBzdGF0
aWMgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RG
Ojptb3ZlKG5vZGUpLCBvZmZzZXQsIGNvdW50LCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1w
cml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0Piwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CisgICAgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChS
ZWZQdHI8VGV4dD4mJiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRWRpdEFjdGlv
bik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCkBAIC01NSw2ICs1OCwx
MSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3RleHQ7CiB9OwogCitpbmxpbmUgY29uc3QgU3Ry
aW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0
dXJuIG1fdGV4dDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi5lYjNhNWYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAg
LTcyLDggKzcyLDggQEAgc3RhdGljIGJvb2wgaXNUYWJsZVJvd0VtcHR5KE5vZGUqIHJvdykKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVy
Z2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxF
bGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5k
KGRvY3VtZW50KQorRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NB
ZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywg
Ym9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29t
cG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX2hhc1Nl
bGVjdGlvblRvRGVsZXRlKGZhbHNlKQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkK
ICAgICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpA
QCAtOTAsOCArOTAsOCBAQCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25D
b21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbAogewogfQogCi1EZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29s
IHNhbml0aXplTWFya3VwKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0
YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgpKQorRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBs
YWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoc2Vs
ZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQog
ICAgICwgbV9oYXNTZWxlY3Rpb25Ub0RlbGV0ZSh0cnVlKQogICAgICwgbV9zbWFydERlbGV0ZShz
bWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlKQpAQCAtODg0LDE0ICs4ODQsNiBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OmRvQXBwbHkoKQogICAgIGNsZWFyVHJhbnNpZW50U3RhdGUoKTsKIH0KIAotRWRpdEFjdGlv
biBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKLXsKLSAgICAv
LyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUg
dXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhl
cmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBz
bwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAg
ICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKLX0KLQogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24n
dCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAg
Rm9yIGV4YW1wbGUsCiAvLyB0eXBlIGEgY2hhcmFjdGVyLCBCb2xkLCB0aGVuIGRlbGV0ZSB0aGUg
Y2hhcmFjdGVyIGFuZCBzdGFydCB0eXBpbmcuICBUaGUgQm9sZCB0eXBpbmcgc3R5bGUgc2hvdWxk
bid0CiAvLyBzdGljayBhcm91bmQuICBEZWxldGlvbiBzaG91bGQgcHJlc2VydmUgYSB0eXBpbmcg
c3R5bGUgdGhhdCAqaXQqIHNldHMsIGhvd2V2ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGU1YmY1MWQuLjBhOWI5Y2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0z
NCwyMyArMzQsMjIgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFzcyBEZWxldGVTZWxlY3Rp
b25Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsgCiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVm
PERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
c21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwg
Ym9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFs
c2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24g
PSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tz
QWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVN
YXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxh
Y2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rp
b24pKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVh
dGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0g
ZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9
IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0
aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+
IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxl
dGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBs
YWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVs
ZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2Vs
ZWN0aW9uLCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwog
ICAgIH0KIAogcHJvdGVjdGVkOgotICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQm
LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVw
bGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7
CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUs
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwLCBFZGl0QWN0aW9uID0gRWRpdEFj
dGlvbkRlbGV0ZSk7CiAKIHByaXZhdGU6Ci0gICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBi
b29sIHNhbml0aXplTWFya3VwKTsKKyAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJE
ZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wg
c2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwogICAgIAog
ICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0Li45MDhm
ZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAg
LTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRo
b3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxE
aWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0
YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRp
dmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNl
cnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4
dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJr
ZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZlc0luTGluZSkpOworICAgIFJlZlB0cjxJbnNl
cnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFy
a2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFy
dCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRp
dmVzSW5MaW5lKSwgRWRpdEFjdGlvbkRpY3RhdGlvbik7CiAgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCkBAIC0xMjQsNyArMTI0LDcg
QEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAg
IGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRl
KGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlvbkRpY3RhdGlvbikpOwogfQogCiB2
b2lkIERpY3RhdGlvbkNvbW1hbmQ6OmNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdl
KHNpemVfdCByYW5nZVN0YXJ0LCBzaXplX3QgcmFuZ2VMZW5ndGgsIFZlY3RvcjxEaWN0YXRpb25B
bHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdEFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgK
aW5kZXggNjM3ZDFlYi4uNmVmMzUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0QWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgK
QEAgLTI5LDYgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB0eXBlZGVmIGVudW0g
ewogICAgICAgICBFZGl0QWN0aW9uVW5zcGVjaWZpZWQsCisgICAgICAgIEVkaXRBY3Rpb25JbnNl
cnQsCiAgICAgICAgIEVkaXRBY3Rpb25TZXRDb2xvciwKICAgICAgICAgRWRpdEFjdGlvblNldEJh
Y2tncm91bmRDb2xvciwKICAgICAgICAgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi42NDc4YWU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMzcsOSArMzgsMTAgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1FZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50KQorRWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVu
dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
ICAgICAsIG1fcGFyZW50KDApCisgICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikK
IHsKICAgICBBU1NFUlQoZG9jdW1lbnQuZnJhbWUoKSk7CiAgICAgc2V0U3RhcnRpbmdTZWxlY3Rp
b24obV9kb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOwpAQCAtNjcs
NyArNjksNyBAQCBGcmFtZSYgRWRpdENvbW1hbmQ6OmZyYW1lKCkKIAogRWRpdEFjdGlvbiBFZGl0
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25V
bnNwZWNpZmllZDsKKyAgICByZXR1cm4gbV9lZGl0aW5nQWN0aW9uOwogfQogCiBzdGF0aWMgaW5s
aW5lIEVkaXRDb21tYW5kQ29tcG9zaXRpb24qIGNvbXBvc2l0aW9uSWZQb3NzaWJsZShFZGl0Q29t
bWFuZCogY29tbWFuZCkKQEAgLTExMiw2ICsxMTQsNTAgQEAgdm9pZCBFZGl0Q29tbWFuZDo6c2V0
UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKiBwYXJlbnQpCiAgICAgfQogfQogCitBWFRleHRF
ZGl0VHlwZSBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNo
IChlZGl0aW5nQWN0aW9uKCkpIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25DdXQ6CisgICAgICAgIHJl
dHVybiBBWFRleHRFZGl0VHlwZUN1dDsKKyAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6CisgICAg
ICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0ZTsKKyAgICBjYXNlIEVkaXRBY3Rpb25EaWN0
YXRpb246CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjsKKyAgICBjYXNl
IEVkaXRBY3Rpb25JbnNlcnQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsK
KyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBl
UGFzdGU7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gQVhUZXh0
RWRpdFR5cGVUeXBpbmc7CisgICAgLy8gSW5jbHVkZSBkZWZhdWx0IGNhc2UgZm9yIHVuaGFuZGxl
ZCBFZGl0QWN0aW9uIGNhc2VzLgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWFRleHRFZGl0VHlwZSBF
ZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGFwcGx5
RWRpdFR5cGUoKSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBy
ZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxl
dGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVk
aXRUeXBlSW5zZXJ0OworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBB
WFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRU
eXBlRGVsZXRlOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQor
CitTaW1wbGVFZGl0Q29tbWFuZDo6U2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCwg
ZWRpdGluZ0FjdGlvbikKK3sKK30KKwogdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6ZG9SZWFwcGx5
KCkKIHsKICAgICBkb0FwcGx5KCk7CkBAIC0xMjUsNCArMTcxLDE0IEBAIHZvaWQgU2ltcGxlRWRp
dENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8
Tm9kZSo+JiBuCiB9CiAjZW5kaWYKIAordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FY
T2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2Fj
aGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9z
aXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uMWE5OTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAj
ZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24u
aCIKIApAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFBhcmVudChDb21w
b3NpdGVFZGl0Q29tbWFuZCopOwogCi0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24oKSBjb25zdDsKKyAgICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKIAogICAg
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9zdGFydGluZ1NlbGVjdGlvbjsgfQogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVu
ZGluZ1NlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kaW5nU2VsZWN0aW9uOyB9CkBAIC01
OSw4ICs2MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsK
IAorICAgIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBjb25zdDsKKyAgICBBWFRleHRF
ZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBjb25zdDsKKwogcHJvdGVjdGVkOgotICAgIGV4cGxp
Y2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7CisgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9j
dW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKICAgICBFZGl0Q29t
bWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJik7CiAKICAgICBGcmFtZSYgZnJhbWUoKTsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0
ZToKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3RhcnRpbmdTZWxlY3Rpb247CiAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsKICAgICBDb21wb3NpdGVFZGl0Q29tbWFuZCog
bV9wYXJlbnQ7CisgICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb24geyBFZGl0QWN0aW9uVW5z
cGVjaWZpZWQgfTsKIH07CiAKIGVudW0gU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgewpAQCAtOTEsMTIgKzk2LDE0IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0g
ICAgZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRD
b21tYW5kKGRvY3VtZW50KSB7IH0KKyAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1
bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAjaWZuZGVmIE5E
RUJVRwogICAgIHZvaWQgYWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUq
PiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0
Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uMjNiYzZiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtNTksNiAr
NTksOCBAQAogI2luY2x1ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQ
b3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNp
bmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5k
LmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAwZmQyZjkxLi5hNzcyODZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0yMDgsMTIgKzIwOCwxMiBAQCBib29sIEVk
aXRvcjo6aGFuZGxlVGV4dEV2ZW50KFRleHRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBpZiAo
Y2xpZW50KCktPnBlcmZvcm1zVHdvU3RlcFBhc3RlKGV2ZW50LT5wYXN0aW5nRnJhZ21lbnQoKSkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICAgICAgICAgIHJlcGxh
Y2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwg
ZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBl
dmVudC0+bWFpbEJsb2NrcXVvdGVIYW5kbGluZygpKTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxl
Y3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQt
PnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBFZGl0QWN0
aW9uUGFzdGUsIGV2ZW50LT5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOwogI2lmIFBMQVRGT1JN
KElPUykKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGVsc2UgCi0gICAgICAgICAgICByZXBs
YWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRT
bWFydFJlcGxhY2UoKSk7CisgICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZl
bnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlv
blBhc3RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zNzQsMTIgKzM3NCwx
MiBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUp
Cit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnRE
ZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxl
Y3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOwor
ICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQo
KSwgc21hcnREZWxldGUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbikp
OwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTUyMCw3ICs1MjAsNyBAQCBib29s
IEVkaXRvcjo6c2hvdWxkSW5zZXJ0RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCwgUGFzc1JlZgogICAgIHJldHVybiBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0Tm9k
ZShmcmFnbWVudC5nZXQoKSwgcmVwbGFjaW5nRE9NUmFuZ2UuZ2V0KCksIGdpdmVuQWN0aW9uKTsK
IH0KIAotdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9v
bCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBt
YWlsQmxvY2txdW90ZUhhbmRsaW5nKQordm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxl
Y3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3Rl
SGFuZGxpbmcpCiB7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNl
bGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb24uaXNOb25lKCkgfHwgIXNl
bGVjdGlvbi5pc0NvbnRlbnRFZGl0YWJsZSgpIHx8ICFmcmFnbWVudCkKQEAgLTUzNiw3ICs1MzYs
NyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIGlmIChtYWlsQmxvY2txdW90ZUhhbmRs
aW5nID09IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUpCiAgICAgICAg
IG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Oklnbm9yZU1haWxCbG9ja3F1b3Rl
OwogCi0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9j
dW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIEVkaXRBY3Rpb25QYXN0ZSkpOworICAgIGFwcGx5
Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdt
ZW50LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJF
ZGl0aW5nT3BlcmF0aW9uKCk7CiAKICAgICBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpOwpAQCAtNTUwLDEzICs1NTAsMTMgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VT
ZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCwKICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1
ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVT
cGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0Jh
dGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVjaykpOwogfQogCi12b2lkIEVkaXRvcjo6cmVw
bGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBs
YWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9v
bCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBSZWZQdHI8
UmFuZ2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOwogICAgIGlmICghcmFuZ2UpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21l
bnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNl
LCB0cnVlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KGNyZWF0ZUZyYWdtZW50
RnJvbVRleHQoKnJhbmdlLCB0ZXh0KSwgc2VsZWN0UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwg
dHJ1ZSwgZWRpdGluZ0FjdGlvbik7CiB9CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6c2Vs
ZWN0ZWRSYW5nZSgpCkBAIC05OTgsNyArOTk4LDggQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0
aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0
IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBk
byB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlv
bjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQo
KSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNl
bGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIAorICAgIGNo
YW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+YXBw
bHlFZGl0VHlwZSgpKTsKICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMo
Y29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+
ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZT
Y2hlZHVsZWQoKTsKQEAgLTEwMjksNyArMTAzMCw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRF
ZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlm
eVRleHRGcm9tQ29udHJvbHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21k
LT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24oY21kLT5zdGFydGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rp
b25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1Nl
bGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNt
ZC0+dW5hcHBseUVkaXRUeXBlKCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdl
ZEV2ZW50cyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jv
b3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVk
KCk7CkBAIC0xMjYzLDcgKzEyNjQsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShF
ZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bh
c3RlYm9hcmQoKTsKICAgICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAg
ICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwg
RWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yMjM1LDcgKzIy
MzYsNyBAQCB2b2lkIEVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmd29yZFN0YXJ0LAogCiAgICAgICAgIGlmICghbV9mcmFtZS5l
ZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIG1pc3NwZWxsaW5n
UmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0
b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgbV9mcmFtZS5lZGl0b3Io
KS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZh
bHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKIAogICAgICAgICAvLyBSZXNldCB0aGUgY2hhcmV0IG9u
ZSBjaGFyYWN0ZXIgZnVydGhlci4KICAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5tb3ZlVG8o
bV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5lbmQoKSk7CkBAIC0yNTgxLDcgKzI1ODIs
NyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcoY29uc3QgU3RyaW5n
JiByZXBsYWNlZFN0cmluZykKICAgICAKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIt
PnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VSZXZlcnNlZChyZXBsYWNlZFN0cmluZywgc2Vs
ZWN0aW9uKTsKICAgICBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGggcGFyYWdyYXBoKHNlbGVjdGlvbik7
Ci0gICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFs
c2UpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChyZXBsYWNlZFN0cmluZywgZmFsc2Us
IGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKICAgICBSZWZQdHI8UmFuZ2U+IGNoYW5nZWRSYW5n
ZSA9IHBhcmFncmFwaC5zdWJyYW5nZShwYXJhZ3JhcGguY2hlY2tpbmdTdGFydCgpLCByZXBsYWNl
ZFN0cmluZy5sZW5ndGgoKSk7CiAgICAgY2hhbmdlZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5k
b2N1bWVudCgpLm1hcmtlcnMoKS5hZGRNYXJrZXIoY2hhbmdlZFJhbmdlLmdldCgpLCBEb2N1bWVu
dE1hcmtlcjo6UmVwbGFjZW1lbnQsIFN0cmluZygpKTsKICAgICBtX2FsdGVybmF0aXZlVGV4dENv
bnRyb2xsZXItPm1hcmtSZXZlcnNlZChjaGFuZ2VkUmFuZ2UuZ2V0KCkpOwpAQCAtMjgxNSw3ICsy
ODE2LDcgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9zZSgpCiAgICAgLy8gSW5zZXJ0IHRoZSB0cmFu
c3Bvc2VkIGNoYXJhY3RlcnMuCiAgICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KHRyYW5zcG9zZWQs
IHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkpCiAgICAgICAgIHJldHVybjsK
LSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQodHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlKTsK
KyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQodHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlLCBF
ZGl0QWN0aW9uSW5zZXJ0KTsKIH0KIAogdm9pZCBFZGl0b3I6OmFkZFRvS2lsbFJpbmcoUmFuZ2Uq
IHJhbmdlLCBib29sIHByZXBlbmQpCkBAIC0yODQ3LDcgKzI4NDgsNyBAQCB2b2lkIEVkaXRvcjo6
ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25v
cmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2Vs
ZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVy
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0
aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhl
biBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0
KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NTks
NyArMjg2MCw3IEBAIHZvaWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3By
b2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4g
UmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wg
c2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFt
ZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdl
RE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBl
ZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBh
ZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxl
IHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFy
a2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggYTU3ZDQyYS4uMTMxM2RiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0
aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBp
bmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNt
YXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVs
ZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24g
PSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JN
KElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygp
OwpAQCAtMzgyLDggKzM4Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHREaWRDaGFuZ2VJblRl
eHRBcmVhKEVsZW1lbnQqKTsKICAgICBXRUJDT1JFX0VYUE9SVCBXcml0aW5nRGlyZWN0aW9uIGJh
c2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFj
ZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVv
dGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc2VsZWN0UmVwbGFj
ZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxh
Y2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgYm9v
bCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwg
RWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBN
YWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBz
ZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gPSBFZGl0QWN0
aW9uSW5zZXJ0KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNlbGVjdGlvblN0YXJ0SGFzTWFy
a2VyRm9yKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlLCBpbnQgZnJvbSwgaW50IGxlbmd0aCkg
Y29uc3Q7CiAgICAgdm9pZCB1cGRhdGVNYXJrZXJzRm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhi
b29sIG9ubHlIYW5kbGVXb3Jkc0NvbnRhaW5pbmdTZWxlY3Rpb24pOwogICAgIHZvaWQgZGVsZXRl
ZEF1dG9jb3JyZWN0aW9uQXRQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFN0cmluZyYg
b3JpZ2luYWxTdHJpbmcpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBT
ZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9u
IH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlv
bk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
T3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
T3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5
QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCA1MTFjYjAy
Li43YTgxNjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAg
LTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShG
cmFtZSYgZnJhbWUsIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLAogc3RhdGljIGJvb2wgZXhl
Y3V0ZUluc2VydEZyYWdtZW50KEZyYW1lJiBmcmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudCkKIHsKICAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgYXBw
bHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50
KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVk
aXRBY3Rpb25VbnNwZWNpZmllZCkpOworICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBmcmFnbWVudCwgUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBFZGl0QWN0aW9uSW5zZXJ0KSk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggNDQwZjM2Ni4uNWRjYjE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEzOSw3ICsxNDAsNyBAQCBFbGVtZW50KiBG
cmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29u
c3QKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGln
bikKIHsKICAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxl
bnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5p
c0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2Vy
VHJpZ2dlcmVkKSwgYWxpZ24pOworICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1
c2VyVHJpZ2dlcmVkKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2
b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJl
ZCkKQEAgLTE3MCw3ICsxNzEsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZh
bGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFzZSwgY29uc3QgUG9zaXRpbwogICAgIFZpc2li
bGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFs
aWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5ld1NlbGVjdGlvbi5zZXRJc0RpcmVjdGlvbmFs
KHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwg
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05v
dFNldEZvY3VzKSk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5r
bm93biB9KTsKKyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpLCBpbnRl
bnQpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xsZXI6OnNldENhcmV0UG9zaXRpb24oY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKQEAgLTI1NCw3ICsyNTYsMTMgQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8
ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlv
bnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFu
dWxhcml0eSk7CisgICAgCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpICYmIG5ld1NlbGVjdGlv
bi5pc0NhcmV0KCkpCisgICAgICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5VW5rbm93biB9KTsKKyAgICBlbHNlCisgICAgICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9u
U2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlv
CiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5i
YXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rp
b25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBp
ZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAh
PSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJh
bWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWdu
LCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQn
cyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFt
ZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVj
dEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0
aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFt
ZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91
ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0
U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBv
cHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkp
CiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxl
Y3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVw
ZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVT
ZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyAr
MzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQog
ICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9u
Ojp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAg
ICBpZiAoIW1fcGVuZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgw
LDcgKzM4OCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlv
bigpCiAgICAgICAgIHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAg
ICAgfQogCi0gICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAg
IG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIAogICAgIGlm
IChhdXRvKiBjbGllbnQgPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKSkKICAgICAgICAgY2xp
ZW50LT5kaWRDaGFuZ2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsKQEAgLTEwMjEsNyArMTAy
OSw3NSBAQCBWaXNpYmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3
YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShU
ZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09
IExpbmVCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFu
dWxhcml0eSA9PSBEb2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgRnJhbWVTZWxlY3Rpb246OnRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24g
YWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSkKK3sKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRl
ciA9PSBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5
cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBmbGlwID0g
aXNSYW5nZSgpICYmIGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMOworICAgIH0gZWxzZQor
ICAgICAgICBpbnRlbnQudHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVu
ZDsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxh
cml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRH
cmFudWxhcml0eToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50
ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50
ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0g
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAg
ICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVBhcmFncmFwaDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFy
aXR5OgorICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlv
bi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNo
IChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNh
c2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAg
Y2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRl
bmNlQm91bmRhcnk6CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhC
b3VuZGFyeToKKyAgICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0g
dHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Cisg
ICAgY2FzZSBEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAg
ICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9u
ID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVj
dGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMg
OiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYg
KGJvdW5kYXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlw
ID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
QmVnaW5uaW5nOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRp
cmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1
cm4gaW50ZW50OworfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24g
YWx0ZXIsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE1
MywxMSBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYm
IGFsdGVyID09IEFsdGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3Np
dGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGUqIGNhY2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudCh0ZXh0U2Vs
ZWN0aW9uSW50ZW50KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAg
ICAgLy8gU29tZSBvZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2Fs
QXJyb3dOYXZpZ2F0aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBp
dCwgc28gc2F2ZSBpdCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRo
ZSBTVEFSVCBwb3NpdGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwg
aXQgd291bGQgYmUKQEAgLTE3MTAsOCArMTc5MSwxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpz
ZWxlY3RBbGwoKQogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAg
IGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVT
ZWxlY3RFdmVudCk7CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24p
KSB7CisgICAgICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIH0p
OworICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBh
ZmZpbml0eSwgYm9vbCBjbG9zZVR5cGluZykKQEAgLTI0MjMsNyArMjUwNiw3IEBAIFZpc2libGVT
ZWxlY3Rpb24gRnJhbWVTZWxlY3Rpb246OndvcmRTZWxlY3Rpb25Db250YWluaW5nQ2FyZXRTZWxl
Y3Rpb24oY29uc3QgVmlzCiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IGZy
YW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpOwogICAgIG5ld1NlbGVjdGlvbi5leHBhbmRVc2luZ0dy
YW51bGFyaXR5KFdvcmRHcmFudWxhcml0eSk7Ci0gICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJz
b3JPblNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKKyAgICBm
cmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOwogCiAgICAgUG9zaXRp
b24gc3RhcnRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgUG9z
aXRpb24gZW5kUG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmVuZCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCAwZTRlMjhlLi45NTdiNWQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
aWZuZGVmIEZyYW1lU2VsZWN0aW9uX2gKICNkZWZpbmUgRnJhbWVTZWxlY3Rpb25faAogCisjaW5j
bHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0aW5nU3R5bGUu
aCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgpAQCAtMTQ0
LDcgKzE0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNv
bnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBib29sIHNlbGVjdGlvbkhhc0RpcmVjdGlv
biwgYm9vbCBzaG91bGRTZXRGb2N1cyk7CiAKICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rp
b25PcHRpb25zID0gZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQ3Vyc29yQWxpZ25PblNj
cm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hh
cmFjdGVyR3JhbnVsYXJpdHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9u
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zID0gZGVmYXVsdFNl
dFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCgpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9s
bElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5LCBi
b29sIGNsb3NlVHlwaW5nKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEFsbCgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKQEAgLTI3Miw3ICsyNzMsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGVudW0gRVBvc2l0aW9uVHlwZSB7IFNUQVJULCBFTkQsIEJBU0Us
IEVYVEVOVCB9OwogCi0gICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB2
b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIHZvaWQgdXBkYXRlRGF0YURldGVjdG9yc0Zv
clNlbGVjdGlvbigpOwogCiAgICAgYm9vbCBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBTZXRTZWxlY3Rpb25PcHRpb25zLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMjk3LDEwICsyOTgsMTEgQEAg
cHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgbGluZURpcmVjdGlvblBvaW50Rm9yQmxvY2tEaXJl
Y3Rpb25OYXZpZ2F0aW9uKEVQb3NpdGlvblR5cGUpOwogCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQgdGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiwgU2VsZWN0aW9uRGlyZWN0aW9u
LCBUZXh0R3JhbnVsYXJpdHkpOwogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICB2b2lkIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgPSBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKICNlbHNlCi0gICAgdm9pZCBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFNlbGVjdGlvbkludGVudCkgeyB9CiAjZW5kaWYK
IAogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uQ2FjaGVzSWZTZWxlY3Rpb25Jc0luc2lkZVRleHRG
b3JtQ29udHJvbChFVXNlclRyaWdnZXJlZCk7CkBAIC0zNjcsNyArMzY5LDcgQEAgaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKIAogI2lmICEoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oRUZMKSkKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi1pbmxpbmUgdm9pZCBGcmFtZVNl
bGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCitpbmxpbmUg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5
NGU3ZS4uOTRhZjA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3Ry
aW5nJiB0ZXh0KQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKK0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRy
PFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3Vt
ZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fb2Zmc2V0
KG9mZnNldCkKICAgICAsIG1fdGV4dCh0ZXh0KQpAQCAtNjYsOCArNjYsOCBAQCB2b2lkIEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRh
KG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAg
ICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmpl
Y3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0
LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lm
IFBMQVRGT1JNKElPUykKQEAgLTg0LDggKzg0LDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIC8vIE5l
ZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAg
aWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7Cisg
ICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRU
eXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQp
KSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwg
SUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMxMGJiYjMuLjA3NjA5MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBA
IC0zNCwxNCArMzQsMTcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICBzdGF0aWMgUmVm
PEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1
bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjpt
b3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZh
dGU6Ci0gICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAgICBjb25zdCBTdHJpbmcm
IGluc2VydGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBv
dmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01Nyw2ICs2MCwxMSBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBtX3RleHQ7CiB9OwogCitpbmxpbmUgY29uc3QgU3RyaW5nJiBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZv
cmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li5jNmIyMjliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjksMTMgKzI5
LDEzIEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsCi0gICAgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1lbnQoKSkK
K0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChSZWZQdHI8
Tm9kZT4mJiBpbnNlcnRDaGlsZCwgUmVmUHRyPE5vZGU+JiYgcmVmQ2hpbGQsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChy
ZWZDaGlsZC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faW5zZXJ0Q2hpbGQo
aW5zZXJ0Q2hpbGQpCiAgICAgLCBtX3JlZkNoaWxkKHJlZkNoaWxkKQogICAgICwgbV9zaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSkKQEAgLTU3LDggKzU3LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQo
KSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQo
KSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVW
YWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkg
eworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0
KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDog
Y3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgp
LCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9z
aXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs2OSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5v
dGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0g
ICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdl
dCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2Rl
VmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
IHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdl
dCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6
IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAg
ICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQo
KSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxl
UG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUo
SUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYyZC4uNWNlYTIxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMzIsMjIg
KzMyLDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxk
VG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKLSAgICAgICAg
U2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4g
Y3JlYXRlKFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9JbnNlcnQsIFJlZlB0cjxOb2RlPiYmIGNoaWxk
VG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0lu
c2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoV1RGOjptb3Zl
KGNoaWxkVG9JbnNlcnQpLCBXVEY6Om1vdmUoY2hpbGRUb0luc2VydEJlZm9yZSksIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1w
cml2YXRlOgotICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hp
bGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoUmVmUHRyPE5vZGU+JiYgY2hpbGRUb0luc2VydCwgUmVmUHRyPE5vZGU+
JiYgY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUsIEVkaXRBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwotICAgIAor
CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNo
U2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgCisKICAgICBSZWZQdHI8Tm9kZT4g
bV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKaW5kZXggMjEyODI5Yy4uN2RkMDE2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNl
cGFyYXRvckNvbW1hbmQuY3BwCkBAIC01OSw4ICs1OSw4IEBAIHN0YXRpYyBFbGVtZW50KiBoaWdo
ZXN0VmlzdWFsbHlFcXVpdmFsZW50RGl2QmVsb3dSb290KEVsZW1lbnQqIHN0YXJ0QmxvY2spCiAg
ICAgcmV0dXJuIGN1ckJsb2NrOwogfQogCi1JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5k
OjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9v
bCBtdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50
b1VucXVvdGVkQXJlYSkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5n
QWN0aW9uKQogICAgICwgbV9tdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQobXVzdFVzZURl
ZmF1bHRQYXJhZ3JhcGhFbGVtZW50KQogICAgICwgbV9wYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90
ZWRBcmVhKHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5o
CmluZGV4IDEyODFmMGMuLjY3MzQxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCkBAIC0zNCwxMyArMzQs
MTMgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFzcyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9v
bCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpCisgICAgc3RhdGljIFJl
ZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVC
bG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChk
b2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9V
bnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSk7Cisg
ICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgdXNlRGVm
YXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJl
YSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCmluZGV4IGJkZDU5YTMuLjU3
MmU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3Bw
CkBAIC0zNywxNiArMzcsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNlcnRUZXh0
Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5j
ZVR5cGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFRleHRD
b21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNl
VHlwZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1h
bmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1f
c2VsZWN0SW5zZXJ0ZWRUZXh0KHNlbGVjdEluc2VydGVkVGV4dCkKICAgICAsIG1fcmViYWxhbmNl
VHlwZShyZWJhbGFuY2VUeXBlKQogewogfQogCi1JbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4
dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQ
dHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKLSAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRl
eHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVm
UHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBl
ZGl0aW5nQWN0aW9uKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3NlbGVjdEluc2VydGVk
VGV4dChmYWxzZSkKICAgICAsIG1fcmViYWxhbmNlVHlwZShSZWJhbGFuY2VMZWFkaW5nQW5kVHJh
aWxpbmdXaGl0ZXNwYWNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5z
ZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuaAppbmRleCBmMTBkMmZlLi42NTI4MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5oCkBAIC00OSwyMCArNDksMjEgQEAgcHVibGljOgogICAgIH07CiAK
ICAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2Us
Ci0gICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdB
bmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgICAgICBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5
cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcywgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNl
cnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmVi
YWxhbmNlVHlwZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8SW5z
ZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3Vw
cGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+
IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1
cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1l
bnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllciwgZWRpdGlu
Z0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKKyAgICBJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5z
ZXJ0aW9uTWFya2VyU3VwcGxpZXI+LCBFZGl0QWN0aW9uKTsKKyAgICBJbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQs
IFJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24pOwogCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJh
bGFuY2VUeXBlKTsKLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKK3ByaXZh
dGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGNlODg0NzguLmQ2ZWNmNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgTW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQog
ICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpDb21tYW5kT3B0aW9ucyBvcHRpb25zID0gUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nOwogICAgIGlmIChtX3NtYXJ0SW5zZXJ0KQogICAgICAg
ICBvcHRpb25zIHw9IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTbWFydFJlcGxhY2U7Ci0gICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBtX2ZyYWdtZW50LCBvcHRpb25zKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBXVEY6Om1v
dmUobV9mcmFnbWVudCksIG9wdGlvbnMpKTsKIH0KIAogRWRpdEFjdGlvbiBNb3ZlU2VsZWN0aW9u
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3Bw
CmluZGV4IDJjMDYzYzAuLmM2Mjk3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCkBA
IC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5k
KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8
Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24p
CiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUoc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmgKaW5kZXggNGI5MTk3NC4uMWIyYzQyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRp
dENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3Vt
ZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+
IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5v
ZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZXhwbGljaXQg
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCiAgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOThhOTlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAg
LTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChXVEY6Om1v
dmUodGV4dCksIG9mZnNldCwgY291bnQsIEVkaXRBY3Rpb25EZWxldGUpCit7Cit9CisKK3ZvaWQg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNzIxMjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisj
aW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIGZpbmFsIDogcHVi
bGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiB0
ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGOjpt
b3ZlKHRleHQpLCBvZmZzZXQsIGNvdW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmLCB1bnNpZ25lZCwgdW5z
aWduZWQpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzQ4YzExCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFj
ZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUlu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RG
Ojptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24pCisgICAgLCBtX2RlbGV0
ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAg
ICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0
RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0
LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNl
cnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVUeXBpbmc6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9u
KG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCB0eXBlLCB0ZXh0LCBw
b3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmUyNjNiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kIGZpbmFsIDogcHVibGljIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShS
ZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0LCBlZGl0
aW5nQWN0aW9uKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgRWRpdEFjdGlvbik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVk
VGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uZmQ1NzQ1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKQEAgLTQ3LDYgKzQ3LDggQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5o
IgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5o
IgpAQCAtMzY4LDE1ICszNzAsMTQgQEAgaW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6Okluc2VydGVkTm9kZXM6OmRpZFJlcGxhY2VOb2RlKE5vZGUqIG5vZGUsIE4KICAgICAgICAg
bV9sYXN0Tm9kZUluc2VydGVkID0gbmV3Tm9kZTsKIH0KIAotUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRp
dEFjdGlvbiBlZGl0QWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQp
CitSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50LCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgQ29tbWFu
ZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQorICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRBY3Rpb24pCiAgICAgLCBtX3NlbGVjdFJlcGxhY2Vt
ZW50KG9wdGlvbnMgJiBTZWxlY3RSZXBsYWNlbWVudCkKICAgICAsIG1fc21hcnRSZXBsYWNlKG9w
dGlvbnMgJiBTbWFydFJlcGxhY2UpCiAgICAgLCBtX21hdGNoU3R5bGUob3B0aW9ucyAmIE1hdGNo
U3R5bGUpCiAgICAgLCBtX2RvY3VtZW50RnJhZ21lbnQoZnJhZ21lbnQpCiAgICAgLCBtX3ByZXZl
bnROZXN0aW5nKG9wdGlvbnMgJiBQcmV2ZW50TmVzdGluZykKICAgICAsIG1fbW92aW5nUGFyYWdy
YXBoKG9wdGlvbnMgJiBNb3ZpbmdQYXJhZ3JhcGgpCi0gICAgLCBtX2VkaXRBY3Rpb24oZWRpdEFj
dGlvbikKICAgICAsIG1fc2FuaXRpemVGcmFnbWVudChvcHRpb25zICYgU2FuaXRpemVGcmFnbWVu
dCkKICAgICAsIG1fc2hvdWxkTWVyZ2VFbmQoZmFsc2UpCiAgICAgLCBtX2lnbm9yZU1haWxCbG9j
a3F1b3RlKG9wdGlvbnMgJiBJZ25vcmVNYWlsQmxvY2txdW90ZSkKQEAgLTE0MjcsMTEgKzE0Mjgs
NiBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjptZXJnZVRleHROb2Rlc0Fyb3VuZFBv
c2l0aW9uKFBvc2l0aW9uJiBwb3NpdGlvbiwgUAogICAgIH0KIH0KIAotRWRpdEFjdGlvbiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fZWRpdEFjdGlvbjsKLX0KLQogLy8gSWYgdGhlIHVzZXIgaXMgaW5zZXJ0aW5nIGEgbGlzdCBp
bnRvIGFuIGV4aXN0aW5nIGxpc3QsIGluc3RlYWQgb2YgbmVzdGluZyB0aGUgbGlzdCwKIC8vIHdl
IHB1dCB0aGUgbGlzdCBpdGVtcyBpbnRvIHRoZSBleGlzdGluZyBsaXN0LgogTm9kZSogUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IHBycExpc3RFbGVtZW50LCBOb2RlKiBpbnNlcnRpb25CbG9jaywgY29uc3QgUG9zaXRpb24m
IGluc2VydFBvcywgSW5zZXJ0ZWROb2RlcyYgaW5zZXJ0ZWROb2RlcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi45
Y2ZkZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oCkBAIC00OCwxNyArNDgsMTYgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiB1bnNp
Z25lZCBDb21tYW5kT3B0aW9uczsKIAotICAgIHN0YXRpYyBSZWY8UmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRBY3Rpb24gYWN0aW9u
ID0gRWRpdEFjdGlvblBhc3RlKQorICAgIHN0YXRpYyBSZWY8UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYm
IGZyYWdtZW50LCBDb21tYW5kT3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rp
b24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIGZyYWdtZW50LCBvcHRpb25zLCBh
Y3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQoZG9jdW1lbnQsIFdURjo6bW92ZShmcmFnbWVudCksIG9wdGlvbnMsIGVkaXRpbmdBY3Rp
b24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9j
dW1lbnQmLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBDb21tYW5kT3B0aW9ucywgRWRp
dEFjdGlvbik7CisgICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4mJiwgQ29tbWFuZE9wdGlvbnMsIEVkaXRBY3Rpb24pOwogCiAgICAg
dmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0Fj
dGlvbigpIGNvbnN0OwotICAgIAorCiAgICAgY2xhc3MgSW5zZXJ0ZWROb2RlcyB7CiAgICAgcHVi
bGljOgogICAgICAgICB2b2lkIHJlc3BvbmRUb05vZGVJbnNlcnRpb24oTm9kZSopOwpAQCAtMTIw
LDcgKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IG1fZG9j
dW1lbnRGcmFnbWVudDsKICAgICBib29sIG1fcHJldmVudE5lc3Rpbmc7CiAgICAgYm9vbCBtX21v
dmluZ1BhcmFncmFwaDsKLSAgICBFZGl0QWN0aW9uIG1fZWRpdEFjdGlvbjsKICAgICBib29sIG1f
c2FuaXRpemVGcmFnbWVudDsKICAgICBib29sIG1fc2hvdWxkTWVyZ2VFbmQ7CiAgICAgYm9vbCBt
X2lnbm9yZU1haWxCbG9ja3F1b3RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKaW5kZXggOTMyOWNkZi4uZjA3NDQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5
cGluZ0NvbW1hbmQuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB2
b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3Ry
aW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHsKICAgICBSZWZQdHI8SW5zZXJ0
VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50
KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKLSAgICAgICAgbV9jb21wb3NpdGlvblR5cGUg
PT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFk
aW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VB
bGxXaGl0ZXNwYWNlcyk7CisgICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3Np
dGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5n
V2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMs
IEVkaXRBY3Rpb25UeXBpbmcpOwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFu
ZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBUeXBpbmdD
b21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3
TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNl
LCBmYWxzZSwgRWRpdEFjdGlvblR5cGluZykpOwogICAgIHR5cGluZ0FkZGVkVG9PcGVuQ29tbWFu
ZChJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uMzMyZTBhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNw
cApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2Uo
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBG
cmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2
b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdl
KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcAppbmRleCBjMTg4MzM4Li4x
MzRiMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25D
b21tYW5kSU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25D
b21tYW5kSU9TLmNwcApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBE
aWN0YXRpb25Db21tYW5kSU9TOjpEaWN0YXRpb25Db21tYW5kSU9TKERvY3VtZW50JiBkb2N1bWVu
dCwgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiYmIGRpY3RhdGlvblBocmFzZXMsIFJldGFpblB0cjxp
ZD4gbWV0YWRhdGEpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBFZGl0QWN0aW9uRGljdGF0aW9uKQogICAg
ICwgbV9kaWN0YXRpb25QaHJhc2VzKFdURjo6bW92ZShkaWN0YXRpb25QaHJhc2VzKSkKICAgICAs
IG1fbWV0YWRhdGEoV1RGOjptb3ZlKG1ldGFkYXRhKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaAppbmRleCBiZjkwNzY0Li5hYzVjYjIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5k
SU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElP
Uy5oCkBAIC00NCw3ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgRGljdGF0aW9uQ29tbWFuZElPUyhE
b2N1bWVudCYsIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBkaWN0YXRpb25QaHJhc2VzLCBSZXRh
aW5QdHI8aWQ+IG1ldGFkYXRhKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBFZGl0QWN0aW9uRGljdGF0aW9uOyB9CiAKICAgICBWZWN0b3I8VmVjdG9yPFN0
cmluZz4+IG1fZGljdGF0aW9uUGhyYXNlczsKICAgICBSZXRhaW5QdHI8aWQ+IG1fbWV0YWRhdGE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCmlu
ZGV4IDliZGVlMWMuLmZkNDE5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0ZyYW1lU2VsZWN0aW9uTWFjLm1tCkBAIC00NywxMyArNDcsMTMgQEAgc3RhdGljIENHUmVjdCBh
Y2Nlc3NpYmlsaXR5Q29udmVydFNjcmVlblJlY3QoQ0dSZWN0IGJvdW5kcykKICNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQogICAgIAogICAgIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudCkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgp
OwogCiAgICAgaWYgKG1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rp
b24uZW5kKCkuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hl
ID0gZG9jdW1lbnQtPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUt
PnBvc3ROb3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5y
ZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9i
c2VydmFibGVQYXJlbnQpOworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQs
IG1fc2VsZWN0aW9uKTsKICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZj
NmIyLi4zNjg0ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAg
IGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJU
ZXh0KTsKKyAgICBTdHJpbmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5u
ZXJUZXh0KTsKKyAgICBib29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVl
OwogICAgIGlmICh0ZXh0SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkg
eworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBp
ZiAodGV4dElzQ2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAg
ICAgICAgICAgICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6
OkFYVmFsdWVDaGFuZ2VkLCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2Vu
ZGlmCiAgICAgICAgIGlubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKIAogICAgICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5k
c1dpdGgoJ1xyJykpCiAgICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElz
Q2hhbmdlZCAmJiByZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSog
Y2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAg
ICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYVGV4dEVk
aXRUeXBlRGVsZXRlLCBwcmV2aW91c1ZhbHVlLCBBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUs
IFZpc2libGVQb3NpdGlvbihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9y
ZUFuY2hvcikpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRy
b2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKaW5kZXggOTllNmQ1OS4uMjgzZDIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKQEAgLTUyNCw3ICs1MjQsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpj
b25jbHVkZUVkaXREcmFnKERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgICAgICAgICAgICAg
b3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6U21hcnRSZXBsYWNlOwogICAgICAg
ICAgICAgICAgIGlmIChjaG9zZVBsYWluVGV4dCkKICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
cyB8PSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6TWF0Y2hTdHlsZTsKLSAgICAgICAgICAgICAg
ICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVu
dFVuZGVyTW91c2UsIGZyYWdtZW50LCBvcHRpb25zKSk7CisgICAgICAgICAgICAgICAgYXBwbHlD
b21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKm1fZG9jdW1lbnRVbmRlck1v
dXNlLCBXVEY6Om1vdmUoZnJhZ21lbnQpLCBvcHRpb25zKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4
IDg4NmM3NjUuLjNkOWZlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAg
LTMyMzksNyArMzIzOSw4IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlv
bihGcmFtZSYgZnJhbWUsIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAotICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkp
OworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24gfSk7Cisg
ICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50KTsKIH0K
IAogc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJh
bWUsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCmluZGV4IDc3YzA3ZmUuLmQ4ZDI1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAKQEAgLTM0MCw4ICszNDAsMTAgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6
OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtl
eWIKICAgICBpZiAoY2FyZXRCcm93c2luZykgewogICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9
IGZpcnN0UG9zaXRpb25Jbk9yQmVmb3JlTm9kZShlbGVtZW50LmdldCgpKTsKICAgICAgICAgVmlz
aWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24ocG9zaXRpb24sIHBvc2l0aW9uLCBET1dOU1RSRUFN
KTsKLSAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbik7CisgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICAgICAgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4
dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICAgICAgICAgIGZyYW1lLnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50KTsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIGVsZW1lbnQtPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDc2OTc4ODYuLjBhNGViMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMTUgKzEs
MjMgQEAKLTIwMTUtMDQtMjQgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgorMjAxNS0wNC0yNCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KIAotICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTgzMjY2LgotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MTY0CisgICAgICAgIEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CiAKLSAgICAgICAgQnJva2UgMzItYml0
IGJ1aWxkIGFuZCBhIHRlc3QuIChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtpdCkuCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCi0gICAgICAgIFJldmVydGVkIGNoYW5nZXNl
dDoKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZl
IGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciBy
ZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CisgICAg
ICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZp
ZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0CisgICAgICAgIGFuYWx5emluZyB0aGUg
Y2FkZW5jZSBvZiBjaGFuZ2VzLgogCi0gICAgICAgICJBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkiCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDI3MTkKLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTgzMjY2CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFu
Z2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAg
ICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0
byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0
IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNv
IGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmll
bGRzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAodW5kb05hbWVGb3JFZGl0QWN0aW9uKToKIAogMjAxNS0wNC0yNCAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggZDIxY2RmMC4uZTU5MGQ5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQpAQCAtNTQ2LDYgKzU0Niw3IEBAIHN0YXRpYyBOU1N0cmluZyogdW5kb05hbWVG
b3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICAvLyBGSVhNRTogVGhpcyBp
cyBpZGVudGljYWwgdG8gY29kZSBpbiBXZWJLaXQyJ3MgV2ViRWRpdENvbW1hbmRQcm94eSBjbGFz
czsgd291bGQgYmUgbmljZSB0byBzaGFyZSB0aGUgc3RyaW5ncyBpbnN0ZWFkIG9mIGhhdmluZyB0
d28gY29waWVzLgogICAgIHN3aXRjaCAoZWRpdEFjdGlvbikgewogICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25VbnNwZWNpZmllZDogcmV0dXJuIG5pbDsKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uSW5z
ZXJ0OiByZXR1cm4gbmlsOwogICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRDb2xvcjogcmV0dXJu
IFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9u
U2V0QmFja2dyb3VuZENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IEJh
Y2tncm91bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91bmQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uVHVybk9mZktl
cm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUdXJuIE9mZiBLZXJuaW5nIiwg
IlR1cm4gT2ZmIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUi
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAxZWM3OGNjLi5hNGExNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDE1ICsx
LDIzIEBACi0yMDE1LTA0LTI0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KKzIwMTUtMDQtMjQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CiAKLSAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MzI2Ni4KLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDE2NAorICAgICAgICBBWDogcmljaGVy
IHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQogCi0gICAgICAgIEJyb2tlIDMyLWJp
dCBidWlsZCBhbmQgYSB0ZXN0LiAoUmVxdWVzdGVkIGJ5IGFwIG9uICN3ZWJraXQpLgorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAotICAgICAgICBSZXZlcnRlZCBjaGFuZ2Vz
ZXQ6CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUKKyAgICAgICAgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3Ig
cmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudAorICAg
ICAgICBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBm
aWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydAorICAgICAgICBhbmFseXppbmcgdGhl
IGNhZGVuY2Ugb2YgY2hhbmdlcy4KIAotICAgICAgICAiQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBu
b3RpZmljYXRpb25zICgxNDI3MTkpIgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5Ci0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzE4MzI2NgorICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwKKyAg
ICAgICAgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24g
dG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUKKyAgICAgICAgcmVsaWFibGUgY29udGV4
dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxz
byBibG9jayBwb3N0aW5nCisgICAgICAgIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZp
ZWxkcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24pOgog
CiAyMDE1LTA0LTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAKaW5kZXgg
NTRjZTAzYy4uODc4NTU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJF
ZGl0Q29tbWFuZFByb3h5LmNwcApAQCAtNzQsNiArNzQsOCBAQCBTdHJpbmcgV2ViRWRpdENvbW1h
bmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogICAgIHN3
aXRjaCAoZWRpdEFjdGlvbikgewogICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOgogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAgICAgY2FzZSBFZGl0QWN0aW9uU2V0Q29sb3I6CiAgICAgICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiU2V0IENvbG9yIiwgIlNldCBDb2xvciAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvblNl
dEJhY2tncm91bmRDb2xvcjoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBiZjFlNzYyLi4wNDE4ODA1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDE1ICsxLDMxIEBACi0yMDE1LTA0LTI0ICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKzIwMTUtMDQtMjQgIERvdWcg
UnVzc2VsbCAgPGRfcnVzc2VsbEBhcHBsZS5jb20+CiAKLSAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE4MzI2Ni4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NDE2NAorICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNh
dGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0MjcxOQogCi0gICAgICAgIEJyb2tlIDMyLWJpdCBidWlsZCBhbmQgYSB0ZXN0LiAo
UmVxdWVzdGVkIGJ5IGFwIG9uICN3ZWJraXQpLgorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KIAotICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisgICAgICAgIFJpY2hlciBh
Y2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0
RWRpdFR5cGUsCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUKKyAgICAgICAg
dGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2Vz
IGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudAorICAgICAgICBhIG1lY2hhbmlzbSB0byBw
b3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRp
Y2tzIHRvIHRod2FydAorICAgICAgICBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4K
IAotICAgICAgICAiQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25zICgxNDI3MTkp
IgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5
Ci0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE4MzI2NgorICAgICAg
ICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwKKyAgICAgICAgYW5kIGFuIG92ZXJsb2Fk
IG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVj
aCBhcHBzIG1vcmUKKyAgICAgICAgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBj
aGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nCisgICAg
ICAgIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxl
ci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgc3RvcE9i
c2VydmluZ10pOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBf
bm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
bW06CisgICAgICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmlj
YXRpb25SZWNlaXZlZDpdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcik6CiAKIDIwMTUt
MDQtMjQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxl
ci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25I
YW5kbGVyLmgKaW5kZXggMTkzODZjZS4uOTA4ZGJkYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgK
QEAgLTQyLDYgKzQyLDcgQEAKIC0gKHZvaWQpc2V0UGxhdGZvcm1FbGVtZW50OihpZClwbGF0Zm9y
bUVsZW1lbnQ7CiAtICh2b2lkKXNldENhbGxiYWNrOihKU09iamVjdFJlZiljYWxsYmFjazsKIC0g
KHZvaWQpc3RhcnRPYnNlcnZpbmc7CistICh2b2lkKXN0b3BPYnNlcnZpbmc7CiAKIEBlbmQKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLmYxYzlhZmQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxl
ci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXIubW0KQEAgLTEwNCw2ICsxMDQsMTEgQEAKICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KF9ub3RpZmljYXRpb25SZWNlaXZlZDopIG5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0
Om5pbF07CiB9CiAKKy0gKHZvaWQpc3RvcE9ic2VydmluZworeworICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07Cit9CisKIC0gKHZv
aWQpX25vdGlmaWNhdGlvblJlY2VpdmVkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgog
ewogICAgIE5TU3RyaW5nICpub3RpZmljYXRpb25OYW1lID0gW1tub3RpZmljYXRpb24gdXNlcklu
Zm9dIG9iamVjdEZvcktleTpAIm5vdGlmaWNhdGlvbk5hbWUiXTsKQEAgLTExMiwxNiArMTE3LDI3
IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtu
b3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVz
ZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlm
aWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNh
dGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29u
dGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNP
TlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhd
KSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVl
KEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAg
dXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21h
aW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAg
fQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Ig
b25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1l
LgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4
dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5h
bWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVu
ZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50
cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNh
dGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07
CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAg
ICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNh
dGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0
aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsK
ICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNb
MV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVz
ZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24o
W21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNr
LCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggNDY3M2ExZC4u
Mzk3YzYzOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0NDYsNiArMTQ0Niw3IEBAIHZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIC8vIE1hYyBw
cm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0
J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkhhbmRsZXIpOwog
CisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXTsKICAgICBbbV9ub3Rp
ZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90aWZpY2F0aW9uSGFuZGxlciA9IG5p
bDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwxOSArMTI1LDMwIEBACiAg
ICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmlj
YXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZv
SlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIFdL
QnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsKICAgICBKU0NvbnRl
eHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJh
bWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZpY2F0aW9uKEFkb3B0
LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAgIEpTVmFsdWVSZWYg
bm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNO
b3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVBcmd1
bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAgICAg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQsIFt1
c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAgICB1c2VySW5mb0pT
T05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBqc1Vz
ZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50
KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFy
Z3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVu
Y3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5j
dGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBh
bmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVu
ZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5m
by4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1sw
XSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNl
ckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihj
b250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2Fs
bGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEg
Z2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1
c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3Vt
ZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwogICAgICAgICBhcmd1bWVu
dHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9
IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlv
bkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCBlZDAyZmI3Li5lMjYwN2UxIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0NzYsNiArMTQ3
Niw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlz
dGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byBy
ZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX25v
dGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2Jz
ZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90
aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251605</attachid>
            <date>2015-04-24 19:55:44 -0700</date>
            <delta_ts>2015-04-25 17:56:36 -0700</delta_ts>
            <desc>Fix changelogs</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>221211</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGYwNjljZTkyYzAxNTRjNGMzNmYyNmIzMzI3NmIyMDY1NzJhMDRmZjYKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgRnJpIEFwciAyNCAxNTo1
MDoxNyAyMDE1IC0wNzAwCgogICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NzE5CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCiAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlCiAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5n
IHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CiAgICBhIG1lY2hhbmlz
bSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVz
Y2VkIHRpY2tzIHRvIHRod2FydAogICAgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAogICAgYW5kIGFuIG92ZXJs
b2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUg
dGVjaCBhcHBzIG1vcmUKICAgIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZwogICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyODIxMjk4Li5jNzA3
MmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMDQtMjQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLAorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlCisgICAgICAgIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQKKyAgICAg
ICAgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmll
bGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQKKyAgICAgICAgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsCisgICAgICAgIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlCisgICAgICAgIHJlbGlhYmxl
IGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rp
b24uIEFsc28gYmxvY2sgcG9zdGluZworICAgICAgICBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1
dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTI0ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGZhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctcmVzaXplLWV2ZW50LWNvdW50Lmh0bWwgdGlt
ZXMgb3V0IG9uIFlvc2VtaXRlIFdLMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWZhNmY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0
IGZpZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlm
aWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4
dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVk
aXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kZTBkZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0
aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1
dCB0eXBlPSJwYXNzd29yZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InZhbHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25z
Ij48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNp
bmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVE
ZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0
VHlwZURlbGV0ZSArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIg
Y291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0
SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmlj
YXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZh
bHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAg
IHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIp
IHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0
VHlwZURlbGV0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIs
ICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJB
WFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3Jk
IG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3
aWxsIGJlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNl
cnQiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBzZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHNldHNlY3VyZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAi
MCI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAg
ICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRy
dWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9v
dEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwor
CisgICAgICAgICAgICBzZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rp
b24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVl
LiBmb3VyIGZpdmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVj
dGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBh
cmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZv
Lmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50
ZWRpdGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+
c2V2ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2
PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ICsgMTsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmcgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cyA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyAr
IDE7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUNoYXJhY3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGggKyAyOworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwg
InNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5j
ZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAg
ICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9
IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9u
Q2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0
aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOwor
ICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsr
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3Jk
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3
ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAg
ICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0
SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRC
ZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7
CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwg
MCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAg
ICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQor
ICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5m
by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92
YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjM5M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVD
dXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBp
bmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFu
Z2UtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlk
PSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAg
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVz
ZXIgaW5mbyBkYXRhLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2
YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsK
KyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBp
bmcgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbiArIDEKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0
VHlwZUN1dCArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291
bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5k
ZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRp
b24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVl
Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJl
c3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsK
KworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlw
ZUN1dCIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5n
ZVZhbHVlXCJdIiwgIlwiMjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZh
bHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBl
XCJdIiwgIkFYVGV4dEVkaXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhU
ZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7
CisgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxp
dHkodHJ1ZSk7CisKKyAgICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3Rp
ZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNh
bGxiYWNrKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVl
Iik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHRib3giKTsKKyAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAg
ZXhlY1NldFNlbGVjdGlvbkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0
ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENv
bW1hbmQoKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVy
Q29tbWFuZCgpOworICAgICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggYzhlMjA1YS4uZTdjOTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE1MTMsNiArMTUxMyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1JlbW92
ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAorICAgIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA1YTU4NWYwLi45MDg1ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQwIEBACisyMDE1LTA0
LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBy
aWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQu
IEFsc28gaW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdl
cyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0Cisg
ICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIFRlc3RzOiBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVj
dENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzUGFzc3dvcmRGaWVsZE9y
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5n
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2Fk
aW5nRXZlbnROb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4
dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6Y29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNz
d29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQpOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBWFBvc3ROb3RpZmlj
YXRpb25XaXRoVXNlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6XSk6Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpTT05UeXBl
cyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAodGV4dE1h
cmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczplbmRQ
b3NpdGlvbjpdKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0eWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9z
aXRpb246OmdldE5vZGVzSW5Db21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWspOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRy
ZW5JblJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnB1dFRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZGVsZXRlZFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxl
Y3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OnByZXNlcnZlc1R5cGluZ1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0
TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRBY3Rpb24uaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21t
YW5kOjpFZGl0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0Q29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OnNldFBhcmVudCk6IERl
bGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmhhbmRsZVRleHRFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0
T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVy
VHlwaW5nVG9Xb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlQmFja1RvUmVw
bGFjZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cmFuc3Bvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRGcmFnbWVudCk6CisgICAgICAg
ICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3Zl
V2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojp0ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5p
bmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9k
aWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdvcmRTdGFy
dCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omlu
c2VydGVkVGV4dCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Okluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJbnNlcnRU
ZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAg
ICAgKiBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oLgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVz
OjpkaWRSZXBsYWNlTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6aW5zZXJ0QXNMaXN0SXRlbXMpOiBEZWxldGVkLgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvaW9zL0RpY3Rh
dGlvbkNvbW1hbmRJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZElP
Uzo6RGljdGF0aW9uQ29tbWFuZElPUyk6CisgICAgICAgICogZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5oOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKToKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0
aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKToKKwogMjAxNS0wNC0yNCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgcmFuZ2VFeHBhbmRlZEFyb3VuZFBvc2l0aW9uQnlDaGFyYWN0
ZXJzIHRvIGFsbCBwbGF0Zm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagppbmRleCAzNjlmNTJiLi45NmQ4OTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Nzc3LDYgKzE0Nzc3
LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1NDUsNiArMTk1NzMsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxp
dHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEFkanVz
dFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA4Nyw2ICsyMTExNiw4IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRl
cmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0
Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBhMDMxODA4Li5mZTlm
YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNTI1LDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC03NjY4LDYgKzc2NzQsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmls
aXR5PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiPgorICAgICAgICA8Rmls
dGVyPmFjY2Vzc2liaWxpdHk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyV2luLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5XHdpbjwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpAQCAtMTA2NzcsNiArMTA2ODYsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhjYzdiNTQuLjliNTEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNTAsNiArMzI1MCw3IEBACiAJCTkwMDE3NzQxMTJF
MDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIg
LyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MDEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBK
U09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYx
QyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlG
ODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDVCMjREMDk4
RjFCNkIwMEMyODg1NSAvKiBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTUsNiArNjM5
NiwxMCBAQAogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUz
NDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJ
RjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUy
OERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlG
NTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsg
fTsKQEAgLTEwNTAwLDYgKzEwNTA1LDcgQEAKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkx
QzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3Jv
dXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUdyb3VwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNDAsNiArMTQwNDYsMTAgQEAKIAkJRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1M
b2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFz
ZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3
QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjEsNiArMTU2NzEsNyBAQAog
CQkJCTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCAq
LywKIAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8s
CiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKKwkJ
CQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xNzc5NCw2ICsxNzgwNSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2
RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlC
MzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5
QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1
NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywK
IAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzcyOCw2ICsyMzc0Myw3IEBACiAJCQkJ
NkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyog
QXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAw
MURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTY1
Myw2ICsyNTY2OSw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcw
QThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NzA2LDYgKzI2NzIzLDcgQEAKIAkJCQk3QzRDOTZERDFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
MUQ0MjgxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QTY5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljU21vb3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MUM5RjJGOTFBRTNCRUIwMDA5
NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
QzFENDI5MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQyQTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNkQw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4NDY0LDYgKzI4NDgyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3
QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYx
MkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1
ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTkxMSw2ICsyOTkzMCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2
RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5
MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggYTAwYjE1Yy4uODY0ZTE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5
MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAorLy8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgcGFzc3dvcmQgZmllbGRz
IG9yIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMgYXQgYSA0MGh6IGludGVy
dmFsIHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQorc3RhdGljIGRvdWJsZSBB
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFsID0gMC4w
MjU7CisKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhDb21wdXRlZE9iamVjdEF0dHJp
YnV0ZUNhY2hlOjpnZXRJZ25vcmVkKEFYSUQgaWQpIGNvbnN0CiB7CiAgICAgSGFzaE1hcDxBWElE
LCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1faWRNYXBw
aW5nLmZpbmQoaWQpOwpAQCAtMTI5LDYgKzEzMiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0
RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENh
Y2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTcwNSw3ICs3MDksNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBSZWY8RG9jdW1lbnQ+
IHByb3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7CiAgICAgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXIuc3RvcCgpOwogICAgIAotICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRp
b25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNh
dGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyBJbiB0
ZXN0cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5
IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0
ZWQgYmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVk
IGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgogICAgIGF1
dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlvbnNUb1Bvc3QpOwogICAg
IApAQCAtNzQyLDYgKzc0NiwyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9i
amVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiB0ZXN0cywgcG9z
dGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVw
IG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZp
b3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBl
bmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZp
Y2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAg
ICBmb3IgKGNvbnN0IGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAg
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0
KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRp
ZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9i
amVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBw
b3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY4LDIyMyBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxk
cmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdl
IHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRl
ZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRhdGFMb2coIlVu
a25vd24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVF
ZGl0OgorICAgICAgICBkYXRhTG9nKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBkYXRhTG9nKCJN
b3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2coIkV4dGVuZDo6Iik7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAg
ICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVu
a25vd24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
RGVsZXRlOgorICAgICAgICAgICAgZGF0YUxvZygiRGVsZXRlIik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIGRhdGFM
b2coIkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBkYXRhTG9nKCJEaWN0YXRpb25JbnNlcnQiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgor
ICAgICAgICAgICAgZGF0YUxvZygiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRhdGFMb2coIkN1
dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0
ZToKKyAgICAgICAgICAgIGRhdGFMb2coIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgZGF0
YUxvZygiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRhTG9nKCJCZWdp
bm5pbmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgZGF0YUxvZygiRW5kOjoiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OgorICAgICAgICAgICAgZGF0YUxvZygiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAg
IGRhdGFMb2coIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGRhdGFMb2co
IkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoK
KyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAg
c3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBkYXRh
TG9nKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIGRh
dGFMb2coIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgZGF0
YUxvZygiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
TGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlNl
bnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIGRhdGFMb2co
IlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
UGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkRv
Y3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBpZiAoaW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAgZGF0YUxvZygiLVN5bmMiKTsK
KyAgICBkYXRhTG9nKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0
VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7Cisg
ICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCitzdGF0aWMgYm9vbCBpc1Bh
c3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QpCit7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmll
bGQoKSB8fCBvYmplY3QtPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9k
ZSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBpZiAoaW50ZW50LnR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlVW5rbm93bikKKyAgICAgICAgaW50ZW50ID0gbV90ZXh0U2VsZWN0aW9uSW50ZW50OworCiAg
ICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAotICAgIC8vIERlbGVn
YXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9
IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAgIEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlmIChvYmplY3QpIHsKKyAgICAg
ICAgaWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJs
ZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmplY3QsIGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlm
aWNhdGlvbihub2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENo
YW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQp
OworICAgIFVOVVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2Vs
ZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhU
ZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFT
U0VSVCh0eXBlICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0Nv
bXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9i
amVjdCkgeworICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRp
b24ob2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0
LT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UK
KyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5n
ZUZvckVkaXRUeXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRF
ZGl0aW5nT2Zmc2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlw
ZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBl
IGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFTU0VSVChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFT
U0VSVChpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5
cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0
VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOwor
CisgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBv
c3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIGRlbGV0aW9uVHlw
ZSwgZGVsZXRlZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOwor
I2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4
dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50
KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUo
aW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCitib29sIEFYT2JqZWN0Q2Fj
aGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKG9iamVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmpl
Y3QoKTsKKyAgICBpZiAoIW9ic2VydmFibGVPYmplY3QpIHsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIC8vIHJldHVybiB0cnVlIGV2ZW4gdGhvdWdoIHRoZSBlbnF1ZXVl
IGRpZG4ndCBoYXBwZW4gYmVjYXVzZSB0aGlzIGlzIGEgcGFzc3dvcmQgZmllbGQgYW5kIGNhbGxl
ciBzaG91bGRuJ3QgcG9zdCBhIG5vdGlmaWNhdGlvbgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBpZiAoIW1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LmNvbnRhaW5zKG9i
c2VydmFibGVPYmplY3QpKSB7CisgICAgICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0
LmFwcGVuZChvYnNlcnZhYmxlT2JqZWN0KTsKKyAgICAgICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX3Bhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyLnN0YXJ0T25lU2hvdChBY2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbkludGVydmFsKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudE5vdGlmaWNhdGlvbihGcmFt
ZSogZnJhbWUsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKQEAgLTEwODQsNiArMTMwOSwx
NCBAQCBib29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgp
Cit7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdE9iamVjdCA9IHRoaXMtPnJvb3RPYmpl
Y3QoKTsKKyAgICBpZiAoIXJvb3RPYmplY3QgfHwgIXJvb3RPYmplY3QtPmlzQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGRvd25j
YXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Pigqcm9vdE9iamVjdCkud2ViQXJlYU9iamVjdCgp
OworfQorCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIo
QVhPYmplY3RDYWNoZSogY2FjaGUpCiAgICAgOiBtX2NhY2hlKGNhY2hlKQogewpAQCAtMTA5Niw2
ICsxMzI5LDI2IEBAIEFYQXR0cmlidXRlQ2FjaGVFbmFibGVyOjp+QVhBdHRyaWJ1dGVDYWNoZUVu
YWJsZXIoKQogICAgIGlmIChtX2NhY2hlKQogICAgICAgICBtX2NhY2hlLT5zdG9wQ2FjaGluZ0Nv
bXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogfQorCisjaWYgIVBMQVRGT1JNKENPQ09BKQorQVhU
ZXh0Q2hhbmdlIEFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0
VHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5
cGVDdXQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dERlbGV0ZWQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0SW5zZXJ0
ZWQ7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVhUZXh0SW5zZXJ0ZWQ7
Cit9CisjZW5kaWYKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCBiZmE5Mjc3Li4zMGE3YTQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZp
bmUgQVhPYmplY3RDYWNoZV9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5o
IgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPGxpbWl0cy5oPgpAQCAtNjcsNiArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPEFYSUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz4gbV9pZE1hcHBpbmc7CiB9OwogCisj
aWYgIVBMQVRGT1JNKENPQ09BKQorZW51bSBBWFRleHRDaGFuZ2UgeyBBWFRleHRJbnNlcnRlZCwg
QVhUZXh0RGVsZXRlZCB9OworI2VuZGlmCisKIGVudW0gUG9zdFRhcmdldCB7IFRhcmdldEVsZW1l
bnQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQgfTsKIAogZW51bSBQb3N0VHlwZSB7IFBvc3RTeW5j
aHJvbm91c2x5LCBQb3N0QXN5bmNocm9ub3VzbHkgfTsKQEAgLTE4OSwxMiArMTk0LDE1IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkp
OwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1l
bnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAg
ICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAgfTsKKyNpZm5k
ZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRT
dGF0ZUNoYW5nZUludGVudCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSBkZWxl
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2Vy
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBl
bnVtIEFYTG9hZGluZ0V2ZW50IHsKICAgICAgICAgQVhMb2FkaW5nU3RhcnRlZCwKQEAgLTIxMywx
MiArMjIxLDI0IEBAIHB1YmxpYzoKICAgICBBWENvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUq
IGNvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGUoKSB7IHJldHVybiBtX2NvbXB1dGVkT2JqZWN0
QXR0cmlidXRlQ2FjaGUuZ2V0KCk7IH0KIAogICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KLSAgICAKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBz
dGF0aWMgdm9pZCBzZXRTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMoYm9vbCB2YWx1
ZSk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7CiAgICAgdm9pZCBwbGF0
Zm9ybUhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKE5vZGUqIG9sZEZvY3VzZWROb2RlLCBO
b2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwor
I2Vsc2UKKyAgICBzdGF0aWMgQVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRl
eHRFZGl0VHlwZSk7CisgICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBmcmFtZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCk7CiAgICAgdm9pZCB0
ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBsYWJlbENoYW5nZWQo
RWxlbWVudCopOwpAQCAtMjI5LDYgKzI0OSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9k
ZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9
CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKyAg
ICAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0
KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjQ0LDYgKzI2NiwxMSBAQCBwcml2
YXRlOgogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6
OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90
aWZpY2F0aW9uc1RvUG9zdDsKICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7
CisKKyAgICBUaW1lciBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyOworICAgIFZlY3Rv
cjxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Q
b3N0OworICAgIHZvaWQgcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCiAg
ICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZUxpdmVSZWdp
b25DcmVhdGVkKE5vZGUqKTsKICAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSop
OwpAQCAtMjUxLDYgKzI3OCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAg
CiAgICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKworICAgIGJvb2wgZW5x
dWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCop
OworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50Owog
fTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4ICszMzksOSBAQCBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmll
dyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9
Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihO
b2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9Ci1pbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24oTm9kZSosIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdl
dCwgUG9zdFR5cGUpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNh
dGlvbihSZW5kZXJPYmplY3QqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCwgUG9zdFR5cGUp
IHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KQEAgLTMyMCw2ICszNTIs
MTQgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKE5vZGUqKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShXaWRnZXQqKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQoTm9kZSop
IHsgfQorI2lmIFBMQVRGT1JNKENPQ09BKQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQor
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyB9CisjZWxzZQoraW5saW5l
IEFYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0
RWRpdFR5cGUpIHsgcmV0dXJuIEFYVGV4dEluc2VydGVkOyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlP
YmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KKyNlbmRp
ZgogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi45NWMyNjRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBWFRleHRTdGF0
ZUNoYW5nZUludGVudF9oCisjZGVmaW5lIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIAorZW51bSBBWFRleHRTdGF0ZUNoYW5nZVR5cGUgeworICAg
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
RWRpdCwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLAorICAgIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorfTsKKworZW51bSBBWFRleHRFZGl0VHlw
ZSB7CisgICAgQVhUZXh0RWRpdFR5cGVVbmtub3duLAorICAgIEFYVGV4dEVkaXRUeXBlRGVsZXRl
LCAvLyBHZW5lcmljIHRleHQgZGVsZXRlCisgICAgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIC8vIEdl
bmVyaWMgdGV4dCBpbnNlcnQKKyAgICBBWFRleHRFZGl0VHlwZVR5cGluZywgLy8gSW5zZXJ0IHZp
YSB0eXBpbmcKKyAgICBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiwgLy8gSW5zZXJ0IHZpYSBkaWN0
YXRpb24KKyAgICBBWFRleHRFZGl0VHlwZUN1dCwgLy8gRGVsZXRlIHZpYSBDdXQKKyAgICBBWFRl
eHRFZGl0VHlwZVBhc3RlIC8vIEluc2VydCB2aWEgUGFzdGUKK307CisKK2VudW0gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duLAor
ICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZywKKyAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25FbmQsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMsCisg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCwKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25EaXNjb250aWd1b3VzCit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
IHsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24sCisgICAgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSwKKyAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5UGFyYWdyYXBoLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFnZSwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50LAorICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5QWxsIC8vIEFsbCBncmFudWxhcml0eSByZXByZXNlbnRzIHRoZSBhY3Rpb24gb2Yg
c2VsZWN0aW5nIHRoZSB3aG9sZSBkb2N1bWVudCBhcyBhIHNpbmdsZSBhY3Rpb24uIEV4dGVuZGlu
ZyBzZWxlY3Rpb24gYnkgc29tZSBvdGhlciBncmFudWxhcml0eSB1bnRpbCBpdCBlbmNvbXBhc3Nl
cyB0aGUgd2hvbGUgZG9jdW1lbnQgd2lsbCBub3QgcmVzdWx0IGluIGEgYWxsIGdyYW51bGFyaXR5
IG5vdGlmaWNhdGlvbi4KK307CisKK3N0cnVjdCBBWFRleHRTZWxlY3Rpb24geworICAgIEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHk7Cit9OworCitzdHJ1Y3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQg
eworICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlOworICAgIHVuaW9uIHsKKyAgICAgICAg
QVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbjsKKyAgICAgICAgQVhUZXh0RWRpdFR5cGUgY2hhbmdl
OworICAgIH07CisgICAgYm9vbCBpc1N5bmNocm9uaXppbmcgeyBmYWxzZSB9OworCisgICAgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5cGUgPSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duLCBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uID0gQVhUZXh0
U2VsZWN0aW9uKCkpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbihz
ZWxlY3Rpb24pCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRF
ZGl0VHlwZSBjaGFuZ2UpCisgICAgICAgIDogdHlwZShBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
KQorICAgICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgeyB9CisKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSwgYm9vbCBpc1N5bmNocm9uaXpp
bmcpCisgICAgICAgIDogdHlwZSh0eXBlKQorICAgICAgICAsIHNlbGVjdGlvbigpCisgICAgICAg
ICwgaXNTeW5jaHJvbml6aW5nKGlzU3luY2hyb25pemluZykKKyAgICB7CisgICAgICAgIEFTU0VS
VCh0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgfHwgdHlwZSA9PSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQpOworICAgIH0KK307CisKK30KKwor
I2VuZGlmIC8vIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXgg
ZDhkMjZkZS4uNDM4ZTg1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTU1Miw2ICs1NTIsMjcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKICAg
ICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKTsKIH0KIAorQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnBhc3N3b3JkRmllbGRPckNvbnRh
aW5pbmdQYXNzd29yZEZpZWxkKCkKK3sKKyAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoSFRNTElu
cHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gbm9kZS0+dG9JbnB1dEVsZW1lbnQoKSkgeworICAg
ICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzOworICAgIH0KKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dI
b3N0KCk7CisgICAgaWYgKCFlbGVtZW50IHx8ICFpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUo
ZWxlbWVudCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhp
cy0+bm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDNlNzU3MmYuLmE4MmJkODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUlt
YWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRy
b2woKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXNzd29y
ZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNT
bGlkZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDVhMjdlYTguLmNiMzM4MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcApAQCAtMjY0Niw0ICsyNjQ2LDE3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaChib29sIG9uKQogfQogI2VuZGlmCiAK
K2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBj
b25zdAoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkg
IT0gVW5rbm93blJvbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0KCk7CisgICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1l
bnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1Bh
c3N3b3JkRmllbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAzNTg2
ZjJhLi44MTZjMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDYzLDYgKzQ2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250
cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25z
dCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBXZWJBcmVhUm9sZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggZTlkMmE1Mi4uNTBmZGFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNDkx
LDE0ICsxNDkxLDE3IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnNlbGVjdGVkVGV4dFJhbmdlKCkgY29uc3QKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlKQogewog
ICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRT
ZWxlY3Rpb25JbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwgdHJ1ZSkpOwogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dCYgdGV4dENvbnRyb2wgPSBkb3duY2FzdDxSZW5kZXJUZXh0Q29udHJvbD4oKm1fcmVuZGVyZXIp
LnRleHRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICAgICAgdGV4dENvbnRyb2wuc2V0U2VsZWN0
aW9uUmFuZ2UocmFuZ2Uuc3RhcnQsIHJhbmdlLnN0YXJ0ICsgcmFuZ2UubGVuZ3RoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7
Ci0gICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRpb246OlBvc2l0aW9u
SXNPZmZzZXRJbkFuY2hvciksCi0gICAgICAgIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0ICsg
cmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9XTlNU
UkVBTSkpOworICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUs
IHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgUG9zaXRp
b24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlvbklz
T2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKTsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCBuZXdJbnRlbnQocmFuZ2UubGVuZ3RoID8gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIDogQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgdHJ1ZSk7CisgICAg
bV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
LCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgbmV3SW50ZW50
KTsKIH0KIAogVVJMIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVybCgpIGNvbnN0CkBAIC0x
OTYzLDEzICsxOTY2LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2Vs
ZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zCiB7CiAgICAgaWYgKHJh
bmdlLnN0YXJ0LmlzTnVsbCgpIHx8IHJhbmdlLmVuZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIAorCiAgICAgLy8gbWFrZSBzZWxlY3Rpb24gYW5kIHRlbGwgdGhlIGRvY3VtZW50IHRv
IHVzZSBpdC4gaWYgaXQncyB6ZXJvIGxlbmd0aCwgdGhlbiBtb3ZlIHRvIHRoYXQgcG9zaXRpb24K
LSAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKQorICAgIGlmIChyYW5nZS5zdGFydCA9
PSByYW5nZS5lbmQpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmpl
Y3RDYWNoZSgpKQorICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwg
dHJ1ZSkpOwogICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLm1vdmVUbyhy
YW5nZS5zdGFydCwgVXNlclRyaWdnZXJlZCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rpb24ocmFuZ2Uuc3Rh
cnQsIHJhbmdlLmVuZCk7Ci0gICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCwgdHJ1ZSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
Vmlldy5oCmluZGV4IGM2MmM3NTMuLjBjNDY0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQzLDYgKzQz
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUsIEFYT2Jq
ZWN0Q2FjaGUqKSBvdmVycmlkZTsKIAorICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFP
YmplY3QoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldyhTY3JvbGxWaWV3Kik7CiAgICAgCkBAIC03MSw3ICs3Myw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhp
c3RzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2Vi
QXJlYU9iamVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZmly
c3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsgfQogICAg
IEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJhciopOwog
ICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRr
LmNwcAppbmRleCA1ODUyYTBmLi5hZTI1NjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtMjY4LDEwICsyNjgs
MTAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamUKICAgICAvLyBTZWxlY3QgdGhlIHJpZ2h0IHNp
Z25hbCB0byBiZSBlbWl0dGVkCiAgICAgQ1N0cmluZyBkZXRhaWw7CiAgICAgc3dpdGNoICh0ZXh0
Q2hhbmdlKSB7Ci0gICAgY2FzZSBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZDoKKyAgICBj
YXNlIEFYVGV4dEluc2VydGVkOgogICAgICAgICBkZXRhaWwgPSAidGV4dC1pbnNlcnQiOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQ6CisgICAg
Y2FzZSBBWFRleHREZWxldGVkOgogICAgICAgICBkZXRhaWwgPSAidGV4dC1yZW1vdmUiOwogICAg
ICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQppbmRleCAxMTllMGIwMC4uYjYyMzM2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9T
Lm1tCkBAIC05NSw4ICs5NSwxOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIFtvYmot
PndyYXBwZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0
cmluZ107CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0
Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iamVjdCwgQVhWYWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZv
cm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1h
Yy5tbQppbmRleCBiMzAwZTc3Li45YTY5MmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBA
CiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAi
QVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRl
eHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hh
bmdlVHlwZUtleSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNj
ZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2Rl
ZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRF
ZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0
VHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMK
KyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZh
bHVlcyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1
ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0
aAorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRD
aGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VW
YWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgor
CisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlIEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdl
IHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmlj
YXRpb25zLCBzbyB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdl
IHBhcmFncmFwaCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBs
YXJnZSBlbm91Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2Vy
IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKwogLy8gVGhlIHNpbXBsZSBD
b2NvYSBjYWxscyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNjAsNiArMTA3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0
YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRXcmFwcGVy
KHdyYXBwZXIuZ2V0KCkpOwogfQogCitzdGF0aWMgQk9PTCBheFNob3VsZFJlcG9zdE5vdGlmaWNh
dGlvbnNGb3JUZXN0cyA9IGZhbHNlOworCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJl
cG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIEFYUG9z
dE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRp
b24sIGlkIHVzZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25X
aXRoVXNlckluZm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBz
aW1wbGlmeSBtb25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMg
YSBzaW1wbGUgTlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVj
dHVyZSB0byBzZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJl
dHdlZW4gV2ViQ29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBi
YWNrCisgICAgaWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3Rz
KSkKKyAgICAgICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlm
aWNhdGlvbiB1c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmlj
YXRpb24gbm90aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMTEsMTE0
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBl
cigpIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHBvcAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2Jq
LT53cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQg
dG8ga25vdyB3aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVy
KCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisg
ICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3Rp
ZmljYXRpb24sIG5pbCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVh
KCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxl
RGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRX
aXRoQ2FwYWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAg
IFt1c2VySW5mbyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5
Ok5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldOworICAgIGlmIChpbnRlbnQudHlwZSAh
PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIFt1c2VySW5mbyBzZXRP
YmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aW50ZW50LnR5cGVdIGZvcktleTpOU0FjY2Vz
c2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQu
dHlwZSkgeworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6
CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAg
ICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDppbnRl
bnQuc2VsZWN0aW9uLmRpcmVjdGlvbl0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rp
b25EaXJlY3Rpb25dOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVj
dGlvbikgeworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3du
OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJl
dmlvdXM6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6Cisg
ICAgICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aElu
dDppbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5XSBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFy
a2VyUmFuZ2UgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQ
b3NpdGlvbnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52
aXNpYmxlRW5kKCldKQorICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDp0ZXh0TWFya2Vy
UmFuZ2UgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmli
dXRlXTsKKyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQor
ICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0OndyYXBwZXIgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50XTsKKworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5m
byhyb290V2ViQXJlYSgpLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENo
YW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsK
IH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBT
dHJpbmcmKQorc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlv
bmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewor
ICAgIE5TU3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIg
bGVuZ3RoID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgW2NoYW5nZSBzZXRPYmplY3Q6
W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6dHlwZV0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRF
ZGl0VHlwZV07CisgICAgaWYgKGxlbmd0aCA+IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3Ro
KSB7CisgICAgICAgIFtjaGFuZ2Ugc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50Omxl
bmd0aF0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF07CisgICAg
ICAgIHRleHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OkFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9u
TGVuZ3RoXTsKKyAgICB9CisgICAgW2NoYW5nZSBzZXRPYmplY3Q6dGV4dCBmb3JLZXk6TlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlXTsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkp
IHsKKyAgICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1h
cmtlckZvclZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBbY2hhbmdlIHNl
dE9iamVjdDp0ZXh0TWFya2VyIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVT
dGFydE1hcmtlcl07CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30K
Kwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7Cisg
ICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGV4dFJl
cGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFRleHRFZGl0VHlwZVVua25v
d24sICIiLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRl
bGV0ZWRUZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGlu
c2VydGVkVGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAo
IW9iamVjdCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2Jq
ZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5m
byA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAg
ICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9
IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5T
RGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmpl
Y3QsIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5n
ZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4
dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIGluc2VydGlvblR5cGUsIGluc2Vy
dGVkVGV4dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsK
KyAgICBpZiAoY2hhbmdlcy5jb3VudCkKKyAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpjaGFu
Z2VzIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXTsKKyAgICBbY2hhbmdl
cyByZWxlYXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisg
ICAgICAgIHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBw
ZXI7CisKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ocm9vdFdlYkFyZWEoKS0+
d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJ
bmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVy
KCksIE5TQWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOwor
CisgICAgW3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1l
TG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhG
cmFtZU9iamVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBW
aXNpYmxlUG9zaXRpb247CiAtIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlv
bjsKIAogLSAoaWQpYXR0YWNobWVudFZpZXc7Ci0vLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50
IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBV
c2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZv
ciBpdC4gVXNlZCBieSB0ZXN0cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNh
dGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86
KE5TRGljdGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1Nj
cmVlblNwYWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50
VG9TY3JlZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLmU4YjJlZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDY5
IEBAIHN0YXRpYyBCT09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwog
KyAodm9pZClhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTCly
ZXBvc3QKIHsKICAgICBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJl
cG9zdDsKKyNpZiBQTEFURk9STShNQUMpCisgICAgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKHJlcG9zdCk7CisjZW5kaWYKIH0KIAogLSAodm9pZClh
Y2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5h
bWUKIHsKKyAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpCisg
ICAgICAgIFtzZWxmIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9u
TmFtZSB1c2VySW5mbzpuaWxdOworfQorCitzdGF0aWMgTlNBcnJheSAqYXJyYXlSZW1vdmluZ05v
bkpTT05UeXBlcyhOU0FycmF5ICphcnJheSkKK3sKKyAgICBBU1NFUlQoW2FycmF5IGlzS2luZE9m
Q2xhc3M6W05TQXJyYXkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJh
eSA9IFthcnJheSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwg
W211dGFibGVBcnJheSBjb3VudF07KSB7CisgICAgICAgIGlkIHZhbHVlID0gW211dGFibGVBcnJh
eSBvYmplY3RBdEluZGV4OmldOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
RGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2Jq
ZWN0QXRJbmRleDppIHdpdGhPYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZh
bHVlKV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNs
YXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkg
d2l0aE9iamVjdDphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVs
c2UgaWYgKCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3ZhbHVl
IGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pKSB7CisgICAgICAgICAgICBbbXV0YWJs
ZUFycmF5IHJlbW92ZU9iamVjdEF0SW5kZXg6aV07CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorICAgICAgICBpKys7CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZUFycmF5IGF1
dG9yZWxlYXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeVJlbW92aW5n
Tm9uSlNPTlR5cGVzKE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKK3sKKyAgICBBU1NFUlQoW2Rp
Y3Rpb25hcnkgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pOworICAgIE5TTXV0
YWJsZURpY3Rpb25hcnkgKm11dGFibGVEaWN0aW9uYXJ5ID0gW2RpY3Rpb25hcnkgbXV0YWJsZUNv
cHldOworICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBkaWN0aW9uYXJ5KSB7CisgICAgICAgIGlk
IHZhbHVlID0gW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OmtleV07CisgICAgICAgIGlmIChbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0
YWJsZURpY3Rpb25hcnkgc2V0T2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2
YWx1ZSkgZm9yS2V5OmtleV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNz
OltOU0FycmF5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgc2V0T2Jq
ZWN0OmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpIGZvcktleTprZXldOworICAgICAg
ICBlbHNlIGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2
YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAgIFttdXRh
YmxlRGljdGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAgICB9CisgICAgcmV0dXJu
IFttdXRhYmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJ
bmZvOihOU0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hv
dWxkUmVwb3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJbmZv
ID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlv
bk5hbWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlm
aWNhdGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOworICAgICAgICBBU1NFUlQo
bm90aWZpY2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsKKyAg
ICAgICAgaWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0YSA9
IFtOU0pTT05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpkaWN0aW9uYXJ5UmVtb3Zp
bmdOb25KU09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldyaXRpbmdPcHRpb25zKTAg
ZXJyb3I6bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEpIHsKKyAgICAgICAgICAg
ICAgICBOU1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0
aERhdGE6dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKKyAgICAg
ICAgICAgICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAgICAgICAgICAgIGluZm8g
PSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6bm90aWZpY2F0aW9u
TmFtZSwgQCJub3RpZmljYXRpb25OYW1lIiwgdXNlckluZm9TdHJpbmcsIEAidXNlckluZm8iLCBu
aWxdOworICAgICAgICAgICAgICAgIFt1c2VySW5mb1N0cmluZyByZWxlYXNlXTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWluZm8pCisgICAgICAgICAgICBpbmZvID0g
W05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5h
bWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNh
dGlvbiIgb2JqZWN0OnNlbGYgdXNlckluZm86aW5mb107CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi4xZjBlY2IxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGlu
dGVyZmFjZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyQmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0
aW9uczooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJilzdGFydFBvc2l0aW9uIGVuZFBv
c2l0aW9uOihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKWVuZFBvc2l0aW9uOworLSAo
aWQpdGV4dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBv
c2l0aW9uJil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmlu
ZGV4IGZhY2QzM2IuLjgyMTEwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCkBAIC0xMTM2LDE0ICsxMTM2LDE0IEBAIHN0YXRpYyBOU1N0cmluZyogbnNTdHJpbmdG
b3JSZXBsYWNlZE5vZGUoTm9kZSogcmVwbGFjZWROb2RlKQogICAgIHJldHVybiBbYXR0clN0cmlu
ZyBhdXRvcmVsZWFzZV07CiB9CiAKLXN0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJs
ZVBvc2l0aW9ucyhBWE9iamVjdENhY2hlICpjYWNoZSwgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0UG9z
aXRpb24sIFZpc2libGVQb3NpdGlvbiBlbmRQb3NpdGlvbikKK3N0YXRpYyBpZCB0ZXh0TWFya2Vy
UmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhBWE9iamVjdENhY2hlICpjYWNoZSwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZFBv
c2l0aW9uKQogewogICAgIGlkIHN0YXJ0VGV4dE1hcmtlciA9IHRleHRNYXJrZXJGb3JWaXNpYmxl
UG9zaXRpb24oY2FjaGUsIHN0YXJ0UG9zaXRpb24pOwogICAgIGlkIGVuZFRleHRNYXJrZXIgPSB0
ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBlbmRQb3NpdGlvbik7CiAgICAgcmV0
dXJuIHRleHRNYXJrZXJSYW5nZUZyb21NYXJrZXJzKHN0YXJ0VGV4dE1hcmtlciwgZW5kVGV4dE1h
cmtlcik7CiB9CiAKLS0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihW
aXNpYmxlUG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooVmlzaWJsZVBvc2l0aW9u
KWVuZFBvc2l0aW9uCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczoo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihjb25zdCBW
aXNpYmxlUG9zaXRpb24mKWVuZFBvc2l0aW9uCiB7CiAgICAgcmV0dXJuIHRleHRNYXJrZXJSYW5n
ZUZyb21WaXNpYmxlUG9zaXRpb25zKG1fb2JqZWN0LT5heE9iamVjdENhY2hlKCksIHN0YXJ0UG9z
aXRpb24sIGVuZFBvc2l0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggMWRlYjRkYi4uY2U3NGYwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTMwLDEyICszMCwxMyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgi
CiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFwcGVuZE5vZGVDb21t
YW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwg
UGFzc1JlZlB0cjxOb2RlPiBub2RlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50LT5k
b2N1bWVudCgpKQorQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1l
bnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcGFyZW50KHBhcmVudCkKICAgICAsIG1fbm9k
ZShub2RlKQogewpAQCAtNDYsMTUgKzQ3LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAg
ICAgQVNTRVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5k
ZXJlcigpKTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVC
cmVha3MoTm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2Up
CitzdGF0aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBu
b2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2Rl
LT5ub2RlVmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBj
b25zaWRlciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0g
IlxuIikKKyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRl
eHRDaGFuZ2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0g
bm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3Np
dGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4o
bm9kZSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAg
ICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0
LCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzczLDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNv
bW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVh
a3MobV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRU
eXBlKCkpOwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAg
IGlmICghbV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKKwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0
aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5n
ZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5n
ZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAK
ICAgICBtX25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi5mNzgyOTc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIs
MTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1
YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNz
UmVmUHRyPE5vZGU+IG5vZGUpCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3Jl
YXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdB
Y3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVu
ZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRy
PE5vZGU+LCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA3YzQxOGMyLi5jYWI4ODI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAt
MTIzLDkgKzEyMyw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVu
dChEb2N1bWVudCYgZG9jdW1lbnQpCiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxl
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5
KCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVy
dHlMZXZlbChwcm9wZXJ0eUxldmVsKQogICAgICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5z
dGFydCgpLmRvd25zdHJlYW0oKSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgp
LnVwc3RyZWFtKCkpCkBAIC0xMzYsOSArMTM1LDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5
U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHkK
IH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBj
b25zdCBQb3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxl
dmVsIHByb3BlcnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkK
KyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAg
ICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdB
Y3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlMZXZlbCkKICAgICAsIG1fc3Rh
cnQoc3RhcnQpCiAgICAgLCBtX2VuZChlbmQpCkBAIC0xNDksOSArMTQ3LDggQEAgQXBwbHlTdHls
ZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRp
dGluZ1N0eWxlKiBzdHkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5k
KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgYm9vbCByZW1vdmVPbmx5LCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChlbGVtZW50LT5kb2N1
bWVudCgpKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSwg
ZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoRWRpdGluZ1N0eWxlOjpjcmVhdGUoKSkKLSAg
ICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVs
KFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQo
KS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0
cmVhbSgpKQpAQCAtMTYzLDkgKzE2MCw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxl
Q29tbWFuZChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25sCiB9CiAK
IEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIElzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rp
b24gaXNJbmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3Np
dGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5
bGUtPmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwg
bV9wcm9wZXJ0eUxldmVsKFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2Vs
ZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rp
b24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAtMjI2LDExICsyMjIsNiBAQCB2b2lkIEFwcGx5U3R5
bGVDb21tYW5kOjpkb0FwcGx5KCkKICAgICB9CiB9CiAKLUVkaXRBY3Rpb24gQXBwbHlTdHlsZUNv
bW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2VkaXRpbmdBY3Rp
b247Ci19Ci0KIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5QmxvY2tTdHlsZShFZGl0aW5n
U3R5bGUgKnN0eWxlKQogewogICAgIC8vIHVwZGF0ZSBkb2N1bWVudCBsYXlvdXQgb25jZSBiZWZv
cmUgcmVtb3Zpbmcgc3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmgKaW5kZXggZTk5ZTM2YS4uOWRiZTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwbHlTdHlsZUNvbW1hbmQuaApAQCAtNzIsNyArNzIsNiBAQCBwcml2YXRlOgogICAgIEFwcGx5
U3R5bGVDb21tYW5kKERvY3VtZW50JiwgY29uc3QgRWRpdGluZ1N0eWxlKiwgYm9vbCAoKmlzSW5s
aW5lRWxlbWVudFRvUmVtb3ZlKShjb25zdCBFbGVtZW50KiksIEVkaXRBY3Rpb24pOwogCiAgICAg
dmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gc3R5bGUtcmVtb3ZhbCBo
ZWxwZXJzCiAgICAgYm9vbCBpc1N0eWxlZElubGluZUVsZW1lbnRUb1JlbW92ZShFbGVtZW50Kikg
Y29uc3Q7CkBAIC0xMjIsNyArMTIxLDYgQEAgcHJpdmF0ZToKICAgICBQb3NpdGlvbiBlbmRQb3Np
dGlvbigpOwogCiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9zdHlsZTsKLSAgICBFZGl0QWN0
aW9uIG1fZWRpdGluZ0FjdGlvbjsKICAgICBFUHJvcGVydHlMZXZlbCBtX3Byb3BlcnR5TGV2ZWw7
CiAgICAgUG9zaXRpb24gbV9zdGFydDsKICAgICBQb3NpdGlvbiBtX2VuZDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4u
YjU0MWVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIK
ICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtl
ci5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5j
bHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDEzICsxNjQsMzEg
QEAgdm9pZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmRD
b21wb3NpdGlvbjo6dW5hcHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGVkaXRp
bmdBY3Rpb24oKSkgeworICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICBjYXNlIEVkaXRBY3Rp
b25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNl
IEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgIGNh
c2UgRWRpdEFjdGlvblBhc3RlOgorICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAg
cmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAgIC8vIEluY2x1ZGUgZGVmYXVsdCBjYXNl
IGZvciB1bmhhbmRsZWQgRWRpdEFjdGlvbiBjYXNlcy4KKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwogdm9p
ZCBhcHBseUNvbW1hbmQoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY29tbWFuZCkK
IHsKICAgICBjb21tYW5kLT5hcHBseSgpOwogfQogCi1Db21wb3NpdGVFZGl0Q29tbWFuZDo6Q29t
cG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogRWRpdENvbW1hbmQo
ZG9jdW1lbnQpCitDb21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRlRWRpdENvbW1hbmQoRG9j
dW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29t
bWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKIHsKIH0KIApAQCAtMTg3LDYgKzIwNyw3IEBA
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KCkKICAgICAgICAgY2FzZSBFZGl0QWN0
aW9uU2V0V3JpdGluZ0RpcmVjdGlvbjoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uQ3V0OgogICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9u
SW5zZXJ0OgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6CiAgICAgICAgIGNhc2UgRWRp
dEFjdGlvbkRpY3RhdGlvbjoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjk2LDcgKzMxNyw3IEBA
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50KQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBw
YXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgp
LCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVk
QXJlYSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVu
dCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9
CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVCcmVhaygpCkBAIC0zMjIs
NyArMzQzLDcgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhj
b25zdCBOb2RlKiBub2RlKQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2Rl
QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVm
Q2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKElu
c2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNo
aWxkLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbigp
KSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNz
UmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAt
MzczLDcgKzM5NCw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdChQ
YXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQb3NpCiB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1JlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJlbkZvckVk
aXRpbmcocGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5k
Tm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSwgZWRpdGluZ0Fj
dGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZUNoaWxkcmVu
SW5SYW5nZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRv
KQpAQCAtMzk3LDcgKzQxOCw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5v
ZGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50CiAKIHZvaWQgQ29t
cG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oUGFzc1JlZlB0
cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRB
c3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2Rl
LCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbigpKSk7
CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVBbmRQcnVuZUFuY2Vz
dG9ycyhQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCkBAIC01MjUsMjAgKzU0NiwyMSBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dElu
dG9Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJp
bmcmIHRleHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgdGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0LCBlZGl0aW5nQWN0aW9u
KCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkK
IHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50
LCBlZGl0aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZVRleHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBS
ZWZQdHI8VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIFJlZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShXVEY6Om1vdmUobm9kZSksIG9m
ZnNldCwgY291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQp
OwogICAgIGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgcmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUoV1RGOjptb3ZlKG5vZGUp
LCBvZmZzZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSwg
ZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpy
ZXBsYWNlU2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTEyODksNyAr
MTMxMSw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgc3RhcnRPZlBhcmFncmFwCiAgICAgUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OkNvbW1hbmRPcHRpb25zIG9wdGlvbnMgPSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6
U2VsZWN0UmVwbGFjZW1lbnQgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6TW92aW5nUGFyYWdy
YXBoOwogICAgIGlmICghcHJlc2VydmVTdHlsZSkKICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6TWF0Y2hTdHlsZTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCBv
cHRpb25zKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBXVEY6Om1vdmUoZnJhZ21lbnQpLCBvcHRpb25zKSk7
CiAKICAgICBmcmFtZSgpLmVkaXRvcigpLm1hcmtNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFyKGVu
ZGluZ1NlbGVjdGlvbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5oCmluZGV4IGMyYjQ4OWQuLjcwNDRjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpOwog
I2VuZGlmCiAKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBjb25zdDsKKwog
cHJpdmF0ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IGVuZGluZ1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKQEAgLTg5LDcgKzkxLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29t
bWFuZChEb2N1bWVudCYpOworICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3Vt
ZW50JiwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICAgICAvLwogICAg
IC8vIHN1Z2FyeS1zd2VldCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gaGVscCBjcmVhdGUgYW5k
IGFwcGx5IGVkaXQgY29tbWFuZHMgaW4gY29tcG9zaXRlIGNvbW1hbmRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAy
ZWE5NmQ1Li5mOTNjYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDggKzM0LDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50
KCkpCitEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
KFJlZlB0cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRv
Y3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fb2Zm
c2V0KG9mZnNldCkKICAgICAsIG1fY291bnQoY291bnQpCkBAIC01OCw4ICs1OCw4IEBAIHZvaWQg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAg
ICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0
aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNh
dGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0
LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3Vu
dCwgZWMpOwogfQpAQCAtNzMsOCArNzMsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ6OmRvVW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4
dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJ
bnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hh
bmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0
aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5o
CmluZGV4IDI0OTFmMDUuLjRlNjE5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
NCwxNCArMzQsMTcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHN0YXRpYyBSZWY8RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRB
Y3Rpb25EZWxldGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChXVEY6Om1vdmUobm9kZSks
IG9mZnNldCwgY291bnQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KTsKKyAgICBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisK
K3Byb3RlY3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYm
LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0QWN0aW9uKTsKIAorcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKQEAgLTU1LDYgKzU4LDExIEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fdGV4dDsKIH07CiAKK2lubGluZSBjb25zdCBTdHJpbmcmIERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0Owor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCmluZGV4IDJiYmM2ZWQuLmViM2E1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNzIsOCArNzIsOCBA
QCBzdGF0aWMgYm9vbCBpc1RhYmxlUm93RW1wdHkoTm9kZSogcm93KQogICAgIHJldHVybiB0cnVl
OwogfQogCi1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVy
RGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29s
IHNhbml0aXplTWFya3VwKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBk
b2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBi
b29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXpl
TWFya3VwLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29t
bWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faGFzU2VsZWN0aW9uVG9EZWxl
dGUoZmFsc2UpCiAgICAgLCBtX3NtYXJ0RGVsZXRlKHNtYXJ0RGVsZXRlKQogICAgICwgbV9tZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlKG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUpCkBAIC05MCw4ICs5MCw4
IEBAIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsCiB7CiB9CiAKLURlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wg
cmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJr
dXApCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChzZWxlY3Rpb24uc3RhcnQoKS5hbmNob3JO
b2RlKCktPmRvY3VtZW50KCkpCitEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rp
b25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERl
bGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChzZWxlY3Rpb24uc3RhcnQo
KS5hbmNob3JOb2RlKCktPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX2hhc1Nl
bGVjdGlvblRvRGVsZXRlKHRydWUpCiAgICAgLCBtX3NtYXJ0RGVsZXRlKHNtYXJ0RGVsZXRlKQog
ICAgICwgbV9tZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUpCkBA
IC04ODQsMTQgKzg4NCw2IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgp
CiAgICAgY2xlYXJUcmFuc2llbnRTdGF0ZSgpOwogfQogCi1FZGl0QWN0aW9uIERlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAotewotICAgIC8vIE5vdGUgdGhhdCBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMg
dGhlIERlbGV0ZSBrZXksCi0gICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5n
Q29tbWFuZCB0aGF0IHN1cHBsaWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhl
IFVuZG8gbWVudSBjb3JyZWN0bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0
QWN0aW9uQ3V0OwotfQotCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0IHByZXNlcnZlIHRo
ZSB0eXBpbmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBGb3IgZXhhbXBsZSwK
IC8vIHR5cGUgYSBjaGFyYWN0ZXIsIEJvbGQsIHRoZW4gZGVsZXRlIHRoZSBjaGFyYWN0ZXIgYW5k
IHN0YXJ0IHR5cGluZy4gIFRoZSBCb2xkIHR5cGluZyBzdHlsZSBzaG91bGRuJ3QKIC8vIHN0aWNr
IGFyb3VuZC4gIERlbGV0aW9uIHNob3VsZCBwcmVzZXJ2ZSBhIHR5cGluZyBzdHlsZSB0aGF0ICpp
dCogc2V0cywgaG93ZXZlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxl
Y3Rpb25Db21tYW5kLmgKaW5kZXggZTViZjUxZC4uMGE5YjljYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTM0LDIzICszNCwyMiBA
QCBjbGFzcyBFZGl0aW5nU3R5bGU7CiAKIGNsYXNzIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBw
dWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgeyAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21h
cnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9v
bCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2Us
IGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0
aW9uQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9
IGZhbHNlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2Ug
PSBmYWxzZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5p
dGl6ZU1hcmt1cCA9IHRydWUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25E
ZWxldGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rp
b25Db21tYW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwg
cmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50
LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9y
U3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0K
LSAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBt
ZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0
cnVlKQorICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBi
b29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwg
Ym9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1
cCA9IHRydWUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5k
KHNlbGVjdGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2Us
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0
RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMsIHNhbml0aXplTWFya3VwLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcm90
ZWN0ZWQ6Ci0gICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnRE
ZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4
cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKyAgICBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1l
bnRzLCBib29sIHNhbnRpemVNYXJrdXAsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsK
IAogcHJpdmF0ZToKLSAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJv
b2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVN
YXJrdXApOworICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCBy
ZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1
cCwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwotICAgIHZpcnR1
YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBi
b29sIHByZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCmluZGV4IGMxNzNkZjQuLjkwOGZkNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtMTE1LDcgKzExNSw3
IEBAIHZvaWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhz
aXplX3QgbGluZVN0YXJ0LCBzaXplX3QgbGluCiB7CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVy
bmF0aXZlPiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAgICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0
aXZlc0luUmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVuZ3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwot
ICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5k
OjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vi
c3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpj
cmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSk7CisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5k
PiBjb21tYW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihk
b2N1bWVudCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3Ro
KSwgRGljdGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpLCBF
ZGl0QWN0aW9uRGljdGF0aW9uKTsKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5k
LCBlbmRpbmdTZWxlY3Rpb24oKSk7CiB9CiAKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIERpY3Rh
dGlvbkNvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgaWYgKCFjYW5BcHBl
bmROZXdMaW5lRmVlZFRvU2VsZWN0aW9uKGVuZGluZ1NlbGVjdGlvbigpKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCkpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
ZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uRGljdGF0aW9uKSk7CiB9CiAKIHZvaWQgRGljdGF0aW9u
Q29tbWFuZDo6Y29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2Uoc2l6ZV90IHJhbmdl
U3RhcnQsIHNpemVfdCByYW5nZUxlbmd0aCwgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYg
YWx0ZXJuYXRpdmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaAppbmRleCA2MzdkMWVi
Li42ZWYzNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaApAQCAtMjksNiArMjks
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVkZWYgZW51bSB7CiAgICAgICAgIEVk
aXRBY3Rpb25VbnNwZWNpZmllZCwKKyAgICAgICAgRWRpdEFjdGlvbkluc2VydCwKICAgICAgICAg
RWRpdEFjdGlvblNldENvbG9yLAogICAgICAgICBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9y
LAogICAgICAgICBFZGl0QWN0aW9uVHVybk9mZktlcm5pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjY0NzhhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0zNyw5ICszOCwxMCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUVkaXRDb21tYW5kOjpFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQp
CitFZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9wYXJl
bnQoMCkKKyAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogewogICAgIEFTU0VS
VChkb2N1bWVudC5mcmFtZSgpKTsKICAgICBzZXRTdGFydGluZ1NlbGVjdGlvbihtX2RvY3VtZW50
LT5mcmFtZSgpLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSk7CkBAIC02Nyw3ICs2OSw3IEBAIEZy
YW1lJiBFZGl0Q29tbWFuZDo6ZnJhbWUoKQogCiBFZGl0QWN0aW9uIEVkaXRDb21tYW5kOjplZGl0
aW5nQWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdEFjdGlvblVuc3BlY2lmaWVkOwor
ICAgIHJldHVybiBtX2VkaXRpbmdBY3Rpb247CiB9CiAKIHN0YXRpYyBpbmxpbmUgRWRpdENvbW1h
bmRDb21wb3NpdGlvbiogY29tcG9zaXRpb25JZlBvc3NpYmxlKEVkaXRDb21tYW5kKiBjb21tYW5k
KQpAQCAtMTEyLDYgKzExNCw1MCBAQCB2b2lkIEVkaXRDb21tYW5kOjpzZXRQYXJlbnQoQ29tcG9z
aXRlRWRpdENvbW1hbmQqIHBhcmVudCkKICAgICB9CiB9CiAKK0FYVGV4dEVkaXRUeXBlIEVkaXRD
b21tYW5kOjphcHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rp
b24oKSkgeworICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVk
aXRUeXBlQ3V0OworICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dEVkaXRUeXBlRGVsZXRlOworICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlvbjoKKyAgICAg
ICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworICAgIGNhc2UgRWRpdEFjdGlvbklu
c2VydDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgRWRp
dEFjdGlvblBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVQYXN0ZTsKKyAgICBj
YXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVR5cGlu
ZzsKKyAgICAvLyBJbmNsdWRlIGRlZmF1bHQgY2FzZSBmb3IgdW5oYW5kbGVkIEVkaXRBY3Rpb24g
Y2FzZXMuCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBB
WFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjp1
bmFwcGx5RWRpdFR5cGUoKSBjb25zdAoreworICAgIHN3aXRjaCAoYXBwbHlFZGl0VHlwZSgpKSB7
CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIHJldHVybiBBWFRleHRF
ZGl0VHlwZVVua25vd247CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7
CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7Cisg
ICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK1NpbXBsZUVkaXRD
b21tYW5kOjpTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24g
ZWRpdGluZ0FjdGlvbikKKyAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9u
KQoreworfQorCiB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpkb1JlYXBwbHkoKQogewogICAgIGRv
QXBwbHkoKTsKQEAgLTEyNSw0ICsxNzEsMTQgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRk
Tm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KIH0K
ICNlbmRpZgogCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
OworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApp
bmRleCAwM2U2YzM3Li4xYTk5N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENv
bW1hbmRfaAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRl
ICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBAIC00Niw3
ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21t
YW5kKik7CiAKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0Owor
ICAgIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwogCiAgICAgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0aW5n
U2VsZWN0aW9uOyB9CiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9lbmRpbmdTZWxlY3Rpb247IH0KQEAgLTU5LDggKzYwLDExIEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisgICAgQVhUZXh0
RWRpdFR5cGUgYXBwbHlFZGl0VHlwZSgpIGNvbnN0OworICAgIEFYVGV4dEVkaXRUeXBlIHVuYXBw
bHlFZGl0VHlwZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgRWRpdENvbW1h
bmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRB
Y3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50
JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAog
ICAgIEZyYW1lJiBmcmFtZSgpOwpAQCAtNzQsNiArNzgsNyBAQCBwcml2YXRlOgogICAgIFZpc2li
bGVTZWxlY3Rpb24gbV9zdGFydGluZ1NlbGVjdGlvbjsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1f
ZW5kaW5nU2VsZWN0aW9uOwogICAgIENvbXBvc2l0ZUVkaXRDb21tYW5kKiBtX3BhcmVudDsKKyAg
ICBFZGl0QWN0aW9uIG1fZWRpdGluZ0FjdGlvbiB7IEVkaXRBY3Rpb25VbnNwZWNpZmllZCB9Owog
fTsKIAogZW51bSBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSB7CkBAIC05MSwx
MiArOTYsMTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBT
aW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1hbmQoZG9jdW1l
bnQpIHsgfQorICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50JiwgRWRpdEFj
dGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgdm9p
ZCBhZGROb2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYK
IAorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
OworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ0FsbEluT25lLmNwcAppbmRleCBkYzNhZTMzLi4yM2JjNmIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBAIC01OSw2ICs1OSw4IEBACiAjaW5j
bHVkZSA8UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4K
KyNpbmNsdWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVk
ZSA8UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxh
Y2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDBmZDJmOTEuLmE3NzI4NmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKQEAgLTIwOCwxMiArMjA4LDEyIEBAIGJvb2wgRWRpdG9yOjpoYW5kbGVU
ZXh0RXZlbnQoVGV4dEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGlmIChjbGllbnQoKS0+cGVy
Zm9ybXNUd29TdGVwUGFzdGUoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlvbldp
dGhGcmFnbWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC0+c2hvdWxk
U21hcnRSZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIGV2ZW50LT5tYWlsQmxv
Y2txdW90ZUhhbmRsaW5nKCkpOworICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC0+c2hvdWxkU21hcnRS
ZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIEVkaXRBY3Rpb25QYXN0ZSwgZXZl
bnQtPm1haWxCbG9ja3F1b3RlSGFuZGxpbmcoKSk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAg
ICB9CiAjZW5kaWYKICAgICAgICAgZWxzZSAKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25X
aXRoVGV4dChldmVudC0+ZGF0YSgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgp
KTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChldmVudC0+ZGF0YSgpLCBm
YWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBFZGl0QWN0aW9uUGFzdGUpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM3NCwxMiArMzc0LDEyIEBAIGJvb2wgRWRp
dG9yOjpkZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRl
eHRHcmFudWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9y
OjpkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9u
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgYXBwbHlDb21t
YW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0
ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBlZGl0aW5nQWN0aW9uKSk7CiB9CiAKIHZvaWQg
RWRpdG9yOjpjbGVhclRleHQoKQpAQCAtNTIwLDcgKzUyMCw3IEBAIGJvb2wgRWRpdG9yOjpzaG91
bGRJbnNlcnRGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBQ
YXNzUmVmCiAgICAgcmV0dXJuIGNsaWVudCgpLT5zaG91bGRJbnNlcnROb2RlKGZyYWdtZW50Lmdl
dCgpLCByZXBsYWNpbmdET01SYW5nZS5nZXQoKSwgZ2l2ZW5BY3Rpb24pOwogfQogCi12b2lkIEVk
aXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFj
ZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3Rl
SGFuZGxpbmcpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxhY2VtZW50
LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24sIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKIHsK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbi5pc05vbmUoKSB8fCAhc2VsZWN0aW9uLmlzQ29u
dGVudEVkaXRhYmxlKCkgfHwgIWZyYWdtZW50KQpAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgRWRp
dG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQsCiAgICAgaWYgKG1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPT0gTWFpbEJs
b2NrcXVvdGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90ZSkKICAgICAgICAgb3B0aW9ucyB8PSBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SWdub3JlTWFpbEJsb2NrcXVvdGU7CiAKLSAgICBhcHBs
eUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFn
bWVudCwgb3B0aW9ucywgRWRpdEFjdGlvblBhc3RlKSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMs
IGVkaXRpbmdBY3Rpb24pKTsKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRp
b24oKTsKIAogICAgIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7
CkBAIC01NTAsMTMgKzU1MCwxMyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhG
cmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIG1fc3Bl
bGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShy
ZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4
dENoZWNraW5nVHlwZUdyYW1tYXIpLCBUZXh0Q2hlY2tpbmdQcm9jZXNzQmF0Y2gsIHJhbmdlVG9D
aGVjaywgcmFuZ2VUb0NoZWNrKSk7CiB9CiAKLXZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9u
V2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29s
IHNtYXJ0UmVwbGFjZSkKK3ZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29u
c3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFj
ZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2Ug
PSBzZWxlY3RlZFJhbmdlKCk7CiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpy
YW5nZSwgdGV4dCksIHNlbGVjdFJlcGxhY2VtZW50LCBzbWFydFJlcGxhY2UsIHRydWUpOworICAg
IHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFu
Z2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVlLCBlZGl0aW5n
QWN0aW9uKTsKIH0KIAogUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpzZWxlY3RlZFJhbmdlKCkK
QEAgLTk5OCw3ICs5OTgsOCBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0
cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5
cGluZyBzdHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5n
cyBlbHNld2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rp
b25PcHRpb25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxl
Y3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJD
b21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgCisgICAgY2hhbmdlU2VsZWN0aW9u
QWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUVkaXRUeXBlKCkp
OwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+
c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRp
dGFibGVFbGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpA
QCAtMTAyOSw3ICsxMDMwLDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1Jl
ZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250
cm9scyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RF
ZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihj
bWQtPnN0YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFu
ZChuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpKTsKKyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFt
ZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21kLT51bmFwcGx5RWRp
dFR5cGUoKSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNtZC0+
c3RhcnRpbmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxl
bWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjMs
NyArMTI2NCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNw
ZWNpZmllciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwog
ICAgIGlmIChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRo
U21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVj
dGlvbldpdGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0
KTsKIH0KIAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTIyMzUsNyArMjIzNiw3IEBAIHZvaWQg
RWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZ3b3JkU3RhcnQsCiAKICAgICAgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLnNob3Vs
ZEluc2VydFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgbWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwg
RWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBt
X2ZyYW1lLmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRvY29ycmVjdGVkU3Ry
aW5nLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBtX2ZyYW1lLmVkaXRvcigpLnJlcGxhY2VTZWxl
Y3Rpb25XaXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rp
b25JbnNlcnQpOwogCiAgICAgICAgIC8vIFJlc2V0IHRoZSBjaGFyZXQgb25lIGNoYXJhY3RlciBm
dXJ0aGVyLgogICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLm1vdmVUbyhtX2ZyYW1lLnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpLmVuZCgpKTsKQEAgLTI1ODEsNyArMjU4Miw3IEBAIHZvaWQgRWRp
dG9yOjpjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3Ry
aW5nKQogICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVjb3JkQXV0b2Nv
cnJlY3Rpb25SZXNwb25zZVJldmVyc2VkKHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rpb24pOwogICAg
IFRleHRDaGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGgoc2VsZWN0aW9uKTsKLSAgICByZXBsYWNl
U2VsZWN0aW9uV2l0aFRleHQocmVwbGFjZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSk7CisgICAgcmVw
bGFjZVNlbGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRB
Y3Rpb25JbnNlcnQpOwogICAgIFJlZlB0cjxSYW5nZT4gY2hhbmdlZFJhbmdlID0gcGFyYWdyYXBo
LnN1YnJhbmdlKHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCksIHJlcGxhY2VkU3RyaW5nLmxlbmd0
aCgpKTsKICAgICBjaGFuZ2VkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCkubWFy
a2VycygpLmFkZE1hcmtlcihjaGFuZ2VkUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpSZXBs
YWNlbWVudCwgU3RyaW5nKCkpOwogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+bWFy
a1JldmVyc2VkKGNoYW5nZWRSYW5nZS5nZXQoKSk7CkBAIC0yODE1LDcgKzI4MTYsNyBAQCB2b2lk
IEVkaXRvcjo6dHJhbnNwb3NlKCkKICAgICAvLyBJbnNlcnQgdGhlIHRyYW5zcG9zZWQgY2hhcmFj
dGVycy4KICAgICBpZiAoIXNob3VsZEluc2VydFRleHQodHJhbnNwb3NlZCwgcmFuZ2UuZ2V0KCks
IEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKICAgICAgICAgcmV0dXJuOwotICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNl
cnQpOwogfQogCiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSogcmFuZ2UsIGJvb2wg
cHJlcGVuZCkKQEAgLTI4NDcsNyArMjg0OCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVj
dGlvblBhbmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRp
c21pc3MoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi12
b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25z
IG9wdGlvbnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewog
ICAgIC8vIElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0
ZSB0aGUgc2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigp
IHx8IG5ld1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg1OSw3ICsyODYwLDcgQEAg
dm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1
PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNl
bGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWRO
b3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8
fCBtX2ZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24p
KQotICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24s
IG9wdGlvbnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0
aW9ucyBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMg
cG9zaXRpb24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJl
c3MgcmV0dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCBhNTdkNDJhLi4xMzEzZGIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24s
IFRleHRHcmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9v
bCBzbWFydERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25X
aXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25E
ZWxldGUpOwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC0zODIsOCAr
MzgyLDggQEAgcHVibGljOgogICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxlbWVu
dCopOwogICAgIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdEaXJlY3Rpb24gYmFzZVdyaXRpbmdEaXJl
Y3Rpb25Gb3JTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCByZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4sIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNo
U3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpS
ZXNwZWN0QmxvY2txdW90ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBz
bWFydFJlcGxhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldp
dGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNlbGVjdFJlcGxh
Y2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9uID0g
RWRpdEFjdGlvbkluc2VydCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxCbG9ja3F1b3Rl
SGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
cGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdFJlcGxhY2Vt
ZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2VsZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGUsIGludCBmcm9tLCBpbnQgbGVuZ3RoKSBjb25zdDsKICAgICB2
b2lkIHVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGJvb2wgb25seUhhbmRs
ZVdvcmRzQ29udGFpbmluZ1NlbGVjdGlvbik7CiAgICAgdm9pZCBkZWxldGVkQXV0b2NvcnJlY3Rp
b25BdFBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFN0cmlu
Zyk7CkBAIC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9u
TW9kZSB7IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lk
IHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAg
ICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAg
ICB2b2lkIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAg
ZW51bSBFZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAg
ICB2b2lkIHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDUxMWNiMDIuLjdhODE2NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTkyLDcgKzE5Miw3
IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKEZyYW1lJiBmcmFtZSwg
RWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJh
Z21lbnQoRnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50
KQogewogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKLSAgICBhcHBseUNvbW1hbmQoUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQs
IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRpdEFjdGlvblVuc3Bl
Y2lmaWVkKSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6
UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25JbnNlcnQpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA0NDBmMzY2
Li41ZGNiMTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZyYW1lU2Vs
ZWN0aW9uLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2hhcmFj
dGVyRGF0YS5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgpAQCAtMTM5LDcgKzE0MCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9u
Ojpyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdn
ZXJlZCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewogICAgIHNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVl
cEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwo
KSksCi0gICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBh
bGlnbik7CisgICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQp
LCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxl
Y3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMTcwLDcg
KzE3MSw4IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNv
bnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKGJhc2Us
IGV4dGVudCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9uYWwoc2VsZWN0aW9uSGFz
RGlyZWN0aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpKTsK
KyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAg
IHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkg
fCAoc2hvdWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIGludGVudCk7CiB9CiAKIHZv
aWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9z
aXRpb24mIHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1NiwxMyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
cGFzcwogICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3VsZENoYW5n
ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNl
bGVjdEV2ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAg
ICAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgbmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkK
KyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0p
OworICAgIGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsK
KyAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9u
cygpIHwgRmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRl
ZCwgZ3JhbnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25X
aXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVj
dGlvblBvc3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkp
CkBAIC0yNzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9j
dW1lbnQqIG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVu
dCgpKSB7CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3
U2VsZWN0aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rp
b25GcmFtZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRv
Y3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5
KTsKKyAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwg
YWxpZ24sIGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRo
YXQgZHVyaW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhh
cyBiZWVuIG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50
SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9u
Z2VyIHZhbGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRv
IGJlIGRlc3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4K
QEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRo
b3V0VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNv
ckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgaW50ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJh
bmNlKHNlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYg
KGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFs
U2VsZWN0aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBk
YXRpbmdMYXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXct
PmNsZWFyU2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJl
dmVhbFNlbGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxl
Y3Rpb24oQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIGlmICghbV9wZW5k
aW5nU2VsZWN0aW9uVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzg4LDcgQEAg
dm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCkKICAgICAgICAg
cmV2ZWFsU2VsZWN0aW9uKGFsaWdubWVudCwgUmV2ZWFsRXh0ZW50KTsKICAgICB9CiAKLSAgICBu
b3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShpbnRlbnQpOwogCiAgICAgaWYgKGF1dG8qIGNsaWVu
dCA9IG1fZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpKQogICAgICAgICBjbGllbnQtPmRpZENoYW5n
ZVNlbGVjdGlvbkFuZFVwZGF0ZUxheW91dCgpOwpAQCAtMTAyMSw3ICsxMDI5LDc1IEBAIFZpc2li
bGVQb3NpdGlvbiBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQoVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5CiBzdGF0aWMgYm9vbCBpc0JvdW5kYXJ5KFRleHRHcmFudWxhcml0
eSBncmFudWxhcml0eSkKIHsKICAgICByZXR1cm4gZ3JhbnVsYXJpdHkgPT0gTGluZUJvdW5kYXJ5
IHx8IGdyYW51bGFyaXR5ID09IFBhcmFncmFwaEJvdW5kYXJ5IHx8IGdyYW51bGFyaXR5ID09IERv
Y3VtZW50Qm91bmRhcnk7Ci19ICAgIAorfQorCitBWFRleHRTdGF0ZUNoYW5nZUludGVudCBGcmFt
ZVNlbGVjdGlvbjo6dGV4dFNlbGVjdGlvbkludGVudChFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQorewor
ICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCk7CisgICAgYm9vbCBmbGlwID0gZmFsc2U7CisgICAgaWYgKGFsdGVyID09IEZyYW1lU2Vs
ZWN0aW9uOjpBbHRlcmF0aW9uTW92ZSkgeworICAgICAgICBpbnRlbnQudHlwZSA9IEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU7CisgICAgICAgIGZsaXAgPSBpc1JhbmdlKCkgJiYg
ZGlyZWN0aW9uT2ZTZWxlY3Rpb24oKSA9PSBSVEw7CisgICAgfSBlbHNlCisgICAgICAgIGludGVu
dC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOworICAgIHN3aXRj
aCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgICAg
ICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlDaGFyYWN0ZXI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV29yZEdyYW51bGFyaXR5Ogor
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlXb3JkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJp
dHk6CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9u
LmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBMaW5lR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lQm91bmRh
cnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFyYWdyYXBoR3Jh
bnVsYXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNl
bGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBo
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERvY3VtZW50R3JhbnVsYXJpdHk6CisgICAgY2Fz
ZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5
ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGJvb2wgYm91bmRhcnkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKGdyYW51bGFyaXR5
KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICBjYXNlIFdvcmRHcmFudWxh
cml0eToKKyAgICBjYXNlIFNlbnRlbmNlR3JhbnVsYXJpdHk6CisgICAgY2FzZSBMaW5lR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50
R3JhbnVsYXJpdHk6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToK
KyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAg
IGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgYm91bmRhcnkgPSB0cnVlOworICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVj
dGlvblJpZ2h0OgorICAgIGNhc2UgRGlyZWN0aW9uRm9yd2FyZDoKKyAgICAgICAgaWYgKGJvdW5k
YXJ5KQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlv
biA9IGZsaXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyA6IEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTGVm
dDoKKyAgICBjYXNlIERpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisg
ICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25FbmQgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxp
cCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25QcmV2aW91czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBpbnRlbnQ7Cit9
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBFVXNl
clRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQogewpAQCAtMTA3Nyw2ICsxMTUzLDExIEBAIGJvb2wg
RnJhbWVTZWxlY3Rpb246Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgU2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbiwgVGV4CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0
ZXJhdGlvbk1vdmUgJiYgcG9zaXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZnJhbWUgJiYgQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2Fj
aGUgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KHRleHRTZWxlY3Rpb25JbnRlbnQo
YWx0ZXIsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKTsKKyAgICB9CisKICAgICAvLyBTb21lIG9m
IHRoZSBhYm92ZSBvcGVyYXRpb25zIHNldCBhbiB4UG9zRm9yVmVydGljYWxBcnJvd05hdmlnYXRp
b24uCiAgICAgLy8gU2V0dGluZyBhIHNlbGVjdGlvbiB3aWxsIGNsZWFyIGl0LCBzbyBzYXZlIGl0
IHRvIHBvc3NpYmx5IHJlc3RvcmUgbGF0ZXIuCiAgICAgLy8gTm90ZTogdGhlIFNUQVJUIHBvc2l0
aW9uIHR5cGUgaXMgYXJiaXRyYXJ5IGJlY2F1c2UgaXQgaXMgdW51c2VkLCBpdCB3b3VsZCBiZQpA
QCAtMTcxMCw4ICsxNzkxLDEwIEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCgpCiAK
ICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxl
Y3Rpb25Gcm9tQ29udGVudHNPZk5vZGUocm9vdC5nZXQoKSkpOwogCi0gICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2ZW50KTsK
KyAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbkV4dGVuZCwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlz
Y29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgfSk7CisgICAgICAgIHNl
dFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBG
aXJlU2VsZWN0RXZlbnQsIGludGVudCk7CisgICAgfQogfQogCiBib29sIEZyYW1lU2VsZWN0aW9u
OjpzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29s
IGNsb3NlVHlwaW5nKQpAQCAtMjQyMyw3ICsyNTA2LDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBGcmFt
ZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihjb25zdCBW
aXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxlY3Rpb24u
c2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJpdHkoV29y
ZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3U2VsZWN0
aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZO
ZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2VsZWN0aW9u
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCks
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwg
ZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFydFBvcyhm
cmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBlbmRQb3Mo
ZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjk1N2I1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRnJhbWVT
ZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJBWFRleHRT
dGF0ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2luY2x1ZGUg
IkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xNDQsNyArMTQ1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9zaXRpb24m
LCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29sIHNob3Vs
ZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxh
cml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRl
eHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBp
bmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5UIH07CiAK
LSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlQW5k
UmV2ZWFsU2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSk7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7
CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3Jv
bGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTcsMTAgKzI5OCwxMSBAQCBwcml2YXRlOgogCiAg
ICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRp
b24oRVBvc2l0aW9uVHlwZSk7CiAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB0ZXh0U2Vs
ZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxh
cml0eSk7CiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCkpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UoQVhUZXh0U2VsZWN0aW9uSW50ZW50KSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1
cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVV
c2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICszNjksNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAj
aWYgIShQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQog
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KQogewogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA1Mzk0ZTdlLi45NGFmMDQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAKQEAgLTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQpCi0g
ICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5n
QWN0aW9uKQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSwgZWRpdGlu
Z0FjdGlvbikKICAgICAsIG1fbm9kZShub2RlKQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAg
ICwgbV90ZXh0KHRleHQpCkBAIC02Niw4ICs2Niw4IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1f
dGV4dCwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9k
ZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRl
eHRJbnNlcnRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0
Q2hhbmdlKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3Np
dGlvbihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWYgUExBVEZPUk0oSU9T
KQpAQCAtODQsOCArODQsOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgLy8gTmVlZCB0byBub3RpZnkg
dGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RD
YWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAg
ICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVj
dENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0
LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIAogICAgIG1f
bm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV90ZXh0Lmxlbmd0aCgpLCBJR05PUkVfRVhDRVBU
SU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKaW5kZXggMzEwYmJiMy4uMDc2MDkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTM0LDE0ICszNCwx
NyBAQCBjbGFzcyBUZXh0OwogCiBjbGFzcyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIDogcHVi
bGljIFNpbXBsZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVk
IG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChXVEY6Om1vdmUobm9kZSksIG9m
ZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zm
c2V0LCBjb25zdCBTdHJpbmcmIHRleHQpOworICAgIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0
KCk7CisKK3Byb3RlY3RlZDoKKyAgICBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxU
ZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24pOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogI2lm
IFBMQVRGT1JNKElPUykKQEAgLTU3LDYgKzYwLDExIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1f
dGV4dDsKIH07CiAKK2lubGluZSBjb25zdCBTdHJpbmcmIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6Omluc2VydGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3Bw
CmluZGV4IGQxNmI1ZDYuLmM2YjIyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwCkBAIC0yOSwxMyArMjksMTMgQEAKICNpbmNs
dWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAi
aHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBpbnNlcnRD
aGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCwKLSAgICBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKLSAg
ICA6IFNpbXBsZUVkaXRDb21tYW5kKHJlZkNoaWxkLT5kb2N1bWVudCgpKQorSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFJlZlB0cjxOb2RlPiYmIGluc2Vy
dENoaWxkLCBSZWZQdHI8Tm9kZT4mJiByZWZDaGlsZCwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHJlZkNoaWxkLT5kb2N1
bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9pbnNlcnRDaGlsZChpbnNlcnRDaGlsZCkK
ICAgICAsIG1fcmVmQ2hpbGQocmVmQ2hpbGQpCiAgICAgLCBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQpAQCAt
NTcsOCArNTcsMTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9BcHBseSgpCiAK
ICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShtX2luc2VydENoaWxkLmdldCgpLCBtX3JlZkNoaWxk
LmdldCgpLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5u
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWFRleHRJbnNlcnRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBv
c2l0aW9uIHBvc2l0aW9uID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlv
bihkb3duY2FzdDxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lF
ZGl0aW5nUG9zaXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIGFwcGx5RWRpdFR5
cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3NpdGlv
bikpOworICAgIH0KIH0KIAogdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5
KCkKQEAgLTY3LDggKzY5LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5h
cHBseSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVm
b3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUt
Pm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0
Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQ
b3NpdGlvbiBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRp
b24oZG93bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5
RWRpdGluZ1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCB1bmFwcGx5RWRp
dFR5cGUoKSwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCksIFZpc2libGVQb3NpdGlvbihwb3Np
dGlvbikpOworICAgIH0KIAogICAgIG1faW5zZXJ0Q2hpbGQtPnJlbW92ZShJR05PUkVfRVhDRVBU
SU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuaAppbmRleCBkNGI3NjJkLi41Y2VhMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCkBAIC0zMiwyMiArMzIsMjMgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZCA6IHB1Ymxp
YyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFz
c1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAotICAgICAgICBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJs
ZSkKKyAgICBzdGF0aWMgUmVmPEluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBjcmVhdGUoUmVmUHRy
PE5vZGU+JiYgY2hpbGRUb0luc2VydCwgUmVmUHRyPE5vZGU+JiYgY2hpbGRUb0luc2VydEJlZm9y
ZSwKKyAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVk
aXRBY3Rpb25JbnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZChjaGlsZFRvSW5zZXJ0LCBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChXVEY6Om1vdmUoY2hpbGRUb0luc2Vy
dCksIFdURjo6bW92ZShjaGlsZFRvSW5zZXJ0QmVmb3JlKSwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQ
YXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKTsKK3Byb3RlY3RlZDoKKyAgICBJbnNlcnROb2RlQmVmb3JlQ29tbWFu
ZChSZWZQdHI8Tm9kZT4mJiBjaGlsZFRvSW5zZXJ0LCBSZWZQdHI8Tm9kZT4mJiBjaGlsZFRvSW5z
ZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlv
bik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7Ci0gICAgCisKICNpZm5kZWYgTkRF
QlVHCiAgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikg
b3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAKKwogICAgIFJlZlB0cjxOb2RlPiBtX2luc2VydENoaWxk
OwogICAgIFJlZlB0cjxOb2RlPiBtX3JlZkNoaWxkOwogICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRv
ckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kLmNwcAppbmRleCAyMTI4MjljLi43ZGQwMTYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZC5jcHAKQEAgLTU5LDggKzU5LDggQEAgc3RhdGljIEVsZW1lbnQqIGhpZ2hlc3RWaXN1YWxseUVx
dWl2YWxlbnREaXZCZWxvd1Jvb3QoRWxlbWVudCogc3RhcnRCbG9jaykKICAgICByZXR1cm4gY3Vy
QmxvY2s7CiB9CiAKLUluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Okluc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIG11c3RVc2VEZWZh
dWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVh
KQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCBtdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFz
dGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQor
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAg
LCBtX211c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudChtdXN0VXNlRGVmYXVsdFBhcmFncmFw
aEVsZW1lbnQpCiAgICAgLCBtX3Bhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEocGFzdGVC
bG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKaW5kZXggMTI4MWYw
Yy4uNjczNDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmgKQEAgLTM0LDEzICszNCwxMyBAQCBjbGFzcyBF
ZGl0aW5nU3R5bGU7CiAKIGNsYXNzIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQgOiBw
dWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
Ym9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2tx
dXRvZUludG9VbnF1b3RlZEFyZWEgPSBmYWxzZSkKKyAgICBzdGF0aWMgUmVmPEluc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgdXNl
RGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRv
VW5xdW90ZWRBcmVhID0gZmFsc2UsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rp
b25JbnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kKGRvY3VtZW50LCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVu
dCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kKGRvY3VtZW50LCB1c2VE
ZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwg
ZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kKERvY3VtZW50JiwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVu
dCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKTsKKyAgICBJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kKERvY3VtZW50JiwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBo
RWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBFZGl0QWN0aW9u
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAKaW5kZXggYmRkNTlhMy4uNTcyZThlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5jcHAKQEAgLTM3LDE2ICsz
NywxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydFRleHRDb21tYW5kOjpJbnNl
cnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9v
bCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSkKLSAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2Vy
dFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwg
ZWRpdGluZ0FjdGlvbikKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV9zZWxlY3RJbnNlcnRl
ZFRleHQoc2VsZWN0SW5zZXJ0ZWRUZXh0KQogICAgICwgbV9yZWJhbGFuY2VUeXBlKHJlYmFsYW5j
ZVR5cGUpCiB7CiB9CiAKLUluc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0
aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQotICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQoZG9jdW1lbnQpCitJbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllciwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24p
CiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fc2VsZWN0SW5zZXJ0ZWRUZXh0KGZhbHNlKQog
ICAgICwgbV9yZWJhbGFuY2VUeXBlKFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3Bh
Y2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFu
ZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4IGYx
MGQyZmUuLjY1MjgxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21t
YW5kLmgKQEAgLTQ5LDIwICs0OSwyMSBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBS
ZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQgPSBmYWxzZSwKLSAgICAgICAgUmVi
YWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hp
dGVzcGFjZXMpCisgICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFsYW5j
ZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24g
PSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmVi
YWxhbmNlVHlwZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29t
bWFuZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlLCBl
ZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29tbWFu
ZD4gY3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2Vy
U3VwcGxpZXIpCisgICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29tbWFuZD4gY3JlYXRlV2l0aE1h
cmtlclN1cHBsaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNz
UmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwgdGV4dCwgbWFy
a2VyU3VwcGxpZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENv
bW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyLCBlZGl0aW5nQWN0aW9uKSk7CiAg
ICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgorICAgIEluc2VydFRleHRDb21tYW5kKERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJT
dXBwbGllcj4sIEVkaXRBY3Rpb24pOworICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50Jiwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlw
ZSwgRWRpdEFjdGlvbik7CiAKLSAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUpOwot
ICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNz
UmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4pOworcHJpdmF0ZToKIAogICAgIHZv
aWQgZGVsZXRlQ2hhcmFjdGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3Zl
U2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggY2U4ODQ3OC4uZDZlY2Y2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTc5LDcgKzc5
LDcgQEAgdm9pZCBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OkNvbW1hbmRPcHRpb25zIG9wdGlvbnMgPSBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6U2VsZWN0UmVwbGFjZW1lbnQgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJl
dmVudE5lc3Rpbmc7CiAgICAgaWYgKG1fc21hcnRJbnNlcnQpCiAgICAgICAgIG9wdGlvbnMgfD0g
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNtYXJ0UmVwbGFjZTsKLSAgICBhcHBseUNvbW1hbmRU
b0NvbXBvc2l0ZShSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIG1f
ZnJhZ21lbnQsIG9wdGlvbnMpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIFdURjo6bW92ZShtX2ZyYWdtZW50
KSwgb3B0aW9ucykpOwogfQogCiBFZGl0QWN0aW9uIE1vdmVTZWxlY3Rpb25Db21tYW5kOjplZGl0
aW5nQWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKaW5kZXggMmMwNjNj
MC4uYzYyOTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAKQEAgLTMxLDggKzMxLDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZDo6UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxO
b2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5v
ZGUtPmRvY3VtZW50KCkpCitSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6UmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBT
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNB
bHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbm9k
ZShub2RlKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQu
aAppbmRleCA0YjkxOTc0Li4xYjJjNDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCkBAIC0z
MiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgc3Rh
dGljIFJlZjxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZD4gY3JlYXRlKFBhc3NS
ZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW92ZU5vZGVQcmVzZXJ2
aW5nQ2hpbGRyZW5Db21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW92ZU5vZGVQcmVzZXJ2aW5n
Q2hpbGRyZW5Db21tYW5kKG5vZGUsIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
LCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKKyAgICBleHBsaWNpdCBSZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9B
cHBseSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmE5OGE5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApAQCAtMCwwICsxLDQyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCIKKworI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kKFJlZlB0cjxUZXh0PiYmIHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291
bnQpCisgICAgOiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZSh0ZXh0KSwgb2Zm
c2V0LCBjb3VudCwgRWRpdEFjdGlvbkRlbGV0ZSkKK3sKK30KKwordm9pZCBSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9k
ZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM3MjEyOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorI2Rl
ZmluZSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisKKyNpbmNsdWRlICJEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgZmluYWwgOiBwdWJsaWMgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxUZXh0PiYmIHRleHQsIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgY291bnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChXVEY6Om1vdmUodGV4dCksIG9m
ZnNldCwgY291bnQpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYsIHVuc2lnbmVkLCB1bnNpZ25lZCk7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRl
eHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzNDhjMTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApA
QCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5n
QWN0aW9uKQorICAgIDogSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChXVEY6Om1vdmUobm9kZSks
IG9mZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbikKKyAgICAsIG1fZGVsZXRlZFRleHQoZGVsZXRl
ZFRleHQpCit7Cit9CisKK3ZvaWQgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Om5v
dGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
bikKK3sKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCk7CisgICAgaWYgKCFjYWNoZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICBjYWNoZS0+
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0
ZSwgdGV4dCwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsIG1fZGVsZXRlZFRleHQsIHBvc2l0aW9uKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlUGFzdGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAg
ICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0
RWRpdFR5cGVEZWxldGUsIG1fZGVsZXRlZFRleHQsIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI2M2IyYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmRfaAorI2RlZmluZSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisK
KyNpbmNsdWRlICJJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgZmluYWwgOiBw
dWJsaWMgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxUZXh0PiYm
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChXVEY6
Om1vdmUobm9kZSksIG9mZnNldCwgdGV4dCwgZGVsZXRlZFRleHQsIGVkaXRpbmdBY3Rpb24pKTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQo
UmVmUHRyPFRleHQ+JiYsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBF
ZGl0QWN0aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKSBvdmVycmlkZTsKKworICAgIFN0cmluZyBtX2RlbGV0ZWRUZXh0OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZUluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmNwcAppbmRleCBmYjM4ODBjLi5mZDU3NDU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNDcsNiAr
NDcsOCBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVj
dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgiCiAjaW5jbHVkZSAiU2ltcGxpZnlNYXJrdXBDb21tYW5kLmgiCiAjaW5jbHVkZSAi
U21hcnRSZXBsYWNlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCkBAIC0zNjgsMTUg
KzM3MCwxNCBAQCBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWRO
b2Rlczo6ZGlkUmVwbGFjZU5vZGUoTm9kZSogbm9kZSwgTgogICAgICAgICBtX2xhc3ROb2RlSW5z
ZXJ0ZWQgPSBuZXdOb2RlOwogfQogCi1SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50LCBDb21tYW5kT3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0aW9uIGVkaXRB
Y3Rpb24pCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK1JlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBDb21tYW5kT3B0aW9ucyBvcHRp
b25zLCBFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCwgZWRpdEFjdGlvbikKICAgICAsIG1fc2VsZWN0UmVwbGFjZW1lbnQob3B0aW9ucyAm
IFNlbGVjdFJlcGxhY2VtZW50KQogICAgICwgbV9zbWFydFJlcGxhY2Uob3B0aW9ucyAmIFNtYXJ0
UmVwbGFjZSkKICAgICAsIG1fbWF0Y2hTdHlsZShvcHRpb25zICYgTWF0Y2hTdHlsZSkKICAgICAs
IG1fZG9jdW1lbnRGcmFnbWVudChmcmFnbWVudCkKICAgICAsIG1fcHJldmVudE5lc3Rpbmcob3B0
aW9ucyAmIFByZXZlbnROZXN0aW5nKQogICAgICwgbV9tb3ZpbmdQYXJhZ3JhcGgob3B0aW9ucyAm
IE1vdmluZ1BhcmFncmFwaCkKLSAgICAsIG1fZWRpdEFjdGlvbihlZGl0QWN0aW9uKQogICAgICwg
bV9zYW5pdGl6ZUZyYWdtZW50KG9wdGlvbnMgJiBTYW5pdGl6ZUZyYWdtZW50KQogICAgICwgbV9z
aG91bGRNZXJnZUVuZChmYWxzZSkKICAgICAsIG1faWdub3JlTWFpbEJsb2NrcXVvdGUob3B0aW9u
cyAmIElnbm9yZU1haWxCbG9ja3F1b3RlKQpAQCAtMTQyNywxMSArMTQyOCw2IEBAIHZvaWQgUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6Om1lcmdlVGV4dE5vZGVzQXJvdW5kUG9zaXRpb24oUG9zaXRp
b24mIHBvc2l0aW9uLCBQCiAgICAgfQogfQogCi1FZGl0QWN0aW9uIFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lZGl0QWN0aW9u
OwotfQotCiAvLyBJZiB0aGUgdXNlciBpcyBpbnNlcnRpbmcgYSBsaXN0IGludG8gYW4gZXhpc3Rp
bmcgbGlzdCwgaW5zdGVhZCBvZiBuZXN0aW5nIHRoZSBsaXN0LAogLy8gd2UgcHV0IHRoZSBsaXN0
IGl0ZW1zIGludG8gdGhlIGV4aXN0aW5nIGxpc3QuCiBOb2RlKiBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6aW5zZXJ0QXNMaXN0SXRlbXMoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gcHJwTGlzdEVs
ZW1lbnQsIE5vZGUqIGluc2VydGlvbkJsb2NrLCBjb25zdCBQb3NpdGlvbiYgaW5zZXJ0UG9zLCBJ
bnNlcnRlZE5vZGVzJiBpbnNlcnRlZE5vZGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCmluZGV4IGQ4N2MzZmYuLjljZmRmYzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKQEAg
LTQ4LDE3ICs0OCwxNiBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIENvbW1hbmRP
cHRpb25zOwogCi0gICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBhY3Rpb24gPSBFZGl0QWN0aW9u
UGFzdGUpCisgICAgc3RhdGljIFJlZjxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIENv
bW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rp
b25JbnNlcnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgZnJhZ21lbnQsIG9wdGlvbnMsIGFjdGlvbikpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVu
dCwgV1RGOjptb3ZlKGZyYWdtZW50KSwgb3B0aW9ucywgZWRpdGluZ0FjdGlvbikpOwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIENvbW1hbmRPcHRpb25zLCBFZGl0QWN0aW9uKTsKKyAg
ICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIFJlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiYmLCBDb21tYW5kT3B0aW9ucywgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZG9BcHBseSgpOwotICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Q7
Ci0gICAgCisKICAgICBjbGFzcyBJbnNlcnRlZE5vZGVzIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IHZvaWQgcmVzcG9uZFRvTm9kZUluc2VydGlvbihOb2RlKik7CkBAIC0xMjAsNyArMTE5LDYgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbV9kb2N1bWVudEZyYWdtZW50
OwogICAgIGJvb2wgbV9wcmV2ZW50TmVzdGluZzsKICAgICBib29sIG1fbW92aW5nUGFyYWdyYXBo
OwotICAgIEVkaXRBY3Rpb24gbV9lZGl0QWN0aW9uOwogICAgIGJvb2wgbV9zYW5pdGl6ZUZyYWdt
ZW50OwogICAgIGJvb2wgbV9zaG91bGRNZXJnZUVuZDsKICAgICBib29sIG1faWdub3JlTWFpbEJs
b2NrcXVvdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAppbmRleCA5
MzI5Y2RmLi5mMDc0NDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGlu
Z0NvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoY29u
c3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4dCkKIHZvaWQgVHlwaW5nQ29t
bWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhjb25zdCBTdHJpbmcgJnRleHQsIGJv
b2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogewogICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dCwgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LAotICAgICAgICBtX2NvbXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9z
aXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGlu
Z1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1hbmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2Vz
KTsKKyAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IElu
c2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6
IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcywgRWRpdEFjdGlvblR5
cGluZyk7CiAKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRpbmdTZWxl
Y3Rpb24oKSk7CiAKQEAgLTM5NSw3ICszOTUsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgaWYgKCFjYW5BcHBlbmROZXdMaW5lRmVlZFRvU2Vs
ZWN0aW9uKGVuZGluZ1NlbGVjdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRl
KGRvY3VtZW50KCkpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3Jh
cGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZmFsc2UsIGZhbHNlLCBFZGl0
QWN0aW9uVHlwaW5nKSk7CiAgICAgdHlwaW5nQWRkZWRUb09wZW5Db21tYW5kKEluc2VydFBhcmFn
cmFwaFNlcGFyYXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
YXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvYXRrL0Zy
YW1lU2VsZWN0aW9uQXRrLmNwcAppbmRleCA3YzIxMzY1Li4zMzJlMGFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCkBAIC03OCw3ICs3
OCw3IEBAIHN0YXRpYyB2b2lkIG1heWJlRW1pdFRleHRGb2N1c0NoYW5nZShQYXNzUmVmUHRyPEFj
Y2Vzc2liaWxpdHlPYmplY3Q+IHBycE9iamVjdCkKIH0KIAogCi12b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxl
Y3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwCmluZGV4IGMxODgzMzguLjEzNGIyMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3Bw
CkBAIC0zOCw3ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERpY3RhdGlvbkNvbW1h
bmRJT1M6OkRpY3RhdGlvbkNvbW1hbmRJT1MoRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8VmVj
dG9yPFN0cmluZz4+JiYgZGljdGF0aW9uUGhyYXNlcywgUmV0YWluUHRyPGlkPiBtZXRhZGF0YSkK
LSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRp
dENvbW1hbmQoZG9jdW1lbnQsIEVkaXRBY3Rpb25EaWN0YXRpb24pCiAgICAgLCBtX2RpY3RhdGlv
blBocmFzZXMoV1RGOjptb3ZlKGRpY3RhdGlvblBocmFzZXMpKQogICAgICwgbV9tZXRhZGF0YShX
VEY6Om1vdmUobWV0YWRhdGEpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3Mv
RGljdGF0aW9uQ29tbWFuZElPUy5oCmluZGV4IGJmOTA3NjQuLmFjNWNiMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmgKQEAgLTQ0LDcg
KzQ0LDYgQEAgcHJpdmF0ZToKICAgICBEaWN0YXRpb25Db21tYW5kSU9TKERvY3VtZW50JiwgVmVj
dG9yPFZlY3RvcjxTdHJpbmc+PiYmIGRpY3RhdGlvblBocmFzZXMsIFJldGFpblB0cjxpZD4gbWV0
YWRhdGEpOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVk
aXRBY3Rpb25EaWN0YXRpb247IH0KIAogICAgIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4gbV9kaWN0
YXRpb25QaHJhc2VzOwogICAgIFJldGFpblB0cjxpZD4gbV9tZXRhZGF0YTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4u
ZmQ0MTk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxl
Y3Rpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rp
b25NYWMubW0KQEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlD
b252ZXJ0U2NyZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CiAgICAgCiAgICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxp
dHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAo
bV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05v
dE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNh
dGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFY
T2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVu
dCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiht
X3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24p
OwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIuLjM2ODRlMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1
cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9vbCB0ZXh0SXND
aGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIFN0
cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAg
IGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRl
eHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisjaWYgSEFWRShB
Q0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0ZXh0SXNDaGFu
Z2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgICAgICAgICAg
Y2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5n
ZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAg
aW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAg
ICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkK
ICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJl
bmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPnBv
c3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhUZXh0RWRpdFR5cGVEZWxldGUs
IHByZXZpb3VzVmFsdWUsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0
aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOwor
ICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hl
c1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRl
eCA5OWU2ZDU5Li4yODNkMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtNTI0LDcgKzUyNCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERy
YWcoRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTbWFydFJlcGxhY2U7CiAgICAgICAgICAgICAgICAgaWYg
KGNob3NlUGxhaW5UZXh0KQogICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpNYXRjaFN0eWxlOwotICAgICAgICAgICAgICAgIGFwcGx5Q29tbWFu
ZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCptX2RvY3VtZW50VW5kZXJNb3VzZSwg
ZnJhZ21lbnQsIG9wdGlvbnMpKTsKKyAgICAgICAgICAgICAgICBhcHBseUNvbW1hbmQoUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIFdURjo6bW92
ZShmcmFnbWVudCksIG9wdGlvbnMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0g
ZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggODg2Yzc2NS4uM2Q5
ZmVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIzOSw3ICszMjM5
LDggQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFt
ZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0g
ICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZWxlY3Rpb24u
c2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9p
ZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRF
dmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXgg
NzdjMDdmZS4uZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cApAQCAtMzQwLDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3Vz
SW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgIGlmIChj
YXJldEJyb3dzaW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlv
bkluT3JCZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9u
IG5ld1NlbGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwotICAgICAgICBp
ZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikp
Ci0gICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
KTsKKyAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlVbmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
ZWxlbWVudC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzY5
Nzg4Ni4uZDQ2ZDg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA0
LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBy
aWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQu
IEFsc28gaW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdl
cyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0Cisg
ICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JFZGl0QWN0aW9u
KToKKwogMjAxNS0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MzI2Ni4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBk
MjFjZGYwLi5lNTkwZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01NDYsNiArNTQ2LDcgQEAgc3RhdGljIE5TU3Ry
aW5nKiB1bmRvTmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogICAgIC8v
IEZJWE1FOiBUaGlzIGlzIGlkZW50aWNhbCB0byBjb2RlIGluIFdlYktpdDIncyBXZWJFZGl0Q29t
bWFuZFByb3h5IGNsYXNzOyB3b3VsZCBiZSBuaWNlIHRvIHNoYXJlIHRoZSBzdHJpbmdzIGluc3Rl
YWQgb2YgaGF2aW5nIHR3byBjb3BpZXMuCiAgICAgc3dpdGNoIChlZGl0QWN0aW9uKSB7CiAgICAg
ICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOiByZXR1cm4gbmlsOworICAgICAgICBjYXNl
IEVkaXRBY3Rpb25JbnNlcnQ6IHJldHVybiBuaWw7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNl
dENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IENvbG9yIiwgIlNldCBD
b2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBj
YXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lO
VEVSTkFMKCJTZXQgQmFja2dyb3VuZCBDb2xvciIsICJTZXQgQmFja2dyb3VuZCBDb2xvciAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25UdXJuT2ZmS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlR1cm4g
T2ZmIEtlcm5pbmciLCAiVHVybiBPZmYgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5k
byBhY3Rpb24gbmFtZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDFlYzc4Y2MuLjM4N2FmMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNS0wNC0yNCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxs
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRy
b2R1Y2UgQVhUZXh0RWRpdFR5cGUsCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3Rp
dmUKKyAgICAgICAgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGlu
ZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudAorICAgICAgICBhIG1l
Y2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4g
Y29hbGVzY2VkIHRpY2tzIHRvIHRod2FydAorICAgICAgICBhbmFseXppbmcgdGhlIGNhZGVuY2Ug
b2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwKKyAg
ICAgICAgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24g
dG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUKKyAgICAgICAgcmVsaWFibGUgY29udGV4
dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxz
byBibG9jayBwb3N0aW5nCisgICAgICAgIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZp
ZWxkcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24pOgor
CiAyMDE1LTA0LTI0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTgzMjY2LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDU0Y2UwM2MuLjg3
ODU1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFu
ZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQ
cm94eS5jcHAKQEAgLTc0LDYgKzc0LDggQEAgU3RyaW5nIFdlYkVkaXRDb21tYW5kUHJveHk6Om5h
bWVGb3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICBzd2l0Y2ggKGVkaXRB
Y3Rpb24pIHsKICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICAgICAgcmV0dXJuIFN0
cmluZygpOwogICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgogICAgICAgICByZXR1cm4gV0VC
X1VJX1NUUklOR19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUp
IiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICBjYXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5k
Q29sb3I6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYmYxZTc2Mi4uMzJhZjE5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA0LTI0ICBEb3VnIFJ1c3NlbGwg
IDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ug
bm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNh
dGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBn
aXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZv
ciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50Cisg
ICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3Jt
IGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0CisgICAgICAgIGFuYWx5emluZyB0
aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNl
bGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5v
dGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZQorICAgICAgICByZWxp
YWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2Vs
ZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2VsZWN0aW9uIGNoYW5nZXMgb24g
cGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXSk6CisgICAgICAgICgtW0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKToKKwogMjAxNS0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjE4MzI2Ni4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKaW5kZXggMTkzODZjZS4uOTA4ZGJkYyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAKIC0gKHZvaWQpc2V0UGxhdGZv
cm1FbGVtZW50OihpZClwbGF0Zm9ybUVsZW1lbnQ7CiAtICh2b2lkKXNldENhbGxiYWNrOihKU09i
amVjdFJlZiljYWxsYmFjazsKIC0gKHZvaWQpc3RhcnRPYnNlcnZpbmc7CistICh2b2lkKXN0b3BP
YnNlcnZpbmc7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2Eu
LmYxYzlhZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEwNCw2ICsxMDQsMTEgQEAK
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNl
bGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9ub3RpZmljYXRpb25SZWNlaXZlZDopIG5hbWU6QCJBWERS
VE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07CiB9CiAKKy0gKHZvaWQpc3RvcE9ic2VydmluZwor
eworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2
ZXI6c2VsZl07Cit9CisKIC0gKHZvaWQpX25vdGlmaWNhdGlvblJlY2VpdmVkOihOU05vdGlmaWNh
dGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIE5TU3RyaW5nICpub3RpZmljYXRpb25OYW1lID0g
W1tub3RpZmljYXRpb24gdXNlckluZm9dIG9iamVjdEZvcktleTpAIm5vdGlmaWNhdGlvbk5hbWUi
XTsKQEAgLTExMiwxNiArMTE3LDI3IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1f
cGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJ
bmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlm
aWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAg
ICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5n
KFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBK
U1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2Vy
SW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNT
dHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVN
YWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pT
T05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAg
ICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwg
dGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFtt
YWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywg
MCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNh
dGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVt
ZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlv
bk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVB
cmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2Jh
bENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50
cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0
aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2Jh
bENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkp
OwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAg
ICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpT
T2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmlj
YXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0KaW5kZXggNDY3M2ExZC4uMzk3YzYzOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0NDYsNiArMTQ0
Niw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlz
dGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byBy
ZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX25v
dGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2Jz
ZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90
aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAg
LTEyNSwxOSArMTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZv
cm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0Ai
dXNlckluZm8iXTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQ
YWdlR2V0TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+
cGFnZSgpKTsKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZh
U2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1Jl
Zl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1h
a2VTdHJpbmcoY29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYg
dXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZh
bHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlcklu
Zm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0p
OworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNP
TlN0cmluZyhjb250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAg
aWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxl
bWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAg
ICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJl
Zj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5h
bWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVu
ZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50
cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNh
dGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07
CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAg
ICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNP
YmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25v
dGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0g
ZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5v
dGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbM107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3Rd
KSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7Cisg
ICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAg
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4o
bV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCBl
ZDAyZmI3Li5lMjYwN2UxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0KQEAgLTE0NzYsNiArMTQ3Niw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91
bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1v
dmVkLgogICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAgW21fbm90aWZp
Y2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVy
IHJlbGVhc2VdOwogICAgIG1fbm90aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251657</attachid>
            <date>2015-04-25 17:56:36 -0700</date>
            <delta_ts>2015-04-25 18:06:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>222399</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDQwM2RmZTdjNmQ1YzQ1NzIwYmMwN2FlZTY1YWQ3ZTM3NWU0ZTc5ODIKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgRnJpIEFwciAyNCAxNTo1
MDoxNyAyMDE1IC0wNzAwCgogICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NzE5CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCiAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlCiAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5n
IHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CiAgICBhIG1lY2hhbmlz
bSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVz
Y2VkIHRpY2tzIHRvIHRod2FydAogICAgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAogICAgYW5kIGFuIG92ZXJs
b2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUg
dGVjaCBhcHBzIG1vcmUKICAgIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZwogICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyODIxMjk4Li5jNzA3
MmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMDQtMjQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLAorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlCisgICAgICAgIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQKKyAgICAg
ICAgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmll
bGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQKKyAgICAgICAgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsCisgICAgICAgIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlCisgICAgICAgIHJlbGlhYmxl
IGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rp
b24uIEFsc28gYmxvY2sgcG9zdGluZworICAgICAgICBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1
dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTI0ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGZhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctcmVzaXplLWV2ZW50LWNvdW50Lmh0bWwgdGlt
ZXMgb3V0IG9uIFlvc2VtaXRlIFdLMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWZhNmY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0
IGZpZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlm
aWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4
dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVk
aXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kZTBkZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0
aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1
dCB0eXBlPSJwYXNzd29yZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InZhbHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25z
Ij48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNp
bmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVE
ZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0
VHlwZURlbGV0ZSArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIg
Y291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0
SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmlj
YXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZh
bHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAg
IHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIp
IHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0
VHlwZURlbGV0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIs
ICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJB
WFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3Jk
IG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3
aWxsIGJlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNl
cnQiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBzZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHNldHNlY3VyZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAi
MCI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAg
ICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRy
dWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9v
dEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwor
CisgICAgICAgICAgICBzZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rp
b24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVl
LiBmb3VyIGZpdmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVj
dGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBh
cmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZv
Lmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50
ZWRpdGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+
c2V2ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2
PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ICsgMTsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmcgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cyA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyAr
IDE7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUNoYXJhY3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGggKyAyOworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwg
InNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5j
ZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAg
ICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9
IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9u
Q2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0
aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOwor
ICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsr
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3Jk
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3
ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAg
ICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0
SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRC
ZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7
CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwg
MCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAg
ICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQor
ICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5m
by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92
YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjM5M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVD
dXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBp
bmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFu
Z2UtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlk
PSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAg
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVz
ZXIgaW5mbyBkYXRhLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2
YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsK
KyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBp
bmcgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbiArIDEKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0
VHlwZUN1dCArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291
bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5k
ZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRp
b24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVl
Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJl
c3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsK
KworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlw
ZUN1dCIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5n
ZVZhbHVlXCJdIiwgIlwiMjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZh
bHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBl
XCJdIiwgIkFYVGV4dEVkaXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhU
ZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7
CisgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxp
dHkodHJ1ZSk7CisKKyAgICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3Rp
ZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNh
bGxiYWNrKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVl
Iik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHRib3giKTsKKyAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAg
ZXhlY1NldFNlbGVjdGlvbkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0
ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENv
bW1hbmQoKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVy
Q29tbWFuZCgpOworICAgICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggYzhlMjA1YS4uZTdjOTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE1MTMsNiArMTUxMyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1JlbW92
ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAorICAgIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA1YTU4NWYwLi45MDg1ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQwIEBACisyMDE1LTA0
LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBy
aWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQu
IEFsc28gaW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdl
cyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0Cisg
ICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIFRlc3RzOiBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVj
dENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzUGFzc3dvcmRGaWVsZE9y
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5n
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2Fk
aW5nRXZlbnROb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4
dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6Y29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNz
d29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQpOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBWFBvc3ROb3RpZmlj
YXRpb25XaXRoVXNlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6XSk6Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpTT05UeXBl
cyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAodGV4dE1h
cmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczplbmRQ
b3NpdGlvbjpdKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0eWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9z
aXRpb246OmdldE5vZGVzSW5Db21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWspOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRy
ZW5JblJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnB1dFRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZGVsZXRlZFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxl
Y3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OnByZXNlcnZlc1R5cGluZ1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0
TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRBY3Rpb24uaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21t
YW5kOjpFZGl0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0Q29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OnNldFBhcmVudCk6IERl
bGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmhhbmRsZVRleHRFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0
T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVy
VHlwaW5nVG9Xb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlQmFja1RvUmVw
bGFjZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cmFuc3Bvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRGcmFnbWVudCk6CisgICAgICAg
ICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3Zl
V2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojp0ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5p
bmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9k
aWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdvcmRTdGFy
dCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omlu
c2VydGVkVGV4dCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Okluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJbnNlcnRU
ZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAg
ICAgKiBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oLgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVz
OjpkaWRSZXBsYWNlTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6aW5zZXJ0QXNMaXN0SXRlbXMpOiBEZWxldGVkLgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvaW9zL0RpY3Rh
dGlvbkNvbW1hbmRJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZElP
Uzo6RGljdGF0aW9uQ29tbWFuZElPUyk6CisgICAgICAgICogZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5oOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKToKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0
aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKToKKwogMjAxNS0wNC0yNCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgcmFuZ2VFeHBhbmRlZEFyb3VuZFBvc2l0aW9uQnlDaGFyYWN0
ZXJzIHRvIGFsbCBwbGF0Zm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagppbmRleCAzNjlmNTJiLi45NmQ4OTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Nzc3LDYgKzE0Nzc3
LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1NDUsNiArMTk1NzMsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxp
dHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEFkanVz
dFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA4Nyw2ICsyMTExNiw4IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRl
cmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0
Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBhMDMxODA4Li5mZTlm
YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNTI1LDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC03NjY4LDYgKzc2NzQsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmls
aXR5PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiPgorICAgICAgICA8Rmls
dGVyPmFjY2Vzc2liaWxpdHk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyV2luLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5XHdpbjwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpAQCAtMTA2NzcsNiArMTA2ODYsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhjYzdiNTQuLjliNTEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNTAsNiArMzI1MCw3IEBACiAJCTkwMDE3NzQxMTJF
MDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIg
LyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MDEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBK
U09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYx
QyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlG
ODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDVCMjREMDk4
RjFCNkIwMEMyODg1NSAvKiBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTUsNiArNjM5
NiwxMCBAQAogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUz
NDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJ
RjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUy
OERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlG
NTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsg
fTsKQEAgLTEwNTAwLDYgKzEwNTA1LDcgQEAKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkx
QzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3Jv
dXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUdyb3VwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNDAsNiArMTQwNDYsMTAgQEAKIAkJRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1M
b2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFz
ZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3
QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjEsNiArMTU2NzEsNyBAQAog
CQkJCTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCAq
LywKIAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8s
CiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKKwkJ
CQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xNzc5NCw2ICsxNzgwNSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2
RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlC
MzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5
QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1
NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywK
IAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzcyOCw2ICsyMzc0Myw3IEBACiAJCQkJ
NkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyog
QXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAw
MURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTY1
Myw2ICsyNTY2OSw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcw
QThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NzA2LDYgKzI2NzIzLDcgQEAKIAkJCQk3QzRDOTZERDFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
MUQ0MjgxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QTY5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljU21vb3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MUM5RjJGOTFBRTNCRUIwMDA5
NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
QzFENDI5MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQyQTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNkQw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4NDY0LDYgKzI4NDgyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3
QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYx
MkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1
ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTkxMSw2ICsyOTkzMCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2
RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5
MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggYTAwYjE1Yy4uMzYxNzdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5
MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAorLy8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgcGFzc3dvcmQgZmllbGRz
IG9yIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMgYXQgYSA0MGh6IGludGVy
dmFsIHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQorc3RhdGljIGRvdWJsZSBB
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFsID0gMC4w
MjU7CisKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhDb21wdXRlZE9iamVjdEF0dHJp
YnV0ZUNhY2hlOjpnZXRJZ25vcmVkKEFYSUQgaWQpIGNvbnN0CiB7CiAgICAgSGFzaE1hcDxBWElE
LCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1faWRNYXBw
aW5nLmZpbmQoaWQpOwpAQCAtMTI5LDYgKzEzMiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0
RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENh
Y2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTcwNSw3ICs3MDksNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBSZWY8RG9jdW1lbnQ+
IHByb3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7CiAgICAgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXIuc3RvcCgpOwogICAgIAotICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRp
b25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNh
dGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyBJbiB0
ZXN0cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5
IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0
ZWQgYmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVk
IGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgogICAgIGF1
dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlvbnNUb1Bvc3QpOwogICAg
IApAQCAtNzQyLDYgKzc0NiwyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9i
amVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiB0ZXN0cywgcG9z
dGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVw
IG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZp
b3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBl
bmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZp
Y2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAg
ICBmb3IgKGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAgIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCksIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgorfQog
ICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCog
cmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFy
Z2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY4LDIyMCBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRD
aGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBOREVC
VUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRhdGFMb2coIlVua25vd24i
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Ogor
ICAgICAgICBkYXRhTG9nKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBkYXRhTG9nKCJNb3ZlOjoi
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2coIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25vd24i
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRl
OgorICAgICAgICAgICAgZGF0YUxvZygiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIGRhdGFMb2coIklu
c2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVE
aWN0YXRpb246CisgICAgICAgICAgICBkYXRhTG9nKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAg
ICAgICAgZGF0YUxvZygiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRhdGFMb2coIkN1dCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgICAgIGRhdGFMb2coIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6Cisg
ICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygi
VW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRhTG9nKCJCZWdpbm5pbmc6
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICAgICAgZGF0YUxvZygiRW5kOjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAg
ICAgICAgICAgZGF0YUxvZygiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIGRhdGFM
b2coIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpc2Nv
bnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dpdGNo
IChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJV
bmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIGRhdGFMb2co
IkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
V29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiTGluZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlNlbnRlbmNl
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlBhcmFn
cmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiUGFnZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkRvY3VtZW50
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAo
aW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAgZGF0YUxvZygiLVN5bmMiKTsKKyAgICBk
YXRhTG9nKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90
ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCitzdGF0aWMgYm9vbCBpc1Bhc3N3b3Jk
RmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmpl
Y3QpCit7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSB8
fCBvYmplY3QtPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKIAotICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQotICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlm
IChvYmplY3QpIHsKKyAgICAgICAgaWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNz
d29yZEZpZWxkKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9
IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIChpbnRlbnQudHlwZSA9PSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duKSA/IG1fdGV4dFNlbGVjdGlvbkludGVudCA6IGludGVudCwg
c2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigp
LCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQ
YXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxl
Y3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlm
ICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4dEVkaXRU
eXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygp
OworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5x
dWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7Cisg
ICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVj
dCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZvckVkaXRUeXBlKHR5cGUpLCBwb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQpOwor
I2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChkZWxldGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNlcnRpb25UeXBlID09IEFY
VGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBp
bmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRp
b25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3RvcENhY2hpbmdDb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9
IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChvYmplY3Qp
IHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9i
amVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9IG9iamVjdC0+b2Jz
ZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmplY3QsIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIGluc2VydGlv
blR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0
aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0
KTsKKyNlbmRpZgorfQorCitib29sIEFYT2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKK3sKKyAgICBp
ZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9ic2VydmFi
bGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICBpZiAoIW9ic2VydmFi
bGVPYmplY3QpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIC8vIHJl
dHVybiB0cnVlIGV2ZW4gdGhvdWdoIHRoZSBlbnF1ZXVlIGRpZG4ndCBoYXBwZW4gYmVjYXVzZSB0
aGlzIGlzIGEgcGFzc3dvcmQgZmllbGQgYW5kIGNhbGxlciBzaG91bGRuJ3QgcG9zdCBhIG5vdGlm
aWNhdGlvbgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAobV9wYXNzd29y
ZE5vdGlmaWNhdGlvbnNUb1Bvc3QuZmluZChvYnNlcnZhYmxlT2JqZWN0KSA9PSBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSkgeworICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uc1RvUG9zdC5pbnNlcnQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlmICghbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoQWNjZXNzaWJpbGl0eVBhc3N3
b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZhbCk7CisgICAgfQorCisgICAgcmV0dXJu
IHRydWU7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmlj
YXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0
LDYgKzEzMDYsMTQgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9v
dFdlYkFyZWEoKQoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmplY3QgPSB0aGlz
LT5yb290T2JqZWN0KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2JqZWN0LT5pc0Fj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndlYkFy
ZWFPYmplY3QoKTsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRlQ2Fj
aGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkKIHsK
QEAgLTEwOTYsNiArMTMyNiwyNiBAQCBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6fkFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyKCkKICAgICBpZiAobV9jYWNoZSkKICAgICAgICAgbV9jYWNoZS0+c3Rv
cENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIH0KKworI2lmICFQTEFURk9STShD
T0NPQSkKK0FYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUo
QVhUZXh0RWRpdFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
IHJldHVybiBBWFRleHREZWxldGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dEluc2VydGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYVGV4
dEluc2VydGVkOworfQorI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggYmZhOTI3
Ny4uMTRiODdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDExIEBACiAjaWZuZGVmIEFYT2JqZWN0Q2Fj
aGVfaAogI2RlZmluZSBBWE9iamVjdENhY2hlX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCiAjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c2V0PgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgpAQCAtNjcsNiArNjksMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPEFYSUQs
IENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz4gbV9pZE1hcHBpbmc7CiB9OwogCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorZW51bSBBWFRleHRDaGFuZ2UgeyBBWFRleHRJbnNlcnRlZCwgQVhUZXh0RGVs
ZXRlZCB9OworI2VuZGlmCisKIGVudW0gUG9zdFRhcmdldCB7IFRhcmdldEVsZW1lbnQsIFRhcmdl
dE9ic2VydmFibGVQYXJlbnQgfTsKIAogZW51bSBQb3N0VHlwZSB7IFBvc3RTeW5jaHJvbm91c2x5
LCBQb3N0QXN5bmNocm9ub3VzbHkgfTsKQEAgLTE4OSwxMiArMTk1LDE1IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogICAgIHZv
aWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5v
dGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFz
eW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAgQVhUZXh0
SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAgfTsKKyNpZm5kZWYgTkRFQlVH
CisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7Cisj
ZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJl
cGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUs
IGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIGNvbnN0IEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51
bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTMsMTIg
KzIyMiwyNCBAQCBwdWJsaWM6CiAgICAgQVhDb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKiBj
b21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkgeyByZXR1cm4gbV9jb21wdXRlZE9iamVjdEF0
dHJpYnV0ZUNhY2hlLmdldCgpOyB9CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX2RvY3VtZW50OyB9Ci0gICAgCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3Rh
dGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUp
OworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZv
cm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9k
ZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYp
OworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CisjZWxzZQorICAgIHN0YXRpYyBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBl
KEFYVGV4dEVkaXRUeXBlKTsKKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2
b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hh
bmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMjUwLDI1IEBAIHByb3RlY3RlZDoKICAgICBib29s
IGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5z
KG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEo
KTsKKworICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVs
ZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CisKKyAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0
eU9iamVjdCopOworCisgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisg
ICAgYm9vbCBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0Kik7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVk
KCk7CisKKyAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxl
TGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3Rl
ZChOb2RlKik7CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCA9IHZvaWQ+IHN0cnVjdCBSZWZQdHJD
b21wYXJlIDogc3RkOjpiaW5hcnlfZnVuY3Rpb248UmVmUHRyPFQ+LCBSZWZQdHI8VD4sIGJvb2w+
IHsKKyAgICAgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFJlZlB0cjxUPiYgeCwgY29uc3QgUmVm
UHRyPFQ+JiB5KSBjb25zdCB7IHJldHVybiB4LmdldCgpIDwgeS5nZXQoKTsgfQorICAgIH07CisK
ICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nl
c3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0Kiwg
QVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjM4LDE5ICsyNzgsMTYgQEAgcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVhDb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlPiBt
X2NvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgZ0FjY2Vzc2liaWxpdHlFbmFibGVkOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBi
b29sIGdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKLSAgICAKKwog
ICAgIEhhc2hTZXQ8QVhJRD4gbV9pZHNJblVzZTsKLSAgICAKKwogICAgIFRpbWVyIG1fbm90aWZp
Y2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKLSAgICB2
b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7Ci0gICAgdm9pZCBoYW5kbGVNZW51T3Bl
bmVkKE5vZGUqKTsKLSAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKLSAg
ICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwotICAgIAotICAgIHN0YXRpYyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVt
ZW50Kik7Ci0gICAgCi0gICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKwor
ICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgc3RkOjpzZXQ8
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBSZWZQdHJDb21wYXJlPEFjY2Vzc2liaWxpdHlP
YmplY3Q+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKworICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArMzQ1LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlz
SWdub3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
IHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlu
bGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0Kiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CkBAIC0zMjAsNiArMzU4LDE0IEBAIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnJlbW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
OjpyZW1vdmUoV2lkZ2V0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3Rl
ZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShD
T0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKK2lubGluZSBBWFRleHRDaGFuZ2UgQVhPYmpl
Y3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKSB7IHJldHVybiBB
WFRleHRJbnNlcnRlZDsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKICNlbmRpZgogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVjMjY0ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorI2Rl
ZmluZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK2VudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVVbmtub3duLAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQKK307CisKK2VudW0gQVhUZXh0RWRpdFR5cGUgeworICAgIEFYVGV4dEVkaXRU
eXBlVW5rbm93biwKKyAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRl
bGV0ZQorICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0Cisg
ICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgQVhUZXh0
RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAgQVhUZXh0RWRp
dFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJ
bnNlcnQgdmlhIFBhc3RlCit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7Cisg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAg
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cwor
fTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSB7CisgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlVbmtub3duLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZSwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlEb2N1bWVudCwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBBbGwg
Z3JhbnVsYXJpdHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hvbGUg
ZG9jdW1lbnQgYXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNvbWUg
b3RoZXIgZ3JhbnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3VtZW50
IHdpbGwgbm90IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24uCit9Owor
CitzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uOworICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5Owor
fTsKKworc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZTsKKyAgICB1bmlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxl
Y3Rpb247CisgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICB9OworICAgIGJvb2wg
aXNTeW5jaHJvbml6aW5nIHsgZmFsc2UgfTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAg
ICA6IHR5cGUodHlwZSkKKyAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgIHsgfQor
CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQorICAg
ICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgLCBjaGFuZ2Uo
Y2hhbmdlKQorICAgIHsgfQorCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgaXNTeW5jaHJvbml6aW5nKQorICAgICAgICA6IHR5cGUo
dHlwZSkKKyAgICAgICAgLCBzZWxlY3Rpb24oKQorICAgICAgICAsIGlzU3luY2hyb25pemluZyhp
c1N5bmNocm9uaXppbmcpCisgICAgeworICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kKTsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZiAvLyBBWFRleHRTdGF0
ZUNoYW5nZUludGVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjQzOGU4NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVu
dC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgp
Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxl
bWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVu
dC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisK
KyAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIGlmICghZWxl
bWVudCB8fCAhaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgp
KQorICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworCisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJ
bWFnZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aAppbmRleCAzZTc1NzJmLi5hODJiZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bh
c3N3b3JkRmllbGQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGlj
YXRvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAppbmRleCA1YTI3ZWE4Li5jYjMzODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2NDYsNCAr
MjY0NiwxNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERP
TUV2ZW50RGlzcGF0Y2goYm9vbCBvbikKIH0KICNlbmRpZgogCitib29sIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBu
b2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93
SG9zdCgpOworICAgIHJldHVybiBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3du
Y2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkuaXNQYXNzd29yZEZpZWxkKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uODE2YzMxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
QEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1h
Z2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0
dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29y
ZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBw
YXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIHsgcmV0dXJuIG51bGxwdHI7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVl
KCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGU5ZDJhNTIuLjUw
ZmRhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ5MSwxNCArMTQ5MSwxNyBAQCBQbGFp
blRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgp
IGNvbnN0CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJh
bmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0
Q29udHJvbCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA/IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCA6IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUp
KTsKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93
bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0
LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24o
bm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAot
ICAgICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRp
b246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRp
b246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0
ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9X
TlNUUkVBTSk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbmV3SW50ZW50KHJhbmdlLmxl
bmd0aCA/IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIG5ld0ludGVudCk7CiB9CiAKIFVSTCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MywxMyArMTk2NiwxNiBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9u
UmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8
fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1h
a2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVy
byBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0
ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAg
ICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmln
Z2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAg
ICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQsIHRydWUpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAppbmRleCBjNjJjNzUz
Li4wYzQ2NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCkBAIC00Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRh
Y2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKikgb3ZlcnJpZGU7
CiAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyop
OwogICAgIApAQCAtNzEsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRl
OwogICAgIAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB3ZWJBcmVhT2JqZWN0KCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyKiBhZGRDaGlsZFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2b2lkIHJlbW92ZUNoaWxk
U2Nyb2xsYmFyKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKaW5kZXggNTg1MmEwZi4u
YWUyNTYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhP
YmplY3RDYWNoZUF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
QVhPYmplY3RDYWNoZUF0ay5jcHAKQEAgLTI2OCwxMCArMjY4LDEwIEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmplCiAgICAgLy8gU2VsZWN0IHRoZSByaWdodCBzaWduYWwgdG8gYmUgZW1pdHRlZAog
ICAgIENTdHJpbmcgZGV0YWlsOwogICAgIHN3aXRjaCAodGV4dENoYW5nZSkgewotICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ6CisgICAgY2FzZSBBWFRleHRJbnNlcnRlZDoK
ICAgICAgICAgZGV0YWlsID0gInRleHQtaW5zZXJ0IjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkOgorICAgIGNhc2UgQVhUZXh0RGVsZXRlZDoK
ICAgICAgICAgZGV0YWlsID0gInRleHQtcmVtb3ZlIjsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNo
ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0KaW5kZXggMTE5ZTBiMDAuLmNjYzlmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtOTUsOCArOTUsMTkg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJpbmddOwogfQogCi12b2lkIEFY
T2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCiB7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iamVjdCwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBB
WFZhbHVlQ2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIEFYVmFsdWVDaGFuZ2VkKTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFt
ZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIz
MDBlNzcuLmYxODc5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNTMgQEAKICNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25D
cmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdl
VHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5
IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVu
Z3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3Rh
cnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJr
ZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKKy8vIFZlcnkgbGFyZ2Ugc3RyaW5ncyBjYW4g
bmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNlIG9mIG5vdGlmaWNhdGlvbnMsIHNvIHRo
aXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0IGFuIGF2ZXJhZ2UgcGFyYWdyYXBoIG9y
IGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJpbmdzIHRvIGJlIGxhcmdlIGVub3VnaCB0
byBodXJ0IHBlcmZvcm1hbmNlLgorc3RhdGljIGNvbnN0IE5TVUludGVnZXIgQVhWYWx1ZUNoYW5n
ZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOworCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGlu
IHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC02MCw2ICsxMDcsMjEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICBvYmotPnNldFdyYXBwZXIod3JhcHBlci5nZXQo
KSk7CiB9CiAKK3N0YXRpYyBCT09MIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3Rz
ID0gZmFsc2U7CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCit7CisgICAgYXhTaG91bGRSZXBvc3ROb3RpZmljYXRp
b25zRm9yVGVzdHMgPSB2YWx1ZTsKK30KKworc3RhdGljIHZvaWQgQVhQb3N0Tm90aWZpY2F0aW9u
V2l0aFVzZXJJbmZvKGlkIG9iamVjdCwgTlNTdHJpbmcgKm5vdGlmaWNhdGlvbiwgaWQgdXNlcklu
Zm8pCit7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhv
YmplY3QsIG5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFRvIHNpbXBsaWZ5IG1vbml0
b3JpbmcgZm9yIG5vdGlmaWNhdGlvbnMgaW4gdGVzdHMsIHJlcG9zdCBhcyBhIHNpbXBsZSBOU05v
dGlmaWNhdGlvbiBpbnN0ZWFkIG9mIGZvcmNpbmcgdGVzdCBpbmZyYXN0dWN0dXJlIHRvIHNldHVw
IGFuIElQQyBjbGllbnQgYW5kIGRvIGFsbCB0aGUgdHJhbnNsYXRpb24gYmV0d2VlbiBXZWJDb3Jl
IHR5cGVzIGFuZCBwbGF0Zm9ybSBzcGVjaWZpYyBJUEMgdHlwZXMgYW5kIGJhY2sKKyAgICBpZiAo
VU5MSUtFTFkoYXhTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMpKQorICAgICAgICBb
b2JqZWN0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uIHVzZXJJ
bmZvOnVzZXJJbmZvXTsKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBub3RpZmlj
YXRpb24pCiB7CiAgICAgaWYgKCFvYmopCkBAIC0xNDksMTUgKzIxMSwxMTQgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqLCBBWE5vdGlmaWMKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIEFTU0VSVChbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eUlzSWdub3JlZF0gfHwgdHJ1ZSk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgCi0gICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbihvYmotPndyYXBwZXIoKSwg
bWFjTm90aWZpY2F0aW9uKTsKLSAgICAKLSAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4g
bm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgotICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmls
aXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CisKKyAgICBBWFBvc3ROb3Rp
ZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbiwgbmls
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCYgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24p
Cit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisK
KyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlv
bmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAgIFt1c2Vy
SW5mbyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5Ok5TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6
W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aW50ZW50LnR5cGVdIGZvcktleTpOU0FjY2Vzc2liaWxp
dHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkg
eworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAg
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAg
ICAgW3VzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDppbnRlbnQuc2Vs
ZWN0aW9uLmRpcmVjdGlvbl0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25dOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAg
ICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDppbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5XSBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAg
IGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFu
Z2UgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlv
bnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxl
RW5kKCldKQorICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDp0ZXh0TWFya2VyUmFuZ2Ug
Zm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXTsK
KyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAg
ICBbdXNlckluZm8gc2V0T2JqZWN0OndyYXBwZXIgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50XTsKKworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhyb290
V2ViQXJlYSgpLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWRO
b3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlcklu
Zm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWRO
b3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAot
dm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KQorc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5T
U3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3Ro
ID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsK
KyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgW2NoYW5nZSBzZXRPYmplY3Q6W05TTnVt
YmVyIG51bWJlcldpdGhJbnQ6dHlwZV0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlw
ZV07CisgICAgaWYgKGxlbmd0aCA+IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoKSB7Cisg
ICAgICAgIFtjaGFuZ2Ugc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50Omxlbmd0aF0g
Zm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF07CisgICAgICAgIHRl
eHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OkFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3Ro
XTsKKyAgICB9CisgICAgW2NoYW5nZSBzZXRPYmplY3Q6dGV4dCBmb3JLZXk6TlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlXTsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAg
ICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlckZv
clZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBbY2hhbmdlIHNldE9iamVj
dDp0ZXh0TWFya2VyIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1h
cmtlcl07CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYg
KCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFRleHRFZGl0VHlwZVVua25vd24sICIi
LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iamVj
dCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqZWN0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtb
TlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlv
bmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIGRl
bGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRk
T2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxh
Y2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4
dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBp
ZiAoY2hhbmdlcy5jb3VudCkKKyAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpjaGFuZ2VzIGZv
cktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXTsKKyAgICBbY2hhbmdlcyByZWxl
YXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisK
KyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ocm9vdFdlYkFyZWEoKS0+d3JhcHBl
cigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsK
KyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5T
QWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworCisgICAg
W3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGlu
Z0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9i
amVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBWaXNpYmxl
UG9zaXRpb247CiAtIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKIAog
LSAoaWQpYXR0YWNobWVudFZpZXc7Ci0vLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4g
YSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBVc2VkIHRv
IGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4g
VXNlZCBieSB0ZXN0cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjoo
TlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVk
Tm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGlj
dGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNw
YWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3Jl
ZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLmU4YjJlZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDY5IEBAIHN0
YXRpYyBCT09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogKyAodm9p
ZClhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTClyZXBvc3QK
IHsKICAgICBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJlcG9zdDsK
KyNpZiBQTEFURk9STShNQUMpCisgICAgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0Tm90
aWZpY2F0aW9uc0ZvclRlc3RzKHJlcG9zdCk7CisjZW5kaWYKIH0KIAogLSAodm9pZClhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUKIHsK
KyAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpCisgICAgICAg
IFtzZWxmIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uTmFtZSB1
c2VySW5mbzpuaWxdOworfQorCitzdGF0aWMgTlNBcnJheSAqYXJyYXlSZW1vdmluZ05vbkpTT05U
eXBlcyhOU0FycmF5ICphcnJheSkKK3sKKyAgICBBU1NFUlQoW2FycmF5IGlzS2luZE9mQ2xhc3M6
W05TQXJyYXkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJheSA9IFth
cnJheSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgW211dGFi
bGVBcnJheSBjb3VudF07KSB7CisgICAgICAgIGlkIHZhbHVlID0gW211dGFibGVBcnJheSBvYmpl
Y3RBdEluZGV4OmldOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlv
bmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJ
bmRleDppIHdpdGhPYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07
CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0p
CisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkgd2l0aE9i
amVjdDphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVsc2UgaWYg
KCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3ZhbHVlIGlzS2lu
ZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pKSB7CisgICAgICAgICAgICBbbXV0YWJsZUFycmF5
IHJlbW92ZU9iamVjdEF0SW5kZXg6aV07CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorICAgICAgICBpKys7CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZUFycmF5IGF1dG9yZWxl
YXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeVJlbW92aW5nTm9uSlNP
TlR5cGVzKE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKK3sKKyAgICBBU1NFUlQoW2RpY3Rpb25h
cnkgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pOworICAgIE5TTXV0YWJsZURp
Y3Rpb25hcnkgKm11dGFibGVEaWN0aW9uYXJ5ID0gW2RpY3Rpb25hcnkgbXV0YWJsZUNvcHldOwor
ICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBkaWN0aW9uYXJ5KSB7CisgICAgICAgIGlkIHZhbHVl
ID0gW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OmtleV07CisgICAgICAgIGlmIChbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZURp
Y3Rpb25hcnkgc2V0T2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSkg
Zm9yS2V5OmtleV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0Fy
cmF5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgc2V0T2JqZWN0OmFy
cmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpIGZvcktleTprZXldOworICAgICAgICBlbHNl
IGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAgIFttdXRhYmxlRGlj
dGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAgICB9CisgICAgcmV0dXJuIFttdXRh
YmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihO
U0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJbmZvID0gW05T
RGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUs
IEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlv
biIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOworICAgICAgICBBU1NFUlQobm90aWZp
Y2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsKKyAgICAgICAg
aWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0YSA9IFtOU0pT
T05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25K
U09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldyaXRpbmdPcHRpb25zKTAgZXJyb3I6
bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEpIHsKKyAgICAgICAgICAgICAgICBO
U1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6
dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKKyAgICAgICAgICAg
ICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAgICAgICAgICAgIGluZm8gPSBbTlNE
aWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6bm90aWZpY2F0aW9uTmFtZSwg
QCJub3RpZmljYXRpb25OYW1lIiwgdXNlckluZm9TdHJpbmcsIEAidXNlckluZm8iLCBuaWxdOwor
ICAgICAgICAgICAgICAgIFt1c2VySW5mb1N0cmluZyByZWxlYXNlXTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICBpZiAoIWluZm8pCisgICAgICAgICAgICBpbmZvID0gW05TRGlj
dGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAi
bm90aWZpY2F0aW9uTmFtZSIsIG5pbF07CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIg
b2JqZWN0OnNlbGYgdXNlckluZm86aW5mb107CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi4xZjBlY2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVyZmFj
ZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczoo
Y29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9u
Oihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4
dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
Jil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IGZh
Y2QzM2IuLjgyMTEwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
CkBAIC0xMTM2LDE0ICsxMTM2LDE0IEBAIHN0YXRpYyBOU1N0cmluZyogbnNTdHJpbmdGb3JSZXBs
YWNlZE5vZGUoTm9kZSogcmVwbGFjZWROb2RlKQogICAgIHJldHVybiBbYXR0clN0cmluZyBhdXRv
cmVsZWFzZV07CiB9CiAKLXN0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0
aW9ucyhBWE9iamVjdENhY2hlICpjYWNoZSwgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0UG9zaXRpb24s
IFZpc2libGVQb3NpdGlvbiBlbmRQb3NpdGlvbikKK3N0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VG
cm9tVmlzaWJsZVBvc2l0aW9ucyhBWE9iamVjdENhY2hlICpjYWNoZSwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBzdGFydFBvc2l0aW9uLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZFBvc2l0aW9u
KQogewogICAgIGlkIHN0YXJ0VGV4dE1hcmtlciA9IHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRp
b24oY2FjaGUsIHN0YXJ0UG9zaXRpb24pOwogICAgIGlkIGVuZFRleHRNYXJrZXIgPSB0ZXh0TWFy
a2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBlbmRQb3NpdGlvbik7CiAgICAgcmV0dXJuIHRl
eHRNYXJrZXJSYW5nZUZyb21NYXJrZXJzKHN0YXJ0VGV4dE1hcmtlciwgZW5kVGV4dE1hcmtlcik7
CiB9CiAKLS0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihWaXNpYmxl
UG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooVmlzaWJsZVBvc2l0aW9uKWVuZFBv
c2l0aW9uCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihjb25zdCBWaXNpYmxl
UG9zaXRpb24mKWVuZFBvc2l0aW9uCiB7CiAgICAgcmV0dXJuIHRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zKG1fb2JqZWN0LT5heE9iamVjdENhY2hlKCksIHN0YXJ0UG9zaXRpb24s
IGVuZFBvc2l0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5jcHAKaW5kZXggMWRlYjRkYi4uY2U3NGYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTMwLDEyICszMCwxMyBAQAogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFwcGVuZE5vZGVDb21tYW5kOjpB
cHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVu
dCgpKQorQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQoKSwg
ZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcGFyZW50KHBhcmVudCkKICAgICAsIG1fbm9kZShub2Rl
KQogewpAQCAtNDYsMTUgKzQ3LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNT
RVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigp
KTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0
aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2Rl
VmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRl
ciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikK
KyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFu
Z2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBw
b3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNo
ZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNp
YmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzczLDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4
dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkp
OwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICgh
bV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAK
KwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRo
ZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0g
ICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBt
X25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi5mNzgyOTc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1YmxpYyBT
aW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRy
PE5vZGU+IG5vZGUpCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24p
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+
LCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA3YzQxOGMyLi5jYWI4ODI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMTIzLDkg
KzEyMyw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0g
ICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZl
bChwcm9wZXJ0eUxldmVsKQogICAgICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgp
LmRvd25zdHJlYW0oKSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3Ry
ZWFtKCkpCkBAIC0xMzYsOSArMTM1LDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVD
b21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHkKIH0KIAog
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQ
b3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxldmVsIHBy
b3BlcnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9z
dHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24p
CiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlMZXZlbCkKICAgICAsIG1fc3RhcnQoc3Rh
cnQpCiAgICAgLCBtX2VuZChlbmQpCkBAIC0xNDksOSArMTQ3LDggQEAgQXBwbHlTdHlsZUNvbW1h
bmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0
eWxlKiBzdHkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBhc3NS
ZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgYm9vbCByZW1vdmVPbmx5LCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24pCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChlbGVtZW50LT5kb2N1bWVudCgp
KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWRpdGlu
Z0FjdGlvbikKICAgICAsIG1fc3R5bGUoRWRpdGluZ1N0eWxlOjpjcmVhdGUoKSkKLSAgICAsIG1f
ZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKFByb3Bl
cnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3du
c3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgp
KQpAQCAtMTYzLDkgKzE2MCw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFu
ZChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25sCiB9CiAKIEFwcGx5
U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IEVkaXRpbmdTdHlsZSogc3R5bGUsIElzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24gaXNJ
bmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQot
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNv
cHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9w
ZXJ0eUxldmVsKFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9u
KCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5l
bmQoKS51cHN0cmVhbSgpKQpAQCAtMjI2LDExICsyMjIsNiBAQCB2b2lkIEFwcGx5U3R5bGVDb21t
YW5kOjpkb0FwcGx5KCkKICAgICB9CiB9CiAKLUVkaXRBY3Rpb24gQXBwbHlTdHlsZUNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2VkaXRpbmdBY3Rpb247Ci19
Ci0KIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5QmxvY2tTdHlsZShFZGl0aW5nU3R5bGUg
KnN0eWxlKQogewogICAgIC8vIHVwZGF0ZSBkb2N1bWVudCBsYXlvdXQgb25jZSBiZWZvcmUgcmVt
b3Zpbmcgc3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgK
aW5kZXggZTk5ZTM2YS4uOWRiZTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBseVN0eWxlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuaApAQCAtNzIsNyArNzIsNiBAQCBwcml2YXRlOgogICAgIEFwcGx5U3R5bGVD
b21tYW5kKERvY3VtZW50JiwgY29uc3QgRWRpdGluZ1N0eWxlKiwgYm9vbCAoKmlzSW5saW5lRWxl
bWVudFRvUmVtb3ZlKShjb25zdCBFbGVtZW50KiksIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gc3R5bGUtcmVtb3ZhbCBoZWxwZXJz
CiAgICAgYm9vbCBpc1N0eWxlZElubGluZUVsZW1lbnRUb1JlbW92ZShFbGVtZW50KikgY29uc3Q7
CkBAIC0xMjIsNyArMTIxLDYgQEAgcHJpdmF0ZToKICAgICBQb3NpdGlvbiBlbmRQb3NpdGlvbigp
OwogCiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9zdHlsZTsKLSAgICBFZGl0QWN0aW9uIG1f
ZWRpdGluZ0FjdGlvbjsKICAgICBFUHJvcGVydHlMZXZlbCBtX3Byb3BlcnR5TGV2ZWw7CiAgICAg
UG9zaXRpb24gbV9zdGFydDsKICAgICBQb3NpdGlvbiBtX2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uYjU0MWVh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgor
I2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAi
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgi
CiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDEzICsxNjQsMzEgQEAgdm9p
ZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmRDb21wb3Np
dGlvbjo6dW5hcHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rp
b24oKSkgeworICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICBjYXNlIEVkaXRBY3Rpb25EZWxl
dGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRB
Y3Rpb25EaWN0YXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgIGNhc2UgRWRp
dEFjdGlvblBhc3RlOgorICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJu
IEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAgIC8vIEluY2x1ZGUgZGVmYXVsdCBjYXNlIGZvciB1
bmhhbmRsZWQgRWRpdEFjdGlvbiBjYXNlcy4KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9CisgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwogdm9pZCBhcHBs
eUNvbW1hbmQoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsKICAg
ICBjb21tYW5kLT5hcHBseSgpOwogfQogCi1Db21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRl
RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogRWRpdENvbW1hbmQoZG9jdW1l
bnQpCitDb21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29tbWFuZChk
b2N1bWVudCwgZWRpdGluZ0FjdGlvbikKIHsKIH0KIApAQCAtMTg3LDYgKzIwNyw3IEBAIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KCkKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0
V3JpdGluZ0RpcmVjdGlvbjoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uQ3V0OgogICAgICAgICBj
YXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0
OgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6CiAgICAgICAgIGNhc2UgRWRpdEFjdGlv
bkRpY3RhdGlvbjoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjk2LDcgKzMxNyw3IEBAIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50PiBlbGVtZW50KQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRQYXJhZ3Jh
cGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJs
b2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB1c2VE
ZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkp
OworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgcGFz
dGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVCcmVhaygpCkBAIC0zMjIsNyArMzQz
LDcgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhjb25zdCBO
b2RlKiBub2RlKQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3Jl
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9
CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtMzczLDcg
KzM5NCw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdChQYXNzUmVm
UHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQb3NpCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJlbkZvckVkaXRpbmco
cGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNv
bW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlvbigp
KSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZUNoaWxkcmVuSW5SYW5n
ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQpAQCAt
Mzk3LDcgKzQxOCw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGUoUGFz
c1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50CiAKIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oUGFzc1JlZlB0cjxOb2Rl
PiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShS
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVBbmRQcnVuZUFuY2VzdG9ycyhQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUpCkBAIC01MjUsMjAgKzU0NiwyMSBAQCB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
dGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0LCBlZGl0aW5nQWN0aW9uKCkpKTsK
IH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50LCBlZGl0
aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRl
eHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8
VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJl
ZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShXVEY6Om1vdmUobm9kZSksIG9mZnNldCwg
Y291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwogICAg
IGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
cmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUoV1RGOjptb3ZlKG5vZGUpLCBvZmZz
ZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSwgZWRpdGlu
Z0FjdGlvbigpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNl
U2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTEyODksNyArMTMxMSw3
IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgc3RhcnRPZlBhcmFncmFwCiAgICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OkNvbW1hbmRPcHRpb25zIG9wdGlvbnMgPSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6U2VsZWN0
UmVwbGFjZW1lbnQgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6TW92aW5nUGFyYWdyYXBoOwog
ICAgIGlmICghcHJlc2VydmVTdHlsZSkKICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6TWF0Y2hTdHlsZTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCBvcHRpb25z
KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCBXVEY6Om1vdmUoZnJhZ21lbnQpLCBvcHRpb25zKSk7CiAKICAg
ICBmcmFtZSgpLmVkaXRvcigpLm1hcmtNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFyKGVuZGluZ1Nl
bGVjdGlvbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oCmluZGV4IGMyYjQ4OWQuLjcwNDRjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlm
CiAKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBjb25zdDsKKwogcHJpdmF0
ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGlu
Z1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKQEAgLTg5LDcgKzkxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChE
b2N1bWVudCYpOworICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jiwg
RWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICAgICAvLwogICAgIC8vIHN1
Z2FyeS1zd2VldCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gaGVscCBjcmVhdGUgYW5kIGFwcGx5
IGVkaXQgY29tbWFuZHMgaW4gY29tcG9zaXRlIGNvbW1hbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1
Li5mOTNjYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDggKzM0LDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCkpCitE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJlZlB0
cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50
KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fb2Zmc2V0KG9m
ZnNldCkKICAgICAsIG1fY291bnQoY291bnQpCkBAIC01OCw4ICs1OCw4IEBAIHZvaWQgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAKICAg
ICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4
dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbiht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3Rl
eHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMp
OwogfQpAQCAtNzMsOCArNzMsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRl
ZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4
IDI0OTFmMDUuLjRlNjE5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxNCAr
MzQsMTcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6
IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25E
ZWxldGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChXVEY6Om1vdmUobm9kZSksIG9mZnNl
dCwgY291bnQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KTsKKyAgICBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0QWN0aW9uKTsKIAorcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKICAgICAKQEAgLTU1LDYgKzU4LDExIEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fdGV4dDsKIH07CiAKK2lubGluZSBjb25zdCBTdHJpbmcmIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCmluZGV4IDJiYmM2ZWQuLmViM2E1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNzIsOCArNzIsOCBAQCBzdGF0
aWMgYm9vbCBpc1RhYmxlUm93RW1wdHkoTm9kZSogcm93KQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRl
LCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0
aXplTWFya3VwKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitEZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVu
dCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJl
cGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3Vw
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faGFzU2VsZWN0aW9uVG9EZWxldGUoZmFs
c2UpCiAgICAgLCBtX3NtYXJ0RGVsZXRlKHNtYXJ0RGVsZXRlKQogICAgICwgbV9tZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlKG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUpCkBAIC05MCw4ICs5MCw4IEBAIERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRv
Y3VtZW50LCBib29sIHNtYXJ0RGVsCiB7CiB9CiAKLURlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCi0g
ICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChzZWxlY3Rpb24uc3RhcnQoKS5hbmNob3JOb2RlKCkt
PmRvY3VtZW50KCkpCitEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21t
YW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0ZSwg
Ym9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9y
U3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChzZWxlY3Rpb24uc3RhcnQoKS5hbmNo
b3JOb2RlKCktPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX2hhc1NlbGVjdGlv
blRvRGVsZXRlKHRydWUpCiAgICAgLCBtX3NtYXJ0RGVsZXRlKHNtYXJ0RGVsZXRlKQogICAgICwg
bV9tZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUpCkBAIC04ODQs
MTQgKzg4NCw2IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAg
Y2xlYXJUcmFuc2llbnRTdGF0ZSgpOwogfQogCi1FZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAotewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERl
bGV0ZSBrZXksCi0gICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFu
ZCB0aGF0IHN1cHBsaWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8g
bWVudSBjb3JyZWN0bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9u
Q3V0OwotfQotCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0IHByZXNlcnZlIHRoZSB0eXBp
bmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBGb3IgZXhhbXBsZSwKIC8vIHR5
cGUgYSBjaGFyYWN0ZXIsIEJvbGQsIHRoZW4gZGVsZXRlIHRoZSBjaGFyYWN0ZXIgYW5kIHN0YXJ0
IHR5cGluZy4gIFRoZSBCb2xkIHR5cGluZyBzdHlsZSBzaG91bGRuJ3QKIC8vIHN0aWNrIGFyb3Vu
ZC4gIERlbGV0aW9uIHNob3VsZCBwcmVzZXJ2ZSBhIHR5cGluZyBzdHlsZSB0aGF0ICppdCogc2V0
cywgaG93ZXZlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgKaW5kZXggZTViZjUxZC4uMGE5YjljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTM0LDIzICszNCwyMiBAQCBjbGFz
cyBFZGl0aW5nU3R5bGU7CiAKIGNsYXNzIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMg
Q29tcG9zaXRlRWRpdENvbW1hbmQgeyAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxl
dGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBs
YWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1h
cmt1cCA9IHRydWUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21t
YW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFj
ZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFy
dERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KLSAgICBz
dGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQor
ICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRy
dWUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKHNlbGVj
dGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVsZXRl
LCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIHNhbml0aXplTWFya3VwLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6
Ci0gICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUs
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKyAgICBEZWxldGVTZWxlY3Rp
b25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBi
b29sIHNhbnRpemVNYXJrdXAsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKIAogcHJp
dmF0ZToKLSAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVw
bGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAp
OworICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJv
b2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRp
dEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwotICAgIHZpcnR1YWwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBib29sIHBy
ZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwCmluZGV4IGMxNzNkZjQuLjkwOGZkNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHZv
aWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3Qg
bGluZVN0YXJ0LCBzaXplX3QgbGluCiB7CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZl
PiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAgICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0lu
UmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVuZ3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJl
ZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVh
dGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5n
KGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUo
YWx0ZXJuYXRpdmVzSW5MaW5lKSk7CisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21t
YW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVu
dCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGlj
dGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpLCBFZGl0QWN0
aW9uRGljdGF0aW9uKTsKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRp
bmdTZWxlY3Rpb24oKSk7CiB9CiAKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIERpY3RhdGlvbkNv
bW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgaWYgKCFjYW5BcHBlbmROZXdM
aW5lRmVlZFRvU2VsZWN0aW9uKGVuZGluZ1NlbGVjdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZDo6Y3JlYXRlKGRvY3VtZW50KCkpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZmFsc2Us
IGZhbHNlLCBFZGl0QWN0aW9uRGljdGF0aW9uKSk7CiB9CiAKIHZvaWQgRGljdGF0aW9uQ29tbWFu
ZDo6Y29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2Uoc2l6ZV90IHJhbmdlU3RhcnQs
IHNpemVfdCByYW5nZUxlbmd0aCwgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJu
YXRpdmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaAppbmRleCA2MzdkMWViLi42ZWYz
NTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaApAQCAtMjksNiArMjksNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVkZWYgZW51bSB7CiAgICAgICAgIEVkaXRBY3Rp
b25VbnNwZWNpZmllZCwKKyAgICAgICAgRWRpdEFjdGlvbkluc2VydCwKICAgICAgICAgRWRpdEFj
dGlvblNldENvbG9yLAogICAgICAgICBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yLAogICAg
ICAgICBFZGl0QWN0aW9uVHVybk9mZktlcm5pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENv
bW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjY0NzhhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0zNyw5ICszOCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUVkaXRDb21tYW5kOjpFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpCitFZGl0
Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24pCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9wYXJlbnQoMCkK
KyAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogewogICAgIEFTU0VSVChkb2N1
bWVudC5mcmFtZSgpKTsKICAgICBzZXRTdGFydGluZ1NlbGVjdGlvbihtX2RvY3VtZW50LT5mcmFt
ZSgpLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSk7CkBAIC02Nyw3ICs2OSw3IEBAIEZyYW1lJiBF
ZGl0Q29tbWFuZDo6ZnJhbWUoKQogCiBFZGl0QWN0aW9uIEVkaXRDb21tYW5kOjplZGl0aW5nQWN0
aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdEFjdGlvblVuc3BlY2lmaWVkOworICAgIHJl
dHVybiBtX2VkaXRpbmdBY3Rpb247CiB9CiAKIHN0YXRpYyBpbmxpbmUgRWRpdENvbW1hbmRDb21w
b3NpdGlvbiogY29tcG9zaXRpb25JZlBvc3NpYmxlKEVkaXRDb21tYW5kKiBjb21tYW5kKQpAQCAt
MTEyLDYgKzExNCw1MCBAQCB2b2lkIEVkaXRDb21tYW5kOjpzZXRQYXJlbnQoQ29tcG9zaXRlRWRp
dENvbW1hbmQqIHBhcmVudCkKICAgICB9CiB9CiAKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rpb24oKSkg
eworICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBl
Q3V0OworICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVk
aXRUeXBlRGVsZXRlOworICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlvbjoKKyAgICAgICAgcmV0
dXJuIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoK
KyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgRWRpdEFjdGlv
blBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVQYXN0ZTsKKyAgICBjYXNlIEVk
aXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVR5cGluZzsKKyAg
ICAvLyBJbmNsdWRlIGRlZmF1bHQgY2FzZSBmb3IgdW5oYW5kbGVkIEVkaXRBY3Rpb24gY2FzZXMu
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRF
ZGl0VHlwZVVua25vd247Cit9CisKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjp1bmFwcGx5
RWRpdFR5cGUoKSBjb25zdAoreworICAgIHN3aXRjaCAoYXBwbHlFZGl0VHlwZSgpKSB7CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlw
ZVVua25vd247CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlQ3V0OgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5n
OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZVBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAgfQor
ICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK1NpbXBsZUVkaXRDb21tYW5k
OjpTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbikKKyAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQorewor
fQorCiB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpkb1JlYXBwbHkoKQogewogICAgIGRvQXBwbHko
KTsKQEAgLTEyNSw0ICsxNzEsMTQgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFu
ZERlc2NlbmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KIH0KICNlbmRp
ZgogCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAg
IGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAw
M2U2YzM3Li4xYTk5N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRf
aAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0
QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBAIC00Niw3ICs0Nyw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKik7
CiAKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OworICAgIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0aW5nU2VsZWN0
aW9uOyB9CiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9lbmRpbmdTZWxlY3Rpb247IH0KQEAgLTU5LDggKzYwLDExIEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisgICAgQVhUZXh0RWRpdFR5
cGUgYXBwbHlFZGl0VHlwZSgpIGNvbnN0OworICAgIEFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0
VHlwZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9j
dW1lbnQmKTsKKyAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24g
PSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIEZy
YW1lJiBmcmFtZSgpOwpAQCAtNzQsNiArNzgsNyBAQCBwcml2YXRlOgogICAgIFZpc2libGVTZWxl
Y3Rpb24gbV9zdGFydGluZ1NlbGVjdGlvbjsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fZW5kaW5n
U2VsZWN0aW9uOwogICAgIENvbXBvc2l0ZUVkaXRDb21tYW5kKiBtX3BhcmVudDsKKyAgICBFZGl0
QWN0aW9uIG1fZWRpdGluZ0FjdGlvbiB7IEVkaXRBY3Rpb25VbnNwZWNpZmllZCB9OwogfTsKIAog
ZW51bSBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSB7CkBAIC05MSwxMiArOTYs
MTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBTaW1wbGVF
ZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsg
fQorICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50JiwgRWRpdEFjdGlvbiA9
IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBhZGRO
b2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z0FsbEluT25lLmNwcAppbmRleCBkYzNhZTMzLi4yM2JjNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBAIC01OSw2ICs1OSw4IEBACiAjaW5jbHVkZSA8
UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KKyNpbmNs
dWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCmluZGV4IDBmZDJmOTEuLmE3NzI4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKQEAgLTIwOCwxMiArMjA4LDEyIEBAIGJvb2wgRWRpdG9yOjpoYW5kbGVUZXh0RXZl
bnQoVGV4dEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGlmIChjbGllbnQoKS0+cGVyZm9ybXNU
d29TdGVwUGFzdGUoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC0+c2hvdWxkU21hcnRS
ZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIGV2ZW50LT5tYWlsQmxvY2txdW90
ZUhhbmRsaW5nKCkpOworICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChl
dmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC0+c2hvdWxkU21hcnRSZXBsYWNl
KCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIEVkaXRBY3Rpb25QYXN0ZSwgZXZlbnQtPm1h
aWxCbG9ja3F1b3RlSGFuZGxpbmcoKSk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICB9CiAj
ZW5kaWYKICAgICAgICAgZWxzZSAKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4
dChldmVudC0+ZGF0YSgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpKTsKKyAg
ICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChldmVudC0+ZGF0YSgpLCBmYWxzZSwg
ZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBFZGl0QWN0aW9uUGFzdGUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM3NCwxMiArMzc0LDEyIEBAIGJvb2wgRWRpdG9yOjpk
ZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9yOjpkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgYXBwbHlDb21tYW5kKERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSwgdHJ1
ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBlZGl0aW5nQWN0aW9uKSk7CiB9CiAKIHZvaWQgRWRpdG9y
OjpjbGVhclRleHQoKQpAQCAtNTIwLDcgKzUyMCw3IEBAIGJvb2wgRWRpdG9yOjpzaG91bGRJbnNl
cnRGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBQYXNzUmVm
CiAgICAgcmV0dXJuIGNsaWVudCgpLT5zaG91bGRJbnNlcnROb2RlKGZyYWdtZW50LmdldCgpLCBy
ZXBsYWNpbmdET01SYW5nZS5nZXQoKSwgZ2l2ZW5BY3Rpb24pOwogfQogCi12b2lkIEVkaXRvcjo6
cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9v
bCBtYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxp
bmcpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29s
IHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24s
IE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKIHsKICAgICBW
aXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCk7CiAgICAgaWYgKHNlbGVjdGlvbi5pc05vbmUoKSB8fCAhc2VsZWN0aW9uLmlzQ29udGVudEVk
aXRhYmxlKCkgfHwgIWZyYWdtZW50KQpAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgRWRpdG9yOjpy
ZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQsCiAgICAgaWYgKG1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPT0gTWFpbEJsb2NrcXVv
dGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90ZSkKICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6SWdub3JlTWFpbEJsb2NrcXVvdGU7CiAKLSAgICBhcHBseUNvbW1h
bmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwg
b3B0aW9ucywgRWRpdEFjdGlvblBhc3RlKSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIGVkaXRp
bmdBY3Rpb24pKTsKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24oKTsK
IAogICAgIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CkBAIC01
NTAsMTMgKzU1MCwxMyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVu
dChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIG1fc3BlbGxDaGVj
a2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZl
VGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNr
aW5nVHlwZUdyYW1tYXIpLCBUZXh0Q2hlY2tpbmdQcm9jZXNzQmF0Y2gsIHJhbmdlVG9DaGVjaywg
cmFuZ2VUb0NoZWNrKSk7CiB9CiAKLXZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0
UmVwbGFjZSkKK3ZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxl
Y3RlZFJhbmdlKCk7CiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVw
bGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwg
dGV4dCksIHNlbGVjdFJlcGxhY2VtZW50LCBzbWFydFJlcGxhY2UsIHRydWUpOworICAgIHJlcGxh
Y2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRl
eHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVlLCBlZGl0aW5nQWN0aW9u
KTsKIH0KIAogUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpzZWxlY3RlZFJhbmdlKCkKQEAgLTk5
OCw3ICs5OTgsOCBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21w
b3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBz
dHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNl
d2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246
OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5k
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgCisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJD
b21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUVkaXRUeXBlKCkpOwogICAg
IGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRp
bmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVF
bGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAy
OSw3ICsxMDMwLDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhj
bWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJs
ZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0
YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsK
KyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21kLT51bmFwcGx5RWRpdFR5cGUo
KSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNtZC0+c3RhcnRp
bmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgp
KTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjMsNyArMTI2
NCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmll
ciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgIGlm
IChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldp
dGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0K
IAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTIyMzUsNyArMjIzNiw3IEBAIHZvaWQgRWRpdG9y
OjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICZ3b3JkU3RhcnQsCiAKICAgICAgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLnNob3VsZEluc2Vy
dFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgbWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRWRpdG9y
SW5zZXJ0QWN0aW9uVHlwZWQpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2ZyYW1l
LmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBm
YWxzZSwgZmFsc2UpOworICAgICAgICBtX2ZyYW1lLmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25X
aXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNl
cnQpOwogCiAgICAgICAgIC8vIFJlc2V0IHRoZSBjaGFyZXQgb25lIGNoYXJhY3RlciBmdXJ0aGVy
LgogICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLm1vdmVUbyhtX2ZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpLmVuZCgpKTsKQEAgLTI1ODEsNyArMjU4Miw3IEBAIHZvaWQgRWRpdG9yOjpj
aGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQog
ICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVjb3JkQXV0b2NvcnJlY3Rp
b25SZXNwb25zZVJldmVyc2VkKHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rpb24pOwogICAgIFRleHRD
aGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGgoc2VsZWN0aW9uKTsKLSAgICByZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQocmVwbGFjZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSk7CisgICAgcmVwbGFjZVNl
bGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25J
bnNlcnQpOwogICAgIFJlZlB0cjxSYW5nZT4gY2hhbmdlZFJhbmdlID0gcGFyYWdyYXBoLnN1YnJh
bmdlKHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCksIHJlcGxhY2VkU3RyaW5nLmxlbmd0aCgpKTsK
ICAgICBjaGFuZ2VkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCkubWFya2Vycygp
LmFkZE1hcmtlcihjaGFuZ2VkUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVu
dCwgU3RyaW5nKCkpOwogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+bWFya1JldmVy
c2VkKGNoYW5nZWRSYW5nZS5nZXQoKSk7CkBAIC0yODE1LDcgKzI4MTYsNyBAQCB2b2lkIEVkaXRv
cjo6dHJhbnNwb3NlKCkKICAgICAvLyBJbnNlcnQgdGhlIHRyYW5zcG9zZWQgY2hhcmFjdGVycy4K
ICAgICBpZiAoIXNob3VsZEluc2VydFRleHQodHJhbnNwb3NlZCwgcmFuZ2UuZ2V0KCksIEVkaXRv
ckluc2VydEFjdGlvblR5cGVkKSkKICAgICAgICAgcmV0dXJuOwotICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwog
fQogCiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSogcmFuZ2UsIGJvb2wgcHJlcGVu
ZCkKQEAgLTI4NDcsNyArMjg0OCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBh
bmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3Mo
UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVk
aXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlv
bnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIC8v
IElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUg
c2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8IG5l
d1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg1OSw3ICsyODYwLDcgQEAgdm9pZCBF
ZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21l
IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlv
bnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFu
Z2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVj
dGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBtX2Zy
YW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAg
ICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlv
bnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9ucyBj
aGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9zaXRp
b24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0
dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAppbmRleCBhNTdkNDJhLi4xMzEzZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFy
dERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUp
OwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC0zODIsOCArMzgyLDgg
QEAgcHVibGljOgogICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopOwog
ICAgIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdEaXJlY3Rpb24gYmFzZVdyaXRpbmdEaXJlY3Rpb25G
b3JTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBs
YWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIGJv
b2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUs
IE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0
QmxvY2txdW90ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJl
cGxhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNlbGVjdFJlcGxhY2VtZW50
LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9uID0gRWRpdEFj
dGlvbkluc2VydCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxCbG9ja3F1b3RlSGFuZGxp
bmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBi
b29sIHNtYXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgc2VsZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGUsIGludCBmcm9tLCBpbnQgbGVuZ3RoKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGJvb2wgb25seUhhbmRsZVdvcmRz
Q29udGFpbmluZ1NlbGVjdGlvbik7CiAgICAgdm9pZCBkZWxldGVkQXV0b2NvcnJlY3Rpb25BdFBv
c2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFN0cmluZyk7CkBA
IC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7
IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENv
bXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lk
IGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lk
IGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBF
ZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lk
IHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDUxMWNiMDIuLjdhODE2NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0
YXRpYyBib29sIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKEZyYW1lJiBmcmFtZSwgRWRpdG9y
Q29tbWFuZFNvdXJjZSBzb3VyY2UsCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQo
RnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50KQogewog
ICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKLSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRpdEFjdGlvblVuc3BlY2lmaWVk
KSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZy
YW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVu
dE5lc3RpbmcsIEVkaXRBY3Rpb25JbnNlcnQpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA0NDBmMzY2Li45ZTk0
MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2hhcmFjdGVyRGF0
YS5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgpAQCAtMTM5LDcgKzE0MCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290
RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1
c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewogICAgIHNldFNlbGVj
dGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0g
ICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7
CisgICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246
Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlv
biAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMTcwLDcgKzE3MSw4
IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBv
c2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKGJhc2UsIGV4dGVu
dCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9uYWwoc2VsZWN0aW9uSGFzRGlyZWN0
aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpKTsKKyAgICBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgIHNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hv
dWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIGludGVudCk7CiB9CiAKIHZvaWQgRHJh
Z0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1NiwxMyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcGFzcwog
ICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3VsZENoYW5nZVNlbGVj
dGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2
ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAgICAKKyAg
ICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgbmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAg
ICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAg
IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBv
c3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0y
NzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQq
IG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7
CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0
aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFt
ZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50
KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAg
ICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgYWxpZ24s
IGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVy
aW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVu
IG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJl
bnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZh
bGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRl
c3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMy
MCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWdu
T25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNl
bGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1l
VmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdM
YXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFy
U2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
Y29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsKICAgICBpZiAoIW1fcGVu
ZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBA
IHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAg
IHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIAogICAgIGlmIChhdXRvKiBjbGll
bnQgPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5kaWRDaGFu
Z2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsKQEAgLTEwMjEsNyArMTAyOSw3NSBAQCBWaXNp
YmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFy
eSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBE
b2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgRnJh
bWVTZWxlY3Rpb246OnRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVj
dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sK
KyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNl
bGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBmbGlwID0gaXNSYW5nZSgpICYm
IGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMOworICAgIH0gZWxzZQorICAgICAgICBpbnRl
bnQudHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0
Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFy
aXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlv
bi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5k
YXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdy
YW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNh
c2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0
eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVu
dEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6
CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAg
ICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJl
Y3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3Vu
ZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rp
b24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxl
ZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQor
ICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZs
aXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50Owor
fQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVj
dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVz
ZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE1MywxMSBAQCBib29s
IEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFs
dGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudCh0ZXh0U2VsZWN0aW9uSW50ZW50
KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBv
ZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0
aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBp
dCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3Np
dGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUK
QEAgLTE3MTAsOCArMTc5MSwxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQog
CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7
CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAg
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIH0pOworICAgICAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9v
bCBjbG9zZVR5cGluZykKQEAgLTIxNDUsNyArMjIyOCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dCbG9ja0N1cnNvcikKIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmRpZExheW91dCgpCiB7CiAgICAgc2V0Q2FyZXRSZWN0TmVlZHNV
cGRhdGUoKTsKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAgICAgdXBkYXRlRGF0
YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogfQogCkBAIC0yNDIzLDcgKzI1MDYsNyBAQCBWaXNp
YmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24g
PSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24uZXhwYW5kVXNp
bmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0aW9uLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7Cisg
ICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBv
c2l0aW9uIHN0YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAg
IFBvc2l0aW9uIGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uYTU2NWRjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAor
I2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0
eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAg
LTE0NCw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlkYXRpb25U
byhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25IYXNEaXJl
Y3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2Vs
ZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEN1cnNvckFsaWdu
T25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9
IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVj
dGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0
eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjczLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBC
QVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7Cisg
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmKTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAog
ICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwg
VGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5NywxMCArMjk4LDExIEBAIHByaXZhdGU6CiAKICAgICBM
YXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihF
UG9zaXRpb25UeXBlKTsKIAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHRleHRTZWxlY3Rp
b25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5
KTsKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CiAjZWxzZQotICAg
IHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCYpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNh
Y2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpA
QCAtMzY3LDcgKzM2OSw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdT
dHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JNKENP
Q09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLjk0YWYwNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAt
MzksOCArMzksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKLSAgICA6IFNpbXBsZUVkaXRD
b21tYW5kKG5vZGUtPmRvY3VtZW50KCkpCitJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBT
aW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwg
bV9ub2RlKG5vZGUpCiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAgLCBtX3RleHQodGV4dCkK
QEAgLTY2LDggKzY2LDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhD
RVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29m
ZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdl
dCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1f
bm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04NCw4ICs4NCw4
IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAg
cmV0dXJuOwogICAgICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1
YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERl
bGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlv
bihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRh
KG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRl
eCAzMTBiYmIzLi4wNzYwOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzQsMTQgKzM0LDE3IEBAIGNsYXNzIFRleHQ7
CiAKIGNsYXNzIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCisgICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZShub2RlKSwgb2Zmc2V0LCB0ZXh0LCBlZGl0
aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCk7CisgICAgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKKworcHJvdGVjdGVk
OgorICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtNTcsNiArNjAsMTEgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV90ZXh0OwogfTsKIAoraW5s
aW5lIGNvbnN0IFN0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0
KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4u
YzZiMjI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKQEAgLTI5LDEzICsyOSwxMyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRy
PE5vZGU+IHJlZkNoaWxkLAotICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogU2ltcGxlRWRpdENv
bW1hbmQocmVmQ2hpbGQtPmRvY3VtZW50KCkpCitJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUmVmUHRyPE5vZGU+JiYgaW5zZXJ0Q2hpbGQsIFJlZlB0cjxO
b2RlPiYmIHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQocmVmQ2hpbGQtPmRvY3VtZW50KCksIGVkaXRpbmdB
Y3Rpb24pCiAgICAgLCBtX2luc2VydENoaWxkKGluc2VydENoaWxkKQogICAgICwgbV9yZWZDaGls
ZChyZWZDaGlsZCkKICAgICAsIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUo
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCkBAIC01Nyw4ICs1NywxMCBAQCB2
b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9F
WENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24g
PSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+
KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbiht
X2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENo
aWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQog
CiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNjks
MTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9u
ID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0
PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
bV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2Vy
dENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQog
CiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0
Yjc2MmQuLjVjZWEyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKQEAgLTMyLDIyICszMiwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21t
YW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNo
aWxkVG9JbnNlcnRCZWZvcmUsCi0gICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBS
ZWY8SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8Tm9kZT4mJiBjaGlsZFRv
SW5zZXJ0LCBSZWZQdHI8Tm9kZT4mJiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFdURjo6bW92ZShjaGlsZFRvSW5zZXJ0KSwgV1RGOjptb3ZlKGNo
aWxkVG9JbnNlcnRCZWZvcmUpLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwg
ZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OworcHJvdGVjdGVkOgorICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFJlZlB0cjxOb2RlPiYm
IGNoaWxkVG9JbnNlcnQsIFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uKTsKIAorcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
b1VuYXBwbHkoKSBvdmVycmlkZTsKLSAgICAKKwogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRp
ZgotICAgIAorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5v
ZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
bV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3Bw
CmluZGV4IDIxMjgyOWMuLjdkZDAxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAtNTksOCAr
NTksOCBAQCBzdGF0aWMgRWxlbWVudCogaGlnaGVzdFZpc3VhbGx5RXF1aXZhbGVudERpdkJlbG93
Um9vdChFbGVtZW50KiBzdGFydEJsb2NrKQogICAgIHJldHVybiBjdXJCbG9jazsKIH0KIAotSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCi0gICAgOiBDb21wb3Np
dGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6
Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29s
IG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRv
VW5xdW90ZWRBcmVhLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbXVzdFVzZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50KG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCkKICAgICAs
IG1fcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYShwYXN0ZUJsb2NrcXV0b2VJbnRvVW5x
dW90ZWRBcmVhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaAppbmRleCAxMjgxZjBjLi42NzM0MTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuaApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNzIEVkaXRpbmdTdHlsZTsKIAog
Y2xhc3MgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVF
ZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQ
YXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVk
QXJlYSA9IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBo
RWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBm
YWxzZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0
b2VJbnRvVW5xdW90ZWRBcmVhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhF
bGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBlZGl0aW5nQWN0aW9uKSk7
CiAgICAgfQogCiBwcml2YXRlOgotICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQo
RG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEpOworICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQoRG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBh
c3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmNwcAppbmRleCBiZGQ1OWEzLi41NzJlOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMzcsMTYgKzM3LDE2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQotICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQoZG9jdW1lbnQpCitJbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRU
ZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQog
ICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChzZWxlY3RJbnNl
cnRlZFRleHQpCiAgICAgLCBtX3JlYmFsYW5jZVR5cGUocmViYWxhbmNlVHlwZSkKIHsKIH0KIAot
SW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGll
cj4gbWFya2VyU3VwcGxpZXIpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkK
K0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21w
b3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fdGV4dCh0
ZXh0KQogICAgICwgbV9zZWxlY3RJbnNlcnRlZFRleHQoZmFsc2UpCiAgICAgLCBtX3JlYmFsYW5j
ZVR5cGUoUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uNjUyODE2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNDksMjAg
KzQ5LDIxIEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLAotICAgICAgICBSZWJhbGFuY2VUeXBlIHJlYmFs
YW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICAg
ICAgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWls
aW5nV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNl
cnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFu
ZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0
ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUsIGVkaXRpbmdBY3Rpb24pKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFy
a2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NS
ZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICBz
dGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllciwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwg
dGV4dCwgbWFya2VyU3VwcGxpZXIsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6
Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiwgRWRpdEFj
dGlvbik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlLCBFZGl0QWN0aW9uKTsK
IAotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Ci0gICAgSW5zZXJ0VGV4dENv
bW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPik7Citwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0
ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5k
LmNwcAppbmRleCBjZTg4NDc4Li5kNmVjZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIE1vdmVT
ZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAgICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6
Q29tbWFuZE9wdGlvbnMgb3B0aW9ucyA9IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTZWxlY3RS
ZXBsYWNlbWVudCB8IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZzsKICAg
ICBpZiAobV9zbWFydEluc2VydCkKICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6U21hcnRSZXBsYWNlOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgbV9mcmFnbWVudCwgb3B0aW9u
cykpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgV1RGOjptb3ZlKG1fZnJhZ21lbnQpLCBvcHRpb25zKSk7CiB9
CiAKIEVkaXRBY3Rpb24gTW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAppbmRleCAyYzA2M2MwLi5jNjI5NzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkK
K1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2Rl
LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBt
X3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCmluZGV4IDRiOTE5NzQu
LjFiMmM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICBzdGF0aWMgUmVmPFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2Rl
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQo
bm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24p
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk4YTk5
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRl
eHQ+JiYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKHRleHQpLCBvZmZzZXQsIGNvdW50LCBFZGl0
QWN0aW9uRGVsZXRlKQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yYzcyMTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCBmaW5hbCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUmVmUHRyPFRleHQ+JiYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25l
ZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZSh0ZXh0KSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChS
ZWZQdHI8VGV4dD4mJiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODM0OGMxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNjYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0
cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZShub2RlKSwgb2Zmc2V0LCB0ZXh0LCBl
ZGl0aW5nQWN0aW9uKQorICAgICwgbV9kZWxldGVkVGV4dChkZWxldGVkVGV4dCkKK3sKK30KKwor
dm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICgh
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlv
bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWFRleHRF
ZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQ
YXN0ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICBjYWNoZS0+cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwg
bV9kZWxldGVkVGV4dCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjYzYjJiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVm
aW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZShub2RlKSwgb2Zm
c2V0LCB0ZXh0LCBkZWxldGVkVGV4dCwgZWRpdGluZ0FjdGlvbikpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRBY3Rpb24pOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJy
aWRlOworCisgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IGZiMzg4MGMuLmZkNTc0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC00Nyw2ICs0Nyw4IEBACiAjaW5jbHVk
ZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIK
ICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKQEAgLTM2OCwxNSArMzcwLDE0IEBAIGlubGlu
ZSB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjpkaWRSZXBsYWNl
Tm9kZShOb2RlKiBub2RlLCBOCiAgICAgICAgIG1fbGFzdE5vZGVJbnNlcnRlZCA9IG5ld05vZGU7
CiB9CiAKLVJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChE
b2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQs
IENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKLSAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRBY3Rpb24g
ZWRpdEFjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0QWN0
aW9uKQogICAgICwgbV9zZWxlY3RSZXBsYWNlbWVudChvcHRpb25zICYgU2VsZWN0UmVwbGFjZW1l
bnQpCiAgICAgLCBtX3NtYXJ0UmVwbGFjZShvcHRpb25zICYgU21hcnRSZXBsYWNlKQogICAgICwg
bV9tYXRjaFN0eWxlKG9wdGlvbnMgJiBNYXRjaFN0eWxlKQogICAgICwgbV9kb2N1bWVudEZyYWdt
ZW50KGZyYWdtZW50KQogICAgICwgbV9wcmV2ZW50TmVzdGluZyhvcHRpb25zICYgUHJldmVudE5l
c3RpbmcpCiAgICAgLCBtX21vdmluZ1BhcmFncmFwaChvcHRpb25zICYgTW92aW5nUGFyYWdyYXBo
KQotICAgICwgbV9lZGl0QWN0aW9uKGVkaXRBY3Rpb24pCiAgICAgLCBtX3Nhbml0aXplRnJhZ21l
bnQob3B0aW9ucyAmIFNhbml0aXplRnJhZ21lbnQpCiAgICAgLCBtX3Nob3VsZE1lcmdlRW5kKGZh
bHNlKQogICAgICwgbV9pZ25vcmVNYWlsQmxvY2txdW90ZShvcHRpb25zICYgSWdub3JlTWFpbEJs
b2NrcXVvdGUpCkBAIC0xNDI3LDExICsxNDI4LDYgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6bWVyZ2VUZXh0Tm9kZXNBcm91bmRQb3NpdGlvbihQb3NpdGlvbiYgcG9zaXRpb24sIFAK
ICAgICB9CiB9CiAKLUVkaXRBY3Rpb24gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2VkaXRBY3Rpb247Ci19Ci0KIC8vIElmIHRo
ZSB1c2VyIGlzIGluc2VydGluZyBhIGxpc3QgaW50byBhbiBleGlzdGluZyBsaXN0LCBpbnN0ZWFk
IG9mIG5lc3RpbmcgdGhlIGxpc3QsCiAvLyB3ZSBwdXQgdGhlIGxpc3QgaXRlbXMgaW50byB0aGUg
ZXhpc3RpbmcgbGlzdC4KIE5vZGUqIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRBc0xp
c3RJdGVtcyhQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBwcnBMaXN0RWxlbWVudCwgTm9kZSogaW5z
ZXJ0aW9uQmxvY2ssIGNvbnN0IFBvc2l0aW9uJiBpbnNlcnRQb3MsIEluc2VydGVkTm9kZXMmIGlu
c2VydGVkTm9kZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uOWNmZGZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtNDgsMTcgKzQ4LDE2IEBA
IHB1YmxpYzoKIAogICAgIHR5cGVkZWYgdW5zaWduZWQgQ29tbWFuZE9wdGlvbnM7CiAKLSAgICBz
dGF0aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBDb21tYW5kT3B0aW9u
cyBvcHRpb25zLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25QYXN0ZSkKKyAgICBzdGF0
aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0
aW9ucywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRv
Y3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgYWN0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBXVEY6Om1vdmUoZnJh
Z21lbnQpLCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAg
IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiwgQ29tbWFuZE9wdGlvbnMsIEVkaXRBY3Rpb24pOworICAgIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kKERvY3VtZW50JiwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYsIENvbW1hbmRP
cHRpb25zLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAg
dmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKLSAgICAKKwogICAgIGNs
YXNzIEluc2VydGVkTm9kZXMgewogICAgIHB1YmxpYzoKICAgICAgICAgdm9pZCByZXNwb25kVG9O
b2RlSW5zZXJ0aW9uKE5vZGUqKTsKQEAgLTEyMCw3ICsxMTksNiBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBtX2RvY3VtZW50RnJhZ21lbnQ7CiAgICAgYm9vbCBtX3By
ZXZlbnROZXN0aW5nOwogICAgIGJvb2wgbV9tb3ZpbmdQYXJhZ3JhcGg7Ci0gICAgRWRpdEFjdGlv
biBtX2VkaXRBY3Rpb247CiAgICAgYm9vbCBtX3Nhbml0aXplRnJhZ21lbnQ7CiAgICAgYm9vbCBt
X3Nob3VsZE1lcmdlRW5kOwogICAgIGJvb2wgbV9pZ25vcmVNYWlsQmxvY2txdW90ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLmYwNzQ0NDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0
UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRl
ZFRleHQpCiB7CiAgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQs
Ci0gICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNl
cnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJ
bnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOworICAgICAgICBtX2Nv
bXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6
OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1h
bmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzLCBFZGl0QWN0aW9uVHlwaW5nKTsKIAogICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIApAQCAt
Mzk1LDcgKzM5NSw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yKCkKICAgICBpZiAoIWNhbkFwcGVuZE5ld0xpbmVGZWVkVG9TZWxlY3Rpb24oZW5kaW5nU2Vs
ZWN0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSkpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1h
bmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25UeXBpbmcpKTsK
ICAgICB0eXBpbmdBZGRlZFRvT3BlbkNvbW1hbmQoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsu
Y3BwCmluZGV4IDdjMjEzNjUuLjMzMmUwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZv
aWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4gcHJwT2JqZWN0KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShBWFRleHRTdGF0ZUNoYW5nZUludGVudCkKIHsK
ICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlv
bkNvbW1hbmRJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29t
bWFuZElPUy5jcHAKaW5kZXggYzE4ODMzOC4uMTM0YjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKQEAgLTM4LDcgKzM4LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRGljdGF0aW9uQ29tbWFuZElPUzo6RGljdGF0aW9u
Q29tbWFuZElPUyhEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4mJiBk
aWN0YXRpb25QaHJhc2VzLCBSZXRhaW5QdHI8aWQ+IG1ldGFkYXRhKQotICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVu
dCwgRWRpdEFjdGlvbkRpY3RhdGlvbikKICAgICAsIG1fZGljdGF0aW9uUGhyYXNlcyhXVEY6Om1v
dmUoZGljdGF0aW9uUGhyYXNlcykpCiAgICAgLCBtX21ldGFkYXRhKFdURjo6bW92ZShtZXRhZGF0
YSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25D
b21tYW5kSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5k
SU9TLmgKaW5kZXggYmY5MDc2NC4uYWM1Y2IyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaApAQCAtNDQsNyArNDQsNiBAQCBwcml2YXRl
OgogICAgIERpY3RhdGlvbkNvbW1hbmRJT1MoRG9jdW1lbnQmLCBWZWN0b3I8VmVjdG9yPFN0cmlu
Zz4+JiYgZGljdGF0aW9uUGhyYXNlcywgUmV0YWluUHRyPGlkPiBtZXRhZGF0YSk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRWRpdEFjdGlvbkRpY3RhdGlv
bjsgfQogCiAgICAgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiBtX2RpY3RhdGlvblBocmFzZXM7CiAg
ICAgUmV0YWluUHRyPGlkPiBtX21ldGFkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4xYTgyZWY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAtNDcs
MTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5SZWN0
KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAKLXZv
aWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2Uo
KQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNo
YW5nZShjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQogewogICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxlY3Rp
b24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwoKSkg
ewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3RpbmdB
WE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihtX3Nl
bGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0Q2Fj
aGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CisgICAg
ICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVjdGlv
bi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAgIH0K
IAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIuLjM2ODRlMjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBA
IC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRJ
bm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2VkID0g
dmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIFN0cmluZyBwcmV2
aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIGJvb2wgdGV4
dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0NoYW5n
ZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJl
bmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3Vt
ZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgICAgICAgICAgY2FjaGUtPnBv
c3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRhcmdl
dE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJUZXh0
LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlm
ICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAgICAg
ICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
UExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkp
IHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVw
bGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZpb3Vz
VmFsdWUsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0
aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAgICB9
CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVy
KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA5OWU2ZDU5
Li4yODNkMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNTI0
LDcgKzUyNCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoRHJhZ0Rh
dGEmIGRyYWdEYXRhKQogICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpTbWFydFJlcGxhY2U7CiAgICAgICAgICAgICAgICAgaWYgKGNob3NlUGxh
aW5UZXh0KQogICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjpNYXRjaFN0eWxlOwotICAgICAgICAgICAgICAgIGFwcGx5Q29tbWFuZChSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCptX2RvY3VtZW50VW5kZXJNb3VzZSwgZnJhZ21lbnQs
IG9wdGlvbnMpKTsKKyAgICAgICAgICAgICAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIFdURjo6bW92ZShmcmFnbWVu
dCksIG9wdGlvbnMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggODg2Yzc2NS4uM2Q5ZmVmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIzOSw3ICszMjM5LDggQEAgc3Rh
dGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2VsZWN0
aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2VsZWN0
aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0
U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4
dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25P
cHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVL
ZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdmZS4u
ZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzQw
LDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVu
dE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgIGlmIChjYXJldEJyb3dz
aW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbkluT3JCZWZv
cmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVj
dGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwotICAgICAgICBpZiAoZnJhbWUu
c2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAg
ICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAg
ICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rp
b24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlV
bmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVz
ZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZWxlbWVudC0+
Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzY5Nzg4Ni4uZDQ2
ZDg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA0LTI0ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAgICAgcG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1w
bGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNz
d29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0CisgICAgICAgIGFu
YWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZQorICAg
ICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNv
bnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2VsZWN0aW9uIGNo
YW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JFZGl0QWN0aW9uKToKKwogMjAx
NS0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MzI2Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBkMjFjZGYwLi5l
NTkwZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCkBAIC01NDYsNiArNTQ2LDcgQEAgc3RhdGljIE5TU3RyaW5nKiB1bmRv
TmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGlkZW50aWNhbCB0byBjb2RlIGluIFdlYktpdDIncyBXZWJFZGl0Q29tbWFuZFByb3h5
IGNsYXNzOyB3b3VsZCBiZSBuaWNlIHRvIHNoYXJlIHRoZSBzdHJpbmdzIGluc3RlYWQgb2YgaGF2
aW5nIHR3byBjb3BpZXMuCiAgICAgc3dpdGNoIChlZGl0QWN0aW9uKSB7CiAgICAgICAgIGNhc2Ug
RWRpdEFjdGlvblVuc3BlY2lmaWVkOiByZXR1cm4gbmlsOworICAgICAgICBjYXNlIEVkaXRBY3Rp
b25JbnNlcnQ6IHJldHVybiBuaWw7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOiBy
ZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IENvbG9yIiwgIlNldCBDb2xvciAoVW5k
byBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJT
ZXQgQmFja2dyb3VuZCBDb2xvciIsICJTZXQgQmFja2dyb3VuZCBDb2xvciAoVW5kbyBhY3Rpb24g
bmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBjYXNlIEVkaXRBY3Rpb25UdXJu
T2ZmS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlR1cm4gT2ZmIEtlcm5p
bmciLCAiVHVybiBPZmYgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24g
bmFtZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDFlYzc4Y2MuLjM4N2FmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxNS0wNC0yNCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNv
bT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0Mjcx
OSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjcx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhU
ZXh0RWRpdFR5cGUsCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5k
IHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUKKyAgICAg
ICAgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFu
Z2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudAorICAgICAgICBhIG1lY2hhbmlzbSB0
byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2Vk
IHRpY2tzIHRvIHRod2FydAorICAgICAgICBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdl
cy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlm
aWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwKKyAgICAgICAgYW5k
IGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBh
c3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUKKyAgICAgICAgcmVsaWFibGUgY29udGV4dCBmb3IgcmVz
cG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBw
b3N0aW5nCisgICAgICAgIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24pOgorCiAyMDE1LTA0
LTI0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTgzMjY2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDU0Y2UwM2MuLjg3ODU1OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHAK
QEAgLTc0LDYgKzc0LDggQEAgU3RyaW5nIFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0
QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICBzd2l0Y2ggKGVkaXRBY3Rpb24pIHsK
ICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwog
ICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklO
R19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKICAgICBjYXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmYxZTc2
Mi4uMzJhZjE5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA0LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3Nl
bGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0
aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIElu
dHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lz
dGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25k
aW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CisgICAgICAgIGEg
bWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBp
biBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0CisgICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5j
ZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBj
aGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAor
ICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlv
biB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZQorICAgICAgICByZWxpYWJsZSBjb250
ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBB
bHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQg
ZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXSk6CisgICAgICAgICgtW0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMu
bW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNh
dGlvbkxpc3RlbmVyKToKKwogMjAxNS0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MzI2Ni4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLmgKaW5kZXggMTkzODZjZS4uOTA4ZGJkYyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAKIC0gKHZvaWQpc2V0UGxhdGZvcm1FbGVtZW50
OihpZClwbGF0Zm9ybUVsZW1lbnQ7CiAtICh2b2lkKXNldENhbGxiYWNrOihKU09iamVjdFJlZilj
YWxsYmFjazsKIC0gKHZvaWQpc3RhcnRPYnNlcnZpbmc7CistICh2b2lkKXN0b3BPYnNlcnZpbmc7
CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLmYxYzlhZmQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEwNCw2ICsxMDQsMTEgQEAKICAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF9ub3RpZmljYXRpb25SZWNlaXZlZDopIG5hbWU6QCJBWERSVE5vdGlmaWNh
dGlvbiIgb2JqZWN0Om5pbF07CiB9CiAKKy0gKHZvaWQpc3RvcE9ic2VydmluZworeworICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07
Cit9CisKIC0gKHZvaWQpX25vdGlmaWNhdGlvblJlY2VpdmVkOihOU05vdGlmaWNhdGlvbiAqKW5v
dGlmaWNhdGlvbgogewogICAgIE5TU3RyaW5nICpub3RpZmljYXRpb25OYW1lID0gW1tub3RpZmlj
YXRpb24gdXNlckluZm9dIG9iamVjdEZvcktleTpAIm5vdGlmaWNhdGlvbk5hbWUiXTsKQEAgLTEx
MiwxNiArMTE3LDI3IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1F
bGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
TlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNl
ckluZm8iXTsKKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlvbihB
ZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1ZhbHVl
UmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWluRnJh
bWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVm
IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05W
YWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJ
bmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZd
KTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpT
T05TdHJpbmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1ZS5n
ZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBM
aXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlm
aWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUg
Z2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwgJm5v
dGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBn
bG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1l
IGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMg
dGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1
bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsK
KyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRd
LCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVu
dCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRleHRd
LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAgICAg
ICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3Vt
ZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0Q2Fs
bEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5j
dGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5k
ZXggNDY3M2ExZC4uMzk3YzYzOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0NDYsNiArMTQ0Niw3IEBAIHZv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQog
ICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUgYSBs
aXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX25vdGlmaWNhdGlv
bkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXTsK
ICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90aWZpY2F0aW9u
SGFuZGxlciA9IG5pbDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwxOSAr
MTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50
ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNTdHJp
bmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlckluZm8i
XTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFp
bkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsK
ICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29u
dGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90aWZp
Y2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwogICAg
IEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJpbmco
Y29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxlbmd0
aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09OVmFs
dWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAgICAg
ICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmluZyhj
b250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1fcGxh
dGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBqdXN0
IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpTT2Jq
ZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3Rp
ZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0
aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAg
ICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1l
IGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAg
IGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1l
bnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxs
QXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNhdGlv
bkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNhdGlv
biBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107CiAg
ICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwogICAg
ICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFy
Z3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3RpZmlj
YXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCBlZDAyZmI3Li5l
MjYwN2UxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAg
LTE0NzYsNiArMTQ3Niw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90
aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJl
IHRyeWluZyB0byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAg
IEFTU0VSVChtX25vdGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9uSGFu
ZGxlciBzdG9wT2JzZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2Vd
OwogICAgIG1fbm90aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251658</attachid>
            <date>2015-04-25 18:06:22 -0700</date>
            <delta_ts>2015-04-25 18:58:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>222406</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IDIxMTE2MTczNTgxNGEzOGVjNTllYmRmOGQ4ZDQ5ODZjNWI5OTI2MTIKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgRnJpIEFwciAyNCAxNTo1
MDoxNyAyMDE1IC0wNzAwCgogICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NzE5CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCiAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlCiAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5n
IHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CiAgICBhIG1lY2hhbmlz
bSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVz
Y2VkIHRpY2tzIHRvIHRod2FydAogICAgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAogICAgYW5kIGFuIG92ZXJs
b2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUg
dGVjaCBhcHBzIG1vcmUKICAgIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZwogICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyODIxMjk4Li5jNzA3
MmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMDQtMjQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLAorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlCisgICAgICAgIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQKKyAgICAg
ICAgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmll
bGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQKKyAgICAgICAgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsCisgICAgICAgIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlCisgICAgICAgIHJlbGlhYmxl
IGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rp
b24uIEFsc28gYmxvY2sgcG9zdGluZworICAgICAgICBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1
dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTI0ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGZhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctcmVzaXplLWV2ZW50LWNvdW50Lmh0bWwgdGlt
ZXMgb3V0IG9uIFlvc2VtaXRlIFdLMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWZhNmY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0
IGZpZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlm
aWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4
dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVk
aXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kZTBkZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0
aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1
dCB0eXBlPSJwYXNzd29yZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InZhbHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25z
Ij48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNp
bmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVE
ZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0
VHlwZURlbGV0ZSArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIg
Y291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0
SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmlj
YXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZh
bHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAg
IHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIp
IHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0
VHlwZURlbGV0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIs
ICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJB
WFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3Jk
IG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3
aWxsIGJlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNl
cnQiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBzZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHNldHNlY3VyZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAi
MCI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAg
ICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRy
dWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9v
dEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwor
CisgICAgICAgICAgICBzZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rp
b24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVl
LiBmb3VyIGZpdmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVj
dGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBh
cmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZv
Lmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50
ZWRpdGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+
c2V2ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2
PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ICsgMTsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmcgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cyA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyAr
IDE7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUNoYXJhY3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGggKyAyOworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwg
InNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5j
ZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAg
ICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9
IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9u
Q2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0
aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOwor
ICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsr
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3Jk
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3
ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAg
ICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0
SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRC
ZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7
CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwg
MCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAg
ICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQor
ICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5m
by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92
YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjM5M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVD
dXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBp
bmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFu
Z2UtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlk
PSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAg
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVz
ZXIgaW5mbyBkYXRhLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2
YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsK
KyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBp
bmcgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbiArIDEKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0
VHlwZUN1dCArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291
bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5k
ZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRp
b24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVl
Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJl
c3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsK
KworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlw
ZUN1dCIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5n
ZVZhbHVlXCJdIiwgIlwiMjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZh
bHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBl
XCJdIiwgIkFYVGV4dEVkaXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhU
ZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7
CisgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxp
dHkodHJ1ZSk7CisKKyAgICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3Rp
ZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNh
bGxiYWNrKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVl
Iik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHRib3giKTsKKyAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAg
ZXhlY1NldFNlbGVjdGlvbkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0
ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENv
bW1hbmQoKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVy
Q29tbWFuZCgpOworICAgICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggYzhlMjA1YS4uZTdjOTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE1MTMsNiArMTUxMyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1JlbW92
ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAorICAgIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA1YTU4NWYwLi45MDg1ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQwIEBACisyMDE1LTA0
LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBy
aWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQu
IEFsc28gaW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdl
cyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0Cisg
ICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIFRlc3RzOiBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVj
dENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzUGFzc3dvcmRGaWVsZE9y
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5n
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2Fk
aW5nRXZlbnROb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4
dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6Y29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNz
d29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQpOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBWFBvc3ROb3RpZmlj
YXRpb25XaXRoVXNlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6XSk6Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpTT05UeXBl
cyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAodGV4dE1h
cmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczplbmRQ
b3NpdGlvbjpdKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0eWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9z
aXRpb246OmdldE5vZGVzSW5Db21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWspOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRy
ZW5JblJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnB1dFRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZGVsZXRlZFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxl
Y3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OnByZXNlcnZlc1R5cGluZ1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0
TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRBY3Rpb24uaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21t
YW5kOjpFZGl0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0Q29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OnNldFBhcmVudCk6IERl
bGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmhhbmRsZVRleHRFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0
T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVy
VHlwaW5nVG9Xb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlQmFja1RvUmVw
bGFjZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cmFuc3Bvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRGcmFnbWVudCk6CisgICAgICAg
ICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3Zl
V2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojp0ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5p
bmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9k
aWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdvcmRTdGFy
dCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omlu
c2VydGVkVGV4dCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Okluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJbnNlcnRU
ZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAg
ICAgKiBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oLgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVz
OjpkaWRSZXBsYWNlTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6aW5zZXJ0QXNMaXN0SXRlbXMpOiBEZWxldGVkLgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvaW9zL0RpY3Rh
dGlvbkNvbW1hbmRJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZElP
Uzo6RGljdGF0aW9uQ29tbWFuZElPUyk6CisgICAgICAgICogZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5oOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKToKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0
aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKToKKwogMjAxNS0wNC0yNCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgcmFuZ2VFeHBhbmRlZEFyb3VuZFBvc2l0aW9uQnlDaGFyYWN0
ZXJzIHRvIGFsbCBwbGF0Zm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagppbmRleCAzNjlmNTJiLi45NmQ4OTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Nzc3LDYgKzE0Nzc3
LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1NDUsNiArMTk1NzMsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxp
dHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEFkanVz
dFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA4Nyw2ICsyMTExNiw4IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRl
cmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0
Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBhMDMxODA4Li5mZTlm
YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNTI1LDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC03NjY4LDYgKzc2NzQsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmls
aXR5PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiPgorICAgICAgICA8Rmls
dGVyPmFjY2Vzc2liaWxpdHk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyV2luLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5XHdpbjwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpAQCAtMTA2NzcsNiArMTA2ODYsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhjYzdiNTQuLjliNTEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNTAsNiArMzI1MCw3IEBACiAJCTkwMDE3NzQxMTJF
MDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIg
LyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MDEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBK
U09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYx
QyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlG
ODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDVCMjREMDk4
RjFCNkIwMEMyODg1NSAvKiBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTUsNiArNjM5
NiwxMCBAQAogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUz
NDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJ
RjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUy
OERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlG
NTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsg
fTsKQEAgLTEwNTAwLDYgKzEwNTA1LDcgQEAKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkx
QzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3Jv
dXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUdyb3VwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNDAsNiArMTQwNDYsMTAgQEAKIAkJRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1M
b2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFz
ZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3
QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjEsNiArMTU2NzEsNyBAQAog
CQkJCTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCAq
LywKIAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8s
CiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKKwkJ
CQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xNzc5NCw2ICsxNzgwNSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2
RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlC
MzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5
QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1
NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywK
IAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzcyOCw2ICsyMzc0Myw3IEBACiAJCQkJ
NkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyog
QXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAw
MURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTY1
Myw2ICsyNTY2OSw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcw
QThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NzA2LDYgKzI2NzIzLDcgQEAKIAkJCQk3QzRDOTZERDFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
MUQ0MjgxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QTY5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljU21vb3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MUM5RjJGOTFBRTNCRUIwMDA5
NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
QzFENDI5MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQyQTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNkQw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4NDY0LDYgKzI4NDgyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3
QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYx
MkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1
ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTkxMSw2ICsyOTkzMCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2
RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5
MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggYTAwYjE1Yy4uMzYxNzdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5
MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAorLy8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgcGFzc3dvcmQgZmllbGRz
IG9yIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMgYXQgYSA0MGh6IGludGVy
dmFsIHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQorc3RhdGljIGRvdWJsZSBB
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFsID0gMC4w
MjU7CisKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhDb21wdXRlZE9iamVjdEF0dHJp
YnV0ZUNhY2hlOjpnZXRJZ25vcmVkKEFYSUQgaWQpIGNvbnN0CiB7CiAgICAgSGFzaE1hcDxBWElE
LCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1faWRNYXBw
aW5nLmZpbmQoaWQpOwpAQCAtMTI5LDYgKzEzMiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0
RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENh
Y2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTcwNSw3ICs3MDksNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBSZWY8RG9jdW1lbnQ+
IHByb3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7CiAgICAgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXIuc3RvcCgpOwogICAgIAotICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRp
b25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNh
dGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyBJbiB0
ZXN0cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5
IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0
ZWQgYmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVk
IGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgogICAgIGF1
dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlvbnNUb1Bvc3QpOwogICAg
IApAQCAtNzQyLDYgKzc0NiwyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9i
amVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiB0ZXN0cywgcG9z
dGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVw
IG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZp
b3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBl
bmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZp
Y2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAg
ICBmb3IgKGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAgIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCksIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgorfQog
ICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCog
cmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFy
Z2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY4LDIyMCBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRD
aGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBOREVC
VUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRhdGFMb2coIlVua25vd24i
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Ogor
ICAgICAgICBkYXRhTG9nKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBkYXRhTG9nKCJNb3ZlOjoi
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2coIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25vd24i
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRl
OgorICAgICAgICAgICAgZGF0YUxvZygiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIGRhdGFMb2coIklu
c2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVE
aWN0YXRpb246CisgICAgICAgICAgICBkYXRhTG9nKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAg
ICAgICAgZGF0YUxvZygiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRhdGFMb2coIkN1dCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgICAgIGRhdGFMb2coIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6Cisg
ICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygi
VW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRhTG9nKCJCZWdpbm5pbmc6
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICAgICAgZGF0YUxvZygiRW5kOjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAg
ICAgICAgICAgZGF0YUxvZygiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIGRhdGFM
b2coIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpc2Nv
bnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dpdGNo
IChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJV
bmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIGRhdGFMb2co
IkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
V29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiTGluZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlNlbnRlbmNl
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlBhcmFn
cmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiUGFnZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkRvY3VtZW50
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAo
aW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAgZGF0YUxvZygiLVN5bmMiKTsKKyAgICBk
YXRhTG9nKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90
ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCitzdGF0aWMgYm9vbCBpc1Bhc3N3b3Jk
RmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmpl
Y3QpCit7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSB8
fCBvYmplY3QtPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKIAotICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQotICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlm
IChvYmplY3QpIHsKKyAgICAgICAgaWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNz
d29yZEZpZWxkKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9
IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIChpbnRlbnQudHlwZSA9PSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duKSA/IG1fdGV4dFNlbGVjdGlvbkludGVudCA6IGludGVudCwg
c2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigp
LCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQ
YXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxl
Y3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlm
ICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4dEVkaXRU
eXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygp
OworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5x
dWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7Cisg
ICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVj
dCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZvckVkaXRUeXBlKHR5cGUpLCBwb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQpOwor
I2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChkZWxldGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNlcnRpb25UeXBlID09IEFY
VGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBp
bmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRp
b25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3RvcENhY2hpbmdDb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9
IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChvYmplY3Qp
IHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9i
amVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9IG9iamVjdC0+b2Jz
ZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmplY3QsIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIGluc2VydGlv
blR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0
aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0
KTsKKyNlbmRpZgorfQorCitib29sIEFYT2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKK3sKKyAgICBp
ZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9ic2VydmFi
bGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICBpZiAoIW9ic2VydmFi
bGVPYmplY3QpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIC8vIHJl
dHVybiB0cnVlIGV2ZW4gdGhvdWdoIHRoZSBlbnF1ZXVlIGRpZG4ndCBoYXBwZW4gYmVjYXVzZSB0
aGlzIGlzIGEgcGFzc3dvcmQgZmllbGQgYW5kIGNhbGxlciBzaG91bGRuJ3QgcG9zdCBhIG5vdGlm
aWNhdGlvbgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAobV9wYXNzd29y
ZE5vdGlmaWNhdGlvbnNUb1Bvc3QuZmluZChvYnNlcnZhYmxlT2JqZWN0KSA9PSBtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdC5lbmQoKSkgeworICAgICAgICBtX3Bhc3N3b3JkTm90aWZpY2F0
aW9uc1RvUG9zdC5pbnNlcnQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgICAgIGlmICghbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdGFydE9uZVNob3QoQWNjZXNzaWJpbGl0eVBhc3N3
b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb25JbnRlcnZhbCk7CisgICAgfQorCisgICAgcmV0dXJu
IHRydWU7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmlj
YXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0
LDYgKzEzMDYsMTQgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9v
dFdlYkFyZWEoKQoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmplY3QgPSB0aGlz
LT5yb290T2JqZWN0KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2JqZWN0LT5pc0Fj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndlYkFy
ZWFPYmplY3QoKTsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRlQ2Fj
aGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkKIHsK
QEAgLTEwOTYsNiArMTMyNiwyNiBAQCBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6fkFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyKCkKICAgICBpZiAobV9jYWNoZSkKICAgICAgICAgbV9jYWNoZS0+c3Rv
cENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIH0KKworI2lmICFQTEFURk9STShD
T0NPQSkKK0FYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUo
QVhUZXh0RWRpdFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFY
VGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAg
IHJldHVybiBBWFRleHREZWxldGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6Cisg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFY
VGV4dEluc2VydGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYVGV4
dEluc2VydGVkOworfQorI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggYmZhOTI3
Ny4uMTRiODdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDExIEBACiAjaWZuZGVmIEFYT2JqZWN0Q2Fj
aGVfaAogI2RlZmluZSBBWE9iamVjdENhY2hlX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCiAjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c2V0PgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgpAQCAtNjcsNiArNjksMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPEFYSUQs
IENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz4gbV9pZE1hcHBpbmc7CiB9OwogCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorZW51bSBBWFRleHRDaGFuZ2UgeyBBWFRleHRJbnNlcnRlZCwgQVhUZXh0RGVs
ZXRlZCB9OworI2VuZGlmCisKIGVudW0gUG9zdFRhcmdldCB7IFRhcmdldEVsZW1lbnQsIFRhcmdl
dE9ic2VydmFibGVQYXJlbnQgfTsKIAogZW51bSBQb3N0VHlwZSB7IFBvc3RTeW5jaHJvbm91c2x5
LCBQb3N0QXN5bmNocm9ub3VzbHkgfTsKQEAgLTE4OSwxMiArMTk1LDE1IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogICAgIHZv
aWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5v
dGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFz
eW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAgQVhUZXh0
SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAgfTsKKyNpZm5kZWYgTkRFQlVH
CisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7Cisj
ZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBB
WFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJl
cGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUs
IGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUs
IGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAg
ICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIGNvbnN0IEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51
bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTMsMTIg
KzIyMiwyNCBAQCBwdWJsaWM6CiAgICAgQVhDb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKiBj
b21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkgeyByZXR1cm4gbV9jb21wdXRlZE9iamVjdEF0
dHJpYnV0ZUNhY2hlLmdldCgpOyB9CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX2RvY3VtZW50OyB9Ci0gICAgCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3Rh
dGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUp
OworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZv
cm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9k
ZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9m
ZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYp
OworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJp
bmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CisjZWxzZQorICAgIHN0YXRpYyBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBl
KEFYVGV4dEVkaXRUeXBlKTsKKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0
IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2
b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hh
bmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMjUwLDI1IEBAIHByb3RlY3RlZDoKICAgICBib29s
IGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5z
KG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEo
KTsKKworICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVs
ZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CisKKyAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0
eU9iamVjdCopOworCisgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisg
ICAgYm9vbCBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0Kik7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVk
KCk7CisKKyAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxl
TGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3Rl
ZChOb2RlKik7CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVCA9IHZvaWQ+IHN0cnVjdCBSZWZQdHJD
b21wYXJlIDogc3RkOjpiaW5hcnlfZnVuY3Rpb248UmVmUHRyPFQ+LCBSZWZQdHI8VD4sIGJvb2w+
IHsKKyAgICAgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFJlZlB0cjxUPiYgeCwgY29uc3QgUmVm
UHRyPFQ+JiB5KSBjb25zdCB7IHJldHVybiB4LmdldCgpIDwgeS5nZXQoKTsgfQorICAgIH07CisK
ICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0cjxBY2Nl
c3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0Kiwg
QVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjM4LDE5ICsyNzgsMTYgQEAgcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVhDb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlPiBt
X2NvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgZ0FjY2Vzc2liaWxpdHlFbmFibGVkOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBi
b29sIGdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKLSAgICAKKwog
ICAgIEhhc2hTZXQ8QVhJRD4gbV9pZHNJblVzZTsKLSAgICAKKwogICAgIFRpbWVyIG1fbm90aWZp
Y2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxp
dHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsKLSAgICB2
b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7Ci0gICAgdm9pZCBoYW5kbGVNZW51T3Bl
bmVkKE5vZGUqKTsKLSAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUqKTsKLSAg
ICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwotICAgIAotICAgIHN0YXRpYyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVt
ZW50Kik7Ci0gICAgCi0gICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKKwor
ICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgc3RkOjpzZXQ8
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBSZWZQdHJDb21wYXJlPEFjY2Vzc2liaWxpdHlP
YmplY3Q+PiBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdDsKKworICAgIEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50IG1fdGV4dFNlbGVjdGlvbkludGVudDsKIH07CiAKIGNsYXNzIEFYQXR0cmli
dXRlQ2FjaGVFbmFibGVyCkBAIC0zMDgsOCArMzQ1LDkgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlU2Nyb2xsYmFyVXBkYXRlKFNjcm9sbFZpZXcqKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIEVsZW1lbnQqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlY29tcHV0ZUlz
SWdub3JlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Omhh
bmRsZVNjcm9sbGVkVG9BbmNob3IoY29uc3QgTm9kZSopIHsgfQotaW5saW5lIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIEFYVGV4dENoYW5nZSwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQotaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CitpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2Rl
KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYp
IHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRU
eXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IERvY3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlu
bGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0Kiwg
QVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0LCBQb3N0VHlwZSkgeyB9CkBAIC0zMjAsNiArMzU4LDE0IEBAIGlubGluZSB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnJlbW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hl
OjpyZW1vdmUoV2lkZ2V0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3Rl
ZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShD
T0NPQSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmls
aXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIHsgfQorI2Vsc2UKK2lubGluZSBBWFRleHRDaGFuZ2UgQVhPYmpl
Y3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKSB7IHJldHVybiBB
WFRleHRJbnNlcnRlZDsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdl
LCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgeyB9CisjZW5kaWYKICNlbmRpZgogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVjMjY0ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorI2Rl
ZmluZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK2VudW0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHsKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVVbmtub3duLAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQsCisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQKK307CisKK2VudW0gQVhUZXh0RWRpdFR5cGUgeworICAgIEFYVGV4dEVkaXRU
eXBlVW5rbm93biwKKyAgICBBWFRleHRFZGl0VHlwZURlbGV0ZSwgLy8gR2VuZXJpYyB0ZXh0IGRl
bGV0ZQorICAgIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAvLyBHZW5lcmljIHRleHQgaW5zZXJ0Cisg
ICAgQVhUZXh0RWRpdFR5cGVUeXBpbmcsIC8vIEluc2VydCB2aWEgdHlwaW5nCisgICAgQVhUZXh0
RWRpdFR5cGVEaWN0YXRpb24sIC8vIEluc2VydCB2aWEgZGljdGF0aW9uCisgICAgQVhUZXh0RWRp
dFR5cGVDdXQsIC8vIERlbGV0ZSB2aWEgQ3V0CisgICAgQVhUZXh0RWRpdFR5cGVQYXN0ZSAvLyBJ
bnNlcnQgdmlhIFBhc3RlCit9OworCitlbnVtIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiB7Cisg
ICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25CZWdpbm5pbmcsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kLAorICAg
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzLAorICAgIEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbk5leHQsCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cwor
fTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSB7CisgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlVbmtub3duLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hh
cmFjdGVyLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCwKKyAgICBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmUsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlT
ZW50ZW5jZSwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCwKKyAgICBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlEb2N1bWVudCwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCAvLyBBbGwg
Z3JhbnVsYXJpdHkgcmVwcmVzZW50cyB0aGUgYWN0aW9uIG9mIHNlbGVjdGluZyB0aGUgd2hvbGUg
ZG9jdW1lbnQgYXMgYSBzaW5nbGUgYWN0aW9uLiBFeHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHNvbWUg
b3RoZXIgZ3JhbnVsYXJpdHkgdW50aWwgaXQgZW5jb21wYXNzZXMgdGhlIHdob2xlIGRvY3VtZW50
IHdpbGwgbm90IHJlc3VsdCBpbiBhIGFsbCBncmFudWxhcml0eSBub3RpZmljYXRpb24uCit9Owor
CitzdHJ1Y3QgQVhUZXh0U2VsZWN0aW9uIHsKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24g
ZGlyZWN0aW9uOworICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXR5Owor
fTsKKworc3RydWN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHsKKyAgICBBWFRleHRTdGF0ZUNo
YW5nZVR5cGUgdHlwZTsKKyAgICB1bmlvbiB7CisgICAgICAgIEFYVGV4dFNlbGVjdGlvbiBzZWxl
Y3Rpb247CisgICAgICAgIEFYVGV4dEVkaXRUeXBlIGNoYW5nZTsKKyAgICB9OworICAgIGJvb2wg
aXNTeW5jaHJvbml6aW5nIHsgZmFsc2UgfTsKKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB0eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93
biwgQVhUZXh0U2VsZWN0aW9uIHNlbGVjdGlvbiA9IEFYVGV4dFNlbGVjdGlvbigpKQorICAgICAg
ICA6IHR5cGUodHlwZSkKKyAgICAgICAgLCBzZWxlY3Rpb24oc2VsZWN0aW9uKQorICAgIHsgfQor
CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0RWRpdFR5cGUgY2hhbmdlKQorICAg
ICAgICA6IHR5cGUoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkKKyAgICAgICAgLCBjaGFuZ2Uo
Y2hhbmdlKQorICAgIHsgfQorCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIHR5cGUsIGJvb2wgaXNTeW5jaHJvbml6aW5nKQorICAgICAgICA6IHR5cGUo
dHlwZSkKKyAgICAgICAgLCBzZWxlY3Rpb24oKQorICAgICAgICAsIGlzU3luY2hyb25pemluZyhp
c1N5bmNocm9uaXppbmcpCisgICAgeworICAgICAgICBBU1NFUlQodHlwZSA9PSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIHx8IHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kKTsKKyAgICB9Cit9OworCit9CisKKyNlbmRpZiAvLyBBWFRleHRTdGF0
ZUNoYW5nZUludGVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQ4ZDI2ZGUuLjQzOGU4NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3QuY3BwCkBAIC01NTIsNiArNTUyLDI3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIGlucHV0RWxlbWVu
dC0+aXNQYXNzd29yZEZpZWxkKCk7CiB9CiAKK0FjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgp
Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxl
bWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGlucHV0RWxlbWVu
dC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisK
KyAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOworICAgIGlmICghZWxl
bWVudCB8fCAhaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgp
KQorICAgICAgICByZXR1cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGVsZW1lbnQpOworCisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJ
bWFnZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
aAppbmRleCAzZTc1NzJmLi5hODJiZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC04OCw2ICs4OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bh
c3N3b3JkRmllbGQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzc0luZGlj
YXRvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcAppbmRleCA1YTI3ZWE4Li5jYjMzODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTI2NDYsNCAr
MjY0NiwxNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERP
TUV2ZW50RGlzcGF0Y2goYm9vbCBvbikKIH0KICNlbmRpZgogCitib29sIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBu
b2RlID0gdGhpcy0+bm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IFVua25vd25Sb2xlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93
SG9zdCgpOworICAgIHJldHVybiBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3du
Y2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkuaXNQYXNzd29yZEZpZWxkKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMzU4NmYyYS4uODE2YzMxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
QEAgLTQ2Myw2ICs0NjMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1h
Z2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0
dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29y
ZEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVkQnlQ
YXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBw
YXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCgpIHsgcmV0dXJuIG51bGxwdHI7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVl
KCkgPT0gV2ViQXJlYVJvbGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGU5ZDJhNTIuLjUw
ZmRhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTQ5MSwxNCArMTQ5MSwxNyBAQCBQbGFp
blRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgp
IGNvbnN0CiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVGV4dFJh
bmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoaXNOYXRpdmVUZXh0
Q29udHJvbCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0
Q2FjaGUoKSkKKyAgICAgICAgICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KHJhbmdlLmxlbmd0aCA/IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbkV4dGVuZCA6IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUp
KTsKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sID0gZG93
bmNhc3Q8UmVuZGVyVGV4dENvbnRyb2w+KCptX3JlbmRlcmVyKS50ZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50KCk7CiAgICAgICAgIHRleHRDb250cm9sLnNldFNlbGVjdGlvblJhbmdlKHJhbmdlLnN0YXJ0
LCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24o
bm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLAot
ICAgICAgICBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRp
b246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pKTsKKyAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbihQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCwgUG9zaXRp
b246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0
ICsgcmFuZ2UubGVuZ3RoLCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwgRE9X
TlNUUkVBTSk7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbmV3SW50ZW50KHJhbmdlLmxl
bmd0aCA/IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCA6IEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpOworICAgIG1fcmVuZGVyZXItPmZyYW1lKCku
c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIG5ld0ludGVudCk7CiB9CiAKIFVSTCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwoKSBjb25zdApAQCAtMTk2MywxMyArMTk2NiwxNiBAQCB2
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9u
UmFuZ2UoY29uc3QgVmlzaWJsZVBvcwogewogICAgIGlmIChyYW5nZS5zdGFydC5pc051bGwoKSB8
fCByYW5nZS5lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIC8vIG1h
a2Ugc2VsZWN0aW9uIGFuZCB0ZWxsIHRoZSBkb2N1bWVudCB0byB1c2UgaXQuIGlmIGl0J3MgemVy
byBsZW5ndGgsIHRoZW4gbW92ZSB0byB0aGF0IHBvc2l0aW9uCi0gICAgaWYgKHJhbmdlLnN0YXJ0
ID09IHJhbmdlLmVuZCkKKyAgICBpZiAocmFuZ2Uuc3RhcnQgPT0gcmFuZ2UuZW5kKSB7CisgICAg
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAg
ICAgIGNhY2hlLT5zZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIHRydWUpKTsKICAgICAgICAgbV9y
ZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5tb3ZlVG8ocmFuZ2Uuc3RhcnQsIFVzZXJUcmln
Z2VyZWQpOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdT
ZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAg
ICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pOworICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQsIHRydWUpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAppbmRleCBjNjJjNzUz
Li4wYzQ2NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCkBAIC00Myw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRh
Y2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKikgb3ZlcnJpZGU7
CiAKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyop
OwogICAgIApAQCAtNzEsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRl
OwogICAgIAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0Q2hpbGQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB3ZWJBcmVhT2JqZWN0KCk7IH0KICAgICBBY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyKiBhZGRDaGlsZFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2b2lkIHJlbW92ZUNoaWxk
U2Nyb2xsYmFyKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKaW5kZXggNTg1MmEwZi4u
YWUyNTYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhP
YmplY3RDYWNoZUF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsv
QVhPYmplY3RDYWNoZUF0ay5jcHAKQEAgLTI2OCwxMCArMjY4LDEwIEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmplCiAgICAgLy8gU2VsZWN0IHRoZSByaWdodCBzaWduYWwgdG8gYmUgZW1pdHRlZAog
ICAgIENTdHJpbmcgZGV0YWlsOwogICAgIHN3aXRjaCAodGV4dENoYW5nZSkgewotICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQ6CisgICAgY2FzZSBBWFRleHRJbnNlcnRlZDoK
ICAgICAgICAgZGV0YWlsID0gInRleHQtaW5zZXJ0IjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkOgorICAgIGNhc2UgQVhUZXh0RGVsZXRlZDoK
ICAgICAgICAgZGV0YWlsID0gInRleHQtcmVtb3ZlIjsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNo
ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJ
T1MubW0KaW5kZXggMTE5ZTBiMDAuLmNjYzlmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQpAQCAtOTUsOCArOTUsMTkg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eVBvc3RlZE5vdGlmaWNhdGlvbjpub3RpZmljYXRpb25TdHJpbmddOwogfQogCi12b2lkIEFY
T2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpCiB7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKG9iamVjdCwgQVhTZWxlY3RlZFRleHRDaGFuZ2VkKTsKK30KKwordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBB
WFZhbHVlQ2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNl
bWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKQoreworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlv
bihvYmplY3QsIEFYVmFsdWVDaGFuZ2VkKTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFt
ZUxvYWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
RnJhbWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGIz
MDBlNzcuLmYxODc5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAtNDQsNiArNDQsNTMgQEAKICNkZWZpbmUgTlNB
Y2Nlc3NpYmlsaXR5TGl2ZVJlZ2lvbkNyZWF0ZWROb3RpZmljYXRpb24gQCJBWExpdmVSZWdpb25D
cmVhdGVkIgogI2VuZGlmCiAKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdl
VHlwZUtleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5IEAi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5
VGV4dFN0YXRlU3luY0tleQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5
IEAiQVhUZXh0U3RhdGVTeW5jIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4
dFNlbGVjdGlvbkRpcmVjdGlvbgorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIEAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIgorI2VuZGlmCisKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5CisjZGVmaW5lIE5TQWNjZXNz
aWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBAIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5IgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dEVkaXRUeXBlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZSBAIkFYVGV4dEVkaXRUeXBlIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcworI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzIEAiQVhUZXh0Q2hhbmdlVmFsdWVzIgorI2VuZGlm
CisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlCisjZGVmaW5lIE5TQWNj
ZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZSBAIkFYVGV4dENoYW5nZVZhbHVlIgorI2VuZGlmCisK
KyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlTGVuZ3RoCisjZGVmaW5lIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aCBAIkFYVGV4dENoYW5nZVZhbHVlTGVu
Z3RoIgorI2VuZGlmCisKKyNpZm5kZWYgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3Rh
cnRNYXJrZXIKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJr
ZXIgQCJBWFRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIgorI2VuZGlmCisKKyNpZm5kZWYgTlNB
Y2Nlc3NpYmlsaXR5VGV4dENoYW5nZUVsZW1lbnQKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4
dENoYW5nZUVsZW1lbnQgQCJBWFRleHRDaGFuZ2VFbGVtZW50IgorI2VuZGlmCisKKyNpZm5kZWYg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUgQCJBWFNlbGVj
dGVkVGV4dE1hcmtlclJhbmdlIgorI2VuZGlmCisKKy8vIFZlcnkgbGFyZ2Ugc3RyaW5ncyBjYW4g
bmVnYXRpdmVseSBpbXBhY3QgdGhlIHBlcmZvcm1hbmNlIG9mIG5vdGlmaWNhdGlvbnMsIHNvIHRo
aXMgbGVuZ3RoIGlzIGNob3NlbiB0byB0cnkgdG8gZml0IGFuIGF2ZXJhZ2UgcGFyYWdyYXBoIG9y
IGxpbmUgb2YgdGV4dCwgYnV0IG5vdCBhbGxvdyBzdHJpbmdzIHRvIGJlIGxhcmdlIGVub3VnaCB0
byBodXJ0IHBlcmZvcm1hbmNlLgorc3RhdGljIGNvbnN0IE5TVUludGVnZXIgQVhWYWx1ZUNoYW5n
ZVRydW5jYXRpb25MZW5ndGggPSAxMDAwOworCiAvLyBUaGUgc2ltcGxlIENvY29hIGNhbGxzIGlu
IHRoaXMgZmlsZSBkb24ndCB0aHJvdyBleGNlcHRpb25zLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC02MCw2ICsxMDcsMjEgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICBvYmotPnNldFdyYXBwZXIod3JhcHBlci5nZXQo
KSk7CiB9CiAKK3N0YXRpYyBCT09MIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3Rz
ID0gZmFsc2U7CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0
aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpCit7CisgICAgYXhTaG91bGRSZXBvc3ROb3RpZmljYXRp
b25zRm9yVGVzdHMgPSB2YWx1ZTsKK30KKworc3RhdGljIHZvaWQgQVhQb3N0Tm90aWZpY2F0aW9u
V2l0aFVzZXJJbmZvKGlkIG9iamVjdCwgTlNTdHJpbmcgKm5vdGlmaWNhdGlvbiwgaWQgdXNlcklu
Zm8pCit7CisgICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhv
YmplY3QsIG5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworICAgIC8vIFRvIHNpbXBsaWZ5IG1vbml0
b3JpbmcgZm9yIG5vdGlmaWNhdGlvbnMgaW4gdGVzdHMsIHJlcG9zdCBhcyBhIHNpbXBsZSBOU05v
dGlmaWNhdGlvbiBpbnN0ZWFkIG9mIGZvcmNpbmcgdGVzdCBpbmZyYXN0dWN0dXJlIHRvIHNldHVw
IGFuIElQQyBjbGllbnQgYW5kIGRvIGFsbCB0aGUgdHJhbnNsYXRpb24gYmV0d2VlbiBXZWJDb3Jl
IHR5cGVzIGFuZCBwbGF0Zm9ybSBzcGVjaWZpYyBJUEMgdHlwZXMgYW5kIGJhY2sKKyAgICBpZiAo
VU5MSUtFTFkoYXhTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zRm9yVGVzdHMpKQorICAgICAgICBb
b2JqZWN0IGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uIHVzZXJJ
bmZvOnVzZXJJbmZvXTsKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBub3RpZmlj
YXRpb24pCiB7CiAgICAgaWYgKCFvYmopCkBAIC0xNDksMTUgKzIxMSwxMTQgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqLCBBWE5vdGlmaWMKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJl
Y2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIEFTU0VSVChbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJp
bGl0eUlzSWdub3JlZF0gfHwgdHJ1ZSk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0g
ICAgCi0gICAgTlNBY2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbihvYmotPndyYXBwZXIoKSwg
bWFjTm90aWZpY2F0aW9uKTsKLSAgICAKLSAgICAvLyBVc2VkIGJ5IERSVCB0byBrbm93IHdoZW4g
bm90aWZpY2F0aW9ucyBhcmUgcG9zdGVkLgotICAgIFtvYmotPndyYXBwZXIoKSBhY2Nlc3NpYmls
aXR5UG9zdGVkTm90aWZpY2F0aW9uOm1hY05vdGlmaWNhdGlvbl07CisKKyAgICBBWFBvc3ROb3Rp
ZmljYXRpb25XaXRoVXNlckluZm8ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbiwgbmls
KTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCYgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24p
Cit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisK
KyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlv
bmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2Fw
YWNpdHk6NV07CisgICAgaWYgKGludGVudC5pc1N5bmNocm9uaXppbmcpCisgICAgICAgIFt1c2Vy
SW5mbyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5Ok5TQWNj
ZXNzaWJpbGl0eVRleHRTdGF0ZVN5bmNLZXldOworICAgIGlmIChpbnRlbnQudHlwZSAhPSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSB7CisgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6
W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aW50ZW50LnR5cGVdIGZvcktleTpOU0FjY2Vzc2liaWxp
dHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XTsKKyAgICAgICAgc3dpdGNoIChpbnRlbnQudHlwZSkg
eworICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAg
ICAgIGNhc2UgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kOgorICAgICAgICAg
ICAgW3VzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDppbnRlbnQuc2Vs
ZWN0aW9uLmRpcmVjdGlvbl0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25dOworICAgICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikg
eworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDoKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXM6
CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQ6CisgICAgICAg
ICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDppbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5XSBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAg
IGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyUmFu
Z2UgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlv
bnM6c2VsZWN0aW9uLnZpc2libGVTdGFydCgpIGVuZFBvc2l0aW9uOnNlbGVjdGlvbi52aXNpYmxl
RW5kKCldKQorICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDp0ZXh0TWFya2VyUmFuZ2Ug
Zm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlXTsK
KyAgICB9CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAg
ICBbdXNlckluZm8gc2V0T2JqZWN0OndyYXBwZXIgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRD
aGFuZ2VFbGVtZW50XTsKKworICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhyb290
V2ViQXJlYSgpLT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWRO
b3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlcklu
Zm8ob2JqZWN0LT53cmFwcGVyKCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dENoYW5nZWRO
b3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKworICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAot
dm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcm
KQorc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogeworICAgIE5T
U3RyaW5nICp0ZXh0ID0gKE5TU3RyaW5nICopc3RyaW5nOworICAgIE5TVUludGVnZXIgbGVuZ3Ro
ID0gW3RleHQgbGVuZ3RoXTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIG5pbDsK
KyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpjaGFuZ2UgPSBbW05TTXV0YWJsZURpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgW2NoYW5nZSBzZXRPYmplY3Q6W05TTnVt
YmVyIG51bWJlcldpdGhJbnQ6dHlwZV0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlw
ZV07CisgICAgaWYgKGxlbmd0aCA+IEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3RoKSB7Cisg
ICAgICAgIFtjaGFuZ2Ugc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50Omxlbmd0aF0g
Zm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aF07CisgICAgICAgIHRl
eHQgPSBbdGV4dCBzdWJzdHJpbmdUb0luZGV4OkFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9uTGVuZ3Ro
XTsKKyAgICB9CisgICAgW2NoYW5nZSBzZXRPYmplY3Q6dGV4dCBmb3JLZXk6TlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlXTsKKyAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkpIHsKKyAg
ICAgICAgaWYgKGlkIHRleHRNYXJrZXIgPSBbb2JqZWN0LT53cmFwcGVyKCkgdGV4dE1hcmtlckZv
clZpc2libGVQb3NpdGlvbjpwb3NpdGlvbl0pCisgICAgICAgICAgICBbY2hhbmdlIHNldE9iamVj
dDp0ZXh0TWFya2VyIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVTdGFydE1h
cmtlcl07CisgICAgfQorICAgIHJldHVybiBbY2hhbmdlIGF1dG9yZWxlYXNlXTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYg
KCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFRleHRFZGl0VHlwZVVua25vd24sICIi
LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCwgQVhUZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRU
ZXh0LCBBWFRleHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVk
VGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIW9iamVj
dCkKKyAgICAgICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKKworICAgIGlmICghb2JqZWN0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtb
TlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKKyAgICB1c2Vy
SW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVDaGFuZ2VUeXBlS2V5XSA9IEAoQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlRWRpdCk7CisKKyAgICBOU011dGFibGVBcnJheSAqY2hhbmdlcyA9IFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Ml07CisgICAgaWYgKE5TRGljdGlv
bmFyeSAqY2hhbmdlID0gdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIGRl
bGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRk
T2JqZWN0OmNoYW5nZV07CisgICAgaWYgKE5TRGljdGlvbmFyeSAqY2hhbmdlID0gdGV4dFJlcGxh
Y2VtZW50Q2hhbmdlRGljdGlvbmFyeShvYmplY3QsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4
dCwgcG9zaXRpb24pKQorICAgICAgICBbY2hhbmdlcyBhZGRPYmplY3Q6Y2hhbmdlXTsKKyAgICBp
ZiAoY2hhbmdlcy5jb3VudCkKKyAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpjaGFuZ2VzIGZv
cktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVzXTsKKyAgICBbY2hhbmdlcyByZWxl
YXNlXTsKKworICAgIGlmIChpZCB3cmFwcGVyID0gb2JqZWN0LT53cmFwcGVyKCkpCisgICAgICAg
IHVzZXJJbmZvW05TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50XSA9IHdyYXBwZXI7CisK
KyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ocm9vdFdlYkFyZWEoKS0+d3JhcHBl
cigpLCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsK
KyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LT53cmFwcGVyKCksIE5T
QWNjZXNzaWJpbGl0eVZhbHVlQ2hhbmdlZE5vdGlmaWNhdGlvbiwgdXNlckluZm8pOworCisgICAg
W3VzZXJJbmZvIHJlbGVhc2VdOwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGlu
Z0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogYXhGcmFtZU9i
amVjdCwgQVhMb2FkaW5nRXZlbnQgbG9hZGluZ0V2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UuaAppbmRleCA1ZTA2YzM1Li5iOTM0MThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBWaXNpYmxl
UG9zaXRpb247CiAtIChOU1N0cmluZyAqKWFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbjsKIAog
LSAoaWQpYXR0YWNobWVudFZpZXc7Ci0vLyBVc2VkIHRvIGluZm9ybSBhbiBlbGVtZW50IHdoZW4g
YSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4gVXNlZCBieSBEUlQuCisvLyBVc2VkIHRv
IGluZm9ybSBhbiBlbGVtZW50IHdoZW4gYSBub3RpZmljYXRpb24gaXMgcG9zdGVkIGZvciBpdC4g
VXNlZCBieSB0ZXN0cy4KIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjoo
TlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lOworLSAodm9pZClhY2Nlc3NpYmlsaXR5UG9zdGVk
Tm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86KE5TRGlj
dGlvbmFyeSAqKXVzZXJJbmZvOwogCiAtIChDR1BhdGhSZWYpY29udmVydFBhdGhUb1NjcmVlblNw
YWNlOihXZWJDb3JlOjpQYXRoICYpcGF0aDsKIC0gKENHUG9pbnQpY29udmVydFBvaW50VG9TY3Jl
ZW5TcGFjZTooV2ViQ29yZTo6RmxvYXRQb2ludCAmKXBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDVkZGZjM2EuLmU4YjJlZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAgLTM4MywxMyArMzgzLDY5IEBAIHN0
YXRpYyBCT09MIGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zOwogKyAodm9p
ZClhY2Nlc3NpYmlsaXR5U2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczooQk9PTClyZXBvc3QK
IHsKICAgICBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9ucyA9IHJlcG9zdDsK
KyNpZiBQTEFURk9STShNQUMpCisgICAgQVhPYmplY3RDYWNoZTo6c2V0U2hvdWxkUmVwb3N0Tm90
aWZpY2F0aW9uc0ZvclRlc3RzKHJlcG9zdCk7CisjZW5kaWYKIH0KIAogLSAodm9pZClhY2Nlc3Np
YmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOihOU1N0cmluZyAqKW5vdGlmaWNhdGlvbk5hbWUKIHsK
KyAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMpCisgICAgICAg
IFtzZWxmIGFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uTmFtZSB1
c2VySW5mbzpuaWxdOworfQorCitzdGF0aWMgTlNBcnJheSAqYXJyYXlSZW1vdmluZ05vbkpTT05U
eXBlcyhOU0FycmF5ICphcnJheSkKK3sKKyAgICBBU1NFUlQoW2FycmF5IGlzS2luZE9mQ2xhc3M6
W05TQXJyYXkgY2xhc3NdXSk7CisgICAgTlNNdXRhYmxlQXJyYXkgKm11dGFibGVBcnJheSA9IFth
cnJheSBtdXRhYmxlQ29weV07CisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgW211dGFi
bGVBcnJheSBjb3VudF07KSB7CisgICAgICAgIGlkIHZhbHVlID0gW211dGFibGVBcnJheSBvYmpl
Y3RBdEluZGV4OmldOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TRGljdGlv
bmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJ
bmRleDppIHdpdGhPYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07
CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0p
CisgICAgICAgICAgICBbbXV0YWJsZUFycmF5IHJlcGxhY2VPYmplY3RBdEluZGV4Omkgd2l0aE9i
amVjdDphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKV07CisgICAgICAgIGVsc2UgaWYg
KCEoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0gfHwgW3ZhbHVlIGlzS2lu
ZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pKSB7CisgICAgICAgICAgICBbbXV0YWJsZUFycmF5
IHJlbW92ZU9iamVjdEF0SW5kZXg6aV07CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
fQorICAgICAgICBpKys7CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZUFycmF5IGF1dG9yZWxl
YXNlXTsKK30KKworc3RhdGljIE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeVJlbW92aW5nTm9uSlNP
TlR5cGVzKE5TRGljdGlvbmFyeSAqZGljdGlvbmFyeSkKK3sKKyAgICBBU1NFUlQoW2RpY3Rpb25h
cnkgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pOworICAgIE5TTXV0YWJsZURp
Y3Rpb25hcnkgKm11dGFibGVEaWN0aW9uYXJ5ID0gW2RpY3Rpb25hcnkgbXV0YWJsZUNvcHldOwor
ICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBkaWN0aW9uYXJ5KSB7CisgICAgICAgIGlkIHZhbHVl
ID0gW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OmtleV07CisgICAgICAgIGlmIChbdmFsdWUgaXNL
aW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZURp
Y3Rpb25hcnkgc2V0T2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSkg
Zm9yS2V5OmtleV07CisgICAgICAgIGVsc2UgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0Fy
cmF5IGNsYXNzXV0pCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgc2V0T2JqZWN0OmFy
cmF5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpIGZvcktleTprZXldOworICAgICAgICBlbHNl
IGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkKKyAgICAgICAgICAgIFttdXRhYmxlRGlj
dGlvbmFyeSByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKKyAgICB9CisgICAgcmV0dXJuIFttdXRh
YmxlRGljdGlvbmFyeSBhdXRvcmVsZWFzZV07Cit9CisKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihO
U0RpY3Rpb25hcnkgKil1c2VySW5mbworewogICAgIGlmIChhY2Nlc3NpYmlsaXR5U2hvdWxkUmVw
b3N0Tm90aWZpY2F0aW9ucykgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHVzZXJJbmZvID0gW05T
RGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUs
IEAibm90aWZpY2F0aW9uTmFtZSIsIG5pbF07Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlv
biIgb2JqZWN0OnNlbGYgdXNlckluZm86dXNlckluZm9dOworICAgICAgICBBU1NFUlQobm90aWZp
Y2F0aW9uTmFtZSk7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IG5pbDsKKyAgICAgICAg
aWYgKHVzZXJJbmZvKSB7CisgICAgICAgICAgICBOU0RhdGEgKnVzZXJJbmZvRGF0YSA9IFtOU0pT
T05TZXJpYWxpemF0aW9uIGRhdGFXaXRoSlNPTk9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25K
U09OVHlwZXModXNlckluZm8pIG9wdGlvbnM6KE5TSlNPTldyaXRpbmdPcHRpb25zKTAgZXJyb3I6
bmlsXTsKKyAgICAgICAgICAgIGlmICh1c2VySW5mb0RhdGEpIHsKKyAgICAgICAgICAgICAgICBO
U1N0cmluZyAqdXNlckluZm9TdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6
dXNlckluZm9EYXRhIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKKyAgICAgICAgICAg
ICAgICBpZiAodXNlckluZm9TdHJpbmcpCisgICAgICAgICAgICAgICAgICAgIGluZm8gPSBbTlNE
aWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6bm90aWZpY2F0aW9uTmFtZSwg
QCJub3RpZmljYXRpb25OYW1lIiwgdXNlckluZm9TdHJpbmcsIEAidXNlckluZm8iLCBuaWxdOwor
ICAgICAgICAgICAgICAgIFt1c2VySW5mb1N0cmluZyByZWxlYXNlXTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICBpZiAoIWluZm8pCisgICAgICAgICAgICBpbmZvID0gW05TRGlj
dGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAi
bm90aWZpY2F0aW9uTmFtZSIsIG5pbF07CisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJBWERSVE5vdGlmaWNhdGlvbiIg
b2JqZWN0OnNlbGYgdXNlckluZm86aW5mb107CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ck1hYy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJNYWMuaAppbmRleCAzOGM1Y2QwLi4xZjBlY2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKQEAgLTMzLDYgKzMzLDkgQEAKIAogQGludGVyZmFj
ZSBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciA6IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZQogCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczoo
Y29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9u
Oihjb25zdCBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24mKWVuZFBvc2l0aW9uOworLSAoaWQpdGV4
dE1hcmtlckZvclZpc2libGVQb3NpdGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
Jil2aXNpYmxlUG9zOworCiBAZW5kCiAKICNlbmRpZiAvLyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IGZh
Y2QzM2IuLjgyMTEwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
CkBAIC0xMTM2LDE0ICsxMTM2LDE0IEBAIHN0YXRpYyBOU1N0cmluZyogbnNTdHJpbmdGb3JSZXBs
YWNlZE5vZGUoTm9kZSogcmVwbGFjZWROb2RlKQogICAgIHJldHVybiBbYXR0clN0cmluZyBhdXRv
cmVsZWFzZV07CiB9CiAKLXN0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0
aW9ucyhBWE9iamVjdENhY2hlICpjYWNoZSwgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0UG9zaXRpb24s
IFZpc2libGVQb3NpdGlvbiBlbmRQb3NpdGlvbikKK3N0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VG
cm9tVmlzaWJsZVBvc2l0aW9ucyhBWE9iamVjdENhY2hlICpjYWNoZSwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBzdGFydFBvc2l0aW9uLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZFBvc2l0aW9u
KQogewogICAgIGlkIHN0YXJ0VGV4dE1hcmtlciA9IHRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRp
b24oY2FjaGUsIHN0YXJ0UG9zaXRpb24pOwogICAgIGlkIGVuZFRleHRNYXJrZXIgPSB0ZXh0TWFy
a2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBlbmRQb3NpdGlvbik7CiAgICAgcmV0dXJuIHRl
eHRNYXJrZXJSYW5nZUZyb21NYXJrZXJzKHN0YXJ0VGV4dE1hcmtlciwgZW5kVGV4dE1hcmtlcik7
CiB9CiAKLS0gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihWaXNpYmxl
UG9zaXRpb24pc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooVmlzaWJsZVBvc2l0aW9uKWVuZFBv
c2l0aW9uCistIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJilzdGFydFBvc2l0aW9uIGVuZFBvc2l0aW9uOihjb25zdCBWaXNpYmxl
UG9zaXRpb24mKWVuZFBvc2l0aW9uCiB7CiAgICAgcmV0dXJuIHRleHRNYXJrZXJSYW5nZUZyb21W
aXNpYmxlUG9zaXRpb25zKG1fb2JqZWN0LT5heE9iamVjdENhY2hlKCksIHN0YXJ0UG9zaXRpb24s
IGVuZFBvc2l0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBw
ZW5kTm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29t
bWFuZC5jcHAKaW5kZXggMWRlYjRkYi4uY2U3NGYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAKQEAgLTMwLDEyICszMCwxMyBAQAogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUFwcGVuZE5vZGVDb21tYW5kOjpB
cHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlKQotICAgIDogU2ltcGxlRWRpdENvbW1hbmQocGFyZW50LT5kb2N1bWVu
dCgpKQorQXBwZW5kTm9kZUNvbW1hbmQ6OkFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQoKSwg
ZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcGFyZW50KHBhcmVudCkKICAgICAsIG1fbm9kZShub2Rl
KQogewpAQCAtNDYsMTUgKzQ3LDIzIEBAIEFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29t
bWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0CiAgICAgQVNT
RVJUKG1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIW1fcGFyZW50LT5yZW5kZXJlcigp
KTsKIH0KIAotc3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3Mo
Tm9kZSogbm9kZSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0Q2hhbmdlIHRleHRDaGFuZ2UpCitzdGF0
aWMgdm9pZCBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhOb2RlKiBub2RlLCBB
WFRleHRFZGl0VHlwZSB0eXBlKQogewotICAgIFN0cmluZyBub2RlVmFsdWUgPSBub2RlLT5ub2Rl
VmFsdWUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgU3RyaW5nIHRleHQgPSBub2RlLT5ub2RlVmFsdWUoKTsKICAgICAvLyBEb24ndCBjb25zaWRl
ciBsaW5lYnJlYWtzIGluIHRoaXMgY29tbWFuZAotICAgIGlmIChub2RlVmFsdWUgPT0gIlxuIikK
KyAgICBpZiAodGV4dCA9PSAiXG4iKQogICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEFYT2JqZWN0
Q2FjaGUqIGNhY2hlID0gbm9kZS0+ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
LSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG5vZGUsIHRleHRDaGFu
Z2UsIDAsIG5vZGVWYWx1ZSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gbm9kZS0+
ZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkgeworICAgICAgICBQb3NpdGlvbiBw
b3NpdGlvbiA9IGlzPFRleHQ+KG5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obm9kZSks
IDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIDApOworICAgICAgICBjYWNo
ZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBWaXNp
YmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwZW5kTm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQpAQCAtNjQsMTggKzczLDE2IEBAIHZvaWQgQXBwZW5kTm9kZUNvbW1hbmQ6
OmRvQXBwbHkoKQogCiAgICAgbV9wYXJlbnQtPmFwcGVuZENoaWxkKG1fbm9kZS5nZXQoKSwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKLSAgICAgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9u
b2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRlZCk7CisgICAgc2VuZEFYVGV4
dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCkp
OwogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogewogICAgIGlmICgh
bV9wYXJlbnQtPmhhc0VkaXRhYmxlU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAK
KwogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRo
ZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0g
ICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZCk7CisgICAgc2VuZEFYVGV4dENoYW5nZWRJZ25v
cmluZ0xpbmVCcmVha3MobV9ub2RlLmdldCgpLCB1bmFwcGx5RWRpdFR5cGUoKSk7CiAKICAgICBt
X25vZGUtPnJlbW92ZShJR05PUkVfRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaAppbmRleCBkNjRiMDRlLi5mNzgyOTc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCkBAIC0zMiwxMyArMzIsMTMgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBlbmROb2RlQ29tbWFuZCA6IHB1YmxpYyBT
aW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29t
bWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRy
PE5vZGU+IG5vZGUpCisgICAgc3RhdGljIFJlZjxBcHBlbmROb2RlQ29tbWFuZD4gY3JlYXRlKFBh
c3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEFwcGVuZE5vZGVDb21tYW5kKHBhcmVudCwgbm9kZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24p
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxD
b250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIEFwcGVuZE5vZGVD
b21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+
LCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA3YzQxOGMyLi5jYWI4ODI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMTIzLDkg
KzEyMyw4IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlU3R5bGVTcGFuRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFu
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbiwgRVByb3BlcnR5TGV2ZWwgcHJvcGVydHlMZXZlbCkKLSAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0g
ICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZl
bChwcm9wZXJ0eUxldmVsKQogICAgICwgbV9zdGFydChlbmRpbmdTZWxlY3Rpb24oKS5zdGFydCgp
LmRvd25zdHJlYW0oKSkKICAgICAsIG1fZW5kKGVuZGluZ1NlbGVjdGlvbigpLmVuZCgpLnVwc3Ry
ZWFtKCkpCkBAIC0xMzYsOSArMTM1LDggQEAgQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVD
b21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0eWxlKiBzdHkKIH0KIAog
QXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgRWRpdGluZ1N0eWxlKiBzdHlsZSwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQ
b3NpdGlvbiYgZW5kLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxldmVsIHBy
b3BlcnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9z
dHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24p
CiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlMZXZlbCkKICAgICAsIG1fc3RhcnQoc3Rh
cnQpCiAgICAgLCBtX2VuZChlbmQpCkBAIC0xNDksOSArMTQ3LDggQEAgQXBwbHlTdHlsZUNvbW1h
bmQ6OkFwcGx5U3R5bGVDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRWRpdGluZ1N0
eWxlKiBzdHkKIH0KIAogQXBwbHlTdHlsZUNvbW1hbmQ6OkFwcGx5U3R5bGVDb21tYW5kKFBhc3NS
ZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgYm9vbCByZW1vdmVPbmx5LCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24pCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChlbGVtZW50LT5kb2N1bWVudCgp
KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWRpdGlu
Z0FjdGlvbikKICAgICAsIG1fc3R5bGUoRWRpdGluZ1N0eWxlOjpjcmVhdGUoKSkKLSAgICAsIG1f
ZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKFByb3Bl
cnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3du
c3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgp
KQpAQCAtMTYzLDkgKzE2MCw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFu
ZChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25sCiB9CiAKIEFwcGx5
U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IEVkaXRpbmdTdHlsZSogc3R5bGUsIElzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24gaXNJ
bmxpbmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQot
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUtPmNv
cHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9wcm9w
ZXJ0eUxldmVsKFByb3BlcnR5RGVmYXVsdCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9u
KCkuc3RhcnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5l
bmQoKS51cHN0cmVhbSgpKQpAQCAtMjI2LDExICsyMjIsNiBAQCB2b2lkIEFwcGx5U3R5bGVDb21t
YW5kOjpkb0FwcGx5KCkKICAgICB9CiB9CiAKLUVkaXRBY3Rpb24gQXBwbHlTdHlsZUNvbW1hbmQ6
OmVkaXRpbmdBY3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2VkaXRpbmdBY3Rpb247Ci19
Ci0KIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5QmxvY2tTdHlsZShFZGl0aW5nU3R5bGUg
KnN0eWxlKQogewogICAgIC8vIHVwZGF0ZSBkb2N1bWVudCBsYXlvdXQgb25jZSBiZWZvcmUgcmVt
b3Zpbmcgc3R5bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5
bGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgK
aW5kZXggZTk5ZTM2YS4uOWRiZTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BcHBseVN0eWxlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuaApAQCAtNzIsNyArNzIsNiBAQCBwcml2YXRlOgogICAgIEFwcGx5U3R5bGVD
b21tYW5kKERvY3VtZW50JiwgY29uc3QgRWRpdGluZ1N0eWxlKiwgYm9vbCAoKmlzSW5saW5lRWxl
bWVudFRvUmVtb3ZlKShjb25zdCBFbGVtZW50KiksIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gc3R5bGUtcmVtb3ZhbCBoZWxwZXJz
CiAgICAgYm9vbCBpc1N0eWxlZElubGluZUVsZW1lbnRUb1JlbW92ZShFbGVtZW50KikgY29uc3Q7
CkBAIC0xMjIsNyArMTIxLDYgQEAgcHJpdmF0ZToKICAgICBQb3NpdGlvbiBlbmRQb3NpdGlvbigp
OwogCiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gbV9zdHlsZTsKLSAgICBFZGl0QWN0aW9uIG1f
ZWRpdGluZ0FjdGlvbjsKICAgICBFUHJvcGVydHlMZXZlbCBtX3Byb3BlcnR5TGV2ZWw7CiAgICAg
UG9zaXRpb24gbV9zdGFydDsKICAgICBQb3NpdGlvbiBtX2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODQ2MWVlNy4uYjU0MWVh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgor
I2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisjaW5jbHVkZSAi
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgi
CiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgpAQCAtMTYyLDEzICsxNjQsMzEgQEAgdm9p
ZCBFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjpnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYgbm9kZXMpCiB9CiAjZW5kaWYKIAorQVhUZXh0RWRpdFR5cGUgRWRpdENvbW1hbmRDb21wb3Np
dGlvbjo6dW5hcHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rp
b24oKSkgeworICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICBjYXNlIEVkaXRBY3Rpb25EZWxl
dGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRB
Y3Rpb25EaWN0YXRpb246CisgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0OgorICAgIGNhc2UgRWRp
dEFjdGlvblBhc3RlOgorICAgIGNhc2UgRWRpdEFjdGlvblR5cGluZzoKKyAgICAgICAgcmV0dXJu
IEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAgIC8vIEluY2x1ZGUgZGVmYXVsdCBjYXNlIGZvciB1
bmhhbmRsZWQgRWRpdEFjdGlvbiBjYXNlcy4KKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9CisgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlVW5rbm93bjsKK30KKwogdm9pZCBhcHBs
eUNvbW1hbmQoUGFzc1JlZlB0cjxDb21wb3NpdGVFZGl0Q29tbWFuZD4gY29tbWFuZCkKIHsKICAg
ICBjb21tYW5kLT5hcHBseSgpOwogfQogCi1Db21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRl
RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogRWRpdENvbW1hbmQoZG9jdW1l
bnQpCitDb21wb3NpdGVFZGl0Q29tbWFuZDo6Q29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29tbWFuZChk
b2N1bWVudCwgZWRpdGluZ0FjdGlvbikKIHsKIH0KIApAQCAtMTg3LDYgKzIwNyw3IEBAIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGx5KCkKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uU2V0
V3JpdGluZ0RpcmVjdGlvbjoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uQ3V0OgogICAgICAgICBj
YXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKKyAgICAgICAgY2FzZSBFZGl0QWN0aW9uSW5zZXJ0
OgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6CiAgICAgICAgIGNhc2UgRWRpdEFjdGlv
bkRpY3RhdGlvbjoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjk2LDcgKzMxNyw3IEBAIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZVN0eWxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50PiBlbGVtZW50KQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRQYXJhZ3Jh
cGhTZXBhcmF0b3IoYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJs
b2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB1c2VE
ZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkp
OworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB1c2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgcGFz
dGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydExpbmVCcmVhaygpCkBAIC0zMjIsNyArMzQz
LDcgQEAgYm9vbCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aXNSZW1vdmFibGVCbG9jayhjb25zdCBO
b2RlKiBub2RlKQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3Jl
KFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQs
IFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydE5v
ZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBzaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRl
KEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpjcmVhdGUoaW5zZXJ0Q2hpbGQsIHJlZkNoaWxkLCBz
aG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9
CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBZnRlcihQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkKQpAQCAtMzczLDcg
KzM5NCw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdChQYXNzUmVm
UHRyPE5vZGU+IGluc2VydENoaWxkLCBjb25zdCBQb3NpCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjphcHBlbmROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgUGFzc1JlZlB0cjxDb250YWlu
ZXJOb2RlPiBwYXJlbnQpCiB7CiAgICAgQVNTRVJUKGNhbkhhdmVDaGlsZHJlbkZvckVkaXRpbmco
cGFyZW50LmdldCgpKSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9kZUNv
bW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShBcHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKHBhcmVudCwgbm9kZSwgZWRpdGluZ0FjdGlvbigp
KSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZUNoaWxkcmVuSW5SYW5n
ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQpAQCAt
Mzk3LDcgKzQxOCw3IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGUoUGFz
c1JlZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50CiAKIHZvaWQgQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oUGFzc1JlZlB0cjxOb2Rl
PiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShS
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVBbmRQcnVuZUFuY2VzdG9ycyhQ
YXNzUmVmUHRyPE5vZGU+IG5vZGUpCkBAIC01MjUsMjAgKzU0NiwyMSBAQCB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnB1dFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdElu
c2VydGVkVGV4dAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0VGV4dEludG9Ob2Rl
KFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRl
eHQpCiB7CiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
dGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCB0ZXh0LCBlZGl0aW5nQWN0aW9uKCkpKTsK
IH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlVGV4dEZyb21Ob2RlKFBhc3NS
ZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKIHsKLSAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVh
dGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIGNvdW50LCBlZGl0
aW5nQWN0aW9uKCkpKTsKIH0KIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRl
eHRJbk5vZGUoUGFzc1JlZlB0cjxUZXh0PiBwcnBOb2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGNvdW50LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCkKIHsKICAgICBSZWZQdHI8
VGV4dD4gbm9kZShwcnBOb2RlKTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCkpOworICAgIFJl
ZlB0cjxEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kPiBkZWxldGVDb21tYW5kID0gUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShXVEY6Om1vdmUobm9kZSksIG9mZnNldCwg
Y291bnQpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKGRlbGV0ZUNvbW1hbmQpOwogICAg
IGlmICghcmVwbGFjZW1lbnRUZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgYXBwbHlDb21tYW5kVG9D
b21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwg
cmVwbGFjZW1lbnRUZXh0KSk7CisgICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUoV1RGOjptb3ZlKG5vZGUpLCBvZmZz
ZXQsIHJlcGxhY2VtZW50VGV4dCwgZGVsZXRlQ29tbWFuZC0+ZGVsZXRlZFRleHQoKSwgZWRpdGlu
Z0FjdGlvbigpKSk7CiB9CiAKIFBvc2l0aW9uIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNl
U2VsZWN0ZWRUZXh0SW5Ob2RlKGNvbnN0IFN0cmluZyYgdGV4dCkKQEAgLTEyODksNyArMTMxMSw3
IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgc3RhcnRPZlBhcmFncmFwCiAgICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OkNvbW1hbmRPcHRpb25zIG9wdGlvbnMgPSBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6U2VsZWN0
UmVwbGFjZW1lbnQgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6TW92aW5nUGFyYWdyYXBoOwog
ICAgIGlmICghcHJlc2VydmVTdHlsZSkKICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6TWF0Y2hTdHlsZTsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCBvcHRpb25z
KSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
OmNyZWF0ZShkb2N1bWVudCgpLCBXVEY6Om1vdmUoZnJhZ21lbnQpLCBvcHRpb25zKSk7CiAKICAg
ICBmcmFtZSgpLmVkaXRvcigpLm1hcmtNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFyKGVuZGluZ1Nl
bGVjdGlvbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oCmluZGV4IGMyYjQ4OWQuLjcwNDRjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlm
CiAKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBjb25zdDsKKwogcHJpdmF0
ZToKICAgICBFZGl0Q29tbWFuZENvbXBvc2l0aW9uKERvY3VtZW50JiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24sIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGlu
Z1NlbGVjdGlvbiwgRWRpdEFjdGlvbik7CiAKQEAgLTg5LDcgKzkxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wQ2FyZXRCbGlua2luZygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChE
b2N1bWVudCYpOworICAgIGV4cGxpY2l0IENvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50Jiwg
RWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICAgICAvLwogICAgIC8vIHN1
Z2FyeS1zd2VldCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gaGVscCBjcmVhdGUgYW5kIGFwcGx5
IGVkaXQgY29tbWFuZHMgaW4gY29tcG9zaXRlIGNvbW1hbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCAyZWE5NmQ1
Li5mOTNjYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwOCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDggKzM0LDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBjb3VudCkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCkpCitE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJlZlB0
cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50
KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fb2Zmc2V0KG9m
ZnNldCkKICAgICAsIG1fY291bnQoY291bnQpCkBAIC01OCw4ICs1OCw4IEBAIHZvaWQgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIHJldHVybjsKICAgICAKICAg
ICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4
dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9i
amVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbiht
X25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQsIG1fb2Zmc2V0LCBtX3Rl
eHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCksIGFwcGx5
RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2RlLCBtX29m
ZnNldCkpKTsKIAogICAgIG1fbm9kZS0+ZGVsZXRlRGF0YShtX29mZnNldCwgbV9jb3VudCwgZWMp
OwogfQpAQCAtNzMsOCArNzMsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRv
VW5hcHBseSgpCiAKICAgICBtX25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFu
Z2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHRJbnNlcnRl
ZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCmluZGV4
IDI0OTFmMDUuLjRlNjE5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxNCAr
MzQsMTcgQEAgY2xhc3MgVGV4dDsKIAogY2xhc3MgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCA6
IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgdW5zaWduZWQgY291bnQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25E
ZWxldGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChXVEY6Om1vdmUobm9kZSksIG9mZnNl
dCwgY291bnQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+LCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KTsKKyAgICBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0KCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmLCB1bnNp
Z25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0QWN0aW9uKTsKIAorcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKICAgICAKQEAgLTU1LDYgKzU4LDExIEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fdGV4dDsKIH07CiAKK2lubGluZSBjb25zdCBTdHJpbmcmIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQ6OmRlbGV0ZWRUZXh0KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCmluZGV4IDJiYmM2ZWQuLmViM2E1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNzIsOCArNzIsOCBAQCBzdGF0
aWMgYm9vbCBpc1RhYmxlUm93RW1wdHkoTm9kZSogcm93KQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRl
LCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0
aXplTWFya3VwKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitEZWxldGVT
ZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVu
dCwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJl
cGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3Vw
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChk
b2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faGFzU2VsZWN0aW9uVG9EZWxldGUoZmFs
c2UpCiAgICAgLCBtX3NtYXJ0RGVsZXRlKHNtYXJ0RGVsZXRlKQogICAgICwgbV9tZXJnZUJsb2Nr
c0FmdGVyRGVsZXRlKG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUpCkBAIC05MCw4ICs5MCw4IEBAIERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRv
Y3VtZW50LCBib29sIHNtYXJ0RGVsCiB7CiB9CiAKLURlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBi
b29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFj
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXApCi0g
ICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChzZWxlY3Rpb24uc3RhcnQoKS5hbmNob3JOb2RlKCkt
PmRvY3VtZW50KCkpCitEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21t
YW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0ZSwg
Ym9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9y
U3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChzZWxlY3Rpb24uc3RhcnQoKS5hbmNo
b3JOb2RlKCktPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX2hhc1NlbGVjdGlv
blRvRGVsZXRlKHRydWUpCiAgICAgLCBtX3NtYXJ0RGVsZXRlKHNtYXJ0RGVsZXRlKQogICAgICwg
bV9tZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUpCkBAIC04ODQs
MTQgKzg4NCw2IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAg
Y2xlYXJUcmFuc2llbnRTdGF0ZSgpOwogfQogCi1FZGl0QWN0aW9uIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25zdAotewotICAgIC8vIE5vdGUgdGhhdCBEZWxldGVT
ZWxlY3Rpb25Db21tYW5kIGlzIGFsc28gdXNlZCB3aGVuIHRoZSB1c2VyIHByZXNzZXMgdGhlIERl
bGV0ZSBrZXksCi0gICAgLy8gYnV0IGluIHRoYXQgY2FzZSB0aGVyZSdzIGEgVHlwaW5nQ29tbWFu
ZCB0aGF0IHN1cHBsaWVzIHRoZSBlZGl0aW5nQWN0aW9uKCksIHNvCi0gICAgLy8gdGhlIFVuZG8g
bWVudSBjb3JyZWN0bHkgc2hvd3MgIlVuZG8gVHlwaW5nIgotICAgIHJldHVybiBFZGl0QWN0aW9u
Q3V0OwotfQotCiAvLyBOb3JtYWxseSBkZWxldGlvbiBkb2Vzbid0IHByZXNlcnZlIHRoZSB0eXBp
bmcgc3R5bGUgdGhhdCB3YXMgcHJlc2VudCBiZWZvcmUgaXQuICBGb3IgZXhhbXBsZSwKIC8vIHR5
cGUgYSBjaGFyYWN0ZXIsIEJvbGQsIHRoZW4gZGVsZXRlIHRoZSBjaGFyYWN0ZXIgYW5kIHN0YXJ0
IHR5cGluZy4gIFRoZSBCb2xkIHR5cGluZyBzdHlsZSBzaG91bGRuJ3QKIC8vIHN0aWNrIGFyb3Vu
ZC4gIERlbGV0aW9uIHNob3VsZCBwcmVzZXJ2ZSBhIHR5cGluZyBzdHlsZSB0aGF0ICppdCogc2V0
cywgaG93ZXZlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmgKaW5kZXggZTViZjUxZC4uMGE5YjljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmgKQEAgLTM0LDIzICszNCwyMiBAQCBjbGFz
cyBFZGl0aW5nU3R5bGU7CiAKIGNsYXNzIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQgOiBwdWJsaWMg
Q29tcG9zaXRlRWRpdENvbW1hbmQgeyAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxl
dGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBs
YWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wg
c2FuaXRpemVNYXJrdXAgPSB0cnVlKQorICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNl
LCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxz
ZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1h
cmt1cCA9IHRydWUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21t
YW5kKGRvY3VtZW50LCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFj
ZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBzbWFy
dERlbGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lh
bEVsZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KLSAgICBz
dGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJs
b2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5k
Rm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlKQor
ICAgIHN0YXRpYyBSZWY8RGVsZXRlU2VsZWN0aW9uQ29tbWFuZD4gY3JlYXRlKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERlbGV0ZSA9IGZhbHNlLCBib29sIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUgPSB0cnVlLCBib29sIHJlcGxhY2UgPSBmYWxzZSwgYm9vbCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMgPSBmYWxzZSwgYm9vbCBzYW5pdGl6ZU1hcmt1cCA9IHRy
dWUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWxldGVTZWxlY3Rpb25Db21tYW5kKHNlbGVj
dGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0RGVsZXRl
LCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFsRWxlbWVu
dHMsIHNhbml0aXplTWFya3VwLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6
Ci0gICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUs
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXplTWFya3VwKTsKKyAgICBEZWxldGVTZWxlY3Rp
b25Db21tYW5kKERvY3VtZW50JiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBi
b29sIHNhbnRpemVNYXJrdXAsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKIAogcHJp
dmF0ZToKLSAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVw
bGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAp
OworICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJv
b2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRp
dEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwotICAgIHZpcnR1YWwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBib29sIHBy
ZXNlcnZlc1R5cGluZ1N0eWxlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwCmluZGV4IGMxNzNkZjQuLjkwOGZkNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHZv
aWQgRGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0VGV4dFJ1bldpdGhvdXROZXdsaW5lcyhzaXplX3Qg
bGluZVN0YXJ0LCBzaXplX3QgbGluCiB7CiAgICAgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZl
PiBhbHRlcm5hdGl2ZXNJbkxpbmU7CiAgICAgY29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0lu
UmFuZ2UobGluZVN0YXJ0LCBsaW5lTGVuZ3RoLCBhbHRlcm5hdGl2ZXNJbkxpbmUpOwotICAgIFJl
ZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVh
dGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5n
KGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUo
YWx0ZXJuYXRpdmVzSW5MaW5lKSk7CisgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21t
YW5kID0gSW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihkb2N1bWVu
dCgpLCBtX3RleHRUb0luc2VydC5zdWJzdHJpbmcobGluZVN0YXJ0LCBsaW5lTGVuZ3RoKSwgRGlj
dGF0aW9uTWFya2VyU3VwcGxpZXI6OmNyZWF0ZShhbHRlcm5hdGl2ZXNJbkxpbmUpLCBFZGl0QWN0
aW9uRGljdGF0aW9uKTsKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShjb21tYW5kLCBlbmRp
bmdTZWxlY3Rpb24oKSk7CiB9CiAKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIERpY3RhdGlvbkNv
bW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcigpCiAgICAgaWYgKCFjYW5BcHBlbmROZXdM
aW5lRmVlZFRvU2VsZWN0aW9uKGVuZGluZ1NlbGVjdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZDo6Y3JlYXRlKGRvY3VtZW50KCkpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZmFsc2Us
IGZhbHNlLCBFZGl0QWN0aW9uRGljdGF0aW9uKSk7CiB9CiAKIHZvaWQgRGljdGF0aW9uQ29tbWFu
ZDo6Y29sbGVjdERpY3RhdGlvbkFsdGVybmF0aXZlc0luUmFuZ2Uoc2l6ZV90IHJhbmdlU3RhcnQs
IHNpemVfdCByYW5nZUxlbmd0aCwgVmVjdG9yPERpY3RhdGlvbkFsdGVybmF0aXZlPiYgYWx0ZXJu
YXRpdmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaAppbmRleCA2MzdkMWViLi42ZWYz
NTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRBY3Rpb24uaApAQCAtMjksNiArMjksNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVkZWYgZW51bSB7CiAgICAgICAgIEVkaXRBY3Rp
b25VbnNwZWNpZmllZCwKKyAgICAgICAgRWRpdEFjdGlvbkluc2VydCwKICAgICAgICAgRWRpdEFj
dGlvblNldENvbG9yLAogICAgICAgICBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yLAogICAg
ICAgICBFZGl0QWN0aW9uVHVybk9mZktlcm5pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENv
bW1hbmQuY3BwCmluZGV4IDhmNTY1MzIuLjY0NzhhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJDb21wb3NpdGVFZGl0Q29tbWFuZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRWRpdG9yLmgiCkBAIC0zNyw5ICszOCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUVkaXRDb21tYW5kOjpFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpCitFZGl0
Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24pCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9wYXJlbnQoMCkK
KyAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogewogICAgIEFTU0VSVChkb2N1
bWVudC5mcmFtZSgpKTsKICAgICBzZXRTdGFydGluZ1NlbGVjdGlvbihtX2RvY3VtZW50LT5mcmFt
ZSgpLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKSk7CkBAIC02Nyw3ICs2OSw3IEBAIEZyYW1lJiBF
ZGl0Q29tbWFuZDo6ZnJhbWUoKQogCiBFZGl0QWN0aW9uIEVkaXRDb21tYW5kOjplZGl0aW5nQWN0
aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRWRpdEFjdGlvblVuc3BlY2lmaWVkOworICAgIHJl
dHVybiBtX2VkaXRpbmdBY3Rpb247CiB9CiAKIHN0YXRpYyBpbmxpbmUgRWRpdENvbW1hbmRDb21w
b3NpdGlvbiogY29tcG9zaXRpb25JZlBvc3NpYmxlKEVkaXRDb21tYW5kKiBjb21tYW5kKQpAQCAt
MTEyLDYgKzExNCw1MCBAQCB2b2lkIEVkaXRDb21tYW5kOjpzZXRQYXJlbnQoQ29tcG9zaXRlRWRp
dENvbW1hbmQqIHBhcmVudCkKICAgICB9CiB9CiAKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5k
OjphcHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGVkaXRpbmdBY3Rpb24oKSkg
eworICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBl
Q3V0OworICAgIGNhc2UgRWRpdEFjdGlvbkRlbGV0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVk
aXRUeXBlRGVsZXRlOworICAgIGNhc2UgRWRpdEFjdGlvbkRpY3RhdGlvbjoKKyAgICAgICAgcmV0
dXJuIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoK
KyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgRWRpdEFjdGlv
blBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVQYXN0ZTsKKyAgICBjYXNlIEVk
aXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVR5cGluZzsKKyAg
ICAvLyBJbmNsdWRlIGRlZmF1bHQgY2FzZSBmb3IgdW5oYW5kbGVkIEVkaXRBY3Rpb24gY2FzZXMu
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRF
ZGl0VHlwZVVua25vd247Cit9CisKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kOjp1bmFwcGx5
RWRpdFR5cGUoKSBjb25zdAoreworICAgIHN3aXRjaCAoYXBwbHlFZGl0VHlwZSgpKSB7CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlw
ZVVua25vd247CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlQ3V0OgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAg
Y2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5n
OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgY2FzZSBBWFRleHRFZGl0
VHlwZVBhc3RlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVEZWxldGU7CisgICAgfQor
ICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKK1NpbXBsZUVkaXRDb21tYW5k
OjpTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIEVkaXRBY3Rpb24gZWRpdGlu
Z0FjdGlvbikKKyAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQorewor
fQorCiB2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpkb1JlYXBwbHkoKQogewogICAgIGRvQXBwbHko
KTsKQEAgLTEyNSw0ICsxNzEsMTQgQEAgdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6YWRkTm9kZUFu
ZERlc2NlbmRhbnRzKE5vZGUqIHN0YXJ0Tm9kZSwgSGFzaFNldDxOb2RlKj4mIG4KIH0KICNlbmRp
ZgogCit2b2lkIFNpbXBsZUVkaXRDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgQVhPYmpl
Y3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpOworICAg
IGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbihub2RlLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAppbmRleCAw
M2U2YzM3Li4xYTk5N2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIEVkaXRDb21tYW5kX2gKICNkZWZpbmUgRWRpdENvbW1hbmRf
aAogCisjaW5jbHVkZSAiQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIKICNpbmNsdWRlICJFZGl0
QWN0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogCkBAIC00Niw3ICs0Nyw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKik7
CiAKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OworICAgIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc3RhcnRpbmdTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0aW5nU2VsZWN0
aW9uOyB9CiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgZW5kaW5nU2VsZWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9lbmRpbmdTZWxlY3Rpb247IH0KQEAgLTU5LDggKzYwLDExIEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgPSAwOwogCisgICAgQVhUZXh0RWRpdFR5
cGUgYXBwbHlFZGl0VHlwZSgpIGNvbnN0OworICAgIEFYVGV4dEVkaXRUeXBlIHVuYXBwbHlFZGl0
VHlwZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9j
dW1lbnQmKTsKKyAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24g
PSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogICAgIEVkaXRDb21tYW5kKERvY3VtZW50JiwgY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIEZy
YW1lJiBmcmFtZSgpOwpAQCAtNzQsNiArNzgsNyBAQCBwcml2YXRlOgogICAgIFZpc2libGVTZWxl
Y3Rpb24gbV9zdGFydGluZ1NlbGVjdGlvbjsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fZW5kaW5n
U2VsZWN0aW9uOwogICAgIENvbXBvc2l0ZUVkaXRDb21tYW5kKiBtX3BhcmVudDsKKyAgICBFZGl0
QWN0aW9uIG1fZWRpdGluZ0FjdGlvbiB7IEVkaXRBY3Rpb25VbnNwZWNpZmllZCB9OwogfTsKIAog
ZW51bSBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSB7CkBAIC05MSwxMiArOTYs
MTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBTaW1wbGVF
ZGl0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQpIDogRWRpdENvbW1hbmQoZG9jdW1lbnQpIHsg
fQorICAgIGV4cGxpY2l0IFNpbXBsZUVkaXRDb21tYW5kKERvY3VtZW50JiwgRWRpdEFjdGlvbiA9
IEVkaXRBY3Rpb25VbnNwZWNpZmllZCk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgdm9pZCBhZGRO
b2RlQW5kRGVzY2VuZGFudHMoTm9kZSosIEhhc2hTZXQ8Tm9kZSo+Jik7CiAjZW5kaWYKIAorICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUVkaXRDb21tYW5kKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z0FsbEluT25lLmNwcAppbmRleCBkYzNhZTMzLi4yM2JjNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCkBAIC01OSw2ICs1OSw4IEBACiAjaW5jbHVkZSA8
UmVtb3ZlTm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW5kZXJlZFBvc2l0aW9uLmNwcD4KKyNpbmNs
dWRlIDxSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA+CisjaW5jbHVkZSA8UmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHA+CiAjaW5jbHVkZSA8U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCmluZGV4IDBmZDJmOTEuLmE3NzI4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKQEAgLTIwOCwxMiArMjA4LDEyIEBAIGJvb2wgRWRpdG9yOjpoYW5kbGVUZXh0RXZl
bnQoVGV4dEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGlmIChjbGllbnQoKS0+cGVyZm9ybXNU
d29TdGVwUGFzdGUoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgotICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudChldmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC0+c2hvdWxkU21hcnRS
ZXBsYWNlKCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIGV2ZW50LT5tYWlsQmxvY2txdW90
ZUhhbmRsaW5nKCkpOworICAgICAgICAgICAgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChl
dmVudC0+cGFzdGluZ0ZyYWdtZW50KCksIGZhbHNlLCBldmVudC0+c2hvdWxkU21hcnRSZXBsYWNl
KCksIGV2ZW50LT5zaG91bGRNYXRjaFN0eWxlKCksIEVkaXRBY3Rpb25QYXN0ZSwgZXZlbnQtPm1h
aWxCbG9ja3F1b3RlSGFuZGxpbmcoKSk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICB9CiAj
ZW5kaWYKICAgICAgICAgZWxzZSAKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4
dChldmVudC0+ZGF0YSgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpKTsKKyAg
ICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChldmVudC0+ZGF0YSgpLCBmYWxzZSwg
ZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBFZGl0QWN0aW9uUGFzdGUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM3NCwxMiArMzc0LDEyIEBAIGJvb2wgRWRpdG9yOjpk
ZWxldGVXaXRoRGlyZWN0aW9uKFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFu
dWxhcml0eSBnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRWRpdG9yOjpkZWxldGVTZWxl
Y3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSkKK3ZvaWQgRWRpdG9yOjpkZWxl
dGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzTm9uZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmQoRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIHNtYXJ0RGVsZXRlKSk7CisgICAgYXBwbHlDb21tYW5kKERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSwgdHJ1
ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBlZGl0aW5nQWN0aW9uKSk7CiB9CiAKIHZvaWQgRWRpdG9y
OjpjbGVhclRleHQoKQpAQCAtNTIwLDcgKzUyMCw3IEBAIGJvb2wgRWRpdG9yOjpzaG91bGRJbnNl
cnRGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBQYXNzUmVm
CiAgICAgcmV0dXJuIGNsaWVudCgpLT5zaG91bGRJbnNlcnROb2RlKGZyYWdtZW50LmdldCgpLCBy
ZXBsYWNpbmdET01SYW5nZS5nZXQoKSwgZ2l2ZW5BY3Rpb24pOwogfQogCi12b2lkIEVkaXRvcjo6
cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9v
bCBtYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxp
bmcpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29s
IHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24s
IE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKIHsKICAgICBW
aXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCk7CiAgICAgaWYgKHNlbGVjdGlvbi5pc05vbmUoKSB8fCAhc2VsZWN0aW9uLmlzQ29udGVudEVk
aXRhYmxlKCkgfHwgIWZyYWdtZW50KQpAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgRWRpdG9yOjpy
ZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQsCiAgICAgaWYgKG1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPT0gTWFpbEJsb2NrcXVv
dGVIYW5kbGluZzo6SWdub3JlQmxvY2txdW90ZSkKICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6SWdub3JlTWFpbEJsb2NrcXVvdGU7CiAKLSAgICBhcHBseUNvbW1h
bmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwg
b3B0aW9ucywgRWRpdEFjdGlvblBhc3RlKSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIGVkaXRp
bmdBY3Rpb24pKTsKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRpbmdPcGVyYXRpb24oKTsK
IAogICAgIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CkBAIC01
NTAsMTMgKzU1MCwxMyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVu
dChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIG1fc3BlbGxDaGVj
a2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3IoU3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZShyZXNvbHZl
VGV4dENoZWNraW5nVHlwZU1hc2soVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nIHwgVGV4dENoZWNr
aW5nVHlwZUdyYW1tYXIpLCBUZXh0Q2hlY2tpbmdQcm9jZXNzQmF0Y2gsIHJhbmdlVG9DaGVjaywg
cmFuZ2VUb0NoZWNrKSk7CiB9CiAKLXZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRl
eHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0
UmVwbGFjZSkKK3ZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgRWRp
dEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogewogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxl
Y3RlZFJhbmdlKCk7CiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVw
bGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwg
dGV4dCksIHNlbGVjdFJlcGxhY2VtZW50LCBzbWFydFJlcGxhY2UsIHRydWUpOworICAgIHJlcGxh
Y2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRl
eHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVlLCBlZGl0aW5nQWN0aW9u
KTsKIH0KIAogUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpzZWxlY3RlZFJhbmdlKCkKQEAgLTk5
OCw3ICs5OTgsOCBAQCB2b2lkIEVkaXRvcjo6YXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxDb21w
b3NpdGVFZGl0Q29tbWFuZD4gY21kKQogCiAgICAgLy8gRG9uJ3QgY2xlYXIgdGhlIHR5cGluZyBz
dHlsZSB3aXRoIHRoaXMgc2VsZWN0aW9uIGNoYW5nZS4gIFdlIGRvIHRob3NlIHRoaW5ncyBlbHNl
d2hlcmUgaWYgbmVjZXNzYXJ5LgogICAgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRp
b25zIG9wdGlvbnMgPSBjbWQtPmlzRGljdGF0aW9uQ29tbWFuZCgpID8gRnJhbWVTZWxlY3Rpb246
OkRpY3RhdGlvblRyaWdnZXJlZCA6IDA7Ci0gICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5k
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucyk7CisgICAgCisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJD
b21tYW5kKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgY21kLT5hcHBseUVkaXRUeXBlKCkpOwogICAg
IGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjb21wb3NpdGlvbi0+c3RhcnRp
bmdSb290RWRpdGFibGVFbGVtZW50KCksIGNvbXBvc2l0aW9uLT5lbmRpbmdSb290RWRpdGFibGVF
bGVtZW50KCkpOwogCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwpAQCAtMTAy
OSw3ICsxMDMwLDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxF
ZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjbWQpCiAgICAgbm90aWZ5VGV4dEZyb21Db250cm9scyhj
bWQtPnN0YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJs
ZUVsZW1lbnQoKSk7CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbihjbWQtPnN0
YXJ0aW5nU2VsZWN0aW9uKCkpOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpKTsK
KyAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVj
dGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgY21kLT51bmFwcGx5RWRpdFR5cGUo
KSk7CiAgICAgZGlzcGF0Y2hFZGl0YWJsZUNvbnRlbnRDaGFuZ2VkRXZlbnRzKGNtZC0+c3RhcnRp
bmdSb290RWRpdGFibGVFbGVtZW50KCksIGNtZC0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgp
KTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEyNjMsNyArMTI2
NCw3IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmll
ciBhY3Rpb24pCiAKICAgICBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwogICAgIGlm
IChhY3Rpb24gPT0gQ3V0QWN0aW9uKQotICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnRE
ZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSk7CisgICAgICAgIGRlbGV0ZVNlbGVjdGlvbldp
dGhTbWFydERlbGV0ZShjYW5TbWFydENvcHlPckRlbGV0ZSgpLCBFZGl0QWN0aW9uQ3V0KTsKIH0K
IAogdm9pZCBFZGl0b3I6OnBhc3RlKCkKQEAgLTIyMzUsNyArMjIzNiw3IEBAIHZvaWQgRWRpdG9y
OjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQoY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICZ3b3JkU3RhcnQsCiAKICAgICAgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLnNob3VsZEluc2Vy
dFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgbWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRWRpdG9y
SW5zZXJ0QWN0aW9uVHlwZWQpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2ZyYW1l
LmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBm
YWxzZSwgZmFsc2UpOworICAgICAgICBtX2ZyYW1lLmVkaXRvcigpLnJlcGxhY2VTZWxlY3Rpb25X
aXRoVGV4dChhdXRvY29ycmVjdGVkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNl
cnQpOwogCiAgICAgICAgIC8vIFJlc2V0IHRoZSBjaGFyZXQgb25lIGNoYXJhY3RlciBmdXJ0aGVy
LgogICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLm1vdmVUbyhtX2ZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpLmVuZCgpKTsKQEAgLTI1ODEsNyArMjU4Miw3IEBAIHZvaWQgRWRpdG9yOjpj
aGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKQog
ICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVjb3JkQXV0b2NvcnJlY3Rp
b25SZXNwb25zZVJldmVyc2VkKHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rpb24pOwogICAgIFRleHRD
aGVja2luZ1BhcmFncmFwaCBwYXJhZ3JhcGgoc2VsZWN0aW9uKTsKLSAgICByZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQocmVwbGFjZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSk7CisgICAgcmVwbGFjZVNl
bGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25J
bnNlcnQpOwogICAgIFJlZlB0cjxSYW5nZT4gY2hhbmdlZFJhbmdlID0gcGFyYWdyYXBoLnN1YnJh
bmdlKHBhcmFncmFwaC5jaGVja2luZ1N0YXJ0KCksIHJlcGxhY2VkU3RyaW5nLmxlbmd0aCgpKTsK
ICAgICBjaGFuZ2VkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRvY3VtZW50KCkubWFya2Vycygp
LmFkZE1hcmtlcihjaGFuZ2VkUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVu
dCwgU3RyaW5nKCkpOwogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+bWFya1JldmVy
c2VkKGNoYW5nZWRSYW5nZS5nZXQoKSk7CkBAIC0yODE1LDcgKzI4MTYsNyBAQCB2b2lkIEVkaXRv
cjo6dHJhbnNwb3NlKCkKICAgICAvLyBJbnNlcnQgdGhlIHRyYW5zcG9zZWQgY2hhcmFjdGVycy4K
ICAgICBpZiAoIXNob3VsZEluc2VydFRleHQodHJhbnNwb3NlZCwgcmFuZ2UuZ2V0KCksIEVkaXRv
ckluc2VydEFjdGlvblR5cGVkKSkKICAgICAgICAgcmV0dXJuOwotICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwog
fQogCiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSogcmFuZ2UsIGJvb2wgcHJlcGVu
ZCkKQEAgLTI4NDcsNyArMjg0OCw3IEBAIHZvaWQgRWRpdG9yOjpkaXNtaXNzQ29ycmVjdGlvblBh
bmVsQXNJZ25vcmVkKCkKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPmRpc21pc3Mo
UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCi12b2lkIEVk
aXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IG5ld1NlbGVjdGlvbiwgIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlv
bnMpCit2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVjdGlvbk9w
dGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KQogewogICAgIC8v
IElmIHRoZSBuZXcgc2VsZWN0aW9uIGlzIG9ycGhhbmVkLCB0aGVuIGRvbid0IHVwZGF0ZSB0aGUg
c2VsZWN0aW9uLgogICAgIGlmIChuZXdTZWxlY3Rpb24uc3RhcnQoKS5pc09ycGhhbigpIHx8IG5l
d1NlbGVjdGlvbi5lbmQoKS5pc09ycGhhbigpKQpAQCAtMjg1OSw3ICsyODYwLDcgQEAgdm9pZCBF
ZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb24sCiAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21l
IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2UgY29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlv
bnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAgICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFu
Z2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9PSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVj
dGlvbigpOwogICAgIGlmIChzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiB8fCBtX2Zy
YW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAg
ICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlv
bnMpOworICAgICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIGludGVudCk7CiAKICAgICAvLyBTb21lIGVkaXRpbmcgb3BlcmF0aW9ucyBj
aGFuZ2UgdGhlIHNlbGVjdGlvbiB2aXN1YWxseSB3aXRob3V0IGFmZmVjdGluZyBpdHMgcG9zaXRp
b24gd2l0aGluIHRoZSBET00uCiAgICAgLy8gRm9yIGV4YW1wbGUgd2hlbiB5b3UgcHJlc3MgcmV0
dXJuIGluIHRoZSBmb2xsb3dpbmcgKHRoZSBjYXJldCBpcyBtYXJrZWQgYnkgXik6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAppbmRleCBhNTdkNDJhLi4xMzEzZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRH
cmFudWxhcml0eSwgYm9vbCBraWxsUmluZywgYm9vbCBpc1R5cGluZ0FjdGlvbik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxldGUoYm9vbCBzbWFy
dERlbGV0ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVTZWxlY3Rpb25XaXRoU21h
cnREZWxldGUoYm9vbCBzbWFydERlbGV0ZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25EZWxldGUp
OwogICAgIHZvaWQgY2xlYXJUZXh0KCk7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlVW5jaGFuZ2VhYmxlU3R5bGVzKCk7CkBAIC0zODIsOCArMzgyLDgg
QEAgcHVibGljOgogICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEFyZWEoRWxlbWVudCopOwog
ICAgIFdFQkNPUkVfRVhQT1JUIFdyaXRpbmdEaXJlY3Rpb24gYmFzZVdyaXRpbmdEaXJlY3Rpb25G
b3JTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBs
YWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4sIGJv
b2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlLCBib29sIG1hdGNoU3R5bGUs
IE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0
QmxvY2txdW90ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJl
cGxhY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNlbGVjdFJlcGxhY2VtZW50
LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBFZGl0QWN0aW9uID0gRWRpdEFj
dGlvbkluc2VydCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxCbG9ja3F1b3RlSGFuZGxp
bmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VT
ZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmLCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBi
b29sIHNtYXJ0UmVwbGFjZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgc2VsZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3IoRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGUsIGludCBmcm9tLCBpbnQgbGVuZ3RoKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGJvb2wgb25seUhhbmRsZVdvcmRz
Q29udGFpbmluZ1NlbGVjdGlvbik7CiAgICAgdm9pZCBkZWxldGVkQXV0b2NvcnJlY3Rpb25BdFBv
c2l0aW9uKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFN0cmluZyk7CkBA
IC00NjgsNyArNDY4LDcgQEAgcHJpdmF0ZToKICAgICBlbnVtIFNldENvbXBvc2l0aW9uTW9kZSB7
IENvbmZpcm1Db21wb3NpdGlvbiwgQ2FuY2VsQ29tcG9zaXRpb24gfTsKICAgICB2b2lkIHNldENv
bXBvc2l0aW9uKGNvbnN0IFN0cmluZyYsIFNldENvbXBvc2l0aW9uTW9kZSk7CiAKLSAgICB2b2lk
IGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zKTsKKyAgICB2b2lk
IGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdT
ZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zLCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogCiAgICAgZW51bSBF
ZGl0b3JBY3Rpb25TcGVjaWZpZXIgeyBDdXRBY3Rpb24sIENvcHlBY3Rpb24gfTsKICAgICB2b2lk
IHBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDUxMWNiMDIuLjdhODE2NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtMTkyLDcgKzE5Miw3IEBAIHN0
YXRpYyBib29sIGV4ZWN1dGVBcHBseVBhcmFncmFwaFN0eWxlKEZyYW1lJiBmcmFtZSwgRWRpdG9y
Q29tbWFuZFNvdXJjZSBzb3VyY2UsCiBzdGF0aWMgYm9vbCBleGVjdXRlSW5zZXJ0RnJhZ21lbnQo
RnJhbWUmIGZyYW1lLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50KQogewog
ICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKLSAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgZnJhZ21lbnQsIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRpdEFjdGlvblVuc3BlY2lmaWVk
KSk7CisgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZy
YW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVu
dE5lc3RpbmcsIEVkaXRBY3Rpb25JbnNlcnQpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA0NDBmMzY2Li45ZTk0
MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2hhcmFjdGVyRGF0
YS5oIgogI2luY2x1ZGUgIkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgpAQCAtMTM5LDcgKzE0MCw3IEBAIEVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpyb290
RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnQoKSBjb25zdAogdm9pZCBGcmFtZVNlbGVj
dGlvbjo6bW92ZVRvKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB1
c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduKQogewogICAgIHNldFNlbGVj
dGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcy5kZWVwRXF1aXZhbGVudCgpLCBwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmFmZmluaXR5KCksIG1fc2VsZWN0aW9uLmlzRGlyZWN0aW9uYWwoKSksCi0g
ICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBhbGlnbik7
CisgICAgICAgIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKHVzZXJUcmlnZ2VyZWQpLCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCgpLCBhbGlnbik7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246
Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlv
biAmZXh0ZW50LCBFVXNlclRyaWdnZXJlZCB1c2VyVHJpZ2dlcmVkKQpAQCAtMTcwLDcgKzE3MSw4
IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVXaXRob3V0VmFsaWRhdGlvblRvKGNvbnN0IFBv
c2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb247CiAgICAgbmV3U2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKGJhc2UsIGV4dGVu
dCk7CiAgICAgbmV3U2VsZWN0aW9uLnNldElzRGlyZWN0aW9uYWwoc2VsZWN0aW9uSGFzRGlyZWN0
aW9uKTsKLSAgICBzZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9u
T3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpKTsKKyAgICBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgIHNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCAoc2hv
dWxkU2V0Rm9jdXMgPyAwIDogRG9Ob3RTZXRGb2N1cyksIGludGVudCk7CiB9CiAKIHZvaWQgRHJh
Z0NhcmV0Q29udHJvbGxlcjo6c2V0Q2FyZXRQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQpAQCAtMjU0LDcgKzI1NiwxMyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRT
ZWxlY3Rpb25CeU1vdXNlSWZEaWZmZXJlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcGFzcwog
ICAgIGlmIChtX3NlbGVjdGlvbiA9PSBuZXdTZWxlY3Rpb24gfHwgIXNob3VsZENoYW5nZVNlbGVj
dGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgRmlyZVNlbGVjdEV2
ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsKKyAgICAKKyAg
ICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQ7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgbmV3U2VsZWN0aW9uLmlzQ2FyZXQoKSkKKyAgICAg
ICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAg
IGVsc2UKKyAgICAgICAgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQsIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZ3Jh
bnVsYXJpdHkpOwogfQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0
VXBkYXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG5ld1NlbGVjdGlvblBv
c3NpYmx5V2l0aG91dERpcmVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJz
b3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCkBAIC0y
NzYsNyArMjg0LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVw
ZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICBpZiAoRG9jdW1lbnQq
IG5ld1NlbGVjdGlvbkRvY3VtZW50ID0gbmV3U2VsZWN0aW9uLmJhc2UoKS5kb2N1bWVudCgpKSB7
CiAgICAgICAgIGlmIChSZWZQdHI8RnJhbWU+IG5ld1NlbGVjdGlvbkZyYW1lID0gbmV3U2VsZWN0
aW9uRG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChuZXdTZWxlY3Rpb25GcmFt
ZSAhPSBtX2ZyYW1lICYmIG5ld1NlbGVjdGlvbkRvY3VtZW50ICE9IG1fZnJhbWUtPmRvY3VtZW50
KCkpIHsKLSAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0
U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KTsKKyAg
ICAgICAgICAgICAgICBuZXdTZWxlY3Rpb25GcmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgYWxpZ24s
IGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgZHVy
aW5nIHRoZSBhYm92ZSBzZXQgc2VsZWN0aW9uLCB0aGlzIEZyYW1lU2VsZWN0aW9uIGhhcyBiZWVu
IG1vZGlmaWVkIGJ5CiAgICAgICAgICAgICAgICAgLy8gc2VsZWN0RnJhbWVFbGVtZW50SW5QYXJl
bnRJZkZ1bGx5U2VsZWN0ZWQsIGJ1dCB0aGF0IHRoZSBzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHZh
bGlkIHNpbmNlCiAgICAgICAgICAgICAgICAgLy8gdGhlIGZyYW1lIGlzIGFib3V0IHRvIGJlIGRl
c3Ryb3llZC4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2xlYXIgb3VyIHNlbGVjdGlvbi4KQEAgLTMy
MCw3ICszMjgsNyBAQCBib29sIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBk
YXRpbmdBcHBlYXJhbmNlKGNvbnN0IFZpc2libGVTZWxlY3RpbwogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEN1cnNvckFsaWdu
T25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24s
IFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50
ZW50LCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkpCiB7CiAgICAgaWYgKCFzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKHNl
bGVjdGlvbiwgb3B0aW9ucywgYWxpZ24sIGdyYW51bGFyaXR5KSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzQxLDcgKzM0OSw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbihjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFNldFNlbGVjdGlvCiAgICAgaWYgKGZyYW1l
VmlldyAmJiBmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKGludGVudCk7CiB9CiAKIHN0YXRpYyB2b2lkIHVwZGF0ZVNlbGVjdGlvbkJ5VXBkYXRpbmdM
YXlvdXRPclN0eWxlKEZyYW1lJiBmcmFtZSkKQEAgLTM2MCw3ICszNjgsNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjpzZXROZWVkc1NlbGVjdGlvblVwZGF0ZSgpCiAgICAgICAgIHZpZXctPmNsZWFy
U2VsZWN0aW9uKCk7CiB9CiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbigpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24o
Y29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsKICAgICBpZiAoIW1fcGVu
ZGluZ1NlbGVjdGlvblVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgwLDcgKzM4OCw3IEBA
IHZvaWQgRnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpCiAgICAgICAg
IHJldmVhbFNlbGVjdGlvbihhbGlnbm1lbnQsIFJldmVhbEV4dGVudCk7CiAgICAgfQogCi0gICAg
bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoaW50ZW50KTsKIAogICAgIGlmIChhdXRvKiBjbGll
bnQgPSBtX2ZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKSkKICAgICAgICAgY2xpZW50LT5kaWRDaGFu
Z2VTZWxlY3Rpb25BbmRVcGRhdGVMYXlvdXQoKTsKQEAgLTEwMjEsNyArMTAyOSw3NSBAQCBWaXNp
YmxlUG9zaXRpb24gRnJhbWVTZWxlY3Rpb246Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eQogc3RhdGljIGJvb2wgaXNCb3VuZGFyeShUZXh0R3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgcmV0dXJuIGdyYW51bGFyaXR5ID09IExpbmVCb3VuZGFy
eSB8fCBncmFudWxhcml0eSA9PSBQYXJhZ3JhcGhCb3VuZGFyeSB8fCBncmFudWxhcml0eSA9PSBE
b2N1bWVudEJvdW5kYXJ5OwotfSAgICAKK30KKworQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgRnJh
bWVTZWxlY3Rpb246OnRleHRTZWxlY3Rpb25JbnRlbnQoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVj
dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sK
KyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCgpOworICAgIGJvb2wgZmxpcCA9IGZhbHNlOworICAgIGlmIChhbHRlciA9PSBGcmFtZVNl
bGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmUpIHsKKyAgICAgICAgaW50ZW50LnR5cGUgPSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOworICAgICAgICBmbGlwID0gaXNSYW5nZSgpICYm
IGRpcmVjdGlvbk9mU2VsZWN0aW9uKCkgPT0gUlRMOworICAgIH0gZWxzZQorICAgICAgICBpbnRl
bnQudHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDsKKyAgICBzd2l0
Y2ggKGdyYW51bGFyaXR5KSB7CisgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToKKyAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Q2hhcmFjdGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdvcmRHcmFudWxhcml0eToK
KyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5V29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFy
aXR5OgorICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlv
bi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2U7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUJvdW5k
YXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhcmFncmFwaEdy
YW51bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEb2N1bWVudEdyYW51bGFyaXR5OgorICAgIGNh
c2UgRG9jdW1lbnRCb3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0
eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBib29sIGJvdW5kYXJ5ID0gZmFsc2U7CisgICAgc3dpdGNoIChncmFudWxhcml0
eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgY2FzZSBXb3JkR3JhbnVs
YXJpdHk6CisgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgorICAgIGNhc2UgTGluZUdyYW51
bGFyaXR5OgorICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CisgICAgY2FzZSBEb2N1bWVu
dEdyYW51bGFyaXR5OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6
CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgY2FzZSBQYXJhZ3JhcGhCb3VuZGFyeToKKyAg
ICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGJvdW5kYXJ5ID0gdHJ1ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJl
Y3Rpb25SaWdodDoKKyAgICBjYXNlIERpcmVjdGlvbkZvcndhcmQ6CisgICAgICAgIGlmIChib3Vu
ZGFyeSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
bkVuZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rp
b24gPSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMgOiBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxl
ZnQ6CisgICAgY2FzZSBEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgaWYgKGJvdW5kYXJ5KQor
ICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZs
aXAgPyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0IDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uUHJldmlvdXM7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gaW50ZW50Owor
fQogCiBib29sIEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVj
dGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRVVz
ZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKIHsKQEAgLTEwNzcsNiArMTE1MywxMSBAQCBib29s
IEZyYW1lU2VsZWN0aW9uOjptb2RpZnkoRUFsdGVyYXRpb24gYWx0ZXIsIFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3Rpb24sIFRleAogICAgICAgICBpZiAoIXdhc1JhbmdlICYmIGFsdGVyID09IEFs
dGVyYXRpb25Nb3ZlICYmIHBvc2l0aW9uID09IG9yaWdpbmFsU3RhcnRQb3NpdGlvbikKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2ZyYW1lICYmIEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudCh0ZXh0U2VsZWN0aW9uSW50ZW50
KGFsdGVyLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSk7CisgICAgfQorCiAgICAgLy8gU29tZSBv
ZiB0aGUgYWJvdmUgb3BlcmF0aW9ucyBzZXQgYW4geFBvc0ZvclZlcnRpY2FsQXJyb3dOYXZpZ2F0
aW9uLgogICAgIC8vIFNldHRpbmcgYSBzZWxlY3Rpb24gd2lsbCBjbGVhciBpdCwgc28gc2F2ZSBp
dCB0byBwb3NzaWJseSByZXN0b3JlIGxhdGVyLgogICAgIC8vIE5vdGU6IHRoZSBTVEFSVCBwb3Np
dGlvbiB0eXBlIGlzIGFyYml0cmFyeSBiZWNhdXNlIGl0IGlzIHVudXNlZCwgaXQgd291bGQgYmUK
QEAgLTE3MTAsOCArMTc5MSwxMCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZWxlY3RBbGwoKQog
CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbjo6c2Vs
ZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKHJvb3QuZ2V0KCkpKTsKIAotICAgIGlmIChzaG91bGRD
aGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgc2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCk7
CisgICAgaWYgKHNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAg
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsIH0pOworICAgICAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
RmlyZVNlbGVjdEV2ZW50LCBpbnRlbnQpOworICAgIH0KIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlv
bjo6c2V0U2VsZWN0ZWRSYW5nZShSYW5nZSogcmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9v
bCBjbG9zZVR5cGluZykKQEAgLTIxNDUsNyArMjIyOCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246
OnNldFNob3VsZFNob3dCbG9ja0N1cnNvcihib29sIHNob3VsZFNob3dCbG9ja0N1cnNvcikKIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmRpZExheW91dCgpCiB7CiAgICAgc2V0Q2FyZXRSZWN0TmVlZHNV
cGRhdGUoKTsKLSAgICB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKTsKKyAgICB1cGRhdGVBbmRS
ZXZlYWxTZWxlY3Rpb24oQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAgICAgdXBkYXRlRGF0
YURldGVjdG9yc0ZvclNlbGVjdGlvbigpOwogfQogCkBAIC0yNDIzLDcgKzI1MDYsNyBAQCBWaXNp
YmxlU2VsZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjp3b3JkU2VsZWN0aW9uQ29udGFpbmluZ0NhcmV0
U2VsZWN0aW9uKGNvbnN0IFZpcwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24g
PSBmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKTsKICAgICBuZXdTZWxlY3Rpb24uZXhwYW5kVXNp
bmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotICAgIGZyYW1lU2VsZWN0aW9uLnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7Cisg
ICAgZnJhbWVTZWxlY3Rpb24uc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNl
bGVjdGlvbk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBmcmFtZVNlbGVjdGlvbi5ncmFudWxhcml0eSgpKTsKIAogICAgIFBv
c2l0aW9uIHN0YXJ0UG9zKGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAg
IFBvc2l0aW9uIGVuZFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5lbmQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggMGU0ZTI4ZS4uYTU2NWRjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBGcmFtZVNlbGVjdGlvbl9oCiAjZGVmaW5lIEZyYW1lU2VsZWN0aW9uX2gKIAor
I2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiRWRpdGluZ1N0
eWxlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAg
LTE0NCw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlV2l0aG91dFZhbGlkYXRpb25U
byhjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgYm9vbCBzZWxlY3Rpb25IYXNEaXJl
Y3Rpb24sIGJvb2wgc2hvdWxkU2V0Rm9jdXMpOwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2Vs
ZWN0aW9uT3B0aW9ucyA9IGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEN1cnNvckFsaWdu
T25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9
IENoYXJhY3RlckdyYW51bGFyaXR5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVj
dGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucyA9IGRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50ID0gQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQoKSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0U2VsZWN0ZWRSYW5nZShSYW5nZSosIEVBZmZpbml0
eSwgYm9vbCBjbG9zZVR5cGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxlY3RBbGwo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CkBAIC0yNzIsNyArMjczLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBlbnVtIEVQb3NpdGlvblR5cGUgeyBTVEFSVCwgRU5ELCBC
QVNFLCBFWFRFTlQgfTsKIAotICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7Cisg
ICAgdm9pZCB1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmKTsKICAgICB2b2lkIHVwZGF0ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIAog
ICAgIGJvb2wgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiwgU2V0U2VsZWN0aW9uT3B0aW9ucywgQ3Vyc29yQWxpZ25PblNjcm9sbCwg
VGV4dEdyYW51bGFyaXR5KTsKQEAgLTI5NywxMCArMjk4LDExIEBAIHByaXZhdGU6CiAKICAgICBM
YXlvdXRVbml0IGxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2aWdhdGlvbihF
UG9zaXRpb25UeXBlKTsKIAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IHRleHRTZWxlY3Rp
b25JbnRlbnQoRUFsdGVyYXRpb24sIFNlbGVjdGlvbkRpcmVjdGlvbiwgVGV4dEdyYW51bGFyaXR5
KTsKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CisgICAgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2Vs
ZWN0aW9uQ2hhbmdlKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CiAjZWxzZQotICAg
IHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpIHsgfQorICAgIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCYpIHsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkNh
Y2hlc0lmU2VsZWN0aW9uSXNJbnNpZGVUZXh0Rm9ybUNvbnRyb2woRVVzZXJUcmlnZ2VyZWQpOwpA
QCAtMzY3LDcgKzM2OSw3IEBAIGlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdT
dHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUpCiAKICNpZiAhKFBMQVRGT1JNKENP
Q09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKQotaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKQoraW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQpCiB7
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwCmluZGV4IDUzOTRlN2UuLjk0YWYwNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApAQCAt
MzksOCArMzksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKLSAgICA6IFNpbXBsZUVkaXRD
b21tYW5kKG5vZGUtPmRvY3VtZW50KCkpCitJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNl
dCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBT
aW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwg
bV9ub2RlKG5vZGUpCiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAgLCBtX3RleHQodGV4dCkK
QEAgLTY2LDggKzY2LDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKIAogICAgIG1fbm9kZS0+aW5zZXJ0RGF0YShtX29mZnNldCwgbV90ZXh0LCBJR05PUkVfRVhD
RVBUSU9OKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkLCBtX29m
ZnNldCwgbV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdl
dCgpLCBhcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1f
bm9kZSwgbV9vZmZzZXQpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04NCw4ICs4NCw4
IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAg
cmV0dXJuOwogICAgICAgICAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1
YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4
dENoYW5nZU5vdGlmaWNhdGlvbihtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERl
bGV0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlv
bihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogCiAgICAgbV9ub2RlLT5kZWxldGVEYXRh
KG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAppbmRl
eCAzMTBiYmIzLi4wNzYwOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMzQsMTQgKzM0LDE3IEBAIGNsYXNzIFRleHQ7
CiAKIGNsYXNzIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmIHRleHQpCisgICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
KG5vZGUsIG9mZnNldCwgdGV4dCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZShub2RlKSwgb2Zmc2V0LCB0ZXh0LCBlZGl0
aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCk7CisgICAgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQoKTsKKworcHJvdGVjdGVk
OgorICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtNTcsNiArNjAsMTEgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV90ZXh0OwogfTsKIAoraW5s
aW5lIGNvbnN0IFN0cmluZyYgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6aW5zZXJ0ZWRUZXh0
KCkKK3sKKyAgICByZXR1cm4gbV90ZXh0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAKaW5kZXggZDE2YjVkNi4u
YzZiMjI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVm
b3JlQ29tbWFuZC5jcHAKQEAgLTI5LDEzICsyOSwxMyBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oIgorI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRy
PE5vZGU+IHJlZkNoaWxkLAotICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxl
IHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQotICAgIDogU2ltcGxlRWRpdENv
bW1hbmQocmVmQ2hpbGQtPmRvY3VtZW50KCkpCitJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5z
ZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUmVmUHRyPE5vZGU+JiYgaW5zZXJ0Q2hpbGQsIFJlZlB0cjxO
b2RlPiYmIHJlZkNoaWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KQorICAgIDogU2ltcGxlRWRpdENvbW1hbmQocmVmQ2hpbGQtPmRvY3VtZW50KCksIGVkaXRpbmdB
Y3Rpb24pCiAgICAgLCBtX2luc2VydENoaWxkKGluc2VydENoaWxkKQogICAgICwgbV9yZWZDaGls
ZChyZWZDaGlsZCkKICAgICAsIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUo
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCkBAIC01Nyw4ICs1NywxMCBAQCB2
b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb0FwcGx5KCkKIAogICAgIHBhcmVudC0+aW5z
ZXJ0QmVmb3JlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIG1fcmVmQ2hpbGQuZ2V0KCksIElHTk9SRV9F
WENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5l
eGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90
aWZpY2F0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2Vy
dGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24g
PSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+
KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbiht
X2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpLCBtX2luc2VydENo
aWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQog
CiB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQpAQCAtNjcsOCArNjks
MTAgQEAgdm9pZCBJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVs
ZXRpbmcgdGhlIHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgp
LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VO
b3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVs
ZXRlZCwgMCwgbV9pbnNlcnRDaGlsZC0+bm9kZVZhbHVlKCkpOworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9u
ID0gaXM8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0
PihtX2luc2VydENoaWxkLmdldCgpKSwgMCkgOiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
bV9pbnNlcnRDaGlsZC5nZXQoKSwgMCk7CisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JU
ZXh0Q2hhbmdlKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX2luc2Vy
dENoaWxkLT5ub2RlVmFsdWUoKSwgVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQog
CiAgICAgbV9pbnNlcnRDaGlsZC0+cmVtb3ZlKElHTk9SRV9FWENFUFRJT04pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCmluZGV4IGQ0
Yjc2MmQuLjVjZWEyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5v
ZGVCZWZvcmVDb21tYW5kLmgKQEAgLTMyLDIyICszMiwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEluc2VydE5vZGVCZWZvcmVDb21tYW5kIDogcHVibGljIFNpbXBsZUVkaXRDb21t
YW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydE5vZGVCZWZvcmVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNo
aWxkVG9JbnNlcnRCZWZvcmUsCi0gICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBS
ZWY8SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8Tm9kZT4mJiBjaGlsZFRv
SW5zZXJ0LCBSZWZQdHI8Tm9kZT4mJiBjaGlsZFRvSW5zZXJ0QmVmb3JlLAorICAgICAgICBTaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKGNoaWxkVG9JbnNlcnQsIGNoaWxkVG9JbnNlcnRCZWZvcmUsIHNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFdURjo6bW92ZShjaGlsZFRvSW5zZXJ0KSwgV1RGOjptb3ZlKGNo
aWxkVG9JbnNlcnRCZWZvcmUpLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwg
ZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBJbnNlcnROb2RlQmVmb3Jl
Q29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4g
Y2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUp
OworcHJvdGVjdGVkOgorICAgIEluc2VydE5vZGVCZWZvcmVDb21tYW5kKFJlZlB0cjxOb2RlPiYm
IGNoaWxkVG9JbnNlcnQsIFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uKTsKIAorcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
b1VuYXBwbHkoKSBvdmVycmlkZTsKLSAgICAKKwogI2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRp
ZgotICAgIAorCiAgICAgUmVmUHRyPE5vZGU+IG1faW5zZXJ0Q2hpbGQ7CiAgICAgUmVmUHRyPE5v
ZGU+IG1fcmVmQ2hpbGQ7CiAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUg
bV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3Bw
CmluZGV4IDIxMjgyOWMuLjdkZDAxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAtNTksOCAr
NTksOCBAQCBzdGF0aWMgRWxlbWVudCogaGlnaGVzdFZpc3VhbGx5RXF1aXZhbGVudERpdkJlbG93
Um9vdChFbGVtZW50KiBzdGFydEJsb2NrKQogICAgIHJldHVybiBjdXJCbG9jazsKIH0KIAotSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpCi0gICAgOiBDb21wb3Np
dGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6
Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBib29s
IG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRv
VW5xdW90ZWRBcmVhLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fbXVzdFVzZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50KG11c3RVc2VEZWZhdWx0UGFyYWdyYXBoRWxlbWVudCkKICAgICAs
IG1fcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYShwYXN0ZUJsb2NrcXV0b2VJbnRvVW5x
dW90ZWRBcmVhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaAppbmRleCAxMjgxZjBjLi42NzM0MTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuaApAQCAtMzQsMTMgKzM0LDEzIEBAIGNsYXNzIEVkaXRpbmdTdHlsZTsKIAog
Y2xhc3MgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVF
ZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQ
YXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVk
QXJlYSA9IGZhbHNlKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB1c2VEZWZhdWx0UGFyYWdyYXBo
RWxlbWVudCA9IGZhbHNlLCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEgPSBm
YWxzZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBwYXN0ZUJsb2NrcXV0
b2VJbnRvVW5xdW90ZWRBcmVhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQoZG9jdW1lbnQsIHVzZURlZmF1bHRQYXJhZ3JhcGhF
bGVtZW50LCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhLCBlZGl0aW5nQWN0aW9uKSk7
CiAgICAgfQogCiBwcml2YXRlOgotICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQo
RG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEpOworICAgIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQoRG9jdW1lbnQmLCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBh
c3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRUZXh0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmNwcAppbmRleCBiZGQ1OWEzLi41NzJlOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcApAQCAtMzcsMTYgKzM3LDE2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdEluc2VydGVk
VGV4dCwgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlKQotICAgIDogQ29tcG9zaXRlRWRpdENv
bW1hbmQoZG9jdW1lbnQpCitJbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRU
ZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQog
ICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChzZWxlY3RJbnNl
cnRlZFRleHQpCiAgICAgLCBtX3JlYmFsYW5jZVR5cGUocmViYWxhbmNlVHlwZSkKIHsKIH0KIAot
SW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGll
cj4gbWFya2VyU3VwcGxpZXIpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkK
K0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21w
b3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fdGV4dCh0
ZXh0KQogICAgICwgbV9zZWxlY3RJbnNlcnRlZFRleHQoZmFsc2UpCiAgICAgLCBtX3JlYmFsYW5j
ZVR5cGUoUmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKaW5kZXggZjEwZDJmZS4uNjUyODE2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaApAQCAtNDksMjAg
KzQ5LDIxIEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxJbnNlcnRUZXh0Q29t
bWFuZD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNlbGVjdEluc2VydGVkVGV4dCA9IGZhbHNlLAotICAgICAgICBSZWJhbGFuY2VUeXBlIHJlYmFs
YW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKKyAgICAg
ICAgUmViYWxhbmNlVHlwZSByZWJhbGFuY2VUeXBlID0gUmViYWxhbmNlTGVhZGluZ0FuZFRyYWls
aW5nV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbiA9IEVkaXRBY3Rpb25JbnNl
cnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFu
ZChkb2N1bWVudCwgdGV4dCwgc2VsZWN0SW5zZXJ0ZWRUZXh0LCByZWJhbGFuY2VUeXBlKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0
ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUsIGVkaXRpbmdBY3Rpb24pKTsK
ICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFy
a2VyU3VwcGxpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NS
ZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKKyAgICBz
dGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5kPiBjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllciwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllcikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnNlcnRUZXh0Q29tbWFuZChkb2N1bWVudCwg
dGV4dCwgbWFya2VyU3VwcGxpZXIsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6
Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiwgRWRpdEFj
dGlvbik7CisgICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlLCBFZGl0QWN0aW9uKTsK
IAotICAgIEluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBi
b29sIHNlbGVjdEluc2VydGVkVGV4dCwgUmViYWxhbmNlVHlwZSk7Ci0gICAgSW5zZXJ0VGV4dENv
bW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2Vy
dGlvbk1hcmtlclN1cHBsaWVyPik7Citwcml2YXRlOgogCiAgICAgdm9pZCBkZWxldGVDaGFyYWN0
ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9u
Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5k
LmNwcAppbmRleCBjZTg4NDc4Li5kNmVjZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIE1vdmVT
ZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAgICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6
Q29tbWFuZE9wdGlvbnMgb3B0aW9ucyA9IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTZWxlY3RS
ZXBsYWNlbWVudCB8IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZzsKICAg
ICBpZiAobV9zbWFydEluc2VydCkKICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6U21hcnRSZXBsYWNlOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgbV9mcmFnbWVudCwgb3B0aW9u
cykpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUoZG9jdW1lbnQoKSwgV1RGOjptb3ZlKG1fZnJhZ21lbnQpLCBvcHRpb25zKSk7CiB9
CiAKIEVkaXRBY3Rpb24gTW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcAppbmRleCAyYzA2M2MwLi5jNjI5NzE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVz
ZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3Vs
ZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkK
K1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRl
bnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBF
ZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2Rl
LT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBt
X3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKHNob3VsZEFzc3VtZUNvbnRlbnRJ
c0Fsd2F5c0VkaXRhYmxlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCmluZGV4IDRiOTE5NzQu
LjFiMmM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Jl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKQEAgLTMyLDEzICszMiwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKKyAgICBzdGF0aWMgUmVmPFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2Rl
LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQobm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQo
bm9kZSwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24p
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpOworICAgIGV4cGxpY2l0IFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5D
b21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4sIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRh
YmxlLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk4YTk5
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZURlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorCisjaW5jbHVkZSAi
VGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRl
eHQ+JiYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICA6IERlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKHRleHQpLCBvZmZzZXQsIGNvdW50LCBFZGl0
QWN0aW9uRGVsZXRlKQoreworfQorCit2b2lkIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5
cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yYzcyMTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCisjZGVmaW5lIFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkRlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZCBmaW5hbCA6IHB1YmxpYyBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kPiBjcmVhdGUoUmVmUHRyPFRleHQ+JiYgdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25l
ZCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZSh0ZXh0KSwgb2Zmc2V0LCBjb3VudCkpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChS
ZWZQdHI8VGV4dD4mJiwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBlLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBvdmVycmlkZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODM0OGMxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0wLDAgKzEsNjYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgi
CisKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQ6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0
cjxUZXh0PiYmIG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZShub2RlKSwgb2Zmc2V0LCB0ZXh0LCBl
ZGl0aW5nQWN0aW9uKQorICAgICwgbV9kZWxldGVkVGV4dChkZWxldGVkVGV4dCkKK3sKK30KKwor
dm9pZCBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclRleHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICgh
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2Fj
aGUoKTsKKyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVVua25vd246CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVDdXQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlv
bjoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCB0ZXh0LCBBWFRleHRF
ZGl0VHlwZUluc2VydCwgbV9kZWxldGVkVGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQ
YXN0ZToKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAgICBjYWNoZS0+cG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihub2RlLCBBWFRleHRFZGl0VHlwZURlbGV0ZSwg
bV9kZWxldGVkVGV4dCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworICAgICAgICBicmVhazsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjYzYjJiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCisjZGVm
aW5lIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKworI2luY2x1ZGUgIkluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCBmaW5hbCA6IHB1YmxpYyBJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kPiBjcmVhdGUoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQg
b2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFdURjo6bW92ZShub2RlKSwgb2Zm
c2V0LCB0ZXh0LCBkZWxldGVkVGV4dCwgZWRpdGluZ0FjdGlvbikpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiwg
dW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEVkaXRBY3Rpb24pOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJy
aWRlOworCisgICAgU3RyaW5nIG1fZGVsZXRlZFRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IGZiMzg4MGMuLmZkNTc0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC00Nyw2ICs0Nyw4IEBACiAjaW5jbHVk
ZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKICNpbmNs
dWRlICJTaW1wbGlmeU1hcmt1cENvbW1hbmQuaCIKICNpbmNsdWRlICJTbWFydFJlcGxhY2UuaCIK
ICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKQEAgLTM2OCwxNSArMzcwLDE0IEBAIGlubGlu
ZSB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjpkaWRSZXBsYWNl
Tm9kZShOb2RlKiBub2RlLCBOCiAgICAgICAgIG1fbGFzdE5vZGVJbnNlcnRlZCA9IG5ld05vZGU7
CiB9CiAKLVJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZChE
b2N1bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQs
IENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKLSAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+JiYgZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRBY3Rpb24g
ZWRpdEFjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0QWN0
aW9uKQogICAgICwgbV9zZWxlY3RSZXBsYWNlbWVudChvcHRpb25zICYgU2VsZWN0UmVwbGFjZW1l
bnQpCiAgICAgLCBtX3NtYXJ0UmVwbGFjZShvcHRpb25zICYgU21hcnRSZXBsYWNlKQogICAgICwg
bV9tYXRjaFN0eWxlKG9wdGlvbnMgJiBNYXRjaFN0eWxlKQogICAgICwgbV9kb2N1bWVudEZyYWdt
ZW50KGZyYWdtZW50KQogICAgICwgbV9wcmV2ZW50TmVzdGluZyhvcHRpb25zICYgUHJldmVudE5l
c3RpbmcpCiAgICAgLCBtX21vdmluZ1BhcmFncmFwaChvcHRpb25zICYgTW92aW5nUGFyYWdyYXBo
KQotICAgICwgbV9lZGl0QWN0aW9uKGVkaXRBY3Rpb24pCiAgICAgLCBtX3Nhbml0aXplRnJhZ21l
bnQob3B0aW9ucyAmIFNhbml0aXplRnJhZ21lbnQpCiAgICAgLCBtX3Nob3VsZE1lcmdlRW5kKGZh
bHNlKQogICAgICwgbV9pZ25vcmVNYWlsQmxvY2txdW90ZShvcHRpb25zICYgSWdub3JlTWFpbEJs
b2NrcXVvdGUpCkBAIC0xNDI3LDExICsxNDI4LDYgQEAgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6bWVyZ2VUZXh0Tm9kZXNBcm91bmRQb3NpdGlvbihQb3NpdGlvbiYgcG9zaXRpb24sIFAK
ICAgICB9CiB9CiAKLUVkaXRBY3Rpb24gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmVkaXRpbmdB
Y3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2VkaXRBY3Rpb247Ci19Ci0KIC8vIElmIHRo
ZSB1c2VyIGlzIGluc2VydGluZyBhIGxpc3QgaW50byBhbiBleGlzdGluZyBsaXN0LCBpbnN0ZWFk
IG9mIG5lc3RpbmcgdGhlIGxpc3QsCiAvLyB3ZSBwdXQgdGhlIGxpc3QgaXRlbXMgaW50byB0aGUg
ZXhpc3RpbmcgbGlzdC4KIE5vZGUqIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjppbnNlcnRBc0xp
c3RJdGVtcyhQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBwcnBMaXN0RWxlbWVudCwgTm9kZSogaW5z
ZXJ0aW9uQmxvY2ssIGNvbnN0IFBvc2l0aW9uJiBpbnNlcnRQb3MsIEluc2VydGVkTm9kZXMmIGlu
c2VydGVkTm9kZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgKaW5kZXggZDg3YzNmZi4uOWNmZGZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaApAQCAtNDgsMTcgKzQ4LDE2IEBA
IHB1YmxpYzoKIAogICAgIHR5cGVkZWYgdW5zaWduZWQgQ29tbWFuZE9wdGlvbnM7CiAKLSAgICBz
dGF0aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LCBDb21tYW5kT3B0aW9u
cyBvcHRpb25zLCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25QYXN0ZSkKKyAgICBzdGF0
aWMgUmVmPFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0
aW9ucywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRv
Y3VtZW50LCBmcmFnbWVudCwgb3B0aW9ucywgYWN0aW9uKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKGRvY3VtZW50LCBXVEY6Om1vdmUoZnJh
Z21lbnQpLCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAg
IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiwgUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiwgQ29tbWFuZE9wdGlvbnMsIEVkaXRBY3Rpb24pOworICAgIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kKERvY3VtZW50JiwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYsIENvbW1hbmRP
cHRpb25zLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCk7Ci0gICAg
dmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKLSAgICAKKwogICAgIGNs
YXNzIEluc2VydGVkTm9kZXMgewogICAgIHB1YmxpYzoKICAgICAgICAgdm9pZCByZXNwb25kVG9O
b2RlSW5zZXJ0aW9uKE5vZGUqKTsKQEAgLTEyMCw3ICsxMTksNiBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBtX2RvY3VtZW50RnJhZ21lbnQ7CiAgICAgYm9vbCBtX3By
ZXZlbnROZXN0aW5nOwogICAgIGJvb2wgbV9tb3ZpbmdQYXJhZ3JhcGg7Ci0gICAgRWRpdEFjdGlv
biBtX2VkaXRBY3Rpb247CiAgICAgYm9vbCBtX3Nhbml0aXplRnJhZ21lbnQ7CiAgICAgYm9vbCBt
X3Nob3VsZE1lcmdlRW5kOwogICAgIGJvb2wgbV9pZ25vcmVNYWlsQmxvY2txdW90ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IDkzMjljZGYuLmYwNzQ0NDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcgJnRleHQs
IGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0KQogdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0
UnVuV2l0aG91dE5ld2xpbmVzKGNvbnN0IFN0cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRl
ZFRleHQpCiB7CiAgICAgUmVmUHRyPEluc2VydFRleHRDb21tYW5kPiBjb21tYW5kID0gSW5zZXJ0
VGV4dENvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQs
Ci0gICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNl
cnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJ
bnNlcnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMpOworICAgICAgICBtX2Nv
bXBvc2l0aW9uVHlwZSA9PSBUZXh0Q29tcG9zaXRpb25Ob25lID8gSW5zZXJ0VGV4dENvbW1hbmQ6
OlJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzIDogSW5zZXJ0VGV4dENvbW1h
bmQ6OlJlYmFsYW5jZUFsbFdoaXRlc3BhY2VzLCBFZGl0QWN0aW9uVHlwaW5nKTsKIAogICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKGNvbW1hbmQsIGVuZGluZ1NlbGVjdGlvbigpKTsKIApAQCAt
Mzk1LDcgKzM5NSw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yKCkKICAgICBpZiAoIWNhbkFwcGVuZE5ld0xpbmVGZWVkVG9TZWxlY3Rpb24oZW5kaW5nU2Vs
ZWN0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSkpOwor
ICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1h
bmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmYWxzZSwgZmFsc2UsIEVkaXRBY3Rpb25UeXBpbmcpKTsK
ICAgICB0eXBpbmdBZGRlZFRvT3BlbkNvbW1hbmQoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsu
Y3BwCmluZGV4IDdjMjEzNjUuLjBmZmMzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIHZv
aWQgbWF5YmVFbWl0VGV4dEZvY3VzQ2hhbmdlKFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVj
dD4gcHJwT2JqZWN0KQogfQogCiAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZShjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCYpCiB7CiAgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9E
aWN0YXRpb25Db21tYW5kSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3Rh
dGlvbkNvbW1hbmRJT1MuY3BwCmluZGV4IGMxODgzMzguLjEzNGIyMzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwCkBAIC0zOCw3
ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERpY3RhdGlvbkNvbW1hbmRJT1M6OkRp
Y3RhdGlvbkNvbW1hbmRJT1MoRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8VmVjdG9yPFN0cmlu
Zz4+JiYgZGljdGF0aW9uUGhyYXNlcywgUmV0YWluUHRyPGlkPiBtZXRhZGF0YSkKLSAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQo
ZG9jdW1lbnQsIEVkaXRBY3Rpb25EaWN0YXRpb24pCiAgICAgLCBtX2RpY3RhdGlvblBocmFzZXMo
V1RGOjptb3ZlKGRpY3RhdGlvblBocmFzZXMpKQogICAgICwgbV9tZXRhZGF0YShXVEY6Om1vdmUo
bWV0YWRhdGEpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGlj
dGF0aW9uQ29tbWFuZElPUy5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5oCmluZGV4IGJmOTA3NjQuLmFjNWNiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmgKQEAgLTQ0LDcgKzQ0LDYgQEAg
cHJpdmF0ZToKICAgICBEaWN0YXRpb25Db21tYW5kSU9TKERvY3VtZW50JiwgVmVjdG9yPFZlY3Rv
cjxTdHJpbmc+PiYmIGRpY3RhdGlvblBocmFzZXMsIFJldGFpblB0cjxpZD4gbWV0YWRhdGEpOwog
CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEVkaXRBY3Rpb25E
aWN0YXRpb247IH0KIAogICAgIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4gbV9kaWN0YXRpb25QaHJh
c2VzOwogICAgIFJldGFpblB0cjxpZD4gbV9tZXRhZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0KaW5kZXggOWJkZWUxYy4uMWE4MmVmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0K
QEAgLTQ3LDEzICs0NywxMyBAQCBzdGF0aWMgQ0dSZWN0IGFjY2Vzc2liaWxpdHlDb252ZXJ0U2Ny
ZWVuUmVjdChDR1JlY3QgYm91bmRzKQogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAgICAgCiAg
ICAgCi12b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkKK3ZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxl
Y3Rpb25DaGFuZ2UoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1f
c2VsZWN0aW9uLnN0YXJ0KCkuaXNOb3ROdWxsKCkgJiYgbV9zZWxlY3Rpb24uZW5kKCkuaXNOb3RO
dWxsKCkpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmV4
aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRp
b24obV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLCBBWE9i
amVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQp
OworICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obV9z
ZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgpLCBpbnRlbnQsIG1fc2VsZWN0aW9uKTsK
ICAgICB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAxZTZjNmIyLi4zNjg0ZTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtNTQ4LDE2ICs1NDgsMjYgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0SW5uZXJUZXh0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQVNTRVJUKGlzVGV4dEZvcm1Db250cm9sKCkpOwotICAgIGJvb2wgdGV4dElzQ2hh
bmdlZCA9IHZhbHVlICE9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBTdHJp
bmcgcHJldmlvdXNWYWx1ZSA9IGlubmVyVGV4dFZhbHVlRnJvbSgqaW5uZXJUZXh0KTsKKyAgICBi
b29sIHRleHRJc0NoYW5nZWQgPSB2YWx1ZSAhPSBwcmV2aW91c1ZhbHVlOwogICAgIGlmICh0ZXh0
SXNDaGFuZ2VkIHx8ICFpbm5lclRleHQtPmhhc0NoaWxkTm9kZXMoKSkgeworI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgIVBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAodGV4dElzQ2hhbmdl
ZCAmJiByZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICAgICAgICAgIGNh
Y2hlLT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYVmFsdWVDaGFuZ2Vk
LCBUYXJnZXRPYnNlcnZhYmxlUGFyZW50KTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGlu
bmVyVGV4dC0+c2V0SW5uZXJUZXh0KHZhbHVlLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAg
ICAgICBpZiAodmFsdWUuZW5kc1dpdGgoJ1xuJykgfHwgdmFsdWUuZW5kc1dpdGgoJ1xyJykpCiAg
ICAgICAgICAgICBpbm5lclRleHQtPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBpZiAodGV4dElzQ2hhbmdlZCAmJiByZW5k
ZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgICAgIGNhY2hlLT5wb3N0
VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKHRoaXMsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBw
cmV2aW91c1ZhbHVlLCBBWFRleHRFZGl0VHlwZUluc2VydCwgdmFsdWUsIFZpc2libGVQb3NpdGlv
bihQb3NpdGlvbih0aGlzLCBQb3NpdGlvbjo6UG9zaXRpb25Jc0JlZm9yZUFuY2hvcikpKTsKKyAg
ICAgICAgfQorI2VuZGlmCiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNS
ZW5kZXJlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXgg
OTllNmQ1OS4uMjgzZDIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAK
QEAgLTUyNCw3ICs1MjQsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFn
KERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6U21hcnRSZXBsYWNlOwogICAgICAgICAgICAgICAgIGlmIChj
aG9zZVBsYWluVGV4dCkKICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6TWF0Y2hTdHlsZTsKLSAgICAgICAgICAgICAgICBhcHBseUNvbW1hbmQo
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIGZy
YWdtZW50LCBvcHRpb25zKSk7CisgICAgICAgICAgICAgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKm1fZG9jdW1lbnRVbmRlck1vdXNlLCBXVEY6Om1vdmUo
ZnJhZ21lbnQpLCBvcHRpb25zKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVs
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDg4NmM3NjUuLjNkOWZl
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMyMzksNyArMzIzOSw4
IEBAIHN0YXRpYyB2b2lkIHNldEluaXRpYWxLZXlib2FyZFNlbGVjdGlvbihGcmFtZSYgZnJhbWUs
IFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24odmlzaWJsZVBvc2l0aW9uLCBGcmFtZVNlbGVjdGlvbjo6
ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoVXNlclRyaWdnZXJlZCkpOworICAgIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50IGludGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
LCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
LCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVVua25vd24gfSk7CisgICAgc2VsZWN0aW9uLnNl
dFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50KTsKIH0KIAogc3RhdGljIHZvaWQg
aGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChGcmFtZSYgZnJhbWUsIEtleWJvYXJkRXZl
bnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDc3
YzA3ZmUuLmQ4ZDI1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
QEAgLTM0MCw4ICszNDAsMTAgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0lu
RG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWIKICAgICBpZiAoY2Fy
ZXRCcm93c2luZykgewogICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGZpcnN0UG9zaXRpb25J
bk9yQmVmb3JlTm9kZShlbGVtZW50LmdldCgpKTsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24ocG9zaXRpb24sIHBvc2l0aW9uLCBET1dOU1RSRUFNKTsKLSAgICAgICAgaWYg
KGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQot
ICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7
CisgICAgICAgIGlmIChmcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKSkgeworICAgICAgICAgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5VW5rbm93biB9KTsKKyAgICAgICAgICAgIGZyYW1lLnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucyhVc2VyVHJpZ2dlcmVkKSwgaW50ZW50KTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGVs
ZW1lbnQtPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDc2OTc4
ODYuLmQ0NmQ4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNS0wNC0y
NCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmlj
aGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVl
IGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCisgICAgICAg
IHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUKKyAgICAgICAgdGVjaCBhcHBzIG1vcmUgcmVs
aWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBB
bHNvIGltcGxlbWVudAorICAgICAgICBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMg
aW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydAorICAg
ICAgICBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIg
YWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCwKKyAgICAgICAgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1v
cmUKKyAgICAgICAgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGlu
IHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9jayBwb3N0aW5nCisgICAgICAgIHNlbGVj
dGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKHVuZG9OYW1lRm9yRWRpdEFjdGlvbik6
CisKIDIwMTUtMDQtMjQgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODMyNjYuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggZDIx
Y2RmMC4uZTU5MGQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNTQ2LDYgKzU0Niw3IEBAIHN0YXRpYyBOU1N0cmlu
ZyogdW5kb05hbWVGb3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICAvLyBG
SVhNRTogVGhpcyBpcyBpZGVudGljYWwgdG8gY29kZSBpbiBXZWJLaXQyJ3MgV2ViRWRpdENvbW1h
bmRQcm94eSBjbGFzczsgd291bGQgYmUgbmljZSB0byBzaGFyZSB0aGUgc3RyaW5ncyBpbnN0ZWFk
IG9mIGhhdmluZyB0d28gY29waWVzLgogICAgIHN3aXRjaCAoZWRpdEFjdGlvbikgewogICAgICAg
ICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDogcmV0dXJuIG5pbDsKKyAgICAgICAgY2FzZSBF
ZGl0QWN0aW9uSW5zZXJ0OiByZXR1cm4gbmlsOwogICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRD
b2xvcjogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlNldCBDb2xvciIsICJTZXQgQ29s
b3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2Fz
ZSBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRF
Uk5BTCgiU2V0IEJhY2tncm91bmQgQ29sb3IiLCAiU2V0IEJhY2tncm91bmQgQ29sb3IgKFVuZG8g
YWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVHVybk9mZktlcm5pbmc6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJUdXJuIE9m
ZiBLZXJuaW5nIiwgIlR1cm4gT2ZmIEtlcm5pbmcgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8g
YWN0aW9uIG5hbWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxZWM3OGNjLi4zODdhZjEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTUtMDQtMjQgIERvdWcgUnVzc2VsbCAgPGRfcnVzc2VsbEBh
cHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9k
dWNlIEFYVGV4dEVkaXRUeXBlLAorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZl
CisgICAgICAgIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcg
dG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQKKyAgICAgICAgYSBtZWNo
YW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmllbGRzIGluIGNv
YWxlc2NlZCB0aWNrcyB0byB0aHdhcnQKKyAgICAgICAgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9m
IGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0aW9uIGNoYW5n
ZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQsCisgICAg
ICAgIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRv
IGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlCisgICAgICAgIHJlbGlhYmxlIGNvbnRleHQg
Zm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28g
YmxvY2sgcG9zdGluZworICAgICAgICBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNzd29yZCBmaWVs
ZHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKToKKwog
MjAxNS0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MzI2Ni4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcAppbmRleCA1NGNlMDNjLi44Nzg1
NTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJv
eHkuY3BwCkBAIC03NCw2ICs3NCw4IEBAIFN0cmluZyBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1l
Rm9yRWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiAgICAgc3dpdGNoIChlZGl0QWN0
aW9uKSB7CiAgICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ6CiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CisgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKICAgICBjYXNlIEVkaXRBY3Rpb25TZXRDb2xvcjoKICAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkdfS0VZKCJTZXQgQ29sb3IiLCAiU2V0IENvbG9yIChVbmRvIGFjdGlvbiBuYW1lKSIs
ICJVbmRvIGFjdGlvbiBuYW1lIik7CiAgICAgY2FzZSBFZGl0QWN0aW9uU2V0QmFja2dyb3VuZENv
bG9yOgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGJmMWU3NjIuLjMyYWYxOWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNS0wNC0yNCAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUKKyAgICAgICAgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3Ig
cmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudAorICAg
ICAgICBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBm
aWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydAorICAgICAgICBhbmFseXppbmcgdGhl
IGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxl
Y3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwKKyAgICAgICAgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUKKyAgICAgICAgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVj
dGlvbi4gQWxzbyBibG9jayBwb3N0aW5nCisgICAgICAgIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBh
c3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJp
bGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgc3RvcE9ic2VydmluZ10pOgorICAgICAgICAoLVtBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6XSk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0
ZW5lcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW06CisgICAgICAgICgtW0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50TWFjLm1tOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVO
b3RpZmljYXRpb25MaXN0ZW5lcik6CisKIDIwMTUtMDQtMjQgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
ODMyNjYuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oCmluZGV4IDE5Mzg2Y2UuLjkwOGRiZGMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5oCkBAIC00Miw2ICs0Miw3IEBACiAtICh2b2lkKXNldFBsYXRmb3Jt
RWxlbWVudDooaWQpcGxhdGZvcm1FbGVtZW50OwogLSAodm9pZClzZXRDYWxsYmFjazooSlNPYmpl
Y3RSZWYpY2FsbGJhY2s7CiAtICh2b2lkKXN0YXJ0T2JzZXJ2aW5nOworLSAodm9pZClzdG9wT2Jz
ZXJ2aW5nOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQppbmRleCBhZGE2ODdhLi5m
MWM5YWZkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0xMDQsNiArMTA0LDExIEBACiAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxm
IHNlbGVjdG9yOkBzZWxlY3Rvcihfbm90aWZpY2F0aW9uUmVjZWl2ZWQ6KSBuYW1lOkAiQVhEUlRO
b3RpZmljYXRpb24iIG9iamVjdDpuaWxdOwogfQogCistICh2b2lkKXN0b3BPYnNlcnZpbmcKK3sK
KyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVy
OnNlbGZdOworfQorCiAtICh2b2lkKV9ub3RpZmljYXRpb25SZWNlaXZlZDooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb24KIHsKICAgICBOU1N0cmluZyAqbm90aWZpY2F0aW9uTmFtZSA9IFtb
bm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmplY3RGb3JLZXk6QCJub3RpZmljYXRpb25OYW1lIl07
CkBAIC0xMTIsMTYgKzExNywyNyBAQAogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3Bs
YXRmb3JtRWxlbWVudCAhPSBbbm90aWZpY2F0aW9uIG9iamVjdF0pCiAgICAgICAgIHJldHVybjsK
IAorICAgIE5TU3RyaW5nICp1c2VySW5mb0pTT05WYWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5m
b1tAInVzZXJJbmZvIl07CisKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNOb3RpZmlj
YXRpb24oQWRvcHQsIFtub3RpZmljYXRpb25OYW1lIGNyZWF0ZUpTU3RyaW5nUmVmXSk7CiAgICAg
SlNWYWx1ZVJlZiBub3RpZmljYXRpb25OYW1lQXJndW1lbnQgPSBKU1ZhbHVlTWFrZVN0cmluZyhb
bWFpbkZyYW1lIGdsb2JhbENvbnRleHRdLCBqc05vdGlmaWNhdGlvbi5nZXQoKSk7CisgICAgSlNW
YWx1ZVJlZiB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gbmlsOworICAgIGlmIChbdXNlcklu
Zm9KU09OVmFsdWUgbGVuZ3RoXSkgeworICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
anNVc2VySW5mb0pTT05WYWx1ZShBZG9wdCwgW3VzZXJJbmZvSlNPTlZhbHVlIGNyZWF0ZUpTU3Ry
aW5nUmVmXSk7CisgICAgICAgIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBKU1ZhbHVlTWFr
ZUZyb21KU09OU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzVXNlckluZm9KU09O
VmFsdWUuZ2V0KCkpOworICAgIH0KICAgICBpZiAobV9wbGF0Zm9ybUVsZW1lbnQpIHsKLSAgICAg
ICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGp1c3QgZ2V0cyBvbmUgYXJndW1lbnQsIHRo
ZSBub3RpZmljYXRpb24gbmFtZS4KLSAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFp
bkZyYW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAs
IDEsICZub3RpZmljYXRpb25OYW1lQXJndW1lbnQsIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQgYW5kIHRoZSBub3RpZmljYXRp
b24gbmFtZSBhcyBhcmd1bWVudHMuCisgICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVu
dCBnZXRzIHRoZSBub3RpZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFs
dWVSZWYgYXJndW1lbnRzWzJdOworICAgICAgICBhcmd1bWVudHNbMF0gPSBub3RpZmljYXRpb25O
YW1lQXJndW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJn
dW1lbnQ7CisgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxD
b250ZXh0XSwgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMs
IDApOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhl
IGVsZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om1ha2VKU0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQoW21haW5GcmFtZSBnbG9iYWxD
b250ZXh0XSwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbm90aWZpY2F0aW9uIG9iamVjdF0pKTsK
ICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAgICAg
ICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBKU09i
amVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0
aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFj
Lm1tCmluZGV4IDQ2NzNhMWQuLjM5N2M2MzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCkBAIC0xNDQ2LDYgKzE0NDYs
NyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3Rl
bmVyKCkKICAgICAvLyBNYWMgcHJvZ3JhbW1lcnMgc2hvdWxkIG5vdCBiZSB0cnlpbmcgdG8gcmVt
b3ZlIGEgbGlzdGVuZXIgdGhhdCdzIGFscmVhZHkgcmVtb3ZlZC4KICAgICBBU1NFUlQobV9ub3Rp
ZmljYXRpb25IYW5kbGVyKTsKIAorICAgIFttX25vdGlmaWNhdGlvbkhhbmRsZXIgc3RvcE9ic2Vy
dmluZ107CiAgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciByZWxlYXNlXTsKICAgICBtX25vdGlm
aWNhdGlvbkhhbmRsZXIgPSBuaWw7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IDY1MWI1OTEuLjI4Y2EwM2YgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCkBAIC0x
MjUsMTkgKzEyNSwzMCBAQAogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCAmJiBtX3BsYXRmb3Jt
RWxlbWVudCAhPSBbbm90aWZpY2F0aW9uIG9iamVjdF0pCiAgICAgICAgIHJldHVybjsKIAorICAg
IE5TU3RyaW5nICp1c2VySW5mb0pTT05WYWx1ZSA9IG5vdGlmaWNhdGlvbi51c2VySW5mb1tAInVz
ZXJJbmZvIl07CisKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFn
ZUdldE1haW5GcmFtZShXVFI6OkluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBh
Z2UoKSk7CiAgICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNj
cmlwdENvbnRleHQobWFpbkZyYW1lKTsKIAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBq
c05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZd
KTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtl
U3RyaW5nKGNvbnRleHQsIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVlUmVmIHVz
ZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pTT05WYWx1
ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1VzZXJJbmZv
SlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsK
KyAgICAgICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJvbUpTT05T
dHJpbmcoY29udGV4dCwganNVc2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlm
IChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1l
bnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAg
ICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+
KG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDEsICZub3RpZmljYXRpb25OYW1l
QXJndW1lbnQsIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVy
IGdldHMgdGhlIGVsZW1lbnQgYW5kIHRoZSBub3RpZmljYXRpb24gbmFtZSBhcyBhcmd1bWVudHMu
CisgICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBnZXRzIHRoZSBub3RpZmljYXRp
b24gbmFtZSBhbmQgdXNlckluZm8uCiAgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRzWzJdOwor
ICAgICAgICBhcmd1bWVudHNbMF0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAg
IGFyZ3VtZW50c1sxXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CisgICAgICAgIEpTT2Jq
ZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3Rp
ZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKKyAgICB9IGVs
c2UgeworICAgICAgICAvLyBBIGdsb2JhbCBsaXN0ZW5lciBnZXRzIHRoZSBlbGVtZW50LCBub3Rp
ZmljYXRpb24gbmFtZSBhbmQgdXNlckluZm8uCisgICAgICAgIEpTVmFsdWVSZWYgYXJndW1lbnRz
WzNdOwogICAgICAgICBhcmd1bWVudHNbMF0gPSB0b0pTKGNvbnRleHQsIFdURjo6Z2V0UHRyKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFtub3RpZmljYXRpb24gb2JqZWN0XSkp
KTsKICAgICAgICAgYXJndW1lbnRzWzFdID0gbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50OworICAg
ICAgICBhcmd1bWVudHNbMl0gPSB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50OwogICAgICAgICBK
U09iamVjdENhbGxBc0Z1bmN0aW9uKGNvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1f
bm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayksIDAsIDIsIGFyZ3VtZW50cywgMCk7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggZWQw
MmZiNy4uZTI2MDdlMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFj
Lm1tCkBAIC0xNDc2LDYgKzE0NzYsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJl
bW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKICAgICAvLyBNYWMgcHJvZ3JhbW1lcnMgc2hvdWxk
IG5vdCBiZSB0cnlpbmcgdG8gcmVtb3ZlIGEgbGlzdGVuZXIgdGhhdCdzIGFscmVhZHkgcmVtb3Zl
ZC4KICAgICBBU1NFUlQobV9ub3RpZmljYXRpb25IYW5kbGVyKTsKIAorICAgIFttX25vdGlmaWNh
dGlvbkhhbmRsZXIgc3RvcE9ic2VydmluZ107CiAgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBy
ZWxlYXNlXTsKICAgICBtX25vdGlmaWNhdGlvbkhhbmRsZXIgPSBuaWw7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251663</attachid>
            <date>2015-04-25 18:58:04 -0700</date>
            <delta_ts>2015-04-25 20:01:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>222117</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGNjMmMwN2FhOWJhMjNhNzQxNGI1YzBjYjJjODRhYzA4YWYwZjA5MjEKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgRnJpIEFwciAyNCAxNTo1
MDoxNyAyMDE1IC0wNzAwCgogICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NzE5CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCiAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlCiAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5n
IHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CiAgICBhIG1lY2hhbmlz
bSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVz
Y2VkIHRpY2tzIHRvIHRod2FydAogICAgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAogICAgYW5kIGFuIG92ZXJs
b2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUg
dGVjaCBhcHBzIG1vcmUKICAgIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZwogICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyODIxMjk4Li5jNzA3
MmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMDQtMjQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLAorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlCisgICAgICAgIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQKKyAgICAg
ICAgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmll
bGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQKKyAgICAgICAgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsCisgICAgICAgIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlCisgICAgICAgIHJlbGlhYmxl
IGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rp
b24uIEFsc28gYmxvY2sgcG9zdGluZworICAgICAgICBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1
dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTI0ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGZhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctcmVzaXplLWV2ZW50LWNvdW50Lmh0bWwgdGlt
ZXMgb3V0IG9uIFlvc2VtaXRlIFdLMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2
YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWZhNmY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlv
bnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0
IGZpZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBhZGRlZE5vdGlm
aWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4
dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzFdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJ
bnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJd
IGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIgIgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVk
aXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZv
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBs
YWNldmFsdWUtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5kZTBkZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSw4
MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZWRpdGluZy9lZGl0
aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworICAgIDxpbnB1
dCB0eXBlPSJwYXNzd29yZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisKKyAgICA8aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InZhbHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub3RpZmljYXRpb25z
Ij48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNp
bmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisgICAgICAgIHZhciBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVE
ZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0
VHlwZURlbGV0ZSArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIg
Y291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0
SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmlj
YXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZh
bHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAg
IHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIp
IHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIp
OworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0
VHlwZURlbGV0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIs
ICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJ
bmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJB
WFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFBhc3N3b3Jk
IG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhlIHZhbHVlIHN0cmluZyB3
aWxsIGJlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIgXCIiKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVJbnNl
cnQiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxp
c3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBzZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHNldHNlY3VyZXZhbHVlKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjEiOworICAgICAgICB9CisKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZhbHVlID0gIjAiOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0ZXN0IikudmFsdWUgPSAi
MCI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAg
ICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRy
dWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucm9v
dEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgdmFyIGFkZGVkTm90aWZpY2F0
aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3RpZmljYXRpb25DYWxsYmFj
ayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOwor
CisgICAgICAgICAgICBzZXR2YWx1ZSgpOworCisgICAgICAgICAgICBzZXRzZWN1cmV2YWx1ZSgp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rp
b24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hh
bmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBACitvbmUgdHdvIHRocmVl
LiBmb3VyIGZpdmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitUaGlzIHRlc3RzIHNlbGVj
dGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24gaXMgdHJ1ZQorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNo
YXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRz
W3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBh
cmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0g
aXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhd
WyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVz
dWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25E
aXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNl
CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBp
cyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1
bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0
ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMg
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uRW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2Vs
ZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZv
Lmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50
ZWRpdGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2ZSBzaXguPC9wPgorPHA+
c2V2ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlmaWNhdGlvbnMiPjwvZGl2
PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgc2VsZWN0aW9uIGNo
YW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgdmFyIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
ICsgMTsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25CZWdpbm5pbmcgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2
aW91cyA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7CisgICAgdmFyIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyAr
IDE7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIgPSAxOwor
ICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eUNoYXJhY3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCArIDE7CisgICAgdmFyIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eUxpbmUgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFw
aCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAxOworICAgIHZhciBBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlQYXJhZ3JhcGggKyAyOworCisgICAgdmFyIGdyYW4gPSBbImNoYXJhY3RlciIsICJ3b3JkIiwg
InNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3VuZGFyeSIsICJzZW50ZW5j
ZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50Ym91bmRhcnkiXTsKKyAg
ICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICB2YXIgcmVzdWx0cyA9
IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rpb24gbm90aWZpY2F0aW9u
Q2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAgICBpZiAobm90aWZpY2F0
aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAgICAgICBjb3VudCsrOwor
ICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1
c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5sZW5ndGggKiA0KSB7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
TW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgr
KzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92
ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25O
ZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAg
ICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0i
LCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsr
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlM
aW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0i
LCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmciKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0
aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
RW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisK
KyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5k
ZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9u
RXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhd
W1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3Jk
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQi
KTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0i
LCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJl
c3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2Ui
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7
CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIs
ICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaCIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwg
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25c
Il0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICB3
ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAg
ICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0
SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9IHdlYkFyZWEuYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOworICAgICAgICBzaG91bGRC
ZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAgIHRleHRib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0ZXh0Ym94LmZvY3VzKCk7
CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4KKyAgICAgICAgdmFyIHMg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwg
MCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAgICAgICAgcy5tb2RpZnko
Im1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAgcy5tb2RpZnkoIm1vdmUi
LCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpIGlu
IGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJveCwgMCk7CisgICAgICAg
ICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQor
ICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5m
by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92
YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjM5M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjkgQEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJ
bmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJB
WFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVD
dXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRD
aGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hh
bmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVQYXN0ZQor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMgIjIzNDU2Nzg5MCIKK1BB
U1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRF
ZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRl
eHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVUeXBp
bmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlz
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRU
eXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5nZS11c2VyaW5mby5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQzNDEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFu
Z2UtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlk
PSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5MDwvZGl2PgorCisgICAg
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorCisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zIHVz
ZXIgaW5mbyBkYXRhLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0
ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2
YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisgICAg
ICAgIHZhciBBWFRleHRFZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRUeXBlSW5zZXJ0ICsgMTsK
KyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhUZXh0RWRpdFR5cGVUeXBp
bmcgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBBWFRleHRFZGl0VHlwZURp
Y3RhdGlvbiArIDEKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFzdGUgPSBBWFRleHRFZGl0
VHlwZUN1dCArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOworICAgICAgICB2YXIgY291
bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAgICB2YXIgcmVzdWx0SW5k
ZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxsYmFjayhub3RpZmljYXRp
b24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZhbHVl
Q2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIHJl
c3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDYpIHsK
KworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJB
WFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwiXSIsICJcIjBcIiIpOwor
ICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRl
eHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlw
ZUN1dCIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVl
c1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlRGVsZXRlIik7CisK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wi
QVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5n
ZVZhbHVlXCJdIiwgIlwiMjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxk
QmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhU
ZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOworCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZh
bHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBl
XCJdIiwgIkFYVGV4dEVkaXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhU
ZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7
CisgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxp
dHkodHJ1ZSk7CisKKyAgICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAgICB2YXIgYWRkZWROb3Rp
ZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG5vdGlmaWNhdGlvbkNh
bGxiYWNrKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlmaWNhdGlvbiIsICJ0cnVl
Iik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRleHRib3giKTsKKyAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsKKworICAgICAgICAgICAg
ZXhlY1NldFNlbGVjdGlvbkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAgICAgICAgICBleGVjRXh0
ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAgICAgICAgICAgIGN1dENv
bW1hbmQoKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25SaWdodEJ5Q2hhcmFjdGVy
Q29tbWFuZCgpOworICAgICAgICAgICAgcGFzdGVDb21tYW5kKCk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCIxIik7CisgICAgICAgICAgICBkZWxldGVDb21tYW5kKCk7CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggYzhlMjA1YS4uZTdjOTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE1MTMsNiArMTUxMyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1JlbW92
ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJl
bkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAorICAgIGVkaXRp
bmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisgICAgZWRpdGluZy9SZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1JlcGxhY2VOb2Rl
V2l0aFNwYW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA1YTU4NWYwLi45MDg1ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQwIEBACisyMDE1LTA0
LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBy
aWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFs
dWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVu
dE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSBy
ZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQu
IEFsc28gaW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdl
cyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0Cisg
ICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hl
ciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNl
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMg
bW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgIFRlc3RzOiBwbGF0
Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5n
ZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpBWE9iamVj
dENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRU
ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzUGFzc3dvcmRGaWVsZE9y
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRDaGlsZHJlbkNoYW5n
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZnJhbWVMb2Fk
aW5nRXZlbnROb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4
dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5v
ZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6Y29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6OkFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpwYXNz
d29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQpOiBEZWxl
dGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxl
Y3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNo
ZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpBWFBvc3ROb3RpZmlj
YXRpb25XaXRoVXNlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6XSk6Cisg
ICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSBhY2Nlc3NpYmlsaXR5
UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1vdmluZ05vbkpTT05UeXBl
cyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXMpOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAodGV4dE1h
cmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczplbmRQ
b3NpdGlvbjpdKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAgICAgICAgKiBlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFu
ZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlCbG9ja1N0eWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmg6CisgICAgICAgICog
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQmVmb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRUZXh0
SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0
ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1h
bmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21tYW5kQ29tcG9z
aXRpb246OmdldE5vZGVzSW5Db21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWspOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydE5vZGVBdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ2hpbGRy
ZW5JblJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnB1dFRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
ZGVsZXRlZFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxl
Y3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OnByZXNlcnZlc1R5cGluZ1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0
TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZDo6aW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRBY3Rpb24uaDoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRDb21t
YW5kOjpFZGl0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6YXBwbHlFZGl0VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0Q29tbWFuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6OnNldFBhcmVudCk6IERl
bGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRp
bmcvRWRpdGluZ0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmhhbmRsZVRleHRFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwZXJmb3JtQ3V0
T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVy
VHlwaW5nVG9Xb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2hhbmdlQmFja1RvUmVw
bGFjZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0cmFuc3Bvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQpOgorICAg
ICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRGcmFnbWVudCk6CisgICAgICAg
ICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjptb3Zl
V2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojp0ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9u
Ojptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdEFsbCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5p
bmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW9k
aWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxl
Y3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb25BdFdvcmRTdGFy
dCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rp
b25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdGlvbik6
IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Omlu
c2VydGVkVGV4dCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6
OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5o
OgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6Okluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRDb21tYW5kOjpJbnNlcnRU
ZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKToKKyAgICAg
ICAgKiBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3ZlTm9kZVByZXNlcnZpbmdD
aGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9SZXBsYWNlRGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6bm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZURl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcv
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oLgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVz
OjpkaWRSZXBsYWNlTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZDo6aW5zZXJ0QXNMaXN0SXRlbXMpOiBEZWxldGVkLgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0UnVu
V2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6Omluc2Vy
dFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rp
b25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvaW9zL0RpY3Rh
dGlvbkNvbW1hbmRJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29tbWFuZElP
Uzo6RGljdGF0aW9uQ29tbWFuZElPUyk6CisgICAgICAgICogZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5oOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1lU2VsZWN0aW9uTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKToKKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRJbml0
aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKToKKwogMjAxNS0wNC0yNCAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2UgcmFuZ2VFeHBhbmRlZEFyb3VuZFBvc2l0aW9uQnlDaGFyYWN0
ZXJzIHRvIGFsbCBwbGF0Zm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagppbmRleCAzNjlmNTJiLi45NmQ4OTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTE0Nzc3LDYgKzE0Nzc3
LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGlu
Z1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNh
aXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZm
aXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3Vm
Zml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2lu
Q2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
KyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRp
dGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCci
PnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1NDUsNiArMTk1NzMsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3NpYmlsaXR5VGFibGVIZWFk
ZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxp
dHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEFkanVz
dFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA4Nyw2ICsyMTExNiw4IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21tYW5kLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRy
ZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbmRl
cmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVw
bGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcU2V0
Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBhMDMxODA4Li5mZTlm
YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNTI1LDYgKzM1MjUsMTIgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAiPgogICAgICAgPEZpbHRl
cj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCI+Cisg
ICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFu
Q29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC03NjY4LDYgKzc2NzQsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
YWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmls
aXR5PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiPgorICAgICAgICA8Rmls
dGVyPmFjY2Vzc2liaWxpdHk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyV2luLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5XHdpbjwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpAQCAtMTA2NzcsNiArMTA2ODYsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+ZWRp
dGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIj4KKyAgICAgIDxG
aWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIj4K
KyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5o
Ij4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhjYzdiNTQuLjliNTEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNTAsNiArMzI1MCw3IEBACiAJCTkwMDE3NzQxMTJF
MDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIg
LyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MDEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBK
U09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkxQzlGMkY5MUFFM0JFQjAwMDk1QjYx
QyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVCNjFDIC8qIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlG
ODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMDVCMjREMDk4
RjFCNkIwMEMyODg1NSAvKiBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYzOTUsNiArNjM5
NiwxMCBAQAogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1wdHlDbGllbnRzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MkFENUUzMTUz
NDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9OwogCQlGNTQ0Rjc4ODE1Q0ZC
MkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAwQUYzM0E4IC8qIFBsYXRm
b3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLzsgfTsKKwkJ
RjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUy
OERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQu
aCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURGMDAwRUY3QUQgLyogUmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9OworCQlGNTUyOERBQTFBQzEw
OURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE4MUFDMTA5REYw
MDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovOyB9OwogCQlG
NTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEyRDAw
M0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRv
bklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAqLzsg
fTsKQEAgLTEwNTAwLDYgKzEwNTA1LDcgQEAKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8q
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RTEyRTAzNzA3MDA2
NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkx
QzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3Jv
dXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUdyb3VwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNDAsNiArMTQwNDYsMTAgQEAKIAkJRjUyQUQ1RTMxNTM0
MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1Mb2NhbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxh
dGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1M
b2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1MjhEQTMxQUMxMDMzRTAw
MEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAv
KiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFDMTA5REYwMDBFRjdBRCAv
KiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFz
ZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3
QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCdXR0b25JbnB1dFR5cGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjEsNiArMTU2NzEsNyBAQAog
CQkJCTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCAq
LywKIAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmplY3RDYWNoZS5jcHAgKi8s
CiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGUuaCAqLywKKwkJ
CQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xNzc5NCw2ICsxNzgwNSwxMCBAQAogCQkJCTkzMzA5REI4MDk5RTY0OTEwMDU2
RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oICovLAogCQkJCTlC
MzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmNwcCAqLywKIAkJCQk5
QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovLAorCQkJCUY1
NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMxMDlERjAwMEVGN0FEIC8q
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywKKwkJCQlGNTUyOERBODFB
QzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCAqLywK
IAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1h
bmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzcyOCw2ICsyMzc0Myw3IEBACiAJCQkJ
NkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFuaW1hdGlvblV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAwRTM4Q0REIC8qIFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REE1
MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgxIC8qIEFwcGVuZE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1Q0RDMDAxREI3OTQgLyog
QXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQkYwREI1NUNEQzAw
MURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTY1
Myw2ICsyNTY2OSw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNl
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDRTUzRjcw
QThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2NzA2LDYgKzI2NzIzLDcgQEAKIAkJCQk3QzRDOTZERDFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODND
MUQ0MjgxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QTY5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljU21vb3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MUM5RjJGOTFBRTNCRUIwMDA5
NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
QzFENDI5MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQyQTE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNkQw
RDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4NDY0LDYgKzI4NDgyLDcgQEAKIAkJCQk1MTAxOTJEMTE4QjZCOUFCMDA3RkM3
QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9jdW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREMxMTI1MUYx
MkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODk1
ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0yOTkxMSw2ICsyOTkzMCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkU2
RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUFFNjA4MjQ1RTU5
MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAKaW5kZXggYTAwYjE1Yy4uNDNkNTg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05MCw2ICs5
MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAorLy8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgcGFzc3dvcmQgZmllbGRz
IG9yIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMgYXQgYSA0MGh6IGludGVy
dmFsIHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQorc3RhdGljIGRvdWJsZSBB
Y2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbkludGVydmFsID0gMC4w
MjU7CisKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhDb21wdXRlZE9iamVjdEF0dHJp
YnV0ZUNhY2hlOjpnZXRJZ25vcmVkKEFYSUQgaWQpIGNvbnN0CiB7CiAgICAgSGFzaE1hcDxBWElE
LCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1faWRNYXBw
aW5nLmZpbmQoaWQpOwpAQCAtMTI5LDYgKzEzMiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0
RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiBBWE9iamVjdENh
Y2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0
Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwgbV9wYXNzd29yZE5vdGlm
aWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTcwNSw3ICs3MDksNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBSZWY8RG9jdW1lbnQ+
IHByb3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7CiAgICAgbV9ub3RpZmljYXRpb25Q
b3N0VGltZXIuc3RvcCgpOwogICAgIAotICAgIC8vIEluIERSVCwgcG9zdGluZyBub3RpZmljYXRp
b25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNh
dGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyBJbiB0
ZXN0cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5
IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0
ZWQgYmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVk
IGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgogICAgIGF1
dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlvbnNUb1Bvc3QpOwogICAg
IApAQCAtNzQyLDYgKzc0NiwyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdlZChvYmotPnBhcmVudE9i
amVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgbV9wYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAvLyBJbiB0ZXN0cywgcG9z
dGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVw
IG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZp
b3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBl
bmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0LgorICAgIGF1dG8gbm90aWZp
Y2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCk7CisKKyAg
ICBmb3IgKGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCisgICAgICAgIHBvc3RU
ZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCksIEFY
VGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyNlbmRpZgorfQog
ICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCog
cmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFy
Z2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY4LDIxOCBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6
bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0Q2hhbmdlIHRleHRD
aGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQorI2lmbmRlZiBOREVC
VUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRhdGFMb2coIlVua25vd24i
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Ogor
ICAgICAgICBkYXRhTG9nKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBkYXRhTG9nKCJNb3ZlOjoi
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rp
b25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2coIkV4dGVuZDo6Iik7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5nZSkgeworICAgICAgICBj
YXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIGRhdGFMb2coIlVua25vd24i
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGVsZXRl
OgorICAgICAgICAgICAgZGF0YUxvZygiRGVsZXRlIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAgICAgIGRhdGFMb2coIklu
c2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVE
aWN0YXRpb246CisgICAgICAgICAgICBkYXRhTG9nKCJEaWN0YXRpb25JbnNlcnQiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAgICAg
ICAgICAgZGF0YUxvZygiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRhdGFMb2coIkN1dCIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAg
ICAgICAgICAgIGRhdGFMb2coIlBhc3RlIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6Cisg
ICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAgICAgICAgZGF0YUxvZygi
VW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRhTG9nKCJCZWdpbm5pbmc6
OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uRW5kOgorICAgICAgICAgICAgZGF0YUxvZygiRW5kOjoiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAg
ICAgICAgICAgZGF0YUxvZygiUHJldmlvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAgICAgICAgICAgIGRhdGFM
b2coIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAgIGRhdGFMb2coIkRpc2Nv
bnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dp
dGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVu
ZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91czoKKyAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgc3dpdGNo
IChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJV
bmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAgICAgICAgIGRhdGFMb2co
IkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAgICAgICAgZGF0YUxvZygi
V29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiTGluZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlNlbnRlbmNl
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIlBhcmFn
cmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAgZGF0YUxvZygiUGFnZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkRvY3VtZW50
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIGRhdGFMb2coIkFsbCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAo
aW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAgZGF0YUxvZygiLVN5bmMiKTsKKyAgICBk
YXRhTG9nKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2V0VGV4dFNl
bGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQpCit7CisgICAgbV90
ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCitzdGF0aWMgYm9vbCBpc1Bhc3N3b3Jk
RmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmpl
Y3QpCit7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSB8
fCBvYmplY3QtPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworfQorCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKIAotICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9ybQotICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAgIG5vZGVUZXh0Q2hhbmdl
UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZzZXQsIHRleHQpOworICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworICAgIGlm
IChvYmplY3QpIHsKKyAgICAgICAgaWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNz
d29yZEZpZWxkKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9
IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIChpbnRlbnQudHlwZSA9PSBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVVbmtub3duKSA/IG1fdGV4dFNlbGVjdGlvbkludGVudCA6IGludGVudCwg
c2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigp
LCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQ
YXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVOVVNFRF9QQVJBTShzZWxl
Y3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50ZW50KEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlm
ICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBlICE9IEFYVGV4dEVkaXRU
eXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygp
OworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0T3JDcmVhdGUobm9kZSk7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBpZiAoZW5x
dWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0KSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7Cisg
ICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVj
dCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZvckVkaXRUeXBlKHR5cGUpLCBwb3Np
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIHRleHQpOwor
I2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0
cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQorewor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChkZWxldGlvblR5cGUg
PT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNlcnRpb25UeXBlID09IEFY
VGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVUeXBp
bmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbiB8fCBpbnNlcnRp
b25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3RvcENhY2hpbmdDb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9
IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChvYmplY3Qp
IHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKG9i
amVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVjdCA9IG9iamVjdC0+b2Jz
ZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihvYmplY3QsIGRlbGV0aW9uVHlwZSwgZGVsZXRlZFRleHQsIGluc2VydGlv
blR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2RlVGV4dENoYW5n
ZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZvckVkaXRUeXBlKGRlbGV0
aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9uVHlwZSksIHBvc2l0aW9u
LmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSwgaW5zZXJ0ZWRUZXh0
KTsKKyNlbmRpZgorfQorCitib29sIEFYT2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVl
Q2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKK3sKKyAgICBp
ZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9ic2VydmFi
bGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAgICBpZiAoIW9ic2VydmFi
bGVPYmplY3QpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIC8vIHJl
dHVybiB0cnVlIGV2ZW4gdGhvdWdoIHRoZSBlbnF1ZXVlIGRpZG4ndCBoYXBwZW4gYmVjYXVzZSB0
aGlzIGlzIGEgcGFzc3dvcmQgZmllbGQgYW5kIGNhbGxlciBzaG91bGRuJ3QgcG9zdCBhIG5vdGlm
aWNhdGlvbgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtX3Bhc3N3b3JkTm90
aWZpY2F0aW9uc1RvUG9zdC5hZGQob2JzZXJ2YWJsZU9iamVjdCk7CisgICAgaWYgKCFtX3Bhc3N3
b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fcGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KEFjY2Vzc2liaWxpdHlQYXNzd29yZFZh
bHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24oRnJhbWUq
IGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0xMDg0LDYgKzEzMDQsMTQg
QEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6cm9vdFdlYkFyZWEoKQor
eworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmplY3QgPSB0aGlzLT5yb290T2JqZWN0
KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2JqZWN0LT5pc0FjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkb3duY2Fz
dDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndlYkFyZWFPYmplY3QoKTsK
K30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRlQ2FjaGVFbmFibGVyKEFY
T2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkKIHsKQEAgLTEwOTYsNiAr
MTMyNCwyNiBAQCBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6fkFYQXR0cmlidXRlQ2FjaGVFbmFi
bGVyKCkKICAgICBpZiAobV9jYWNoZSkKICAgICAgICAgbV9jYWNoZS0+c3RvcENhY2hpbmdDb21w
dXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIH0KKworI2lmICFQTEFURk9STShDT0NPQSkKK0FYVGV4
dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoQVhUZXh0RWRpdFR5
cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
Q3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgICAgIHJldHVybiBBWFRl
eHREZWxldGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVHlwaW5nOgorICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEluc2VydGVk
OworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICB9
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFYVGV4dEluc2VydGVkOwor
fQorI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggYmZhOTI3Ny4uYTdhZmRkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA3LCAyMDA4LCAy
MDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI2LDEyICsyNiwxNCBAQAogI2lmbmRlZiBBWE9iamVjdENhY2hlX2gKICNkZWZp
bmUgQVhPYmplY3RDYWNoZV9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5o
IgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9M
aXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNjcsNiArNjksMTAgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPEFYSUQsIENhY2hl
ZEFYT2JqZWN0QXR0cmlidXRlcz4gbV9pZE1hcHBpbmc7CiB9OwogCisjaWYgIVBMQVRGT1JNKENP
Q09BKQorZW51bSBBWFRleHRDaGFuZ2UgeyBBWFRleHRJbnNlcnRlZCwgQVhUZXh0RGVsZXRlZCB9
OworI2VuZGlmCisKIGVudW0gUG9zdFRhcmdldCB7IFRhcmdldEVsZW1lbnQsIFRhcmdldE9ic2Vy
dmFibGVQYXJlbnQgfTsKIAogZW51bSBQb3N0VHlwZSB7IFBvc3RTeW5jaHJvbm91c2x5LCBQb3N0
QXN5bmNocm9ub3VzbHkgfTsKQEAgLTE4OSwxMiArMTk1LDE1IEBAIHB1YmxpYzoKICAgICB2b2lk
IHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0ID0gVGFy
Z2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkpOwogICAgIHZvaWQgcG9z
dE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1lbnQqLCBBWE5vdGlmaWNh
dGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBlID0gUG9zdEFzeW5jaHJv
bm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAgICAgQVhUZXh0SW5zZXJ0
ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAgfTsKKyNpZm5kZWYgTkRFQlVHCisgICAg
dm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CisjZW5kaWYK
KworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRD
aGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBwb3N0VGV4
dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0
IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0
IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKyAgICB2b2lk
IHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgZW51bSBBWExv
YWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBAIC0yMTMsMTIgKzIyMiwy
NCBAQCBwdWJsaWM6CiAgICAgQVhDb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKiBjb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkgeyByZXR1cm4gbV9jb21wdXRlZE9iamVjdEF0dHJpYnV0
ZUNhY2hlLmdldCgpOyB9CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2RvY3VtZW50OyB9Ci0gICAgCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZv
aWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJvb2wgdmFsdWUpOworI2Vu
ZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZvaWQgcGxhdGZvcm1IYW5k
bGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3
Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIGNvbnN0
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAg
IHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Cisj
ZWxzZQorICAgIHN0YXRpYyBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4
dEVkaXRUeXBlKTsKKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmlu
ZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KTsKICAgICB2b2lkIHRl
eHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lkIGxhYmVsQ2hhbmdlZChF
bGVtZW50Kik7CkBAIC0yMjksNiArMjUwLDIxIEBAIHByb3RlY3RlZDoKICAgICBib29sIGlzTm9k
ZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9
CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9vdFdlYkFyZWEoKTsKKwor
ICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQo
SFRNTEFyZWFFbGVtZW50Kik7CisKKyAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVj
dCopOworCisgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpOworCisgICAgYm9v
bCBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Kik7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7CisK
KyAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlTGl2ZVJl
Z2lvbkNyZWF0ZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2Rl
Kik7CisKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNoTWFwPEFYSUQsIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhhc2hNYXA8UmVuZGVyT2Jq
ZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjM4LDE5ICsyNzQsMTcgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVhDb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNh
Y2hlPiBtX2NvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGU7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGJvb2wgZ0FjY2Vzc2liaWxpdHlFbmFibGVkOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBib29sIGdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKLSAg
ICAKKwogICAgIEhhc2hTZXQ8QVhJRD4gbV9pZHNJblVzZTsKLSAgICAKKwogICAgIFRpbWVyIG1f
bm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vz
c2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uc1RvUG9zdDsK
LSAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7Ci0gICAgdm9pZCBoYW5kbGVN
ZW51T3BlbmVkKE5vZGUqKTsKLSAgICB2b2lkIGhhbmRsZUxpdmVSZWdpb25DcmVhdGVkKE5vZGUq
KTsKLSAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSopOwotICAgIAotICAgIHN0
YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBVSUVsZW1lbnQoSFRNTEFy
ZWFFbGVtZW50Kik7Ci0gICAgCi0gICAgQVhJRCBnZXRBWElEKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXI7CisKKyAgICBM
aXN0SGFzaFNldDxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1fcGFzc3dvcmROb3RpZmlj
YXRpb25zVG9Qb3N0OworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgbV90ZXh0U2VsZWN0
aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXIKQEAgLTMwOCw4
ICszNDIsOSBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxiYXJVcGRh
dGUoU2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVudCopIHsgfQogaW5saW5l
IHZvaWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJlbmRlck9iamVjdCopIHsg
fQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0FuY2hvcihjb25z
dCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZU5v
dGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikg
eyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBj
b25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsgfQoraW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiwgQVhU
ZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERvY3VtZW50KiwgQVhOb3Rp
ZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhOb3RpZmljYXRpb24sIFBv
c3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0LCBQb3N0VHlwZSkg
eyB9CkBAIC0zMjAsNiArMzU1LDE0IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92
ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lkZ2V0Kikg
eyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChS
ZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hp
bGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NPQSkKK2lubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7
IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0
IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSB7IH0KKyNlbHNlCitpbmxpbmUgQVhUZXh0Q2hhbmdlIEFYT2JqZWN0Q2FjaGU6OnRl
eHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSkgeyByZXR1cm4gQVhUZXh0SW5zZXJ0
ZWQ7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWduZWQs
IGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5nZUludGVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzI2NGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgK
QEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gKKyNkZWZpbmUgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitlbnVtIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93biwK
KyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
Cit9OworCitlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICBBWFRleHRFZGl0VHlwZVVua25vd24s
CisgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4dCBkZWxldGUKKyAgICBB
WFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2VydAorICAgIEFYVGV4dEVk
aXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgIEFYVGV4dEVkaXRUeXBlRGlj
dGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgIEFYVGV4dEVkaXRUeXBlQ3V0LCAv
LyBEZWxldGUgdmlhIEN1dAorICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUgLy8gSW5zZXJ0IHZpYSBQ
YXN0ZQorfTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24geworICAgIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVn
aW5uaW5nLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwKKyAgICBBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0
LAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMKK307CisKK2VudW0g
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5VW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKKyAg
ICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlMaW5lLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UsCisg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisgICAgQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1l
bnQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8gQWxsIGdyYW51bGFyaXR5
IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdob2xlIGRvY3VtZW50IGFz
IGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBzb21lIG90aGVyIGdyYW51
bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1bWVudCB3aWxsIG5vdCBy
ZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgorfTsKKworc3RydWN0IEFY
VGV4dFNlbGVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbjsK
KyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0eTsKK307CisKK3N0cnVj
dCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIHR5
cGU7CisgICAgdW5pb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uOworICAg
ICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgfTsKKyAgICBib29sIGlzU3luY2hyb25p
emluZyB7IGZhbHNlIH07CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0
ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd24sIEFYVGV4dFNl
bGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSkKKyAgICAgICAgOiB0eXBlKHR5
cGUpCisgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICB7IH0KKworICAgIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkKKyAgICAgICAgOiB0eXBl
KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICwgY2hhbmdlKGNoYW5nZSkKKyAg
ICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZSB0eXBlLCBib29sIGlzU3luY2hyb25pemluZykKKyAgICAgICAgOiB0eXBlKHR5cGUpCisgICAg
ICAgICwgc2VsZWN0aW9uKCkKKyAgICAgICAgLCBpc1N5bmNocm9uaXppbmcoaXNTeW5jaHJvbml6
aW5nKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4
dGVuZCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi40MzhlODUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpp
c1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmlzUGFzc3dv
cmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKQoreworICAgIE5v
ZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2Rl
LT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVsZW1lbnQtPmlzUGFzc3dv
cmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgRWxlbWVu
dCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWlz
PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2FjaGUoKSkKKyAgICAgICAg
cmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKworICAgIHJldHVybiBudWxscHRy
OworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25z
dAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggM2U3
NTcyZi4uYTgyYmQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5pbmdQYXNzd29yZEZpZWxk
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
aW5kZXggNWEyN2VhOC4uY2IzMzgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2LDQgKzI2NDYsMTcgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3Bh
dGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0Nv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9kZSogbm9kZSA9IHRoaXMt
Pm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAg
ICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAg
ICByZXR1cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElu
cHV0RWxlbWVudD4oKmVsZW1lbnQpLmlzUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjgxNmMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NjMsNiAr
NDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVs
ZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFzc3dvcmRGaWVs
ZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmly
dHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IFdlYkFy
ZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBlOWQyYTUyLi41MGZkYWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0OTEsMTQgKzE0OTEsMTcgQEAgUGxhaW5UZXh0UmFuZ2Ug
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAogdm9p
ZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZShjb25zdCBQ
bGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZlVGV4dENvbnRyb2woKSkg
eworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisg
ICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5n
ZUludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRl
bmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAg
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9IGRvd25jYXN0PFJlbmRl
clRleHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9sRWxlbWVudCgpOwogICAg
ICAgICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5zdGFydCwgcmFuZ2Uuc3Rh
cnQgKyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgTm9kZSog
bm9kZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVj
dGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdl
LnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9yKSwKLSAgICAgICAgUG9z
aXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBvc2l0aW9uOjpQb3NpdGlv
bklzT2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgVmlzaWJsZVNlbGVjdGlvbiBu
ZXdTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBvc2l0aW9uOjpQb3NpdGlv
bklzT2Zmc2V0SW5BbmNob3IpLCBQb3NpdGlvbihub2RlLCByYW5nZS5zdGFydCArIHJhbmdlLmxl
bmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciksIERPV05TVFJFQU0pOwor
ICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG5ld0ludGVudChyYW5nZS5sZW5ndGggPyBBWFRl
eHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlLCB0cnVlKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZhdWx0U2V0U2Vs
ZWN0aW9uT3B0aW9ucygpLCBuZXdJbnRlbnQpOwogfQogCiBVUkwgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjMsMTMgKzE5NjYsMTYgQEAgdm9pZCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0
IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxsKCkgfHwgcmFuZ2UuZW5k
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAvLyBtYWtlIHNlbGVjdGlv
biBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdzIHplcm8gbGVuZ3RoLCB0
aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5zdGFydCA9PSByYW5nZS5l
bmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgeworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+
c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudChBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAgIG1fcmVuZGVyZXItPmZy
YW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2VyVHJpZ2dlcmVkKTsKKyAg
ICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0g
VmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsKLSAgICAgICAgbV9yZW5k
ZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAg
ICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
LCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYyYzc1My4uMGM0NjRiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2li
aWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOwogCisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0OworCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKQEAg
LTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7CiAgICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYWRkQ2hp
bGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVDaGlsZFNjcm9sbGJhcihB
Y2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDU4NTJhMGYuLmFlMjU2MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2Fj
aGVBdGsuY3BwCkBAIC0yNjgsMTAgKzI2OCwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVU
ZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZQog
ICAgIC8vIFNlbGVjdCB0aGUgcmlnaHQgc2lnbmFsIHRvIGJlIGVtaXR0ZWQKICAgICBDU3RyaW5n
IGRldGFpbDsKICAgICBzd2l0Y2ggKHRleHRDaGFuZ2UpIHsKLSAgICBjYXNlIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dEluc2VydGVkOgorICAgIGNhc2UgQVhUZXh0SW5zZXJ0ZWQ6CiAgICAgICAgIGRl
dGFpbCA9ICJ0ZXh0LWluc2VydCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVhPYmplY3RD
YWNoZTo6QVhUZXh0RGVsZXRlZDoKKyAgICBjYXNlIEFYVGV4dERlbGV0ZWQ6CiAgICAgICAgIGRl
dGFpbCA9ICJ0ZXh0LXJlbW92ZSI7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCmluZGV4
IDExOWUwYjAwLi5jY2M5ZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDggKzk1LDE5IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlQb3N0ZWRO
b3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hl
Ojpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYsIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3Qs
IEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhWYWx1ZUNoYW5n
ZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBB
WFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZl
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheEZyYW1lT2JqZWN0
LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBiMzAwZTc3Li5mMTg3
OTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2Jq
ZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVnaW9uQ3JlYXRlZCIKICNl
bmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXkKKyNk
ZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleSBAIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZVN5
bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3luY0tleSBAIkFYVGV4dFN0
YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25E
aXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiBA
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQorI2RlZmluZSBOU0FjY2Vz
c2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5
VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRpZgorCisjaWZuZGVmIE5T
QWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmluZSBOU0FjY2Vzc2liaWxp
dHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1ZUxlbmd0aCIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyCisj
ZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0TWFya2VyIEAiQVhUZXh0
Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVt
ZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVmaW5lIE5TQWNjZXNzaWJp
bGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhTZWxlY3RlZFRleHRNYXJr
ZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0cmluZ3MgY2FuIG5lZ2F0aXZlbHkg
aW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zLCBzbyB0aGlzIGxlbmd0aCBp
cyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBhcmFncmFwaCBvciBsaW5lIG9mIHRl
eHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJnZSBlbm91Z2ggdG8gaHVydCBwZXJm
b3JtYW5jZS4KK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIEFYVmFsdWVDaGFuZ2VUcnVuY2F0aW9u
TGVuZ3RoID0gMTAwMDsKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxscyBpbiB0aGlzIGZpbGUg
ZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsNiAr
MTA3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRXcmFwcGVyKHdyYXBwZXIuZ2V0KCkpOwogfQogCitz
dGF0aWMgQk9PTCBheFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyA9IGZhbHNlOwor
Cit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0
cyhib29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3Rz
ID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5m
byhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24sIGlkIHVzZXJJbmZvKQoreworICAg
IE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ob2JqZWN0LCBub3Rp
ZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1wbGlmeSBtb25pdG9yaW5nIGZvciBu
b3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBzaW1wbGUgTlNOb3RpZmljYXRpb24g
aW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVyZSB0byBzZXR1cCBhbiBJUEMgY2xp
ZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdlZW4gV2ViQ29yZSB0eXBlcyBhbmQg
cGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNrCisgICAgaWYgKFVOTElLRUxZKGF4
U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkKKyAgICAgICAgW29iamVjdCBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbiB1c2VySW5mbzp1c2VySW5m
b107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQogewog
ICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMTEsMTE0IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3Rp
ZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgIAotICAgIE5T
QWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNh
dGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3aGVuIG5vdGlmaWNhdGlv
bnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNzaWJpbGl0eVBvc3RlZE5v
dGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0
aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24sIG5pbCk7Cit9CisKK3Zv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQoreworICAgIGlm
ICghb2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOworCisgICAgaWYgKCFv
YmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJ
bmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjVdOwor
ICAgIGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICBbdXNlckluZm8gc2V0T2Jq
ZWN0OltOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdIGZvcktleTpOU0FjY2Vzc2liaWxpdHlU
ZXh0U3RhdGVTeW5jS2V5XTsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0gQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlVW5rbm93bikgeworICAgICAgICBbdXNlckluZm8gc2V0T2JqZWN0OltOU051bWJlciBu
dW1iZXJXaXRoSW50OmludGVudC50eXBlXSBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRl
Q2hhbmdlVHlwZUtleV07CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5cGUpIHsKKyAgICAgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBjYXNlIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAgICAgICAgIFt1c2VySW5m
byBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aW50ZW50LnNlbGVjdGlvbi5kaXJl
Y3Rpb25dIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXTsKKyAg
ICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24pIHsKKyAgICAgICAg
ICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5u
aW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ6CisgICAg
ICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzOgorICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAgICAgICAgICAgICAgIFt1
c2VySW5mbyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aW50ZW50LnNlbGVjdGlv
bi5ncmFudWxhcml0eV0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxh
cml0eV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVk
aXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIXNlbGVj
dGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtlclJhbmdlID0gW29iamVj
dC0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOnNlbGVjdGlv
bi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlzaWJsZUVuZCgpXSkKKyAg
ICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6dGV4dE1hcmtlclJhbmdlIGZvcktleTpOU0Fj
Y2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0ZV07CisgICAgfQorCisg
ICAgaWYgKGlkIHdyYXBwZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAgICAgICAgW3VzZXJJbmZv
IHNldE9iamVjdDp3cmFwcGVyIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVu
dF07CisKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8ocm9vdFdlYkFyZWEoKS0+
d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9u
LCB1c2VySW5mbyk7CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+
d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFuZ2VkTm90aWZpY2F0aW9u
LCB1c2VySW5mbyk7CisKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CiB9CiAKLXZvaWQgQVhPYmpl
Y3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikKK3N0YXRpYyBO
U0RpY3Rpb25hcnkgKnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkoQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmlu
ZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKKyAgICBOU1N0cmluZyAqdGV4
dCA9IChOU1N0cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxl
bmd0aF07CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgTlNNdXRh
YmxlRGljdGlvbmFyeSAqY2hhbmdlID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OjRdOworICAgIFtjaGFuZ2Ugc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJX
aXRoSW50OnR5cGVdIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGVdOworICAgIGlm
IChsZW5ndGggPiBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCkgeworICAgICAgICBbY2hh
bmdlIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpsZW5ndGhdIGZvcktleTpOU0Fj
Y2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdOworICAgICAgICB0ZXh0ID0gW3RleHQg
c3Vic3RyaW5nVG9JbmRleDpBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aF07CisgICAgfQor
ICAgIFtjaGFuZ2Ugc2V0T2JqZWN0OnRleHQgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZV07CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7CisgICAgICAgIGlmIChp
ZCB0ZXh0TWFya2VyID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJGb3JWaXNpYmxlUG9z
aXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgW2NoYW5nZSBzZXRPYmplY3Q6dGV4dE1hcmtl
ciBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdOworICAg
IH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9CisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghdGV4dC5sZW5n
dGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKG9iamVjdCwgQVhUZXh0RWRpdFR5cGVVbmtub3duLCAiIiwgdHlwZSwgdGV4
dCwgcG9zaXRpb24pOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4
dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0
RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAg
IG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8gPSBbW05TTXV0YWJsZURp
Y3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAgdXNlckluZm9bTlNBY2Nl
c3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQpOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmNoYW5nZXMgPSBbW05TTXV0YWJsZUFycmF5
IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5n
ZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqZWN0LCBkZWxldGlvblR5cGUs
IGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2VzIGFkZE9iamVjdDpjaGFu
Z2VdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5n
ZURpY3Rpb25hcnkob2JqZWN0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRlZFRleHQsIHBvc2l0aW9u
KSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07CisgICAgaWYgKGNoYW5nZXMu
Y291bnQpCisgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6Y2hhbmdlcyBmb3JLZXk6TlNBY2Nl
c3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc107CisgICAgW2NoYW5nZXMgcmVsZWFzZV07CisKKyAg
ICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAgICAgICB1c2VySW5mb1tO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVyOworCisgICAgQVhQb3N0
Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHJvb3RXZWJBcmVhKCktPndyYXBwZXIoKSwgTlNBY2Nl
c3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgQVhQb3N0
Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxp
dHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKworICAgIFt1c2VySW5mbyBy
ZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJhbWVPYmplY3QsIEFYTG9h
ZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJC
YXNlLmgKaW5kZXggNWUwNmMzNS4uYjkzNDE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJCYXNlLmgKQEAgLTU2LDggKzU2LDkgQEAgY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwog
LSAoTlNTdHJpbmcgKilhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb247CiAKIC0gKGlkKWF0dGFj
aG1lbnRWaWV3OwotLy8gVXNlZCB0byBpbmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0
aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgRFJULgorLy8gVXNlZCB0byBpbmZvcm0gYW4g
ZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgdGVz
dHMuCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICop
bm90aWZpY2F0aW9uTmFtZTsKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlv
bjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKil1
c2VySW5mbzsKIAogLSAoQ0dQYXRoUmVmKWNvbnZlcnRQYXRoVG9TY3JlZW5TcGFjZTooV2ViQ29y
ZTo6UGF0aCAmKXBhdGg7CiAtIChDR1BvaW50KWNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6KFdl
YkNvcmU6OkZsb2F0UG9pbnQgJilwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5tbQppbmRleCA1ZGRmYzNhLi5lOGIyZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0zODMsMTMgKzM4Myw2OSBAQCBzdGF0aWMgQk9PTCBh
Y2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczsKICsgKHZvaWQpYWNjZXNzaWJp
bGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6KEJPT0wpcmVwb3N0CiB7CiAgICAgYWNj
ZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMgPSByZXBvc3Q7CisjaWYgUExBVEZP
Uk0oTUFDKQorICAgIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNG
b3JUZXN0cyhyZXBvc3QpOworI2VuZGlmCiB9CiAKIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVBvc3Rl
ZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lCiB7CisgICAgaWYgKGFj
Y2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zKQorICAgICAgICBbc2VsZiBhY2Nl
c3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbk5hbWUgdXNlckluZm86bmls
XTsKK30KKworc3RhdGljIE5TQXJyYXkgKmFycmF5UmVtb3ZpbmdOb25KU09OVHlwZXMoTlNBcnJh
eSAqYXJyYXkpCit7CisgICAgQVNTRVJUKFthcnJheSBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNs
YXNzXV0pOworICAgIE5TTXV0YWJsZUFycmF5ICptdXRhYmxlQXJyYXkgPSBbYXJyYXkgbXV0YWJs
ZUNvcHldOworICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IFttdXRhYmxlQXJyYXkgY291
bnRdOykgeworICAgICAgICBpZCB2YWx1ZSA9IFttdXRhYmxlQXJyYXkgb2JqZWN0QXRJbmRleDpp
XTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3Nd
XSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVjdEF0SW5kZXg6aSB3aXRo
T2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBl
bHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKQorICAgICAgICAg
ICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppIHdpdGhPYmplY3Q6YXJyYXlS
ZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNlIGlmICghKFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltO
U051bWJlciBjbGFzc11dKSkgeworICAgICAgICAgICAgW211dGFibGVBcnJheSByZW1vdmVPYmpl
Y3RBdEluZGV4OmldOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAg
aSsrOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVBcnJheSBhdXRvcmVsZWFzZV07Cit9CisK
K3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyhOU0Rp
Y3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAgQVNTRVJUKFtkaWN0aW9uYXJ5IGlzS2luZE9m
Q2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5ICpt
dXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11dGFibGVDb3B5XTsKKyAgICBmb3IgKE5T
U3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgeworICAgICAgICBpZCB2YWx1ZSA9IFtkaWN0aW9u
YXJ5IG9iamVjdEZvcktleTprZXldOworICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6
W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVEaWN0aW9uYXJ5IHNl
dE9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFsdWUpIGZvcktleTprZXld
OworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11d
KQorICAgICAgICAgICAgW211dGFibGVEaWN0aW9uYXJ5IHNldE9iamVjdDphcnJheVJlbW92aW5n
Tm9uSlNPTlR5cGVzKHZhbHVlKSBmb3JLZXk6a2V5XTsKKyAgICAgICAgZWxzZSBpZiAoIShbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFsdWUgaXNLaW5kT2ZDbGFz
czpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJsZURpY3Rpb25hcnkgcmVt
b3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBbbXV0YWJsZURpY3Rpb25h
cnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmlj
YXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5mbzooTlNEaWN0aW9uYXJ5
ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNh
dGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9IFtOU0RpY3Rpb25hcnkg
ZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1lLCBAIm5vdGlmaWNh
dGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpz
ZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5vdGlmaWNhdGlvbk5hbWUp
OworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAgICAgIGlmICh1c2VySW5m
bykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBbTlNKU09OU2VyaWFsaXph
dGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5nTm9uSlNPTlR5cGVzKHVz
ZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVycm9yOm5pbF07CisgICAg
ICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAgICAgTlNTdHJpbmcgKnVz
ZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhEYXRhOnVzZXJJbmZvRGF0
YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAgICAgICAgICAgaWYgKHVz
ZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0gW05TRGljdGlvbmFyeSBk
aWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5hbWUsIEAibm90aWZpY2F0
aW9uTmFtZSIsIHVzZXJJbmZvU3RyaW5nLCBAInVzZXJJbmZvIiwgbmlsXTsKKyAgICAgICAgICAg
ICAgICBbdXNlckluZm9TdHJpbmcgcmVsZWFzZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgaWYgKCFpbmZvKQorICAgICAgICAgICAgaW5mbyA9IFtOU0RpY3Rpb25hcnkgZGlj
dGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1lLCBAIm5vdGlmaWNhdGlv
bk5hbWUiLCBuaWxdOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRpb24iIG9iamVjdDpzZWxm
IHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uMWYwZWNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRlcmZhY2UgV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UK
IAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KGNvbnN0IFdlYkNv
cmU6OlZpc2libGVQb3NpdGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooY29uc3QgV2Vi
Q29yZTo6VmlzaWJsZVBvc2l0aW9uJillbmRQb3NpdGlvbjsKKy0gKGlkKXRleHRNYXJrZXJGb3JW
aXNpYmxlUG9zaXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpdmlzaWJsZVBv
czsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBmYWNkMzNiLi44MjEx
MDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTEzNiwx
NCArMTEzNiwxNCBAQCBzdGF0aWMgTlNTdHJpbmcqIG5zU3RyaW5nRm9yUmVwbGFjZWROb2RlKE5v
ZGUqIHJlcGxhY2VkTm9kZSkKICAgICByZXR1cm4gW2F0dHJTdHJpbmcgYXV0b3JlbGVhc2VdOwog
fQogCi1zdGF0aWMgaWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhPYmpl
Y3RDYWNoZSAqY2FjaGUsIFZpc2libGVQb3NpdGlvbiBzdGFydFBvc2l0aW9uLCBWaXNpYmxlUG9z
aXRpb24gZW5kUG9zaXRpb24pCitzdGF0aWMgaWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQ
b3NpdGlvbnMoQVhPYmplY3RDYWNoZSAqY2FjaGUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRQb3NpdGlvbikKIHsKICAgICBp
ZCBzdGFydFRleHRNYXJrZXIgPSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBz
dGFydFBvc2l0aW9uKTsKICAgICBpZCBlbmRUZXh0TWFya2VyID0gdGV4dE1hcmtlckZvclZpc2li
bGVQb3NpdGlvbihjYWNoZSwgZW5kUG9zaXRpb24pOwogICAgIHJldHVybiB0ZXh0TWFya2VyUmFu
Z2VGcm9tTWFya2VycyhzdGFydFRleHRNYXJrZXIsIGVuZFRleHRNYXJrZXIpOwogfQogCi0tIChp
ZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooVmlzaWJsZVBvc2l0aW9uKXN0
YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFZpc2libGVQb3NpdGlvbillbmRQb3NpdGlvbgorLSAo
aWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KGNvbnN0IFZpc2libGVQb3Np
dGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooY29uc3QgVmlzaWJsZVBvc2l0aW9uJill
bmRQb3NpdGlvbgogewogICAgIHJldHVybiB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0
aW9ucyhtX29iamVjdC0+YXhPYmplY3RDYWNoZSgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlv
bik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCmlu
ZGV4IDFkZWI0ZGIuLmNlNzRmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCkBAIC0zMCwxMiArMzAsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIlJlbmRl
ckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1BcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNv
bW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9jdW1lbnQoKSkKK0FwcGVu
ZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+
IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24p
CisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChwYXJlbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rp
b24pCiAgICAgLCBtX3BhcmVudChwYXJlbnQpCiAgICAgLCBtX25vZGUobm9kZSkKIHsKQEAgLTQ2
LDE1ICs0NywyMyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAgIEFTU0VSVChtX3BhcmVu
dC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVyZXIoKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKE5vZGUqIG5vZGUs
IEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQorc3RhdGljIHZvaWQgc2Vu
ZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5
cGUgdHlwZSkKIHsKLSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+bm9kZVZhbHVlKCk7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyB0
ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29uc2lkZXIgbGluZWJyZWFr
cyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJcbiIpCisgICAgaWYgKHRl
eHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNh
Y2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0Q2hhbmdlLCAwLCBub2Rl
VmFsdWUpOworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBp
czxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5vZGUpLCAwKSA6IGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgVmlzaWJsZVBvc2l0aW9u
KHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5
KCkKQEAgLTY0LDE4ICs3MywxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21tYW5kOjpkb0FwcGx5KCkK
IAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCksIElHTk9SRV9FWENFUFRJ
T04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0g
ICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwg
QVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdu
b3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlwZSgpKTsKIH0KIAogdm9p
ZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBpZiAoIW1fcGFyZW50LT5o
YXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICAvLyBO
ZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBzZW5k
QVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0KCksIEFYT2JqZWN0Q2Fj
aGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAgICAgbV9ub2RlLT5yZW1v
dmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5v
ZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4uZjc4Mjk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2Rl
KQorICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPENv
bnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBlbmRO
b2RlQ29tbWFuZChwYXJlbnQsIG5vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QXBwZW5kTm9kZUNvbW1hbmQocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQog
CiBwcml2YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9k
ZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmROb2RlQ29tbWFuZChQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiwgRWRpdEFjdGlv
bik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggN2M0MThjMi4uY2FiODgyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEyMyw5ICsxMjMsOCBAQCBS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVN0eWxlU3BhbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogfQogCiBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24sIEVQcm9wZXJ0eUxldmVsIHByb3BlcnR5TGV2ZWwpCi0gICAgOiBDb21wb3NpdGVFZGl0
Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBl
ZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgpKQotICAgICwgbV9lZGl0
aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5TGV2ZWwocHJvcGVydHlM
ZXZlbCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3RhcnQoKS5kb3duc3RyZWFt
KCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51cHN0cmVhbSgpKQpAQCAt
MTM2LDkgKzEzNSw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5CiB9CiAKIEFwcGx5U3R5bGVD
b21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRp
bmdTdHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVu
ZCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBFUHJvcGVydHlMZXZlbCBwcm9wZXJ0eUxldmVs
KQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1fc3R5bGUoc3R5bGUt
PmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0aW9uKQogICAgICwgbV9w
cm9wZXJ0eUxldmVsKHByb3BlcnR5TGV2ZWwpCiAgICAgLCBtX3N0YXJ0KHN0YXJ0KQogICAgICwg
bV9lbmQoZW5kKQpAQCAtMTQ5LDkgKzE0Nyw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0
eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5CiB9
CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChQYXNzUmVmUHRyPEVsZW1l
bnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25seSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQot
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9jdW1lbnQoKSkKKyAgICA6IENv
bXBvc2l0ZUVkaXRDb21tYW5kKGVsZW1lbnQtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAg
ICAgLCBtX3N0eWxlKEVkaXRpbmdTdHlsZTo6Y3JlYXRlKCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rp
b24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChQcm9wZXJ0eURlZmF1bHQp
CiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQog
ICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTE2Myw5
ICsxNjAsOCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50LCBib29sIHJlbW92ZU9ubAogfQogCiBBcHBseVN0eWxlQ29tbWFu
ZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5
bGUqIHN0eWxlLCBJc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9uIGlzSW5saW5lRWxlbWVu
dFRvUmVtb3ZlRnVuY3Rpb24sIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKLSAgICA6IENvbXBv
c2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9j
dW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxlLT5jb3B5KCkpCi0gICAg
LCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChQ
cm9wZXJ0eURlZmF1bHQpCiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCku
ZG93bnN0cmVhbSgpKQogICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJl
YW0oKSkKQEAgLTIyNiwxMSArMjIyLDYgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6ZG9BcHBs
eSgpCiAgICAgfQogfQogCi1FZGl0QWN0aW9uIEFwcGx5U3R5bGVDb21tYW5kOjplZGl0aW5nQWN0
aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lZGl0aW5nQWN0aW9uOwotfQotCiB2b2lkIEFw
cGx5U3R5bGVDb21tYW5kOjphcHBseUJsb2NrU3R5bGUoRWRpdGluZ1N0eWxlICpzdHlsZSkKIHsK
ICAgICAvLyB1cGRhdGUgZG9jdW1lbnQgbGF5b3V0IG9uY2UgYmVmb3JlIHJlbW92aW5nIHN0eWxl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCmluZGV4IGU5OWUz
NmEuLjlkYmU4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHls
ZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
LmgKQEAgLTcyLDcgKzcyLDYgQEAgcHJpdmF0ZToKICAgICBBcHBseVN0eWxlQ29tbWFuZChEb2N1
bWVudCYsIGNvbnN0IEVkaXRpbmdTdHlsZSosIGJvb2wgKCppc0lubGluZUVsZW1lbnRUb1JlbW92
ZSkoY29uc3QgRWxlbWVudCopLCBFZGl0QWN0aW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb0Fw
cGx5KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIC8vIHN0eWxlLXJlbW92YWwgaGVscGVycwogICAgIGJvb2wg
aXNTdHlsZWRJbmxpbmVFbGVtZW50VG9SZW1vdmUoRWxlbWVudCopIGNvbnN0OwpAQCAtMTIyLDcg
KzEyMSw2IEBAIHByaXZhdGU6CiAgICAgUG9zaXRpb24gZW5kUG9zaXRpb24oKTsKIAogICAgIFJl
ZlB0cjxFZGl0aW5nU3R5bGU+IG1fc3R5bGU7Ci0gICAgRWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rp
b247CiAgICAgRVByb3BlcnR5TGV2ZWwgbV9wcm9wZXJ0eUxldmVsOwogICAgIFBvc2l0aW9uIG1f
c3RhcnQ7CiAgICAgUG9zaXRpb24gbV9lbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLmI1NDFlYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC01OCw2
ICs1OCw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIuaCIKKyNpbmNsdWRlICJS
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1ZGUgIlJlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUg
IlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTE2MiwxMyArMTY0LDMxIEBAIHZvaWQgRWRpdENvbW1h
bmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mIG5vZGVzKQog
fQogI2VuZGlmCiAKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kQ29tcG9zaXRpb246OnVuYXBw
bHlFZGl0VHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAg
ICBjYXNlIEVkaXRBY3Rpb25DdXQ6CisgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgorICAgICAg
ICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBFZGl0QWN0aW9uRGljdGF0
aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0
ZToKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0
VHlwZURlbGV0ZTsKKyAgICAvLyBJbmNsdWRlIGRlZmF1bHQgY2FzZSBmb3IgdW5oYW5kbGVkIEVk
aXRBY3Rpb24gY2FzZXMuCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKIHZvaWQgYXBwbHlDb21tYW5kKFBh
c3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7CiAgICAgY29tbWFuZC0+
YXBwbHkoKTsKIH0KIAotQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
KERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IEVkaXRDb21tYW5kKGRvY3VtZW50KQorQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwg
RWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVk
aXRpbmdBY3Rpb24pCiB7CiB9CiAKQEAgLTE4Nyw2ICsyMDcsNyBAQCB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjphcHBseSgpCiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldFdyaXRpbmdEaXJl
Y3Rpb246CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKICAgICAgICAgY2FzZSBFZGl0QWN0
aW9uVW5zcGVjaWZpZWQ6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKICAgICAgICAg
Y2FzZSBFZGl0QWN0aW9uRGVsZXRlOgogICAgICAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246
CiAgICAgICAgICAgICBicmVhazsKQEAgLTI5Niw3ICszMTcsNyBAQCB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjpyZW1vdmVTdHlsZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVu
dCkKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
KGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50
b1VucXVvdGVkQXJlYSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICBhcHBs
eUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVh
dGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRv
ZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0
ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWsoKQpAQCAtMzIyLDcgKzM0Myw3IEBAIGJvb2wg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29uc3QgTm9kZSogbm9kZSkK
IAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJlZm9yZShQYXNzUmVmUHRy
PE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNoaWxkLCBTaG91bGRBc3N1
bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0
YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxkQXNzdW1l
Q29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1JlZlB0cjxOb2RlPiBpbnNl
cnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTM3Myw3ICszOTQsNyBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFzc1JlZlB0cjxOb2RlPiBp
bnNlcnRDaGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwZW5k
Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFy
ZW50KQogewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0aW5nKHBhcmVudC5nZXQo
KSkpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5vZGVDb21tYW5kOjpjcmVh
dGUocGFyZW50LCBub2RlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoQXBwZW5kTm9k
ZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbkluUmFuZ2UoUGFzc1JlZlB0
cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykKQEAgLTM5Nyw3ICs0MTgs
NyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5k
OjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpjcmVhdGUobm9kZSwgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMoUGFzc1JlZlB0cjxO
b2RlPiBub2RlKQpAQCAtNTI1LDIwICs1NDYsMjEgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRvTm9kZShQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewogICAg
IGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHRleHQpKTsKKyAg
ICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZShQYXNzUmVmUHRyPFRleHQ+
IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7Ci0gICAgYXBwbHlDb21t
YW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9m
ZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCwgZWRpdGluZ0FjdGlvbigp
KSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlKFBh
c3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwg
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVmUHRyPFRleHQ+IG5vZGUo
cHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBSZWZQdHI8RGVsZXRl
RnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kOjpjcmVhdGUoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIGNvdW50KTsKKyAg
ICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVDb21tYW5kKTsKICAgICBpZiAoIXJlcGxh
Y2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKElu
c2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZzZXQsIHJlcGxhY2VtZW50
VGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKFdURjo6bW92ZShub2RlKSwgb2Zmc2V0LCByZXBsYWNl
bWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCksIGVkaXRpbmdBY3Rpb24oKSkp
OwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVNlbGVjdGVkVGV4
dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xMjg5LDcgKzEzMTEsNyBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0T2ZQYXJhZ3JhcAogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpDb21tYW5kT3B0
aW9ucyBvcHRpb25zID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNlbGVjdFJlcGxhY2VtZW50
IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1vdmluZ1BhcmFncmFwaDsKICAgICBpZiAoIXBy
ZXNlcnZlU3R5bGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
Ok1hdGNoU3R5bGU7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwgb3B0aW9ucykpOworICAgIGFw
cGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9j
dW1lbnQoKSwgV1RGOjptb3ZlKGZyYWdtZW50KSwgb3B0aW9ucykpOwogCiAgICAgZnJhbWUoKS5l
ZGl0b3IoKS5tYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcihlbmRpbmdTZWxlY3Rpb24oKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAppbmRl
eCBjMmI0ODlkLi43MDQ0YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3Np
dGVFZGl0Q29tbWFuZC5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNlbmRpZgogCisgICAgQVhU
ZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgRWRp
dENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0
YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBlbmRpbmdTZWxlY3Rpb24s
IEVkaXRBY3Rpb24pOwogCkBAIC04OSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1hbmQoRG9jdW1lbnQmKTsK
KyAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24g
PSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAgICAgLy8KICAgICAvLyBzdWdhcnktc3dlZXQg
Y29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGhlbHAgY3JlYXRlIGFuZCBhcHBseSBlZGl0IGNvbW1h
bmRzIGluIGNvbXBvc2l0ZSBjb21tYW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVhOTZkNS4uZjkzY2MyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNv
bW1hbmQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw4ICszNCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQp
Ci0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBu
b2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdB
Y3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpLCBlZGl0aW5n
QWN0aW9uKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAg
LCBtX2NvdW50KGNvdW50KQpAQCAtNTgsOCArNTgsOCBAQCB2b2lkIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgLy8gTmVlZCB0
byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhlIHRleHQKLSAgICBpZiAo
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
KQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24obV9ub2RlLmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwgbV90ZXh0KTsKKyAgICBp
ZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgbm90aWZ5
QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBhcHBseUVkaXRUeXBlKCks
IG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAK
ICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQsIGVjKTsKIH0KQEAgLTcz
LDggKzczLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQog
CiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJ
T04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0
LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCks
IHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihtX25v
ZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAppbmRleCAyNDkxZjA1Li40
ZTYxOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUs
IDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTQgKzM0LDE3IEBAIGNs
YXNzIFRleHQ7CiAKIGNsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgOiBwdWJsaWMgU2lt
cGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVk
IGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIGNvdW50LCBl
ZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIERlbGV0ZUZyb21UZXh0Tm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3Vu
dCk7CisgICAgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6CisgICAg
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCwgRWRpdEFjdGlvbik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3Zl
cnJpZGU7CiAgICAgCkBAIC01NSw2ICs1OCwxMSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Rl
eHQ7CiB9OwogCitpbmxpbmUgY29uc3QgU3RyaW5nJiBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
OjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRl
eCAyYmJjNmVkLi5lYjNhNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTcyLDggKzcyLDggQEAgc3RhdGljIGJvb2wgaXNU
YWJsZVJvd0VtcHR5KE5vZGUqIHJvdykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQs
IGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBs
YWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCkK
LSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21h
cnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29s
IGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVk
aXRpbmdBY3Rpb24pCiAgICAgLCBtX2hhc1NlbGVjdGlvblRvRGVsZXRlKGZhbHNlKQogICAgICwg
bV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0
ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtOTAsOCArOTAsOCBAQCBEZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9v
bCBzbWFydERlbAogewogfQogCi1EZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rp
b25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgYm9vbCBzbWFydERl
bGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKQotICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5kb2N1bWVudCgp
KQorRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVt
ZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAg
IDogQ29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9kZSgpLT5k
b2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxlY3Rpb25Ub0RlbGV0ZSh0
cnVlKQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtODg0LDE0ICs4ODQsNiBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGNsZWFyVHJhbnNp
ZW50U3RhdGUoKTsKIH0KIAotRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjplZGl0
aW5nQWN0aW9uKCkgY29uc3QKLXsKLSAgICAvLyBOb3RlIHRoYXQgRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRoZSBEZWxldGUga2V5LAot
ICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0NvbW1hbmQgdGhhdCBzdXBw
bGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBVbmRvIG1lbnUgY29ycmVj
dGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFjdGlvbkN1dDsKLX0KLQog
Ly8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdHlwaW5nIHN0eWxlIHRo
YXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCiAvLyB0eXBlIGEgY2hhcmFj
dGVyLCBCb2xkLCB0aGVuIGRlbGV0ZSB0aGUgY2hhcmFjdGVyIGFuZCBzdGFydCB0eXBpbmcuICBU
aGUgQm9sZCB0eXBpbmcgc3R5bGUgc2hvdWxkbid0CiAvLyBzdGljayBhcm91bmQuICBEZWxldGlv
biBzaG91bGQgcHJlc2VydmUgYSB0eXBpbmcgc3R5bGUgdGhhdCAqaXQqIHNldHMsIGhvd2V2ZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCmlu
ZGV4IGU1YmY1MWQuLjBhOWI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0zNCwyMyArMzQsMjIgQEAgY2xhc3MgRWRpdGluZ1N0
eWxlOwogCiBjbGFzcyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVk
aXRDb21tYW5kIHsgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21t
YW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2Us
IGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNl
LCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFy
a3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJn
ZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhw
YW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVu
dCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZv
clNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1l
cmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywg
c2FuaXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZjxE
ZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2Vs
ZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRl
bGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxF
bGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMg
UmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0Fm
dGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3Bl
Y2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0
aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChzZWxlY3Rpb24sIHNtYXJ0
RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBleHBhbmRGb3JTcGVjaWFs
RWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERlbGV0ZSwgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBzYW5pdGl6
ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdl
QmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxl
bWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChE
b2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwg
Ym9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW50aXpl
TWFya3VwLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAKIHByaXZhdGU6Ci0gICAg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBzbWFy
dERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJlcGxhY2UsIGJvb2wg
ZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3VwKTsKKyAgICBEZWxl
dGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIHNtYXJ0RGVs
ZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBh
bmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAsIEVkaXRBY3Rpb24pOwog
CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbigpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwcmVzZXJ2ZXNUeXBp
bmdTdHlsZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rp
Y3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21t
YW5kLmNwcAppbmRleCBjMTczZGY0Li45MDhmZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIERpY3RhdGlv
bkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6ZV90IGxpbmVTdGFydCwg
c2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4gYWx0ZXJuYXRp
dmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKGxpbmVT
dGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAgICBSZWZQdHI8SW5zZXJ0
VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtl
clN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0cmluZyhsaW5lU3RhcnQs
IGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3JlYXRlKGFsdGVybmF0aXZl
c0luTGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4gY29tbWFuZCA9IEluc2Vy
dFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9jdW1lbnQoKSwgbV90ZXh0
VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCksIERpY3RhdGlvbk1hcmtl
clN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSwgRWRpdEFjdGlvbkRpY3RhdGlv
bik7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9u
KCkpOwogfQogCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBEaWN0YXRpb25Db21tYW5kOjppbnNl
cnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1Nl
bGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0
ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdy
YXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRp
dEFjdGlvbkRpY3RhdGlvbikpOwogfQogCiB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6OmNvbGxlY3RE
aWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKHNpemVfdCByYW5nZVN0YXJ0LCBzaXplX3QgcmFu
Z2VMZW5ndGgsIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFsdGVybmF0aXZlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggNjM3ZDFlYi4uNmVmMzUwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBFZGl0QWN0aW9uVW5zcGVjaWZp
ZWQsCisgICAgICAgIEVkaXRBY3Rpb25JbnNlcnQsCiAgICAgICAgIEVkaXRBY3Rpb25TZXRDb2xv
ciwKICAgICAgICAgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvciwKICAgICAgICAgRWRpdEFj
dGlvblR1cm5PZmZLZXJuaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcApp
bmRleCA4ZjU2NTMyLi42NDc4YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5k
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVk
aXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVk
aXRvci5oIgpAQCAtMzcsOSArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1FZGl0
Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQorRWRpdENvbW1hbmQ6OkVk
aXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQog
ICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fcGFyZW50KDApCisgICAgLCBtX2Vk
aXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQuZnJhbWUo
KSk7CiAgICAgc2V0U3RhcnRpbmdTZWxlY3Rpb24obV9kb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0
aW9uKCkuc2VsZWN0aW9uKCkpOwpAQCAtNjcsNyArNjksNyBAQCBGcmFtZSYgRWRpdENvbW1hbmQ6
OmZyYW1lKCkKIAogRWRpdEFjdGlvbiBFZGl0Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsKKyAgICByZXR1cm4gbV9lZGl0
aW5nQWN0aW9uOwogfQogCiBzdGF0aWMgaW5saW5lIEVkaXRDb21tYW5kQ29tcG9zaXRpb24qIGNv
bXBvc2l0aW9uSWZQb3NzaWJsZShFZGl0Q29tbWFuZCogY29tbWFuZCkKQEAgLTExMiw2ICsxMTQs
NTAgQEAgdm9pZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0ZUVkaXRDb21tYW5kKiBw
YXJlbnQpCiAgICAgfQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6YXBwbHlFZGl0
VHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9uKCkpIHsKKyAgICBjYXNl
IEVkaXRBY3Rpb25DdXQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUN1dDsKKyAgICBj
YXNlIEVkaXRBY3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZURlbGV0
ZTsKKyAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgICAgIHJldHVybiBBWFRleHRF
ZGl0VHlwZURpY3RhdGlvbjsKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6CisgICAgICAgIHJl
dHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRBY3Rpb25QYXN0ZToKKyAg
ICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlUGFzdGU7CisgICAgY2FzZSBFZGl0QWN0aW9uVHlw
aW5nOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVUeXBpbmc7CisgICAgLy8gSW5jbHVk
ZSBkZWZhdWx0IGNhc2UgZm9yIHVuaGFuZGxlZCBFZGl0QWN0aW9uIGNhc2VzLgorICAgIGRlZmF1
bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtu
b3duOworfQorCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6dW5hcHBseUVkaXRUeXBlKCkg
Y29uc3QKK3sKKyAgICBzd2l0Y2ggKGFwcGx5RWRpdFR5cGUoKSkgeworICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVVbmtub3duOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOwor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1
dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0OworICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5cGluZzoKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToK
KyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAgIH0KKyAgICByZXR1cm4g
QVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitTaW1wbGVFZGl0Q29tbWFuZDo6U2ltcGxlRWRp
dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisg
ICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKK3sKK30KKwogdm9pZCBT
aW1wbGVFZGl0Q29tbWFuZDo6ZG9SZWFwcGx5KCkKIHsKICAgICBkb0FwcGx5KCk7CkBAIC0xMjUs
NCArMTcxLDE0IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5vZGVBbmREZXNjZW5kYW50
cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiB9CiAjZW5kaWYKIAordm9pZCBT
aW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSog
bm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFYT2JqZWN0Q2FjaGUqIGNh
Y2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hl
KQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggMDNlNmMzNy4uMWE5
OTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMjYsNiArMjYsNyBA
QAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21tYW5kX2gKIAorI2luY2x1
ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgog
I2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldFBhcmVudChDb21wb3NpdGVFZGl0Q29tbWFuZCopOwogCi0gICAgdmly
dHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKKyAgICBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdDsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHN0YXJ0
aW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGluZ1NlbGVjdGlvbjsgfQogICAg
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZW5kaW5nU2VsZWN0aW9uOyB9CkBAIC01OSw4ICs2MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIEFYVGV4dEVkaXRUeXBlIGFwcGx5RWRp
dFR5cGUoKSBjb25zdDsKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5RWRpdFR5cGUoKSBjb25z
dDsKKwogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVkaXRDb21tYW5kKERvY3VtZW50Jik7Cisg
ICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlv
blVuc3BlY2lmaWVkKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAgICBGcmFtZSYgZnJhbWUo
KTsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fc3Rh
cnRpbmdTZWxlY3Rpb247CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX2VuZGluZ1NlbGVjdGlvbjsK
ICAgICBDb21wb3NpdGVFZGl0Q29tbWFuZCogbV9wYXJlbnQ7CisgICAgRWRpdEFjdGlvbiBtX2Vk
aXRpbmdBY3Rpb24geyBFZGl0QWN0aW9uVW5zcGVjaWZpZWQgfTsKIH07CiAKIGVudW0gU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgewpAQCAtOTEsMTIgKzk2LDE0IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgU2ltcGxlRWRpdENvbW1hbmQo
RG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21tYW5kKGRvY3VtZW50KSB7IH0KKyAgICBleHBs
aWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9u
VW5zcGVjaWZpZWQpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQgYWRkTm9kZUFuZERlc2Nl
bmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSosIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKKwogcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5j
cHAKaW5kZXggZGMzYWUzMy4uMjNiYzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dGluZ0FsbEluT25lLmNwcApAQCAtNTksNiArNTksOCBAQAogI2luY2x1ZGUgPFJlbW92ZU5vZGVD
b21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+CisjaW5jbHVkZSA8UmVwbGFj
ZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUgPFJlcGxhY2VJbnNlcnRJ
bnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNlTm9kZVdpdGhTcGFuQ29t
bWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwPgogI2luY2x1
ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAppbmRleCAwZmQyZjkxLi5hNzcyODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBA
IC0yMDgsMTIgKzIwOCwxMiBAQCBib29sIEVkaXRvcjo6aGFuZGxlVGV4dEV2ZW50KFRleHRFdmVu
dCogZXZlbnQpCiAgICAgICAgICAgICBpZiAoY2xpZW50KCktPnBlcmZvcm1zVHdvU3RlcFBhc3Rl
KGV2ZW50LT5wYXN0aW5nRnJhZ21lbnQoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQt
PnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBl
dmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBldmVudC0+bWFpbEJsb2NrcXVvdGVIYW5kbGluZygp
KTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoZXZlbnQtPnBhc3Rp
bmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVwbGFjZSgpLCBldmVudC0+
c2hvdWxkTWF0Y2hTdHlsZSgpLCBFZGl0QWN0aW9uUGFzdGUsIGV2ZW50LT5tYWlsQmxvY2txdW90
ZUhhbmRsaW5nKCkpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgfQogI2VuZGlmCiAgICAg
ICAgIGVsc2UgCi0gICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRh
dGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSk7CisgICAgICAgICAgICBy
ZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91
bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlvblBhc3RlKTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCkBAIC0zNzQsMTIgKzM3NCwxMiBAQCBib29sIEVkaXRvcjo6ZGVsZXRlV2l0aERp
cmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZwog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9uV2l0aFNt
YXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6ZGVsZXRlU2VsZWN0aW9u
V2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGFwcGx5Q29tbWFuZChEZWxldGVTZWxlY3Rp
b25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUsIHRydWUsIGZhbHNlLCBm
YWxzZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbikpOwogfQogCiB2b2lkIEVkaXRvcjo6Y2xlYXJUZXh0
KCkKQEAgLTUyMCw3ICs1MjAsNyBAQCBib29sIEVkaXRvcjo6c2hvdWxkSW5zZXJ0RnJhZ21lbnQo
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgUGFzc1JlZgogICAgIHJldHVy
biBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0Tm9kZShmcmFnbWVudC5nZXQoKSwgcmVwbGFjaW5nRE9N
UmFuZ2UuZ2V0KCksIGdpdmVuQWN0aW9uKTsKIH0KIAotdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxl
Y3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwg
Ym9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHls
ZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQordm9pZCBF
ZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxh
Y2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBNYWlsQmxvY2tx
dW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiB7CiAgICAgVmlzaWJsZVNlbGVj
dGlvbiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlm
IChzZWxlY3Rpb24uaXNOb25lKCkgfHwgIXNlbGVjdGlvbi5pc0NvbnRlbnRFZGl0YWJsZSgpIHx8
ICFmcmFnbWVudCkKQEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVj
dGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAog
ICAgIGlmIChtYWlsQmxvY2txdW90ZUhhbmRsaW5nID09IE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6
Oklnbm9yZUJsb2NrcXVvdGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQ6Oklnbm9yZU1haWxCbG9ja3F1b3RlOwogCi0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQsIG9wdGlvbnMsIEVk
aXRBY3Rpb25QYXN0ZSkpOworICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCBvcHRpb25zLCBlZGl0aW5nQWN0aW9uKSk7
CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CiAKICAgICBzZWxl
Y3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpAQCAtNTUwLDEzICs1NTAs
MTMgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVz
dENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVzb2x2ZVRleHRDaGVja2lu
Z1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRDaGVja2luZ1R5cGVHcmFt
bWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hlY2ssIHJhbmdlVG9DaGVj
aykpOwogfQogCi12b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCit2
b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gZWRp
dGluZ0FjdGlvbikKIHsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgp
OwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlcGxhY2VTZWxlY3Rp
b25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLCBzZWxl
Y3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9u
V2l0aEZyYWdtZW50KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0KSwgc2VsZWN0
UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbik7CiB9CiAKIFBh
c3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6c2VsZWN0ZWRSYW5nZSgpCkBAIC05OTgsNyArOTk4LDgg
QEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENv
bW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBpbmcgc3R5bGUgd2l0aCB0
aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3MgZWxzZXdoZXJlIGlmIG5l
Y2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25z
ID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0aW9uOjpEaWN0YXRpb25U
cmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdTZWxlY3Rp
b24sIG9wdGlvbnMpOworICAgIAorICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChuZXdT
ZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+YXBwbHlFZGl0VHlwZSgpKTsKICAgICBkaXNwYXRjaEVk
aXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0YXJ0aW5nUm9vdEVkaXRh
YmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpKTsK
IAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAgLTEwMjksNyArMTAzMCw3
IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRD
b21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJvbHMoY21kLT5zdGFydGlu
Z1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRpdGFibGVFbGVtZW50KCkp
OwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21kLT5zdGFydGluZ1NlbGVj
dGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQobmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSk7CisgICAgY2hhbmdl
U2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1
bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUVkaXRUeXBlKCkpOwogICAgIGRp
c3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0YXJ0aW5nUm9vdEVkaXRh
YmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSk7CiAKICAgICB1
cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjYzLDcgKzEyNjQsNyBAQCB2b2lk
IEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQog
CiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAgICBpZiAoYWN0aW9uID09
IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNt
YXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rpb25XaXRoU21hcnREZWxl
dGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7CiB9CiAKIHZvaWQgRWRp
dG9yOjpwYXN0ZSgpCkBAIC0yMjM1LDcgKzIyMzYsNyBAQCB2b2lkIEVkaXRvcjo6bWFya01pc3Nw
ZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmd29yZFN0YXJ0
LAogCiAgICAgICAgIGlmICghbV9mcmFtZS5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KGF1dG9j
b3JyZWN0ZWRTdHJpbmcsIG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlv
blR5cGVkKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5y
ZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNl
KTsKKyAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0
b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKIAogICAg
ICAgICAvLyBSZXNldCB0aGUgY2hhcmV0IG9uZSBjaGFyYWN0ZXIgZnVydGhlci4KICAgICAgICAg
bV9mcmFtZS5zZWxlY3Rpb24oKS5tb3ZlVG8obV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KS5lbmQoKSk7CkBAIC0yNTgxLDcgKzI1ODIsNyBAQCB2b2lkIEVkaXRvcjo6Y2hhbmdlQmFja1Rv
UmVwbGFjZWRTdHJpbmcoY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKICAgICAKICAgICBt
X2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VS
ZXZlcnNlZChyZXBsYWNlZFN0cmluZywgc2VsZWN0aW9uKTsKICAgICBUZXh0Q2hlY2tpbmdQYXJh
Z3JhcGggcGFyYWdyYXBoKHNlbGVjdGlvbik7Ci0gICAgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0
KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRo
VGV4dChyZXBsYWNlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKICAg
ICBSZWZQdHI8UmFuZ2U+IGNoYW5nZWRSYW5nZSA9IHBhcmFncmFwaC5zdWJyYW5nZShwYXJhZ3Jh
cGguY2hlY2tpbmdTdGFydCgpLCByZXBsYWNlZFN0cmluZy5sZW5ndGgoKSk7CiAgICAgY2hhbmdl
ZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5kb2N1bWVudCgpLm1hcmtlcnMoKS5hZGRNYXJrZXIo
Y2hhbmdlZFJhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6UmVwbGFjZW1lbnQsIFN0cmluZygp
KTsKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPm1hcmtSZXZlcnNlZChjaGFuZ2Vk
UmFuZ2UuZ2V0KCkpOwpAQCAtMjgxNSw3ICsyODE2LDcgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9z
ZSgpCiAgICAgLy8gSW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3RlcnMuCiAgICAgaWYgKCFz
aG91bGRJbnNlcnRUZXh0KHRyYW5zcG9zZWQsIHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rp
b25UeXBlZCkpCiAgICAgICAgIHJldHVybjsKLSAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQo
dHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlKTsKKyAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQo
dHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0KTsKIH0KIAogdm9pZCBF
ZGl0b3I6OmFkZFRvS2lsbFJpbmcoUmFuZ2UqIHJhbmdlLCBib29sIHByZXBlbmQpCkBAIC0yODQ3
LDcgKzI4NDgsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbEFzSWdub3Jl
ZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNtaXNzKFJlYXNvbkZvckRp
c21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9pZCBFZGl0b3I6OmNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zKQordm9pZCBF
ZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlv
bnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAgICAvLyBJZiB0aGUgbmV3
IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUgdGhlIHNlbGVjdGlvbi4K
ICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8fCBuZXdTZWxlY3Rpb24u
ZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NTksNyArMjg2MCw3IEBAIHZvaWQgRWRpdG9yOjpjaGFu
Z2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0
aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4gU29tZSBzaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxlY3Rpb25zIHRoYXQgYXJl
IG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRp
b24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKICAg
ICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwgbV9mcmFtZS5zZWxlY3Rp
b24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFt
ZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25zKTsKKyAgICAg
ICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBvcHRpb25z
LCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlvbnMgY2hhbmdlIHRoZSBz
ZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBvc2l0aW9uIHdpdGhpbiB0
aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNzIHJldHVybiBpbiB0aGUg
Zm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKaW5kZXggYTU3ZDQyYS4uMTMxM2RiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0x
NzQsNyArMTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHks
IGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJv
b2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKTsKICAgICB2b2lk
IGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtMzgyLDggKzM4Miw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQqKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBXcml0aW5nRGlyZWN0aW9uIGJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9u
U3RhcnQoKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+LCBib29sIHNlbGVjdFJl
cGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlLCBNYWlsQmxvY2tx
dW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0
IFN0cmluZyYsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFy
dFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiA9IEVkaXRBY3Rpb25JbnNlcnQs
IE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0
QmxvY2txdW90ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJl
cGxhY2UsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KTsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHNlbGVjdGlvblN0YXJ0SGFzTWFya2VyRm9yKERvY3VtZW50TWFya2VyOjpNYXJrZXJU
eXBlLCBpbnQgZnJvbSwgaW50IGxlbmd0aCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVNYXJrZXJz
Rm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhib29sIG9ubHlIYW5kbGVXb3Jkc0NvbnRhaW5pbmdT
ZWxlY3Rpb24pOwogICAgIHZvaWQgZGVsZXRlZEF1dG9jb3JyZWN0aW9uQXRQb3NpdGlvbihjb25z
dCBQb3NpdGlvbiYsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxTdHJpbmcpOwpAQCAtNDY4LDcgKzQ2
OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1vZGUgeyBDb25maXJtQ29t
cG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihj
b25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAgdm9pZCBjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAgdm9pZCBjaGFuZ2VTZWxl
Y3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBG
cmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVudW0gRWRpdG9yQWN0aW9u
U3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAgdm9pZCBwZXJmb3JtQ3V0
T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcAppbmRleCA1MTFjYjAyLi43YTgxNjY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE5Miw3ICsxOTIsNyBAQCBzdGF0aWMgYm9vbCBl
eGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGcmFtZSYgZnJhbWUsIEVkaXRvckNvbW1hbmRTb3Vy
Y2Ugc291cmNlLAogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdtZW50KEZyYW1lJiBmcmFt
ZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCkKIHsKICAgICBBU1NFUlQo
ZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25VbnNwZWNpZmllZCkpOworICAgIGFw
cGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVu
dCgpLCBmcmFnbWVudCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nLCBF
ZGl0QWN0aW9uSW5zZXJ0KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNDQwZjM2Ni4uOWU5NDE0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogCisjaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNs
dWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAg
LTEzOSw3ICsxNDAsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6cm9vdEVkaXRhYmxlRWxl
bWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29uc3QKIHZvaWQgRnJhbWVTZWxlY3Rpb246Om1vdmVU
byhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJl
ZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKICAgICBzZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBv
cy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkpLAotICAgICAgICBkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxpZ24pOworICAgICAgICBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlVG8oY29u
c3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9zaXRpb24gJmV4dGVudCwg
RVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsxNzEsOCBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25zdCBQb3NpdGlvbiYgYmFz
ZSwgY29uc3QgUG9zaXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uOwogICAg
IG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBleHRlbnQpOwogICAgIG5l
d1NlbGVjdGlvbi5zZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0RpcmVjdGlvbik7Ci0gICAg
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8
IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFY
VGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwgKHNob3VsZFNldEZvY3Vz
ID8gMCA6IERvTm90U2V0Rm9jdXMpLCBpbnRlbnQpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRy
b2xsZXI6OnNldENhcmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
QEAgLTI1NCw3ICsyNTYsMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlN
b3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBhc3MKICAgICBpZiAobV9z
ZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlv
biwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RFdmVudCwgQWxpZ25D
dXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAgCisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpICYmIG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisgICAgICAgIGludGVudCA9
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBlbHNlCisgICAg
ICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7CisgICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RF
dmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5KTsK
IH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBw
ZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb25Qb3NzaWJseVdpdGhv
dXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywgQ3Vyc29yQWxpZ25PblNj
cm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpAQCAtMjc2LDcgKzI4NCw3
IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVh
cmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3VtZW50KiBuZXdTZWxlY3Rp
b25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQoKSkgewogICAgICAgICBp
ZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1NlbGVjdGlvbkRvY3VtZW50
LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9uRnJhbWUgIT0gbV9mcmFt
ZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAg
ICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7CisgICAgICAgICAgICAg
ICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rp
b24sIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIGFsaWduLCBncmFudWxhcml0
eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IGR1cmluZyB0aGUgYWJv
dmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMgYmVlbiBtb2RpZmllZCBi
eQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNl
bGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdlciB2YWxpZCBzaW5jZQog
ICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIElm
IHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBAIC0zMjAsNyArMzI4LDcg
QEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFs
aWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpz
ZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3Rp
b25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCwgQ3Vyc29y
QWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAg
IGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5jZShzZWxlY3Rpb24sIG9w
dGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MSw3ICsz
NDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChmcmFtZVZpZXcgJiYgZnJh
bWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUFu
ZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbihpbnRlbnQp
OwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0aW5nTGF5b3V0T3JTdHls
ZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5jbGVhclNlbGVjdGlvbigp
OwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQor
dm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdTZWxlY3Rp
b25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3ICszODgsNyBAQCB2b2lkIEZyYW1l
U2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQogICAgICAgICByZXZlYWxTZWxl
Y3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KIAotICAgIG5vdGlmeUFjY2Vz
c2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
U2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiAKICAgICBpZiAoYXV0byogY2xpZW50ID0gbV9mcmFt
ZS0+ZWRpdG9yKCkuY2xpZW50KCkpCiAgICAgICAgIGNsaWVudC0+ZGlkQ2hhbmdlU2VsZWN0aW9u
QW5kVXBkYXRlTGF5b3V0KCk7CkBAIC0xMDIxLDcgKzEwMjksNzUgQEAgVmlzaWJsZVBvc2l0aW9u
IEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFy
aXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91bmRhcnkgfHwgZ3JhbnVs
YXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gRG9jdW1lbnRCb3Vu
ZGFyeTsKLX0gICAgCit9CisKK0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IEZyYW1lU2VsZWN0aW9u
Ojp0ZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rp
b24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit7CisgICAgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKTsKKyAg
ICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJhbWVTZWxlY3Rpb246OkFs
dGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgZmxpcCA9IGlzUmFuZ2UoKSAmJiBkaXJlY3Rpb25P
ZlNlbGVjdGlvbigpID09IFJUTDsKKyAgICB9IGVsc2UKKyAgICAgICAgaW50ZW50LnR5cGUgPSBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAgc3dpdGNoIChncmFudWxh
cml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6CisgICAgICAgIGludGVudC5z
ZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rl
cjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6CisgICAgICAgIGlu
dGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdv
cmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBj
YXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJp
dHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAg
ICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3JhcGhHcmFudWxhcml0eToK
KyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmdy
YW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGg7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAgICBjYXNlIERvY3VtZW50
Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Ym9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBj
YXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdyYW51bGFyaXR5OgorICAg
IGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAg
ICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0
eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgorICAgIGNhc2Ug
TGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CisgICAgY2FzZSBEb2N1
bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uUmlnaHQ6
CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAoYm91bmRhcnkpCisgICAg
ICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAgPyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQ7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/
IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rpb25MZWZ0OgorICAgIGNh
c2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAg
IGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkVuZCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZzsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24gPSBmbGlwID8gQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3Vz
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVudDsKK30KIAogYm9vbCBG
cmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rp
b24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIEVVc2VyVHJpZ2dlcmVk
IHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc3LDYgKzExNTMsMTEgQEAgYm9vbCBGcmFtZVNlbGVj
dGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0
aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9PSBBbHRlcmF0aW9uTW92
ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJh
bWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICAgICAgY2Fj
aGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQodGV4dFNlbGVjdGlvbkludGVudChhbHRlciwgZGly
ZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNvbWUgb2YgdGhlIGFib3Zl
IG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2aWdhdGlvbi4KICAgICAv
LyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNhdmUgaXQgdG8gcG9zc2li
bHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQgcG9zaXRpb24gdHlwZSBp
cyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxkIGJlCkBAIC0xNzEwLDgg
KzE3OTEsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxsKCkKIAogICAgIFZpc2li
bGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21D
b250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hvdWxkQ2hhbmdlU2VsZWN0
aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZlbnQpOworICAgIGlmIChz
aG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5k
LCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25EaXNjb250aWd1b3Vz
LCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCB9KTsKKyAgICAgICAgc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxlY3RF
dmVudCwgaW50ZW50KTsKKyAgICB9CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVj
dGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgY2xvc2VUeXBp
bmcpCkBAIC0yMTQ1LDcgKzIyMjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTaG91bGRT
aG93QmxvY2tDdXJzb3IoYm9vbCBzaG91bGRTaG93QmxvY2tDdXJzb3IpCiB2b2lkIEZyYW1lU2Vs
ZWN0aW9uOjpkaWRMYXlvdXQoKQogewogICAgIHNldENhcmV0UmVjdE5lZWRzVXBkYXRlKCk7Ci0g
ICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIHVwZGF0ZURhdGFEZXRlY3RvcnNG
b3JTZWxlY3Rpb24oKTsKIH0KIApAQCAtMjQyMyw3ICsyNTA2LDcgQEAgVmlzaWJsZVNlbGVjdGlv
biBGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbihj
b25zdCBWaXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uID0gZnJhbWVTZWxl
Y3Rpb24uc2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFuZFVzaW5nR3JhbnVsYXJp
dHkoV29yZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkpOworICAgIGZyYW1lU2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRp
b25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIEFsaWduQ3Vyc29yT25TY3JvbGxJZk5l
ZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAgICBQb3NpdGlvbiBzdGFy
dFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICBQb3NpdGlvbiBl
bmRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjJiN2YyMzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
RnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9oCiAKKyNpbmNsdWRlICJB
WFRleHRTdGF0ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkVkaXRpbmdTdHlsZS5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCkBAIC0xNDQsNyArMTQ1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0aW9uVG8oY29uc3QgUG9z
aXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFzRGlyZWN0aW9uLCBib29s
IHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlv
bnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0g
QWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJH
cmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0
aW9uT3B0aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xv
c2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3Myw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVORCwgQkFTRSwgRVhURU5U
IH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHZvaWQgdXBk
YXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Jik7CiAg
ICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7CiAKICAgICBib29sIHNl
dFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3JvbGwsIFRleHRHcmFudWxh
cml0eSk7CkBAIC0yOTcsMTAgKzI5OCwxMSBAQCBwcml2YXRlOgogCiAgICAgTGF5b3V0VW5pdCBs
aW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRpb24oRVBvc2l0aW9uVHlw
ZSk7CiAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB0ZXh0U2VsZWN0aW9uSW50ZW50KEVB
bHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxhcml0eSk7CiAjaWYgSEFW
RShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSgpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5n
ZShjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOwogI2Vsc2UKLSAgICB2b2lkIG5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAgICB2b2lkIG5vdGlmeUFj
Y2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmKSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25DYWNoZXNJZlNlbGVj
dGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVkKTsKQEAgLTM2Nyw3ICsz
NjksNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1Jl
ZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLWlu
bGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9u
Q2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5
Rm9yU2VsZWN0aW9uQ2hhbmdlKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JikKIHsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uOTRhZjA0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0zOSw4
ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAgIDogU2ltcGxlRWRpdENvbW1h
bmQobm9kZS0+ZG9jdW1lbnQoKSkKK0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBj
b25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IFNpbXBs
ZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25v
ZGUobm9kZSkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fdGV4dCh0ZXh0KQpAQCAt
NjYsOCArNjYsOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQog
CiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQsIElHTk9SRV9FWENFUFRJ
T04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0
aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQsIG1fb2Zmc2V0
LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShtX25vZGUuZ2V0KCks
IGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24oUG9zaXRpb24obV9ub2Rl
LCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTg0LDggKzg0LDggQEAg
dm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1
cm47CiAgICAgICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMgYmVmb3JlIGFjdHVhbGx5
IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1l
bnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0Q2hh
bmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRl
ZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKG1f
bm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9v
ZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCmluZGV4IDMx
MGJiYjMuLjA3NjA5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0zNCwxNCArMzQsMTcgQEAgY2xhc3MgVGV4dDsKIAog
Y2xhc3MgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFu
ZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kPiBj
cmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkKKyAgICBzdGF0aWMgUmVmPEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0
ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4
dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQobm9k
ZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVkaXRpbmdB
Y3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0
ZXh0KTsKKyAgICBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCgpOworCitwcm90ZWN0ZWQ6Cisg
ICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25l
ZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKTsK
IAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCkBAIC01
Nyw2ICs2MCwxMSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3RleHQ7CiB9OwogCitpbmxpbmUg
Y29uc3QgU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjppbnNlcnRlZFRleHQoKQor
eworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRleCBkMTZiNWQ2Li5jNmIy
MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmNwcApAQCAtMjksMTMgKzI5LDEzIEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9s
ZGVyLmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6Okluc2VydE5vZGVC
ZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQsIFBhc3NSZWZQdHI8Tm9k
ZT4gcmVmQ2hpbGQsCi0gICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFu
ZChyZWZDaGlsZC0+ZG9jdW1lbnQoKSkKK0luc2VydE5vZGVCZWZvcmVDb21tYW5kOjpJbnNlcnRO
b2RlQmVmb3JlQ29tbWFuZChSZWZQdHI8Tm9kZT4mJiBpbnNlcnRDaGlsZCwgUmVmUHRyPE5vZGU+
JiYgcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisg
ICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1lbnQoKSwgZWRpdGluZ0FjdGlv
bikKICAgICAsIG1faW5zZXJ0Q2hpbGQoaW5zZXJ0Q2hpbGQpCiAgICAgLCBtX3JlZkNoaWxkKHJl
ZkNoaWxkKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZShzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKQEAgLTU3LDggKzU3LDEwIEBAIHZvaWQg
SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgcGFyZW50LT5pbnNlcnRC
ZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQoKSwgSUdOT1JFX0VYQ0VQ
VElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmlj
YXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQs
IDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGlz
PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4obV9p
bnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG1faW5z
ZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENo
YW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hpbGQt
Pm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiB9CiAKIHZv
aWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBAIC02Nyw4ICs2OSwxMCBA
QCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHkoKQogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGlu
ZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhp
c3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlm
aWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVk
LCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRpb24gcG9zaXRpb24gPSBp
czxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG1f
aW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihtX2lu
c2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRD
aGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1faW5zZXJ0Q2hp
bGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsKKyAgICB9CiAKICAg
ICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXggZDRiNzYy
ZC4uNWNlYTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0Tm9kZUJl
Zm9yZUNvbW1hbmQuaApAQCAtMzIsMjIgKzMyLDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRU
b0luc2VydEJlZm9yZSwKLSAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFi
bGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisgICAgc3RhdGljIFJlZjxJ
bnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9JbnNl
cnQsIFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9JbnNlcnRCZWZvcmUsCisgICAgICAgIFNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQo
Y2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoV1RGOjptb3ZlKGNoaWxkVG9JbnNlcnQpLCBXVEY6Om1vdmUoY2hpbGRU
b0luc2VydEJlZm9yZSksIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBlZGl0
aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2VydE5vZGVCZWZvcmVDb21t
YW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1JlZlB0cjxOb2RlPiBjaGls
ZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSk7Citw
cm90ZWN0ZWQ6CisgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUmVmUHRyPE5vZGU+JiYgY2hp
bGRUb0luc2VydCwgUmVmUHRyPE5vZGU+JiYgY2hpbGRUb0luc2VydEJlZm9yZSwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCitwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5h
cHBseSgpIG92ZXJyaWRlOwotICAgIAorCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9p
ZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCi0g
ICAgCisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAgICBSZWZQdHI8Tm9kZT4g
bV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBtX3No
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKaW5k
ZXggMjEyODI5Yy4uN2RkMDE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC01OSw4ICs1OSw4
IEBAIHN0YXRpYyBFbGVtZW50KiBoaWdoZXN0VmlzdWFsbHlFcXVpdmFsZW50RGl2QmVsb3dSb290
KEVsZW1lbnQqIHN0YXJ0QmxvY2spCiAgICAgcmV0dXJuIGN1ckJsb2NrOwogfQogCi1JbnNlcnRQ
YXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5k
KERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBtdXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQs
IGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKLSAgICA6IENvbXBvc2l0ZUVk
aXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6SW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgbXVz
dFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxvY2txdXRvZUludG9VbnF1
b3RlZEFyZWEsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRD
b21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9tdXN0VXNlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQobXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50KQogICAgICwgbV9w
YXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3Rl
ZEFyZWEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFn
cmFwaFNlcGFyYXRvckNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCmluZGV4IDEyODFmMGMuLjY3MzQxOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
Q29tbWFuZC5oCkBAIC0zNCwxMyArMzQsMTMgQEAgY2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFz
cyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kIDogcHVibGljIENvbXBvc2l0ZUVkaXRD
b21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgdXNlRGVmYXVsdFBhcmFn
cmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVh
ID0gZmFsc2UpCisgICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5k
PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSA9IGZhbHNl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUlu
dG9VbnF1b3RlZEFyZWEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1l
bnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24pKTsKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1
bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1
dG9lSW50b1VucXVvdGVkQXJlYSk7CisgICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFu
ZChEb2N1bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVC
bG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZG9BcHBseSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1h
bmQuY3BwCmluZGV4IGJkZDU5YTMuLjU3MmU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0zNywxNiArMzcsMTYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1JbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0
LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFu
ZChkb2N1bWVudCkKK0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQs
IFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQor
ICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAg
LCBtX3RleHQodGV4dCkKICAgICAsIG1fc2VsZWN0SW5zZXJ0ZWRUZXh0KHNlbGVjdEluc2VydGVk
VGV4dCkKICAgICAsIG1fcmViYWxhbmNlVHlwZShyZWJhbGFuY2VUeXBlKQogewogfQogCi1JbnNl
cnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1hcmtlclN1cHBsaWVyPiBt
YXJrZXJTdXBwbGllcikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5z
ZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25NYXJrZXJTdXBwbGllcj4g
bWFya2VyU3VwcGxpZXIsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0
ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV90ZXh0KHRleHQp
CiAgICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChmYWxzZSkKICAgICAsIG1fcmViYWxhbmNlVHlw
ZShSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZlLi42NTI4MTYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCkBAIC00OSwyMCArNDks
MjEgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPEluc2VydFRleHRDb21tYW5k
PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsCi0gICAgICAgIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNl
VHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3BhY2VzKQorICAgICAgICBS
ZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdX
aGl0ZXNwYWNlcywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbkluc2VydCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRv
Y3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5jZVR5cGUpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQs
IHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSwgZWRpdGluZ0FjdGlvbikpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJT
dXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0
cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyKQorICAgIHN0YXRp
YyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9u
TWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24g
PSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1cHBsaWVyKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0
LCBtYXJrZXJTdXBwbGllciwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAotcHJpdmF0ZToKK3By
b3RlY3RlZDoKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYg
dGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+LCBFZGl0QWN0aW9u
KTsKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Ym9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUsIEVkaXRBY3Rpb24pOwogCi0g
ICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
c2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKLSAgICBJbnNlcnRUZXh0Q29tbWFu
ZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9u
TWFya2VyU3VwcGxpZXI+KTsKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRlbGV0ZUNoYXJhY3Rlcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01vdmVTZWxlY3Rpb25Db21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
CmluZGV4IGNlODg0NzguLmQ2ZWNmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
TW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgTW92ZVNlbGVj
dGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpDb21t
YW5kT3B0aW9ucyBvcHRpb25zID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNlbGVjdFJlcGxh
Y2VtZW50IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nOwogICAgIGlm
IChtX3NtYXJ0SW5zZXJ0KQogICAgICAgICBvcHRpb25zIHw9IFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpTbWFydFJlcGxhY2U7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBtX2ZyYWdtZW50LCBvcHRpb25zKSk7
CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBXVEY6Om1vdmUobV9mcmFnbWVudCksIG9wdGlvbnMpKTsKIH0KIAog
RWRpdEFjdGlvbiBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCmluZGV4IDJjMDYzYzAuLmM2Mjk3MTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRp
dGFibGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgpKQorUmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRB
Y3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKG5vZGUtPmRv
Y3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fc2hv
dWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92
ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKaW5kZXggNGI5MTk3NC4uMWIy
YzQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2Vy
dmluZ0NoaWxkcmVuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNo
b3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fs
d2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChu
b2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChub2Rl
LCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRpdGluZ0FjdGlvbikpOwog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNF
ZGl0YWJsZSk7CisgICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUs
IEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOThhOTlkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisKKyNpbmNsdWRlICJUZXh0
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4m
JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIDogRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChXVEY6Om1vdmUodGV4dCksIG9mZnNldCwgY291bnQsIEVkaXRBY3Rp
b25EZWxldGUpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6
Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRFZGl0VHlwZSwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNl
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjJjNzIxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kIGZpbmFsIDogcHVibGljIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ+
IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNv
dW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKHRleHQpLCBvZmZzZXQsIGNvdW50KSk7CisgICAg
fQorCitwcml2YXRlOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kKFJlZlB0
cjxUZXh0PiYmLCB1bnNpZ25lZCwgdW5zaWduZWQpOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44MzQ4YzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaCIKKwor
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBsYWNlSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRl
eHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgZGVsZXRlZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IEluc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQsIHRleHQsIGVkaXRp
bmdBY3Rpb24pCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0KQoreworfQorCit2b2lk
IFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9y
VGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFBWE9i
amVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAg
QVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgp
OworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
WFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxldGUsIHRleHQsIEFYVGV4dEVkaXRU
eXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVBhc3Rl
OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAgIGNhY2hlLT5wb3N0VGV4
dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRUeXBlRGVsZXRlLCBtX2Rl
bGV0ZWRUZXh0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIGJyZWFrOworICAgIH0K
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNjNiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlcGxh
Y2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIGZpbmFsIDogcHVibGljIEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZUluc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgRWRpdEFj
dGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQs
IHRleHQsIGRlbGV0ZWRUZXh0LCBlZGl0aW5nQWN0aW9uKSk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRpdEFjdGlvbik7CisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBBWFRleHRF
ZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgb3ZlcnJpZGU7
CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggZmIzODgwYy4uZmQ1NzQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTQ3LDYgKzQ3LDggQEAKICNpbmNsdWRlICJS
ZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5k
ZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIK
KyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgogI2luY2x1ZGUg
IlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0UmVwbGFjZS5oIgogI2lu
Y2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpAQCAtMzY4LDE1ICszNzAsMTQgQEAgaW5saW5lIHZv
aWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6OmRpZFJlcGxhY2VOb2Rl
KE5vZGUqIG5vZGUsIE4KICAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0gbmV3Tm9kZTsKIH0K
IAotUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgQ29t
bWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQotICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4mJiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0
QWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRBY3Rpb24p
CiAgICAgLCBtX3NlbGVjdFJlcGxhY2VtZW50KG9wdGlvbnMgJiBTZWxlY3RSZXBsYWNlbWVudCkK
ICAgICAsIG1fc21hcnRSZXBsYWNlKG9wdGlvbnMgJiBTbWFydFJlcGxhY2UpCiAgICAgLCBtX21h
dGNoU3R5bGUob3B0aW9ucyAmIE1hdGNoU3R5bGUpCiAgICAgLCBtX2RvY3VtZW50RnJhZ21lbnQo
ZnJhZ21lbnQpCiAgICAgLCBtX3ByZXZlbnROZXN0aW5nKG9wdGlvbnMgJiBQcmV2ZW50TmVzdGlu
ZykKICAgICAsIG1fbW92aW5nUGFyYWdyYXBoKG9wdGlvbnMgJiBNb3ZpbmdQYXJhZ3JhcGgpCi0g
ICAgLCBtX2VkaXRBY3Rpb24oZWRpdEFjdGlvbikKICAgICAsIG1fc2FuaXRpemVGcmFnbWVudChv
cHRpb25zICYgU2FuaXRpemVGcmFnbWVudCkKICAgICAsIG1fc2hvdWxkTWVyZ2VFbmQoZmFsc2Up
CiAgICAgLCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlKG9wdGlvbnMgJiBJZ25vcmVNYWlsQmxvY2tx
dW90ZSkKQEAgLTE0MjcsMTEgKzE0MjgsNiBAQCB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjptZXJnZVRleHROb2Rlc0Fyb3VuZFBvc2l0aW9uKFBvc2l0aW9uJiBwb3NpdGlvbiwgUAogICAg
IH0KIH0KIAotRWRpdEFjdGlvbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0FjdGlv
bigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWRpdEFjdGlvbjsKLX0KLQogLy8gSWYgdGhlIHVz
ZXIgaXMgaW5zZXJ0aW5nIGEgbGlzdCBpbnRvIGFuIGV4aXN0aW5nIGxpc3QsIGluc3RlYWQgb2Yg
bmVzdGluZyB0aGUgbGlzdCwKIC8vIHdlIHB1dCB0aGUgbGlzdCBpdGVtcyBpbnRvIHRoZSBleGlz
dGluZyBsaXN0LgogTm9kZSogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Omluc2VydEFzTGlzdEl0
ZW1zKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBycExpc3RFbGVtZW50LCBOb2RlKiBpbnNlcnRp
b25CbG9jaywgY29uc3QgUG9zaXRpb24mIGluc2VydFBvcywgSW5zZXJ0ZWROb2RlcyYgaW5zZXJ0
ZWROb2RlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuaAppbmRleCBkODdjM2ZmLi45Y2ZkZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC00OCwxNyArNDgsMTYgQEAgcHVi
bGljOgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBDb21tYW5kT3B0aW9uczsKIAotICAgIHN0YXRp
YyBSZWY8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENvbW1hbmRPcHRpb25zIG9w
dGlvbnMsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvblBhc3RlKQorICAgIHN0YXRpYyBS
ZWY8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBDb21tYW5kT3B0aW9ucyBvcHRpb25z
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1l
bnQsIGZyYWdtZW50LCBvcHRpb25zLCBhY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIFdURjo6bW92ZShmcmFnbWVu
dCksIG9wdGlvbnMsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+LCBDb21tYW5kT3B0aW9ucywgRWRpdEFjdGlvbik7CisgICAgUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQoRG9jdW1lbnQmLCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiwgQ29tbWFuZE9wdGlv
bnMsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0
dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwotICAgIAorCiAgICAgY2xhc3Mg
SW5zZXJ0ZWROb2RlcyB7CiAgICAgcHVibGljOgogICAgICAgICB2b2lkIHJlc3BvbmRUb05vZGVJ
bnNlcnRpb24oTm9kZSopOwpAQCAtMTIwLDcgKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IG1fZG9jdW1lbnRGcmFnbWVudDsKICAgICBib29sIG1fcHJldmVu
dE5lc3Rpbmc7CiAgICAgYm9vbCBtX21vdmluZ1BhcmFncmFwaDsKLSAgICBFZGl0QWN0aW9uIG1f
ZWRpdEFjdGlvbjsKICAgICBib29sIG1fc2FuaXRpemVGcmFnbWVudDsKICAgICBib29sIG1fc2hv
dWxkTWVyZ2VFbmQ7CiAgICAgYm9vbCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNkZi4uZjA3NDQ0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0zNzQsNyArMzc0LDcg
QEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0cmluZyAmdGV4dCwgYm9v
bCBzZWxlY3RJbnNlcnRlZFRleHQpCiB2b2lkIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHRSdW5X
aXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNlbGVjdEluc2VydGVkVGV4
dCkKIHsKICAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwKLSAg
ICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9uTm9uZSA/IEluc2VydFRl
eHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcyA6IEluc2Vy
dFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7CisgICAgICAgIG1fY29tcG9z
aXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRUZXh0Q29tbWFuZDo6UmVi
YWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNlcnRUZXh0Q29tbWFuZDo6
UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb25UeXBpbmcpOwogCiAgICAgYXBwbHlD
b21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9uKCkpOwogCkBAIC0zOTUs
NyArMzk1LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3Io
KQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rp
b24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKElu
c2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAg
YXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6
Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlvblR5cGluZykpOwogICAg
IHR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZChJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNlbGVjdGlvbkF0ay5jcHAK
aW5kZXggN2MyMTM2NS4uMGZmYzMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
YXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBt
YXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBw
cnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0
eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JikK
IHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3Rh
dGlvbkNvbW1hbmRJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9u
Q29tbWFuZElPUy5jcHAKaW5kZXggYzE4ODMzOC4uMTM0YjIzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKQEAgLTM4LDcgKzM4
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRGljdGF0aW9uQ29tbWFuZElPUzo6RGljdGF0
aW9uQ29tbWFuZElPUyhEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4m
JiBkaWN0YXRpb25QaHJhc2VzLCBSZXRhaW5QdHI8aWQ+IG1ldGFkYXRhKQotICAgIDogQ29tcG9z
aXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1
bWVudCwgRWRpdEFjdGlvbkRpY3RhdGlvbikKICAgICAsIG1fZGljdGF0aW9uUGhyYXNlcyhXVEY6
Om1vdmUoZGljdGF0aW9uUGhyYXNlcykpCiAgICAgLCBtX21ldGFkYXRhKFdURjo6bW92ZShtZXRh
ZGF0YSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRp
b25Db21tYW5kSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9EaWN0YXRpb25Db21t
YW5kSU9TLmgKaW5kZXggYmY5MDc2NC4uYWM1Y2IyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaApAQCAtNDQsNyArNDQsNiBAQCBwcml2
YXRlOgogICAgIERpY3RhdGlvbkNvbW1hbmRJT1MoRG9jdW1lbnQmLCBWZWN0b3I8VmVjdG9yPFN0
cmluZz4+JiYgZGljdGF0aW9uUGhyYXNlcywgUmV0YWluUHRyPGlkPiBtZXRhZGF0YSk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRWRpdEFjdGlvbkRpY3Rh
dGlvbjsgfQogCiAgICAgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiBtX2RpY3RhdGlvblBocmFzZXM7
CiAgICAgUmV0YWluUHRyPGlkPiBtX21ldGFkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFjLi4xYTgyZWY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQpAQCAt
NDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0eUNvbnZlcnRTY3JlZW5S
ZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICAgICAKICAgICAK
LXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFu
Z2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZShjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQogewogICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICBpZiAobV9zZWxl
Y3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5lbmQoKS5pc05vdE51bGwo
KSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+ZXhpc3Rp
bmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbiht
X3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCksIEFYT2JqZWN0
Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7Cisg
ICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihtX3NlbGVj
dGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9zZWxlY3Rpb24pOwogICAg
IH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIuLjM2ODRlMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICByZXR1cm47CiAK
ICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9vbCB0ZXh0SXNDaGFuZ2Vk
ID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIFN0cmluZyBw
cmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQpOworICAgIGJvb2wg
dGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAgICAgaWYgKHRleHRJc0No
YW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisjaWYgSEFWRShBQ0NFU1NJ
QklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYm
IHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRv
Y3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgICAgICAgICAgY2FjaGUt
PnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhWYWx1ZUNoYW5nZWQsIFRh
cmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaW5uZXJU
ZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAg
IGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKICAgICAg
ICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkg
JiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVy
KCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50KCku
ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAgY2FjaGUtPnBvc3RUZXh0
UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhUZXh0RWRpdFR5cGVEZWxldGUsIHByZXZp
b3VzVmFsdWUsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlzaWJsZVBvc2l0aW9uKFBv
c2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSkpOworICAgICAg
ICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRl
cmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA5OWU2
ZDU5Li4yODNkMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAt
NTI0LDcgKzUyNCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoRHJh
Z0RhdGEmIGRyYWdEYXRhKQogICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpTbWFydFJlcGxhY2U7CiAgICAgICAgICAgICAgICAgaWYgKGNob3Nl
UGxhaW5UZXh0KQogICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpNYXRjaFN0eWxlOwotICAgICAgICAgICAgICAgIGFwcGx5Q29tbWFuZChSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCptX2RvY3VtZW50VW5kZXJNb3VzZSwgZnJhZ21l
bnQsIG9wdGlvbnMpKTsKKyAgICAgICAgICAgICAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2UsIFdURjo6bW92ZShmcmFn
bWVudCksIG9wdGlvbnMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggODg2Yzc2NS4uM2Q5ZmVmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIzOSw3ICszMjM5LDggQEAg
c3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgU2Vs
ZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc2Vs
ZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1lU2VsZWN0aW9uOjpkZWZh
dWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7CisgICAgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsIEFY
VGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXMsIEFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBzZWxlY3Rpb24uc2V0U2Vs
ZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rp
b25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCBoYW5k
bGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggNzdjMDdm
ZS4uZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAt
MzQwLDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5YgogICAgIGlmIChjYXJldEJy
b3dzaW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmlyc3RQb3NpdGlvbkluT3JC
ZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIG5ld1Nl
bGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwotICAgICAgICBpZiAoZnJh
bWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAg
ICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAg
ICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2VsZWN0aW9uIHsgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlVbmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25z
KFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAgICB9CiAgICAgfQogCiAgICAgZWxlbWVu
dC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNzY5Nzg4Ni4u
ZDQ2ZDg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA0LTI0ICBE
b3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIg
dGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hh
bmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAgICAgcG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlm
aWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJs
ZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28g
aW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBw
YXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0CisgICAgICAg
IGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nl
c3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZQor
ICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2Vi
IGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2VsZWN0aW9u
IGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JFZGl0QWN0aW9uKToKKwog
MjAxNS0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MzI2Ni4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCBkMjFjZGYw
Li5lNTkwZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01NDYsNiArNTQ2LDcgQEAgc3RhdGljIE5TU3RyaW5nKiB1
bmRvTmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGlkZW50aWNhbCB0byBjb2RlIGluIFdlYktpdDIncyBXZWJFZGl0Q29tbWFuZFBy
b3h5IGNsYXNzOyB3b3VsZCBiZSBuaWNlIHRvIHNoYXJlIHRoZSBzdHJpbmdzIGluc3RlYWQgb2Yg
aGF2aW5nIHR3byBjb3BpZXMuCiAgICAgc3dpdGNoIChlZGl0QWN0aW9uKSB7CiAgICAgICAgIGNh
c2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOiByZXR1cm4gbmlsOworICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25JbnNlcnQ6IHJldHVybiBuaWw7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9y
OiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IENvbG9yIiwgIlNldCBDb2xvciAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBjYXNlIEVk
aXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFM
KCJTZXQgQmFja2dyb3VuZCBDb2xvciIsICJTZXQgQmFja2dyb3VuZCBDb2xvciAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBjYXNlIEVkaXRBY3Rpb25U
dXJuT2ZmS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIlR1cm4gT2ZmIEtl
cm5pbmciLCAiVHVybiBPZmYgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rp
b24gbmFtZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDFlYzc4Y2MuLjM4N2FmMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxNS0wNC0yNCAgRG91ZyBSdXNzZWxsICA8ZF9ydXNzZWxsQGFwcGxl
LmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5vdGlmaWNhdGlvbnMgKDE0
MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJp
Y2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2Ug
QVhUZXh0RWRpdFR5cGUsCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24g
YW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUKKyAg
ICAgICAgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBj
aGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudAorICAgICAgICBhIG1lY2hhbmlz
bSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVz
Y2VkIHRpY2tzIHRvIHRod2FydAorICAgICAgICBhbmFseXppbmcgdGhlIGNhZGVuY2Ugb2YgY2hh
bmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxlY3Rpb24gY2hhbmdlIG5v
dGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCwKKyAgICAgICAg
YW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUKKyAgICAgICAgcmVsaWFibGUgY29udGV4dCBmb3Ig
cmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVjdGlvbi4gQWxzbyBibG9j
ayBwb3N0aW5nCisgICAgICAgIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBhc3N3b3JkIGZpZWxkcy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24pOgorCiAyMDE1
LTA0LTI0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTgzMjY2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDU0Y2UwM2MuLjg3ODU1OTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRpdENvbW1hbmRQcm94eS5j
cHAKQEAgLTc0LDYgKzc0LDggQEAgU3RyaW5nIFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JF
ZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICBzd2l0Y2ggKGVkaXRBY3Rpb24p
IHsKICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgogICAgICAgICByZXR1cm4gV0VCX1VJX1NU
UklOR19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVu
ZG8gYWN0aW9uIG5hbWUiKTsKICAgICBjYXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmYx
ZTc2Mi4uMzJhZjE5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA0LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1
c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZp
Y2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMu
IEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFz
c2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNw
b25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CisgICAgICAg
IGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxk
cyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0CisgICAgICAgIGFuYWx5emluZyB0aGUgY2Fk
ZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlv
biBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZQorICAgICAgICByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9u
LiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dv
cmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAoLVtBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXSk6CisgICAgICAgICgtW0FjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNlaXZlZDpdKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAg
ICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVy
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1bQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0pOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlm
aWNhdGlvbkxpc3RlbmVyKToKKwogMjAxNS0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MzI2
Ni4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyLmgKaW5kZXggMTkzODZjZS4uOTA4ZGJkYyAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5k
bGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAKIC0gKHZvaWQpc2V0UGxhdGZvcm1FbGVt
ZW50OihpZClwbGF0Zm9ybUVsZW1lbnQ7CiAtICh2b2lkKXNldENhbGxiYWNrOihKU09iamVjdFJl
ZiljYWxsYmFjazsKIC0gKHZvaWQpc3RhcnRPYnNlcnZpbmc7CistICh2b2lkKXN0b3BPYnNlcnZp
bmc7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4IGFkYTY4N2EuLmYxYzlh
ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEwNCw2ICsxMDQsMTEgQEAKICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2Vs
ZWN0b3I6QHNlbGVjdG9yKF9ub3RpZmljYXRpb25SZWNlaXZlZDopIG5hbWU6QCJBWERSVE5vdGlm
aWNhdGlvbiIgb2JqZWN0Om5pbF07CiB9CiAKKy0gKHZvaWQpc3RvcE9ic2VydmluZworeworICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2Vs
Zl07Cit9CisKIC0gKHZvaWQpX25vdGlmaWNhdGlvblJlY2VpdmVkOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewogICAgIE5TU3RyaW5nICpub3RpZmljYXRpb25OYW1lID0gW1tub3Rp
ZmljYXRpb24gdXNlckluZm9dIG9iamVjdEZvcktleTpAIm5vdGlmaWNhdGlvbk5hbWUiXTsKQEAg
LTExMiwxNiArMTE3LDI3IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZv
cm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0Ai
dXNlckluZm8iXTsKKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc05vdGlmaWNhdGlv
bihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdSZWZdKTsKICAgICBKU1Zh
bHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlU3RyaW5nKFttYWlu
RnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgpKTsKKyAgICBKU1ZhbHVl
UmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAgaWYgKFt1c2VySW5mb0pT
T05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1Vz
ZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUgY3JlYXRlSlNTdHJpbmdS
ZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IEpTVmFsdWVNYWtlRnJv
bUpTT05TdHJpbmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNVc2VySW5mb0pTT05WYWx1
ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVudCkgewotICAgICAgICAv
LyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBhcmd1bWVudCwgdGhlIG5v
dGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1bmN0aW9uKFttYWluRnJh
bWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjaywgMCwgMSwg
Jm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8g
QSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBu
YW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdl
dHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVB
cmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVu
dDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZyYW1lIGdsb2JhbENvbnRl
eHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIsIGFyZ3VtZW50cywgMCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxl
bWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAgICAgICBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZyYW1lIGdsb2JhbENvbnRl
eHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24gb2JqZWN0XSkpOwogICAg
ICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAgIGFy
Z3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwgbV9ub3RpZmljYXRpb25G
dW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0K
aW5kZXggNDY3M2ExZC4uMzk3YzYzOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0NDYsNiArMTQ0Niw3IEBA
IHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KQogICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUg
YSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX25vdGlmaWNh
dGlvbkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5n
XTsKICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90aWZpY2F0
aW9uSGFuZGxlciA9IG5pbDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAzZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEyNSwx
OSArMTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYmIG1fcGxhdGZvcm1FbGVt
ZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTlNT
dHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVzZXJJbmZvW0AidXNlcklu
Zm8iXTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0
TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgp
KTsKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0
Q29udGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzTm90
aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVKU1N0cmluZ1JlZl0pOwog
ICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VTdHJp
bmcoY29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpTVmFsdWVSZWYgdXNlcklu
Zm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJbmZvSlNPTlZhbHVlIGxl
bmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzVXNlckluZm9KU09O
VmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0cmluZ1JlZl0pOworICAg
ICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1ha2VGcm9tSlNPTlN0cmlu
Zyhjb250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAgICB9CiAgICAgaWYgKG1f
cGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZvciBvbmUgZWxlbWVudCBq
dXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5hbWUuCi0gICAgICAgIEpT
T2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9u
b3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1
bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0
cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAg
ICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBu
YW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAg
ICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJn
dW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RD
YWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX25vdGlmaWNh
dGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDApOworICAgIH0gZWxzZSB7
CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVsZW1lbnQsIG5vdGlmaWNh
dGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbM107
CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlvbiBvYmplY3RdKSkpOwog
ICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1lbnQ7CisgICAgICAg
IGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAgICAgICAgIEpTT2Jq
ZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9ub3Rp
ZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRzLCAwKTsKICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCBlZDAyZmI3
Li5lMjYwN2UxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0K
QEAgLTE0NzYsNiArMTQ3Niw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90
IGJlIHRyeWluZyB0byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgog
ICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9u
SGFuZGxlciBzdG9wT2JzZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVh
c2VdOwogICAgIG1fbm90aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251666</attachid>
            <date>2015-04-25 20:01:05 -0700</date>
            <delta_ts>2015-04-26 15:18:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>222816</size>
            <attacher name="Doug Russell">d_russell</attacher>
            
              <data encoding="base64">Y29tbWl0IGRhNTk2NDhkNjQyMjkwMTM2OTgyZmJhYjUwYjI5M2Q1MjUxYzYxNDgKQXV0aG9yOiBE
b3VnIFJ1c3NlbGwgPGRfcnVzc2VsbEBhcHBsZS5jb20+CkRhdGU6ICAgRnJpIEFwciAyNCAxNTo1
MDoxNyAyMDE1IC0wNzAwCgogICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3RpZmljYXRpb25z
ICgxNDI3MTkpCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
NzE5CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCiAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUgYXNz
aXN0aXZlCiAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5n
IHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CiAgICBhIG1lY2hhbmlz
bSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBmaWVsZHMgaW4gY29hbGVz
Y2VkIHRpY2tzIHRvIHRod2FydAogICAgYW5hbHl6aW5nIHRoZSBjYWRlbmNlIG9mIGNoYW5nZXMu
CiAgICAKICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAogICAgYW5kIGFuIG92ZXJs
b2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUg
dGVjaCBhcHBzIG1vcmUKICAgIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hh
bmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rpb24uIEFsc28gYmxvY2sgcG9zdGluZwogICAgc2Vs
ZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyODIxMjk4Li5jNzA3
MmVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTUtMDQtMjQgIERvdWcgUnVzc2VsbCAgPGRf
cnVzc2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IHJpY2hlciB0ZXh0IGNoYW5nZSBub3Rp
ZmljYXRpb25zICgxNDI3MTkpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDI3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9u
cy4gSW50cm9kdWNlIEFYVGV4dEVkaXRUeXBlLAorICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIGFuZCBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uIHRvIGdpdmUg
YXNzaXN0aXZlCisgICAgICAgIHRlY2ggYXBwcyBtb3JlIHJlbGlhYmxlIGNvbnRleHQgZm9yIHJl
c3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudC4gQWxzbyBpbXBsZW1lbnQKKyAgICAg
ICAgYSBtZWNoYW5pc20gdG8gcG9zdCB2YWx1ZSBjaGFuZ2VzIGluIHBhc3N3b3JkIGZvcm0gZmll
bGRzIGluIGNvYWxlc2NlZCB0aWNrcyB0byB0aHdhcnQKKyAgICAgICAgYW5hbHl6aW5nIHRoZSBj
YWRlbmNlIG9mIGNoYW5nZXMuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgc2VsZWN0
aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLiBJbnRyb2R1Y2UgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQsCisgICAgICAgIGFuZCBhbiBvdmVybG9hZCBvZiBwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZp
Y2F0aW9uIHRvIGdpdmUgYXNzaXN0aXZlIHRlY2ggYXBwcyBtb3JlCisgICAgICAgIHJlbGlhYmxl
IGNvbnRleHQgZm9yIHJlc3BvbmRpbmcgdG8gY2hhbmdlcyBpbiB3ZWIgY29udGVudCBzZWxlY3Rp
b24uIEFsc28gYmxvY2sgcG9zdGluZworICAgICAgICBzZWxlY3Rpb24gY2hhbmdlcyBvbiBwYXNz
d29yZCBmaWVsZHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1
dC1yZXBsYWNldmFsdWUtdXNlcmluZm8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8uaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2li
aWxpdHkvdmFsdWUtY2hhbmdlLXVzZXJpbmZvLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA0LTI0ICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIGZhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctcmVzaXplLWV2ZW50LWNvdW50Lmh0bWwgdGlt
ZXMgb3V0IG9uIFlvc2VtaXRlIFdLMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA0ZmIyOTIzLi5jM2RjMjc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI2MywzICsxMjYzLDYgQEAgd2Via2l0Lm9yZy9iLzE3
MDIyIFsgTW91bnRhaW5MaW9uIE1hdmVyaWNrcyBdIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLXBuZy5o
dG1sIFsgU2sKICMgT1MgWCAxMC4xMC4zKyBoYXMgdGhlIG5lY2Vzc2FyeSBnbHlwaHMuCiB3ZWJr
aXQub3JnL2IvMTQyNTQ4IFsgWW9zZW1pdGUrIF0gZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWJ5
LWNoYXJhY3Rlci0wMDcuaHRtbCBbIFBhc3MgXQogd2Via2l0Lm9yZy9iLzE0MTY2MSBbIFlvc2Vt
aXRlKyBdIGZhc3QvdGV4dC9lbW9qaS5odG1sIFsgUGFzcyBdCisKKyMgVGltaW5nIG91dCBvbiBZ
b3NlbWl0ZSAmIE1hdmVyaWNrcyBXSzEgcmVsZWFzZSBzb21ldGltZXMKK3dlYmtpdC5vcmcvYi8x
NDI3MTkgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0LXRleHQuaHRtbCBbIFBhc3Mg
VGltZW91dCBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJp
bmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5
L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5mby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhNmY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2lucHV0LXJlcGxhY2V2YWx1ZS11c2VyaW5m
by1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorICAKK1RoaXMgdGVzdHMgdmFsdWUgY2hh
bmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRl
bnRzIG9mIGFuIGlucHV0IGZpZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBhZGRlZE5vdGlmaWNhdGlvbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VW
YWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFs
dWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5n
ZVZhbHVlcyJdWzFdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMV1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVJbnNlcnQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1
ZSJdIGlzICIgIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVz
Il1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVJbnNlcnQKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFj
ZXZhbHVlLXVzZXJpbmZvLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS9pbnB1dC1yZXBsYWNldmFsdWUtdXNlcmluZm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kZTBkZTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvaW5wdXQtcmVwbGFjZXZhbHVlLXVzZXJpbmZvLmh0
bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vZWRpdGluZy9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5
Ij4KKworICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InNlY3VyZXZhbHVldGVzdCI+CisK
KyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InZhbHVldGVzdCI+CisKKyAgICA8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJub3RpZmljYXRpb25zIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisKKyAgICAgICAgZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdHMgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRh
dGEgd2hlbiByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGlucHV0IGZpZWxkLiIpOworCisg
ICAgICAgIHZhciBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIg
QVhUZXh0RWRpdFR5cGVEZWxldGUgPSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNl
cnQgPSBBWFRleHRFZGl0VHlwZURlbGV0ZSArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAw
OworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAg
ICAgICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25D
YWxsYmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZp
Y2F0aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOwor
ICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAg
aWYgKGNvdW50ID09IDIpIHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1
ZVwiXSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwi
XSIsICJBWFRleHRFZGl0VHlwZURlbGV0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRD
aGFuZ2VWYWx1ZVwiXSIsICJcIjFcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMV1bXCJBWFRleHRF
ZGl0VHlwZVwiXSIsICJBWFRleHRFZGl0VHlwZUluc2VydCIpOworCisgICAgICAgICAgICAgICAg
ICAgIC8vIFBhc3N3b3JkIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSBpbnNlcnQgb25seSBhbmQgdGhl
IHZhbHVlIHN0cmluZyB3aWxsIGJlIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAi
XCIgXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5k
ZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhU
ZXh0RWRpdFR5cGVJbnNlcnQiKTsKKworICAgICAgICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZXR2YWx1ZSgpIHsKKyAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2YWx1ZXRlc3QiKS52YWx1ZSA9ICIxIjsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIHNldHNlY3VyZXZhbHVlKCkgeworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY3VyZXZhbHVldGVzdCIpLnZhbHVlID0gIjEiOworICAg
ICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZhbHVldGVzdCIpLnZh
bHVlID0gIjAiOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VjdXJldmFsdWV0
ZXN0IikudmFsdWUgPSAiMCI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgeworICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKworICAgICAgICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5KHRydWUpOworCisgICAgICAgICAgICB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIucm9vdEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOworICAgICAgICAgICAgdmFy
IGFkZGVkTm90aWZpY2F0aW9uID0gd2ViQXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihub3Rp
ZmljYXRpb25DYWxsYmFjayk7CisgICAgICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRp
b24iLCAidHJ1ZSIpOworCisgICAgICAgICAgICBzZXR2YWx1ZSgpOworCisgICAgICAgICAgICBz
ZXRzZWN1cmV2YWx1ZSgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNz
aWJpbGl0eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1jaGFuZ2UtdXNlcmluZm8t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjJmZmQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24tY2hhbmdlLXVzZXJpbmZvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBA
CitvbmUgdHdvIHRocmVlLiBmb3VyIGZpdmUgc2l4LgorCitzZXZlbiBlaWdodCBuaW5lLgorCitU
aGlzIHRlc3RzIHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB1c2VyIGluZm8gZGF0YS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYWRkZWROb3RpZmljYXRpb24g
aXMgdHJ1ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUNoYXJhY3RlcgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uUHJldmlvdXMKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4
dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMg
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cworUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxp
bmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJd
IGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVj
dGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
Il0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uUHJldmlvdXMK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRl
eF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0c1tyZXN1
bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlv
bkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1v
dmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5
Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5n
ZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3Vs
dHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFY
VGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lu
bmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0g
aXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZQorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25H
cmFudWxhcml0eVBhcmFncmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJl
c3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRl
eHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFy
YWdyYXBoCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAor
UEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMg
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25N
b3ZlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiJdIGlzIEFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbkJlZ2lubmluZworUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kCitQ
QVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSJdIGlz
IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyCitQQVNTIHJlc3VsdHNbcmVzdWx0
SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5
cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlXb3JkCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0CitQQVNT
IHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1b
IkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJp
dHlTZW50ZW5jZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGly
ZWN0aW9uIl0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uRXh0ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxl
Y3Rpb25HcmFudWxhcml0eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZQorUEFT
UyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0
ZW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eSJdIGlzIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoCitQQVNTIHJlc3VsdHNb
cmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0CitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTdGF0ZUNo
YW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Il0gaXMgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJB
WFRleHRTZWxlY3Rpb25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQK
K1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFY
VGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVNlbnRlbmNlCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5kZXhdWyJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb24iXSBpcyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHkiXSBpcyBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaAorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
Il0gaXMgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHJlc3VsdHNbcmVzdWx0SW5k
ZXhdWyJBWFRleHRTdGF0ZUNoYW5nZVR5cGUiXSBpcyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5Il0gaXMgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudAorUEFTUyBy
ZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uIl0gaXMgQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uRW5kCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NzUzN2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24t
Y2hhbmdlLXVzZXJpbmZvLmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0wIGlkPSJ0
ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4KKzxwPm9uZSB0d28gdGhyZWUuIGZvdXIgZml2
ZSBzaXguPC9wPgorPHA+c2V2ZW4gZWlnaHQgbmluZS48L3A+Cis8L2Rpdj4KKworPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Im5vdGlm
aWNhdGlvbnMiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisg
ICAgdmFyIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUgPSAyOworICAgIHZhciBB
WFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgPSBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlICsgMTsKKworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25C
ZWdpbm5pbmcgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQgPSBBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25QcmV2aW91cyA9IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCArIDE7Cisg
ICAgdmFyIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQgPSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25QcmV2aW91cyArIDE7CisKKyAgICB2YXIgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlD
aGFyYWN0ZXIgPSAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQgPSBB
WFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciArIDE7CisgICAgdmFyIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZSA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5V29yZCAr
IDE7CisgICAgdmFyIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgPSBBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eUxpbmUgKyAxOworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eVBhcmFncmFwaCA9IEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UgKyAx
OworICAgIHZhciBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50ID0gQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGggKyAyOworCisgICAgdmFyIGdyYW4gPSBbImNoYXJh
Y3RlciIsICJ3b3JkIiwgInNlbnRlbmNlIiwgImxpbmUiLCAicGFyYWdyYXBoIiwgImxpbmVib3Vu
ZGFyeSIsICJzZW50ZW5jZWJvdW5kYXJ5IiwgInBhcmFncmFwaGJvdW5kYXJ5IiwgImRvY3VtZW50
Ym91bmRhcnkiXTsKKyAgICB2YXIgd2ViQXJlYSA9IDA7CisgICAgdmFyIGNvdW50ID0gMDsKKyAg
ICB2YXIgcmVzdWx0cyA9IFtdOworICAgIHZhciByZXN1bHRJbmRleCA9IDA7CisgICAgZnVuY3Rp
b24gbm90aWZpY2F0aW9uQ2FsbGJhY2sobm90aWZpY2F0aW9uLCB1c2VySW5mbykgeworICAgICAg
ICBpZiAobm90aWZpY2F0aW9uID09ICJBWFNlbGVjdGVkVGV4dENoYW5nZWQiKSB7CisgICAgICAg
ICAgICBjb3VudCsrOworICAgICAgICAgICAgaWYgKHVzZXJJbmZvKQorICAgICAgICAgICAgICAg
IHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gZ3Jhbi5s
ZW5ndGggKiA0KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyIik7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5V29yZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRT
ZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsr
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3Zl
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlX
b3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblBy
ZXZpb3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3Jh
bnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAg
ICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAi
QVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlTZW50ZW5jZSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwi
XSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cyIpOworCisgICAgICAgICAgICAg
ICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VU
eXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jl
c3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRz
W3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25OZXh0Iik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5l
Iik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVs
YXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVz
dWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFY
VGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIik7CisKKyAgICAgICAgICAgICAg
ICByZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3Vs
dEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0
aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0
ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5p
bmciKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJd
IiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxh
cml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCIpOworCisgICAgICAg
ICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVD
aGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRJbmRleCsrOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdElu
ZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVT
ZWxlY3Rpb25Nb3ZlIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlQYXJhZ3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0
c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2Vs
ZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0
YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGgiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
QmVnaW5uaW5nIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCsrOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlEb2N1bWVudCIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNl
bGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVwiXSIs
ICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50Iik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmluZyIpOworCisgICAgICAgICAg
ICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0
U2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAi
QVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0
SW5kZXggKz0gMjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRl
eF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2Vs
ZWN0aW9uRXh0ZW5kIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0
SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlXb3JkIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVz
dWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlv
bkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5U2Vu
dGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1b
XCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9u
TmV4dCIpOworCisgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXggKz0gMjsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5
cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uRXh0ZW5kIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9u
R3JhbnVsYXJpdHlcIl0iLCAiQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAg
ICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJd
IiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uXCJdIiwgIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbk5leHQiKTsKKworICAgICAgICAgICAg
ICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNb
cmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1
bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4
dFNlbGVjdGlvbkdyYW51bGFyaXR5TGluZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRl
eHRTZWxlY3Rpb25EaXJlY3Rpb25FbmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
ICs9IDI7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wi
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlv
bkV4dGVuZCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4
XVtcIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51
bGFyaXR5U2VudGVuY2UiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uRW5kIik7CisKKyAgICAgICAgICAgICAgICByZXN1bHRJbmRleCArPSAyOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eVwiXSIsICJBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhcmFn
cmFwaCIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblwiXSIsICJBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25F
bmQiKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IDI7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
XCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZCIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5XCJdIiwgIkFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5RG9jdW1lbnQiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1bHRJbmRleF1bXCJBWFRleHRTZWxl
Y3Rpb25EaXJlY3Rpb25cIl0iLCAiQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kIik7CisKKyAg
ICAgICAgICAgICAgICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAg
ICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAg
ICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5
KHRydWUpOworCisgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5yb290
RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgIHZhciBhZGRlZE5vdGlmaWNhdGlvbiA9
IHdlYkFyZWEuYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIobm90aWZpY2F0aW9uQ2FsbGJhY2spOwor
ICAgICAgICBzaG91bGRCZSgiYWRkZWROb3RpZmljYXRpb24iLCAidHJ1ZSIpOworCisgICAgICAg
IHRleHRib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGJveCIpOworICAgICAgICB0
ZXh0Ym94LmZvY3VzKCk7CisKKyAgICAgICAgLy8gVHJpZ2dlciBzZWxlY3Rpb24gY2hhbmdlcy4K
KyAgICAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHMuc2V0UG9z
aXRpb24odGV4dGJveCwgMCk7CisgICAgICAgIGZvciAodmFyIGkgaW4gZ3JhbikgeworICAgICAg
ICAgICAgcy5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsIGdyYW5baV0pOworICAgICAgICAgICAg
cy5tb2RpZnkoIm1vdmUiLCAiYmFja3dhcmQiLCBncmFuW2ldKTsKKyAgICAgICAgfQorICAgICAg
ICBmb3IgKHZhciBpIGluIGdyYW4pIHsKKyAgICAgICAgICAgIHMuc2V0UG9zaXRpb24odGV4dGJv
eCwgMCk7CisgICAgICAgICAgICBzLm1vZGlmeSgiZXh0ZW5kIiwgImZvcndhcmQiLCBncmFuW2ld
KTsKKyAgICAgICAgfQorICAgIH0KKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVl
LWNoYW5nZS11c2VyaW5mby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5M2FhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmlu
Zm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKzAyMzQ1Njc4OTAKK1RoaXMgdGVzdHMg
dmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMgdXNlciBpbmZvIGRhdGEuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGFkZGVkTm90aWZpY2F0aW9uIGlzIHRydWUKK1BBU1Mg
cmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5n
ZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jl
c3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMg
QVhUZXh0RWRpdFR5cGVDdXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJd
IGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1MgcmVzdWx0
c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIwIgorUEFTUyByZXN1bHRzW3Jlc3VsdElu
ZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0
RWRpdFR5cGVQYXN0ZQorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlIl0gaXMgQVhUZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdAorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dENoYW5nZVZhbHVlIl0gaXMg
IjIzNDU2Nzg5MCIKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVl
cyJdWzBdWyJBWFRleHRFZGl0VHlwZSJdIGlzIEFYVGV4dEVkaXRUeXBlUGFzdGUKK1BBU1MgcmVz
dWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRl
Q2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZh
bHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJdIGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3Vs
dEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1bMF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhU
ZXh0RWRpdFR5cGVUeXBpbmcKK1BBU1MgcmVzdWx0c1tyZXN1bHRJbmRleF1bIkFYVGV4dFN0YXRl
Q2hhbmdlVHlwZSJdIGlzIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQKK1BBU1MgcmVzdWx0c1ty
ZXN1bHRJbmRleF1bIkFYVGV4dENoYW5nZVZhbHVlcyJdWzBdWyJBWFRleHRDaGFuZ2VWYWx1ZSJd
IGlzICIxIgorUEFTUyByZXN1bHRzW3Jlc3VsdEluZGV4XVsiQVhUZXh0Q2hhbmdlVmFsdWVzIl1b
MF1bIkFYVGV4dEVkaXRUeXBlIl0gaXMgQVhUZXh0RWRpdFR5cGVEZWxldGUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8u
aHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3ZhbHVlLWNoYW5n
ZS11c2VyaW5mby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWQz
NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJp
bGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9lZGl0aW5nL2VkaXRpbmcuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCisgICAgPGRpdiByb2xlPSJ0ZXh0Ym94
IiB0YWJpbmRleD0wIGlkPSJ0ZXh0Ym94IiBjb250ZW50ZWRpdGFibGU9dHJ1ZT4wMTIzNDU2Nzg5
MDwvZGl2PgorCisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CisgICAgPGRpdiBpZD0ibm90aWZpY2F0aW9ucyI+PC9kaXY+CisKKyAgICA8
c2NyaXB0PgorCisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHZhbHVlIGNoYW5nZSBu
b3RpZmljYXRpb25zIHVzZXIgaW5mbyBkYXRhLiIpOworCisgICAgICAgIHZhciBBWFRleHRTdGF0
ZUNoYW5nZVR5cGVFZGl0ID0gMTsKKworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVEZWxldGUg
PSAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVJbnNlcnQgPSBBWFRleHRFZGl0VHlwZURl
bGV0ZSArIDE7CisgICAgICAgIHZhciBBWFRleHRFZGl0VHlwZVR5cGluZyA9IEFYVGV4dEVkaXRU
eXBlSW5zZXJ0ICsgMTsKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uID0gQVhU
ZXh0RWRpdFR5cGVUeXBpbmcgKyAxOworICAgICAgICB2YXIgQVhUZXh0RWRpdFR5cGVDdXQgPSBB
WFRleHRFZGl0VHlwZURpY3RhdGlvbiArIDEKKyAgICAgICAgdmFyIEFYVGV4dEVkaXRUeXBlUGFz
dGUgPSBBWFRleHRFZGl0VHlwZUN1dCArIDE7CisKKyAgICAgICAgdmFyIHdlYkFyZWEgPSAwOwor
ICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAg
ICB2YXIgcmVzdWx0SW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBub3RpZmljYXRpb25DYWxs
YmFjayhub3RpZmljYXRpb24sIHVzZXJJbmZvKSB7CisgICAgICAgICAgICBpZiAobm90aWZpY2F0
aW9uID09ICJBWFZhbHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAg
ICAgICAgICAgICAgIHJlc3VsdHMucHVzaCh1c2VySW5mbyk7CisgICAgICAgICAgICAgICAgaWYg
KGNvdW50ID09IDYpIHsKKworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1ty
ZXN1bHRJbmRleF1bXCJBWFRleHRTdGF0ZUNoYW5nZVR5cGVcIl0iLCAiQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlRWRpdCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRDaGFuZ2VWYWx1ZVwi
XSIsICJcIjBcIiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0c1tyZXN1
bHRJbmRleF1bXCJBWFRleHRDaGFuZ2VWYWx1ZXNcIl1bMF1bXCJBWFRleHRFZGl0VHlwZVwiXSIs
ICJBWFRleHRFZGl0VHlwZUN1dCIpOworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4
Kys7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtc
IkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFY
VGV4dENoYW5nZVZhbHVlc1wiXVswXVtcIkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRU
eXBlRGVsZXRlIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdl
VmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hhbmdlVmFsdWVcIl0iLCAiXCIwXCIiKTsKKyAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdl
VmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIp
OworCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlw
ZVwiXSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVsw
XVtcIkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMjM0NTY3ODkwXCIiKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFs
dWVzXCJdWzBdW1wiQVhUZXh0RWRpdFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVQYXN0ZSIpOwor
CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdEluZGV4Kys7CisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZVwi
XSIsICJBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0Iik7CisgICAgICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtc
IkFYVGV4dENoYW5nZVZhbHVlXCJdIiwgIlwiMVwiIik7CisgICAgICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHRzW3Jlc3VsdEluZGV4XVtcIkFYVGV4dENoYW5nZVZhbHVlc1wiXVswXVtc
IkFYVGV4dEVkaXRUeXBlXCJdIiwgIkFYVGV4dEVkaXRUeXBlVHlwaW5nIik7CisKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0SW5kZXgrKzsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InJlc3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0U3RhdGVDaGFuZ2VUeXBlXCJdIiwgIkFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0Q2hh
bmdlVmFsdWVcIl0iLCAiXCIxXCIiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJl
c3VsdHNbcmVzdWx0SW5kZXhdW1wiQVhUZXh0Q2hhbmdlVmFsdWVzXCJdWzBdW1wiQVhUZXh0RWRp
dFR5cGVcIl0iLCAiQVhUZXh0RWRpdFR5cGVEZWxldGUiKTsKKworICAgICAgICAgICAgICAgICAg
ICB3ZWJBcmVhLnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CisgICAgICAgICAgICAgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAod2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhh
bmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisKKyAgICAgICAgICAgIHdlYkFyZWEgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAg
ICB2YXIgYWRkZWROb3RpZmljYXRpb24gPSB3ZWJBcmVhLmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVy
KG5vdGlmaWNhdGlvbkNhbGxiYWNrKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJhZGRlZE5vdGlm
aWNhdGlvbiIsICJ0cnVlIik7CisKKyAgICAgICAgICAgIHZhciB0ZXh0Ym94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRleHRib3giKTsKKyAgICAgICAgICAgIHRleHRib3guZm9jdXMoKTsK
KworICAgICAgICAgICAgZXhlY1NldFNlbGVjdGlvbkNvbW1hbmQodGV4dGJveCwgMCk7CisgICAg
ICAgICAgICBleGVjRXh0ZW5kU2VsZWN0aW9uUmlnaHRCeUNoYXJhY3RlckNvbW1hbmQoKTsKKyAg
ICAgICAgICAgIGN1dENvbW1hbmQoKTsKKyAgICAgICAgICAgIGV4ZWNFeHRlbmRTZWxlY3Rpb25S
aWdodEJ5Q2hhcmFjdGVyQ29tbWFuZCgpOworICAgICAgICAgICAgcGFzdGVDb21tYW5kKCk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCIxIik7CisgICAgICAgICAgICBkZWxldGVD
b21tYW5kKCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzhlMjA1YS4uZTdjOTc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTE1MTMsNiArMTUxMyw4IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBlZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlTm9kZVBy
ZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9u
LmNwcAorICAgIGVkaXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCisg
ICAgZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0
aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA1YTU4NWYwLi45MDg1ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQwIEBACisyMDE1LTA0LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgor
CisgICAgICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFj
Y2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRF
ZGl0VHlwZSwKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9z
dFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0
ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMg
aW4gd2ViIGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBv
c3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlj
a3MgdG8gdGh3YXJ0CisgICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgor
CisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0
aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4g
b3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lz
dGl2ZSB0ZWNoIGFwcHMgbW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25k
aW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3Rp
bmcKKyAgICAgICAgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAg
ICAgIFRlc3RzOiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9pbnB1dC1yZXBsYWNldmFsdWUt
dXNlcmluZm8uaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
c2VsZWN0aW9uLWNoYW5nZS11c2VyaW5mby5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9t
YWMvYWNjZXNzaWJpbGl0eS92YWx1ZS1jaGFuZ2UtdXNlcmluZm8uaHRtbAorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpBWE9iamVjdENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6c2hvd0ludGVudCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpzZXRUZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omlz
UGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRW
YWx1ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
Ojpyb290V2ViQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0Q2hh
bmdlRm9yRWRpdFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2VsZWN0
ZWRDaGlsZHJlbkNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3RpZmljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6dGV4dENoYW5nZUZvckVkaXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpnZXRPckNyZWF0ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQ6
OkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkT3JDb250YWluaW5nUGFzc3dv
cmRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3
b3JkRmllbGQpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3NpdGlvblJhbmdlKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvQVhPYmplY3RDYWNoZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JUZXN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoK1tXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlm
aWNhdGlvbnM6XSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFz
ZSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoYXJyYXlSZW1v
dmluZ05vbkpTT05UeXBlcyk6CisgICAgICAgIChkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlw
ZXMpOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UgYWNjZXNz
aWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjp1c2VySW5mbzpdKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgor
ICAgICAgICAodGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMpOgorICAgICAgICAo
LVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJs
ZVBvc2l0aW9uczplbmRQb3NpdGlvbjpdKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmRO
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5n
TGluZUJyZWFrcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9BcHBs
eSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KToKKyAg
ICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpB
cHBlbmROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0
eWxlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlC
bG9ja1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
Lmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0Q29tbWFuZENvbXBvc2l0aW9uOjp1bmFwcGx5RWRpdFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2Rl
QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmRO
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21t
YW5kOjppbnNlcnRUZXh0SW50b05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRp
dENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Np
dGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRDb21tYW5kQ29tcG9zaXRpb246OmdldE5vZGVzSW5Db21tYW5kKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseVN0eWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWsp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2Vy
dE5vZGVBdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0Q29tbWFu
ZDo6cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2l0ZUVkaXRDb21tYW5kOjppbnB1dFRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9E
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZDo6ZGVsZXRlZFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21t
YW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQ6OnByZXNlcnZlc1R5cGluZ1N0eWxlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3RhdGlvbkNvbW1hbmQ6Omluc2Vy
dFRleHRSdW5XaXRob3V0TmV3bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGF0aW9uQ29t
bWFuZDo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRB
Y3Rpb24uaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRDb21tYW5kOjpFZGl0Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
Q29tbWFuZDo6ZWRpdGluZ0FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6
YXBwbHlFZGl0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0Q29tbWFuZDo6dW5hcHBseUVk
aXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUVkaXRDb21tYW5kOjpTaW1wbGVFZGl0
Q29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNj
ZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdENvbW1hbmQ6
OnNldFBhcmVudCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0Q29tbWFuZC5oOgor
ICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmhhbmRsZVRleHRFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRlbGV0ZVNlbGVjdGlvbldpdGhTbWFydERlbGV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBsaWVkRWRpdGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpwZXJmb3JtQ3V0T3JDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01p
c3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp0
cmFuc3Bvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVJbnNlcnRGcmFn
bWVudCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6bW92ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFuZFJldmVhbFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjp0ZXh0U2VsZWN0aW9uSW50ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjptb2RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNlbGVjdEFsbCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6d29yZFNl
bGVjdGlvbkNvbnRhaW5pbmdDYXJldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbjo6bW9kaWZ5TW92aW5nQmFja3dhcmQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVTZWxlY3Rpb246OnNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNl
bGVjdGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpzZWxl
Y3Rpb25BdFdvcmRTdGFydCk6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2li
aWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246OnNlbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogZWRpdGluZy9JbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNl
cnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOgorICAgICAgICAqIGVkaXRpbmcvSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQ6Omluc2VydGVkVGV4dCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnROb2RlQmVmb3JlQ29t
bWFuZDo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnROb2Rl
QmVmb3JlQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ6Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQpOgorICAgICAgICAqIGVkaXRp
bmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKToKKyAgICAgICAgKiBlZGl0
aW5nL0luc2VydFRleHRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydFRleHRD
b21tYW5kOjpJbnNlcnRUZXh0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRUZXh0
Q29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0VGV4dENvbW1hbmQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlV2l0aE1hcmtlclN1
cHBsaWVyKToKKyAgICAgICAgKiBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vdmVTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KToKKyAgICAgICAg
KiBlZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpSZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVO
b2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGlu
Zy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAgICAgICAqIGVk
aXRpbmcvUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oLgorICAgICAgICAqIGVkaXRp
bmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZXBsYWNlSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UpOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVu
Q29tbWFuZC5oLgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjpJbnNlcnRlZE5vZGVzOjpkaWRSZXBsYWNlTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6aW5zZXJ0QXNMaXN0SXRlbXMpOiBEZWxldGVk
LgorICAgICAgICAqIGVkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUpOgorICAgICAgICAqIGVk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5k
OjppbnNlcnRUZXh0UnVuV2l0aG91dE5ld2xpbmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGlu
Z0NvbW1hbmQ6Omluc2VydFBhcmFncmFwaFNlcGFyYXRvcik6CisgICAgICAgICogZWRpdGluZy9h
dGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rp
b246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGVk
aXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlj
dGF0aW9uQ29tbWFuZElPUzo6RGljdGF0aW9uQ29tbWFuZElPUyk6CisgICAgICAgICogZWRpdGlu
Zy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5oOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0ZyYW1l
U2VsZWN0aW9uTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlm
eUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldElubmVyVGV4dFZhbHVlKToKKyAgICAgICAgKiBwYWdlL0RyYWdD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVk
ZUVkaXREcmFnKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRJbml0aWFsS2V5Ym9hcmRTZWxlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2
YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKwogMjAxNS0wNC0yNCAgRW5yaWNhIENhc3VjY2kg
IDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgcmFuZ2VFeHBhbmRlZEFyb3VuZFBv
c2l0aW9uQnlDaGFyYWN0ZXJzIHRvIGFsbCBwbGF0Zm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAzNjlmNTJiLi45NmQ4OTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAg
LTE0Nzc3LDYgKzE0Nzc3LDM0IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAiPgor
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Jl
bGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5z
ZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxF
eGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0p
Jz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTk1NDUsNiArMTk1
NzMsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBY2Nlc3Np
YmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGFjY2Vzc2liaWxpdHlcQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYT2JqZWN0Q2FjaGUuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyV2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxwYWdlXEFkanVzdFZpZXdTaXplT3JOb3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBhZ2VcQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiIC8+CkBAIC0yMTA4Nyw2ICsyMTEx
Niw4IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVDb21t
YW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlbW92ZU5vZGVQ
cmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxlZGl0aW5nXFJlbmRlcmVkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcUmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRp
bmdcUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGVkaXRpbmdcU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCIgLz4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRl
eCBhMDMxODA4Li5mZTlmYjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zNTI1LDYgKzM1MjUsMTIgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5jcHAi
PgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVD
b21tYW5kLmNwcCI+CisgICAgICA8RmlsdGVyPmVkaXRpbmc8L0ZpbHRlcj4KKyAgICA8L0NsQ29t
cGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVwbGFjZUluc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgor
ICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBs
YWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5jcHAiPgogICAgICAgPEZpbHRlcj5lZGl0aW5nPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC03NjY4LDYgKzc2NzQsOSBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cYWNjZXNzaWJpbGl0eVxBWE9iamVjdENhY2hlLmgiPgogICAgICAgPEZp
bHRlcj5hY2Nlc3NpYmlsaXR5PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxhY2Nlc3NpYmlsaXR5XEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50Lmgi
PgorICAgICAgICA8RmlsdGVyPmFjY2Vzc2liaWxpdHk8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFjY2Vzc2liaWxpdHlcd2luXEFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyV2luLmgiPgogICAgICAgPEZpbHRlcj5hY2Nlc3NpYmlsaXR5XHdp
bjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA2NzcsNiArMTA2ODYsMTIgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcUmVuZGVyZWRQb3NpdGlvbi5oIj4KICAg
ICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgor
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIj4KKyAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgorICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZWRpdGluZ1xSZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5oIj4KICAgICAgIDxGaWx0ZXI+ZWRpdGluZzwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDhjYzdiNTQuLjliNTEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNTAsNiArMzI1MCw3IEBA
CiAJCTkwMDE3NzQxMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEy
RTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAx
Nzg4MDEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdFMTJFMDM3
MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovOyB9OwogCQk5MDAx
Nzg4MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3
MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkxQzlGMkY5
MUFFM0JFQjAwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTFDOUYyRjgxQUUzQkUyNDAwOTVC
NjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAwQzdFRTgzIC8qIFBh
Z2VHcm91cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLzsgfTsKIAkJOTMw
MkIwQkYwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAwQzdFRTgzIC8qIFBh
Z2VHcm91cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzMDVCMjREMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNUIyNEMwOThGMUI2QjAwQzI4ODU1IC8q
IFRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTYzOTUsNiArNjM5NiwxMCBAQAogCQlGNTJBRDVFNDE1MzQyNDVGMDA1OUZCRTYgLyogRW1w
dHlDbGllbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MkFENUUzMTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwICovOyB9Owog
CQlGNTQ0Rjc4ODE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU0NEY3ODYxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmNwcCAqLzsgfTsKIAkJRjU0NEY3ODkxNUNGQjJBODAw
QUYzM0E4IC8qIFBsYXRmb3JtTG9jYWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTQ0Rjc4NzE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2Nh
bGUuaCAqLzsgfTsKKwkJRjU1MjhEQTUxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTUyOERBMzFBQzEwMzNFMDAwRUY3QUQgLyogUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQuaCAqLzsgfTsKKwkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8qIFJl
cGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBs
YWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi87IH07CisJCUY1NTI4REE5MUFDMTA5
REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTUyOERBNzFBQzEwOURG
MDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovOyB9Owor
CQlGNTUyOERBQTFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
NTI4REE4MUFDMTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5
cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJ
RjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAw
M0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5w
dXRUeXBlLmNwcCAqLzsgfTsKQEAgLTEwNTAwLDYgKzEwNTA1LDcgQEAKIAkJOTAwMTc3M0YxMkUw
MzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAx
Nzg3RTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdGMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkxQzlGMkY4MUFFM0JFMjQwMDk1QjYxQyAvKiBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFn
ZUdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJFMEQ3OUY4MkMwMEM3
RUU4MyAvKiBQYWdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFn
ZUdyb3VwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDVCMjRDMDk4RjFCNkIw
MEMyODg1NSAvKiBUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwNDAsNiArMTQwNDYsMTAgQEAK
IAkJRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVtcHR5Q2xpZW50cy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbXB0eUNsaWVudHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1M
b2NhbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1M
b2NhbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTQ0Rjc4NzE1Q0ZCMkE4
MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGxhdGZvcm1Mb2NhbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjU1
MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8qIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlcGxhY2VEZWxldGVGcm9tVGV4
dE5vZGVDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE0MUFD
MTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE3MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1NTI4REE4MUFD
MTA5REYwMDBFRjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTVCM0Q3OTEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZVRleHRJbnB1dFR5cGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1
dHRvbklucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
dXR0b25JbnB1dFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU2NjEs
NiArMTU2NzEsNyBAQAogCQkJCTI5QTgxMjEzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5VGFibGVSb3cuaCAqLywKIAkJCQkyOTgxQ0FBRjEzMTgyMkVDMDBEMTJGMkEgLyogQVhPYmpl
Y3RDYWNoZS5jcHAgKi8sCiAJCQkJMjlBODEyMUEwRkJCOUMxRDAwNTEwMjkzIC8qIEFYT2JqZWN0
Q2FjaGUuaCAqLywKKwkJCQk5MUM5RjJGODFBRTNCRTI0MDA5NUI2MUMgLyogQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYWNjZXNzaWJpbGl0eTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNzc5NCw2ICsxNzgwNSwxMCBAQAogCQkJCTkzMzA5
REI4MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFu
ZC5oICovLAogCQkJCTlCMzJDREE4MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9u
LmNwcCAqLywKIAkJCQk5QjMyQ0RBNzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlv
bi5oICovLAorCQkJCUY1NTI4REE0MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjU1MjhEQTMxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmggKi8sCisJCQkJRjU1MjhEQTcxQUMx
MDlERjAwMEVGN0FEIC8qIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCAqLywK
KwkJCQlGNTUyOERBODFBQzEwOURGMDAwRUY3QUQgLyogUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCAqLywKIAkJCQlBODlDQ0M1MDBGNDRFOTgxMDBCNURBMTAgLyogUmVwbGFjZU5v
ZGVXaXRoU3BhbkNvbW1hbmQuY3BwICovLAogCQkJCUE4OUNDQzUxMEY0NEU5ODEwMEI1REExMCAv
KiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEw
MDU2RTU4MSAvKiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCkBAIC0yMzcyOCw2ICsy
Mzc0Myw3IEBACiAJCQkJNkM1NjhDQjExOURBRkVBMDAwNDMwQ0EyIC8qIE1hc2tJbWFnZU9wZXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBGQUYxNDk4MDBENDAwRkI1QkQ4IC8qIEFu
aW1hdGlvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE0RjY1NzIxQUE5OTdGMTAw
RTM4Q0REIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCUY1NTI4REE1MUFDMTAzM0UwMDBFRjdBRCAvKiBSZXBsYWNlRGVsZXRlRnJvbVRleHRO
b2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERDcwOTlFNjQ5MjAwNTZFNTgx
IC8qIEFwcGVuZE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThGNkJCRDBEQjU1
Q0RDMDAxREI3OTQgLyogQXBwbGljYXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4
RjZCQkYwREI1NUNEQzAwMURCNzk0IC8qIEFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNTY1Myw2ICsyNTY2OSw3IEBACiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5
MThGIC8qIEpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5
MTZDNDhFMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0
cFJlcXVlc3RVcGxvYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1NTI4REFBMUFDMTA5REYwMDBF
RjdBRCAvKiBSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFDRTUzRjcwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2VyaWFsaXplci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE3NjJDNzQwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFdmFsdWF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQ
YXRoRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzA2LDYgKzI2NzIzLDcgQEAKIAkJ
CQk3QzRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODNDMUQ0MjgxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNSZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTY5MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MUM5
RjJGOTFBRTNCRUIwMDA5NUI2MUMgLyogQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzQzFENDI5MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoQWJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQyQTE3OEQ1QUI0MDAx
NDFFNjggLyogU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjIyMjdBNkQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NDY0LDYgKzI4NDgyLDcgQEAKIAkJCQk1MTAxOTJE
MTE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3Nzk3OTE5MEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9j
dW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjU1MjhEQTYxQUMxMDMzRTAwMEVGN0FEIC8q
IFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUY1NUIzREMxMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwODk1ODI1NTBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0IwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlTWFjLm1t
IGluIFNvdXJjZXMgKi8sCkBAIC0yOTkxMSw2ICsyOTkzMCw3IEBACiAJCQkJRkUzNkZEMTYxNkM3
ODI2NTAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMkU2RTU5MENDNTUyMTMwMDRBMjA2MiAvKiBTUUxWYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0NDc2NTMxQjEzMzE3MDk5MDAwNkI3ODkgLyogU1NMS2V5R2VuZXJhdG9y
SU9TLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1NTI4REE5MUFDMTA5REYwMDBFRjdBRCAvKiBS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
M0YxOUFFNjA4MjQ1RTU5MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDN0ZBNjJFMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJh
bmdlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYTAwYjE1Yy4uNDNkNTg5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC05MCw2ICs5MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAorLy8gUG9zdCB2YWx1ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3Ig
cGFzc3dvcmQgZmllbGRzIG9yIGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBwYXNzd29yZCBmaWVsZHMg
YXQgYSA0MGh6IGludGVydmFsIHRvIHRod2FydCBhbmFseXNpcyBvZiB0eXBpbmcgY2FkZW5jZQor
c3RhdGljIGRvdWJsZSBBY2Nlc3NpYmlsaXR5UGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlv
bkludGVydmFsID0gMC4wMjU7CisKIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQVhDb21w
dXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlOjpnZXRJZ25vcmVkKEFYSUQgaWQpIGNvbnN0CiB7CiAg
ICAgSGFzaE1hcDxBWElELCBDYWNoZWRBWE9iamVjdEF0dHJpYnV0ZXM+Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IG1faWRNYXBwaW5nLmZpbmQoaWQpOwpAQCAtMTI5LDYgKzEzMiw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShib29sIGZs
YWcpCiBBWE9iamVjdENhY2hlOjpBWE9iamVjdENhY2hlKERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX25vdGlmaWNhdGlvblBvc3RUaW1lcigq
dGhpcywgJkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKQorICAgICwg
bV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lcigqdGhpcywgJkFYT2JqZWN0Q2FjaGU6OnBh
c3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpCiB7CiB9CiAKQEAgLTcwNSw3ICs3MDks
NyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAg
ICBSZWY8RG9jdW1lbnQ+IHByb3RlY3RvckZvckNhY2hlT3duZXIobV9kb2N1bWVudCk7CiAgICAg
bV9ub3RpZmljYXRpb25Qb3N0VGltZXIuc3RvcCgpOwogICAgIAotICAgIC8vIEluIERSVCwgcG9z
dGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVw
IG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZp
b3IKKyAgICAvLyBJbiB0ZXN0cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5
IHRvIGltbWVkaWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBs
ZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IKICAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24g
bGlzdCBpcyBjbGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhl
IHN0YXJ0LgogICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX25vdGlmaWNhdGlv
bnNUb1Bvc3QpOwogICAgIApAQCAtNzQyLDYgKzc0NiwyMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdl
ZChvYmotPnBhcmVudE9iamVjdCgpKTsKICAgICB9CiB9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCit7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgbV9wYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lci5zdG9wKCk7CisKKyAgICAv
LyBJbiB0ZXN0cywgcG9zdGluZyBub3RpZmljYXRpb25zIGhhcyBhIHRlbmRlbmN5IHRvIGltbWVk
aWF0ZWx5IHF1ZXVlIHVwIG90aGVyIG5vdGlmaWNhdGlvbnMsIHdoaWNoIGNhbiBsZWFkIHRvIHVu
ZXhwZWN0ZWQgYmVoYXZpb3IKKyAgICAvLyB3aGVuIHRoZSBub3RpZmljYXRpb24gbGlzdCBpcyBj
bGVhcmVkIGF0IHRoZSBlbmQuIEluc3RlYWQgY29weSB0aGlzIGxpc3QgYXQgdGhlIHN0YXJ0Lgor
ICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IFdURjo6bW92ZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9u
c1RvUG9zdCk7CisKKyAgICBmb3IgKGF1dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMp
CisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmlj
YXRpb24uZ2V0KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigp
KTsKKyNlbmRpZgorfQogICAgIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9u
KFJlbmRlck9iamVjdCogcmVuZGVyZXIsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9z
dFRhcmdldCBwb3N0VGFyZ2V0LCBQb3N0VHlwZSBwb3N0VHlwZSkKIHsKQEAgLTg1MCwxNiArODY4
LDIxOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIpCiAgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgQVhTZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZCwgVGFyZ2V0T2JzZXJ2YWJsZVBhcmVudCk7CiB9CiAKLXZvaWQg
QVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhU
ZXh0Q2hhbmdlIHRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0
KQorI2lmbmRlZiBOREVCVUcKK3ZvaWQgQVhPYmplY3RDYWNoZTo6c2hvd0ludGVudChjb25zdCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCAmaW50ZW50KQoreworICAgIHN3aXRjaCAoaW50ZW50LnR5
cGUpIHsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVua25vd246CisgICAgICAgIGRh
dGFMb2coIlVua25vd24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVFZGl0OgorICAgICAgICBkYXRhTG9nKCJFZGl0OjoiKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgorICAgICAgICBk
YXRhTG9nKCJNb3ZlOjoiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWFRleHRTdGF0ZUNo
YW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ6CisgICAgICAgIGRhdGFMb2coIkV4dGVuZDo6Iik7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGludGVudC50eXBlKSB7CisgICAgY2Fz
ZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LmNoYW5n
ZSkgeworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIGRh
dGFMb2coIlVua25vd24iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4
dEVkaXRUeXBlRGVsZXRlOgorICAgICAgICAgICAgZGF0YUxvZygiRGVsZXRlIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUluc2VydDoKKyAgICAgICAg
ICAgIGRhdGFMb2coIkluc2VydCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QVhUZXh0RWRpdFR5cGVEaWN0YXRpb246CisgICAgICAgICAgICBkYXRhTG9nKCJEaWN0YXRpb25J
bnNlcnQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dEVkaXRUeXBl
VHlwaW5nOgorICAgICAgICAgICAgZGF0YUxvZygiVHlwaW5nSW5zZXJ0Iik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgICAgIGRh
dGFMb2coIkN1dCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0RWRp
dFR5cGVQYXN0ZToKKyAgICAgICAgICAgIGRhdGFMb2coIlBhc3RlIik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYVGV4dFN0YXRlQ2hh
bmdlVHlwZVNlbGVjdGlvbk1vdmU6CisgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxl
Y3Rpb25FeHRlbmQ6CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24p
IHsKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Vbmtub3duOgorICAgICAg
ICAgICAgZGF0YUxvZygiVW5rbm93bjo6Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmc6CisgICAgICAgICAgICBkYXRh
TG9nKCJCZWdpbm5pbmc6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uRW5kOgorICAgICAgICAgICAgZGF0YUxvZygiRW5kOjoiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlv
blByZXZpb3VzOgorICAgICAgICAgICAgZGF0YUxvZygiUHJldmlvdXM6OiIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDoKKyAg
ICAgICAgICAgIGRhdGFMb2coIk5leHQ6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91czoKKyAgICAgICAgICAg
IGRhdGFMb2coIkRpc2NvbnRpZ3VvdXM6OiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbikgeworICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd246CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VsZWN0aW9uRGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICBjYXNlIEFYVGV4dFNlbGVj
dGlvbkRpcmVjdGlvbkVuZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25Q
cmV2aW91czoKKyAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAg
ICAgICAgICAgc3dpdGNoIChpbnRlbnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5KSB7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93bjoKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJVbmtub3duIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyOgorICAgICAgICAg
ICAgICAgIGRhdGFMb2coIkNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQ6CisgICAgICAgICAg
ICAgICAgZGF0YUxvZygiV29yZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUxpbmU6CisgICAgICAgICAgICAgICAg
ZGF0YUxvZygiTGluZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOgorICAgICAgICAgICAgICAgIGRh
dGFMb2coIlNlbnRlbmNlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5UGFyYWdyYXBoOgorICAgICAgICAgICAgICAg
IGRhdGFMb2coIlBhcmFncmFwaCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVBhZ2U6CisgICAgICAgICAgICAgICAg
ZGF0YUxvZygiUGFnZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OgorICAgICAgICAgICAgICAgIGRh
dGFMb2coIkRvY3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5QWxsOgorICAgICAgICAgICAgICAgIGRhdGFM
b2coIkFsbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29u
dGlndW91czoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBpZiAoaW50ZW50LmlzU3luY2hyb25pemluZykKKyAgICAgICAgZGF0YUxvZygi
LVN5bmMiKTsKKyAgICBkYXRhTG9nKCJcbiIpOworfQorI2VuZGlmCisKK3ZvaWQgQVhPYmplY3RD
YWNoZTo6c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRl
bnQpCit7CisgICAgbV90ZXh0U2VsZWN0aW9uSW50ZW50ID0gaW50ZW50OworfQorCitzdGF0aWMg
Ym9vbCBpc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmplY3QpCit7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bh
c3N3b3JkRmllbGQoKSB8fCBvYmplY3QtPmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOwor
fQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24o
Tm9kZSogbm9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAg
cmV0dXJuOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9i
amVjdEF0dHJpYnV0ZXMoKTsKIAotICAgIC8vIERlbGVnYXRlIG9uIHRoZSByaWdodCBwbGF0Zm9y
bQotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiA9IGdldE9yQ3JlYXRlKG5vZGUpOwotICAg
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCB0ZXh0Q2hhbmdlLCBvZmZz
ZXQsIHRleHQpOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRl
KG5vZGUpOworICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGlzUGFzc3dvcmRGaWVsZE9y
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIG9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAg
IHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIChpbnRlbnQu
dHlwZSA9PSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duKSA/IG1fdGV4dFNlbGVjdGlvbklu
dGVudCA6IGludGVudCwgc2VsZWN0aW9uKTsKKyNlbHNlCisgICAgcG9zdE5vdGlmaWNhdGlvbihu
b2RlLT5yZW5kZXJlcigpLCBBWE9iamVjdENhY2hlOjpBWFNlbGVjdGVkVGV4dENoYW5nZWQsIFRh
cmdldE9ic2VydmFibGVQYXJlbnQpOworICAgIFVOVVNFRF9QQVJBTShpbnRlbnQpOworICAgIFVO
VVNFRF9QQVJBTShzZWxlY3Rpb24pOworI2VuZGlmCisKKyAgICBzZXRUZXh0U2VsZWN0aW9uSW50
ZW50KEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh0eXBl
ICE9IEFYVGV4dEVkaXRUeXBlVW5rbm93bik7CisKKyAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2Jq
ZWN0QXR0cmlidXRlcygpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0ID0gZ2V0
T3JDcmVhdGUobm9kZSk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG9iamVjdCkgewor
ICAgICAgICBpZiAoZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24ob2JqZWN0
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZh
YmxlT2JqZWN0KCk7CisgICAgfQorCisgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKG9iamVjdCwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAgICBub2Rl
VGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZvckVkaXRU
eXBlKHR5cGUpLCBwb3NpdGlvbi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWRFZGl0aW5nT2Zm
c2V0KCksIHRleHQpOworI2VuZGlmCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSBkZWxldGlv
blR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlv
blR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHBvc2l0aW9uKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VS
VChkZWxldGlvblR5cGUgPT0gQVhUZXh0RWRpdFR5cGVEZWxldGUpOworICAgIEFTU0VSVChpbnNl
cnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlSW5zZXJ0IHx8IGluc2VydGlvblR5cGUgPT0gQVhU
ZXh0RWRpdFR5cGVUeXBpbmcgfHwgaW5zZXJ0aW9uVHlwZSA9PSBBWFRleHRFZGl0VHlwZURpY3Rh
dGlvbiB8fCBpbnNlcnRpb25UeXBlID09IEFYVGV4dEVkaXRUeXBlUGFzdGUpOworCisgICAgc3Rv
cENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKKworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCA9IGdldE9yQ3JlYXRlKG5vZGUpOworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKGVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdl
Tm90aWZpY2F0aW9uKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9iamVj
dCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOworICAgIH0KKworICAgIHBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIGRlbGV0aW9uVHlwZSwgZGVsZXRl
ZFRleHQsIGluc2VydGlvblR5cGUsIGluc2VydGVkVGV4dCwgcG9zaXRpb24pOworI2Vsc2UKKyAg
ICBub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKGRlbGV0aW9uVHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVj
YXRlZEVkaXRpbmdPZmZzZXQoKSwgZGVsZXRlZFRleHQpOworICAgIG5vZGVUZXh0Q2hhbmdlUGxh
dGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCB0ZXh0Q2hhbmdlRm9yRWRpdFR5cGUoaW5zZXJ0aW9u
VHlwZSksIHBvc2l0aW9uLmRlZXBFcXVpdmFsZW50KCkuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQo
KSwgaW5zZXJ0ZWRUZXh0KTsKKyNlbmRpZgorfQorCitib29sIEFYT2JqZWN0Q2FjaGU6OmVucXVl
dWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCkKK3sKKyAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZp
ZWxkKG9iamVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKKyAg
ICBpZiAoIW9ic2VydmFibGVPYmplY3QpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIC8vIHJldHVybiB0cnVlIGV2ZW4gdGhvdWdoIHRoZSBlbnF1ZXVlIGRpZG4ndCBo
YXBwZW4gYmVjYXVzZSB0aGlzIGlzIGEgcGFzc3dvcmQgZmllbGQgYW5kIGNhbGxlciBzaG91bGRu
J3QgcG9zdCBhIG5vdGlmaWNhdGlvbgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICBtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdC5hZGQob2JzZXJ2YWJsZU9iamVjdCk7Cisg
ICAgaWYgKCFtX3Bhc3N3b3JkTm90aWZpY2F0aW9uUG9zdFRpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90KEFjY2Vzc2li
aWxpdHlQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSW50ZXJ2YWwpOworCisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6ZnJhbWVMb2FkaW5nRXZlbnROb3Rp
ZmljYXRpb24oRnJhbWUqIGZyYW1lLCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCkBAIC0x
MDg0LDYgKzEzMDQsMTQgQEAgYm9vbCBpc05vZGVBcmlhVmlzaWJsZShOb2RlKiBub2RlKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmplY3RDYWNoZTo6
cm9vdFdlYkFyZWEoKQoreworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHJvb3RPYmplY3QgPSB0
aGlzLT5yb290T2JqZWN0KCk7CisgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2JqZWN0LT5p
c0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmplY3QpLndl
YkFyZWFPYmplY3QoKTsKK30KKwogQVhBdHRyaWJ1dGVDYWNoZUVuYWJsZXI6OkFYQXR0cmlidXRl
Q2FjaGVFbmFibGVyKEFYT2JqZWN0Q2FjaGUqIGNhY2hlKQogICAgIDogbV9jYWNoZShjYWNoZSkK
IHsKQEAgLTEwOTYsNiArMTMyNCwyNiBAQCBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6fkFYQXR0
cmlidXRlQ2FjaGVFbmFibGVyKCkKICAgICBpZiAobV9jYWNoZSkKICAgICAgICAgbV9jYWNoZS0+
c3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIH0KKworI2lmICFQTEFURk9S
TShDT0NPQSkKK0FYVGV4dENoYW5nZSBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlRm9yRWRpdFR5
cGUoQVhUZXh0RWRpdFR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNl
IEFYVGV4dEVkaXRUeXBlQ3V0OgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAg
ICAgIHJldHVybiBBWFRleHREZWxldGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6
CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjoKKyAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlVHlwaW5nOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJu
IEFYVGV4dEluc2VydGVkOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFY
VGV4dEluc2VydGVkOworfQorI2VuZGlmCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKaW5kZXggYmZh
OTI3Ny4uYTdhZmRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDEyICsyNiwxNCBAQAogI2lmbmRlZiBBWE9iamVj
dENhY2hlX2gKICNkZWZpbmUgQVhPYmplY3RDYWNoZV9oCiAKKyNpbmNsdWRlICJBWFRleHRTdGF0
ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNs
dWRlICJUaW1lci5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjcsNiArNjksMTAgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPEFYSUQsIENhY2hlZEFYT2JqZWN0QXR0cmlidXRlcz4gbV9pZE1hcHBpbmc7CiB9OwogCisj
aWYgIVBMQVRGT1JNKENPQ09BKQorZW51bSBBWFRleHRDaGFuZ2UgeyBBWFRleHRJbnNlcnRlZCwg
QVhUZXh0RGVsZXRlZCB9OworI2VuZGlmCisKIGVudW0gUG9zdFRhcmdldCB7IFRhcmdldEVsZW1l
bnQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQgfTsKIAogZW51bSBQb3N0VHlwZSB7IFBvc3RTeW5j
aHJvbm91c2x5LCBQb3N0QXN5bmNocm9ub3VzbHkgfTsKQEAgLTE4OSwxMiArMTk1LDE1IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0ID0gVGFyZ2V0RWxlbWVudCwgUG9zdFR5cGUgPSBQb3N0QXN5bmNocm9ub3VzbHkp
OwogICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgRG9jdW1l
bnQqLCBBWE5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCA9IFRhcmdldEVsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAotICAgIGVudW0gQVhUZXh0Q2hhbmdlIHsKLSAgICAg
ICAgQVhUZXh0SW5zZXJ0ZWQsCi0gICAgICAgIEFYVGV4dERlbGV0ZWQsCi0gICAgfTsKKyNpZm5k
ZWYgTkRFQlVHCisgICAgdm9pZCBzaG93SW50ZW50KGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50Jik7CisjZW5kaWYKKworICAgIHZvaWQgc2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRT
dGF0ZUNoYW5nZUludGVudCk7CiAKLSAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9u
KE5vZGUqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0
VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBw
b3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKE5vZGUqLCBBWFRleHRFZGl0VHlwZSBkZWxl
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2Vy
dGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKKyAgICB2b2lkIHBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIGNv
bnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwog
CiAgICAgZW51bSBBWExvYWRpbmdFdmVudCB7CiAgICAgICAgIEFYTG9hZGluZ1N0YXJ0ZWQsCkBA
IC0yMTMsMTIgKzIyMiwyNCBAQCBwdWJsaWM6CiAgICAgQVhDb21wdXRlZE9iamVjdEF0dHJpYnV0
ZUNhY2hlKiBjb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlKCkgeyByZXR1cm4gbV9jb21wdXRl
ZE9iamVjdEF0dHJpYnV0ZUNhY2hlLmdldCgpOyB9CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQo
KSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50OyB9Ci0gICAgCisKKyNpZiBQTEFURk9STShNQUMp
CisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKGJv
b2wgdmFsdWUpOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2b2lkIHBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhOb3RpZmljYXRpb24pOwogICAgIHZv
aWQgcGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChOb2RlKiBvbGRGb2N1c2Vk
Tm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogCi0gICAgdm9pZCBub2RlVGV4dENoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVu
c2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJik7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
dm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCosIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYpOworICAgIHZvaWQgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CisgICAgdm9pZCBwb3N0VGV4dFJlcGxhY2VtZW50UGxh
dGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBj
b25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJik7CisjZWxzZQorICAgIHN0YXRpYyBBWFRleHRDaGFuZ2UgdGV4dENoYW5nZUZv
ckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKTsKKyAgICB2b2lkIG5vZGVUZXh0Q2hhbmdlUGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENoYW5nZSwgdW5zaWdu
ZWQsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAgICB2b2lkIGZyYW1lTG9hZGluZ0V2ZW50
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50
KTsKICAgICB2b2lkIHRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lk
IGxhYmVsQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0yMjksNiArMjUwLDIxIEBAIHByb3RlY3RlZDoK
ICAgICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4pIHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVz
LmNvbnRhaW5zKG4pOyB9CiAKIHByaXZhdGU6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcm9v
dFdlYkFyZWEoKTsKKworICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1h
Z2VNYXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CisKKyAgICBBWElEIGdldEFYSUQoQWNj
ZXNzaWJpbGl0eU9iamVjdCopOworCisgICAgdm9pZCBub3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCgpOworCisgICAgYm9vbCBlbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0Kik7CisgICAgdm9pZCBwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKCk7CisKKyAgICB2b2lkIGhhbmRsZU1lbnVPcGVuZWQoTm9kZSopOworICAgIHZv
aWQgaGFuZGxlTGl2ZVJlZ2lvbkNyZWF0ZWQoTm9kZSopOworICAgIHZvaWQgaGFuZGxlTWVudUl0
ZW1TZWxlY3RlZChOb2RlKik7CisKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBIYXNo
TWFwPEFYSUQsIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0Pj4gbV9vYmplY3RzOwogICAgIEhh
c2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwpAQCAtMjM4
LDE5ICsyNzQsMTcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QVhDb21wdXRlZE9i
amVjdEF0dHJpYnV0ZUNhY2hlPiBtX2NvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2FjaGU7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZ0FjY2Vzc2liaWxpdHlFbmFibGVkOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJm
YWNlRW5hYmxlZDsKLSAgICAKKwogICAgIEhhc2hTZXQ8QVhJRD4gbV9pZHNJblVzZTsKLSAgICAK
KwogICAgIFRpbWVyIG1fbm90aWZpY2F0aW9uUG9zdFRpbWVyOwogICAgIFZlY3RvcjxzdGQ6OnBh
aXI8UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBBWE5vdGlmaWNhdGlvbj4+IG1fbm90aWZp
Y2F0aW9uc1RvUG9zdDsKLSAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCk7Ci0g
ICAgdm9pZCBoYW5kbGVNZW51T3BlbmVkKE5vZGUqKTsKLSAgICB2b2lkIGhhbmRsZUxpdmVSZWdp
b25DcmVhdGVkKE5vZGUqKTsKLSAgICB2b2lkIGhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSop
OwotICAgIAotICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VNYXBV
SUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7Ci0gICAgCi0gICAgQVhJRCBnZXRBWElEKEFjY2Vz
c2liaWxpdHlPYmplY3QqKTsKKworICAgIFRpbWVyIG1fcGFzc3dvcmROb3RpZmljYXRpb25Qb3N0
VGltZXI7CisKKyAgICBMaXN0SGFzaFNldDxSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4+IG1f
cGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0OworCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQgbV90ZXh0U2VsZWN0aW9uSW50ZW50OwogfTsKIAogY2xhc3MgQVhBdHRyaWJ1dGVDYWNoZUVu
YWJsZXIKQEAgLTMwOCw4ICszNDIsOSBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVTY3JvbGxiYXJVcGRhdGUoU2Nyb2xsVmlldyopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgRWxlbWVu
dCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVjb21wdXRlSXNJZ25vcmVkKFJl
bmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xs
ZWRUb0FuY2hvcihjb25zdCBOb2RlKikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpu
b2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwg
Y29uc3QgU3RyaW5nJikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFu
Z2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSosIGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpIHsgfQoraW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiwg
QVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIHsg
fQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbihOb2RlKiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBl
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIERv
Y3VtZW50KiwgQVhOb3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0KiwgQVhO
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQsIFBvc3RUeXBlKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSosIEFYTm90aWZpY2F0aW9uLCBQb3N0VGFy
Z2V0LCBQb3N0VHlwZSkgeyB9CkBAIC0zMjAsNiArMzU1LDE0IEBAIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnJlbW92ZShOb2RlKikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpy
ZW1vdmUoV2lkZ2V0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENo
aWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KKyNpZiBQTEFURk9STShDT0NP
QSkKK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgY29uc3QgQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CitpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0
RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IH0KKyNlbHNlCitpbmxpbmUgQVhUZXh0Q2hhbmdlIEFY
T2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VGb3JFZGl0VHlwZShBWFRleHRFZGl0VHlwZSkgeyByZXR1
cm4gQVhUZXh0SW5zZXJ0ZWQ7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vZGVUZXh0
Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYVGV4dENo
YW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiAjZW5kaWYKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWFRleHRTdGF0ZUNoYW5n
ZUludGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YzI2NGYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50LmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50X2gK
KyNkZWZpbmUgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgCitlbnVtIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZSB7CisgICAgQVhUZXh0U3RhdGVDaGFu
Z2VUeXBlVW5rbm93biwKKyAgICBBWFRleHRTdGF0ZUNoYW5nZVR5cGVFZGl0LAorICAgIEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbk1vdmUsCisgICAgQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kCit9OworCitlbnVtIEFYVGV4dEVkaXRUeXBlIHsKKyAgICBBWFRleHRF
ZGl0VHlwZVVua25vd24sCisgICAgQVhUZXh0RWRpdFR5cGVEZWxldGUsIC8vIEdlbmVyaWMgdGV4
dCBkZWxldGUKKyAgICBBWFRleHRFZGl0VHlwZUluc2VydCwgLy8gR2VuZXJpYyB0ZXh0IGluc2Vy
dAorICAgIEFYVGV4dEVkaXRUeXBlVHlwaW5nLCAvLyBJbnNlcnQgdmlhIHR5cGluZworICAgIEFY
VGV4dEVkaXRUeXBlRGljdGF0aW9uLCAvLyBJbnNlcnQgdmlhIGRpY3RhdGlvbgorICAgIEFYVGV4
dEVkaXRUeXBlQ3V0LCAvLyBEZWxldGUgdmlhIEN1dAorICAgIEFYVGV4dEVkaXRUeXBlUGFzdGUg
Ly8gSW5zZXJ0IHZpYSBQYXN0ZQorfTsKKworZW51bSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb24g
eworICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblVua25vd24sCisgICAgQVhUZXh0U2VsZWN0
aW9uRGlyZWN0aW9uQmVnaW5uaW5nLAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCwK
KyAgICBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25QcmV2aW91cywKKyAgICBBWFRleHRTZWxlY3Rp
b25EaXJlY3Rpb25OZXh0LAorICAgIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3Vv
dXMKK307CisKK2VudW0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgeworICAgIEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0
eUNoYXJhY3RlciwKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVdvcmQsCisgICAgQVhU
ZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlMaW5lLAorICAgIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFy
aXR5U2VudGVuY2UsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJhZ3JhcGgsCisg
ICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYWdlLAorICAgIEFYVGV4dFNlbGVjdGlvbkdy
YW51bGFyaXR5RG9jdW1lbnQsCisgICAgQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlBbGwgLy8g
QWxsIGdyYW51bGFyaXR5IHJlcHJlc2VudHMgdGhlIGFjdGlvbiBvZiBzZWxlY3RpbmcgdGhlIHdo
b2xlIGRvY3VtZW50IGFzIGEgc2luZ2xlIGFjdGlvbi4gRXh0ZW5kaW5nIHNlbGVjdGlvbiBieSBz
b21lIG90aGVyIGdyYW51bGFyaXR5IHVudGlsIGl0IGVuY29tcGFzc2VzIHRoZSB3aG9sZSBkb2N1
bWVudCB3aWxsIG5vdCByZXN1bHQgaW4gYSBhbGwgZ3JhbnVsYXJpdHkgbm90aWZpY2F0aW9uLgor
fTsKKworc3RydWN0IEFYVGV4dFNlbGVjdGlvbiB7CisgICAgQVhUZXh0U2VsZWN0aW9uRGlyZWN0
aW9uIGRpcmVjdGlvbjsKKyAgICBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0
eTsKK307CisKK3N0cnVjdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB7CisgICAgQVhUZXh0U3Rh
dGVDaGFuZ2VUeXBlIHR5cGU7CisgICAgdW5pb24geworICAgICAgICBBWFRleHRTZWxlY3Rpb24g
c2VsZWN0aW9uOworICAgICAgICBBWFRleHRFZGl0VHlwZSBjaGFuZ2U7CisgICAgfTsKKyAgICBi
b29sIGlzU3luY2hyb25pemluZyB7IGZhbHNlIH07CisKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGUgdHlwZSA9IEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVVu
a25vd24sIEFYVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24gPSBBWFRleHRTZWxlY3Rpb24oKSkKKyAg
ICAgICAgOiB0eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKHNlbGVjdGlvbikKKyAgICB7
IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dEVkaXRUeXBlIGNoYW5nZSkK
KyAgICAgICAgOiB0eXBlKEFYVGV4dFN0YXRlQ2hhbmdlVHlwZUVkaXQpCisgICAgICAgICwgY2hh
bmdlKGNoYW5nZSkKKyAgICB7IH0KKworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZSB0eXBlLCBib29sIGlzU3luY2hyb25pemluZykKKyAgICAgICAgOiB0
eXBlKHR5cGUpCisgICAgICAgICwgc2VsZWN0aW9uKCkKKyAgICAgICAgLCBpc1N5bmNocm9uaXpp
bmcoaXNTeW5jaHJvbml6aW5nKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHR5cGUgPT0gQVhUZXh0
U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSB8fCB0eXBlID09IEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbkV4dGVuZCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCBkOGQyNmRlLi40MzhlODUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNTUyLDYgKzU1MiwyNyBAQCBib29sIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAogICAgIHJldHVybiBpbnB1dEVs
ZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpOwogfQogCitBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6cGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmll
bGQoKQoreworICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVudCgpKSB7CisgICAgICAgIGlmIChpbnB1dEVs
ZW1lbnQtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAg
fQorCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICBpZiAo
IWVsZW1lbnQgfHwgIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGF4T2JqZWN0Q2Fj
aGUoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlLT5nZXRPckNyZWF0ZShlbGVtZW50KTsKKworICAg
IHJldHVybiBudWxscHRyOworfQorCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lu
cHV0SW1hZ2UoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmgKaW5kZXggM2U3NTcyZi4uYTgyYmQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtODgsNiArODgs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhc3N3b3JkRmllbGRPckNvbnRhaW5p
bmdQYXNzd29yZEZpZWxkKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJ
bmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVs
ZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKaW5kZXggNWEyN2VhOC4uY2IzMzgwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yNjQ2
LDQgKzI2NDYsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9h
cmRET01FdmVudERpc3BhdGNoKGJvb2wgb24pCiB9CiAjZW5kaWYKIAorYm9vbCBBY2Nlc3NpYmls
aXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0Cit7CisgICAgTm9k
ZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAKKyAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBVbmtub3duUm9sZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNo
YWRvd0hvc3QoKTsKKyAgICByZXR1cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkgJiYg
ZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmlzUGFzc3dvcmRGaWVsZCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDM1ODZmMmEuLjgxNmMzMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oCkBAIC00NjMsNiArNDYzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2
ZUltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFn
ZUJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUGFz
c3dvcmRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBpc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVj
dCogcGFzc3dvcmRGaWVsZE9yQ29udGFpbmluZ1Bhc3N3b3JkRmllbGQoKSB7IHJldHVybiBudWxs
cHRyOyB9CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVW
YWx1ZSgpID09IFdlYkFyZWFSb2xlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBlOWQyYTUy
Li41MGZkYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE0OTEsMTQgKzE0OTEsMTcgQEAg
UGxhaW5UZXh0UmFuZ2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFu
Z2UoKSBjb25zdAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFRl
eHRSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKGlzTmF0aXZl
VGV4dENvbnRyb2woKSkgeworICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChB
WFRleHRTdGF0ZUNoYW5nZUludGVudChyYW5nZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5
cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0
cnVlKSk7CiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCA9
IGRvd25jYXN0PFJlbmRlclRleHRDb250cm9sPigqbV9yZW5kZXJlcikudGV4dEZvcm1Db250cm9s
RWxlbWVudCgpOwogICAgICAgICB0ZXh0Q29udHJvbC5zZXRTZWxlY3Rpb25SYW5nZShyYW5nZS5z
dGFydCwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgTm9kZSogbm9kZSA9IG1fcmVuZGVyZXItPm5vZGUoKTsKLSAgICBtX3JlbmRlcmVy
LT5mcmFtZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKFBvc2l0
aW9uKG5vZGUsIHJhbmdlLnN0YXJ0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5jaG9y
KSwKLSAgICAgICAgUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgsIFBv
c2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBET1dOU1RSRUFNKSk7CisgICAgVmlz
aWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQsIFBv
c2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IpLCBQb3NpdGlvbihub2RlLCByYW5nZS5z
dGFydCArIHJhbmdlLmxlbmd0aCwgUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciks
IERPV05TVFJFQU0pOworICAgIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IG5ld0ludGVudChyYW5n
ZS5sZW5ndGggPyBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQgOiBBWFRleHRT
dGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKTsKKyAgICBtX3JlbmRlcmVyLT5mcmFt
ZSgpLnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9u
OjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBuZXdJbnRlbnQpOwogfQogCiBVUkwgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXJsKCkgY29uc3QKQEAgLTE5NjMsMTMgKzE5NjYsMTYg
QEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlY3RlZFZpc2libGVQb3Np
dGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3MKIHsKICAgICBpZiAocmFuZ2Uuc3RhcnQuaXNOdWxs
KCkgfHwgcmFuZ2UuZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICAv
LyBtYWtlIHNlbGVjdGlvbiBhbmQgdGVsbCB0aGUgZG9jdW1lbnQgdG8gdXNlIGl0LiBpZiBpdCdz
IHplcm8gbGVuZ3RoLCB0aGVuIG1vdmUgdG8gdGhhdCBwb3NpdGlvbgotICAgIGlmIChyYW5nZS5z
dGFydCA9PSByYW5nZS5lbmQpCisgICAgaWYgKHJhbmdlLnN0YXJ0ID09IHJhbmdlLmVuZCkgewor
ICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCkpCisgICAg
ICAgICAgICBjYWNoZS0+c2V0VGV4dFNlbGVjdGlvbkludGVudChBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudChBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlLCB0cnVlKSk7CiAgICAgICAg
IG1fcmVuZGVyZXItPmZyYW1lKCkuc2VsZWN0aW9uKCkubW92ZVRvKHJhbmdlLnN0YXJ0LCBVc2Vy
VHJpZ2dlcmVkKTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24g
bmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5zdGFydCwgcmFuZ2UuZW5kKTsK
LSAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKTsKKyAgICAgICAgbV9yZW5kZXJlci0+ZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlv
bk9wdGlvbnMoKSwgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kLCB0cnVlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKaW5kZXggYzYy
Yzc1My4uMGM0NjRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJy
aWRlOwogCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogd2ViQXJlYU9iamVjdCgpIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZp
ZXcqKTsKICAgICAKQEAgLTcxLDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVy
cmlkZTsKICAgICAKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29u
c3Q7CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNzaWJpbGl0eVNj
cm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCByZW1vdmVD
aGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDU4NTJh
MGYuLmFlMjU2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0yNjgsMTAgKzI2OCwxMCBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZQogICAgIC8vIFNlbGVjdCB0aGUgcmlnaHQgc2lnbmFsIHRvIGJlIGVtaXR0
ZWQKICAgICBDU3RyaW5nIGRldGFpbDsKICAgICBzd2l0Y2ggKHRleHRDaGFuZ2UpIHsKLSAgICBj
YXNlIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dEluc2VydGVkOgorICAgIGNhc2UgQVhUZXh0SW5zZXJ0
ZWQ6CiAgICAgICAgIGRldGFpbCA9ICJ0ZXh0LWluc2VydCI7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQVhPYmplY3RDYWNoZTo6QVhUZXh0RGVsZXRlZDoKKyAgICBjYXNlIEFYVGV4dERlbGV0
ZWQ6CiAgICAgICAgIGRldGFpbCA9ICJ0ZXh0LXJlbW92ZSI7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0
Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENh
Y2hlSU9TLm1tCmluZGV4IDExOWUwYjAwLi5jY2M5ZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2FjaGVJT1MubW0KQEAgLTk1LDggKzk1
LDE5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgW29iai0+d3JhcHBlcigpIGFjY2Vz
c2liaWxpdHlQb3N0ZWROb3RpZmljYXRpb246bm90aWZpY2F0aW9uU3RyaW5nXTsKIH0KIAotdm9p
ZCBBWE9iamVjdENhY2hlOjpub2RlVGV4dENoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqLCBBWFRleHRDaGFuZ2UsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKQor
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKQogeworICAgIHBvc3RQbGF0Zm9ybU5vdGlm
aWNhdGlvbihvYmplY3QsIEFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCk7Cit9CisKK3ZvaWQgQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpCit7CisgICAgcG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVj
dCwgQVhWYWx1ZUNoYW5nZWQpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVw
bGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3Qs
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sKKyAgICBwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6
ZnJhbWVMb2FkaW5nRXZlbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBheEZyYW1lT2JqZWN0LCBBWExvYWRpbmdFdmVudCBsb2FkaW5nRXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRl
eCBiMzAwZTc3Li5mMTg3OTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTQ0LDYgKzQ0LDUzIEBACiAjZGVmaW5l
IE5TQWNjZXNzaWJpbGl0eUxpdmVSZWdpb25DcmVhdGVkTm90aWZpY2F0aW9uIEAiQVhMaXZlUmVn
aW9uQ3JlYXRlZCIKICNlbmRpZgogCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNo
YW5nZVR5cGVLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtl
eSBAIkFYVGV4dFN0YXRlQ2hhbmdlVHlwZSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJp
bGl0eVRleHRTdGF0ZVN5bmNLZXkKKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlU3lu
Y0tleSBAIkFYVGV4dFN0YXRlU3luYyIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0
eVRleHRTZWxlY3Rpb25EaXJlY3Rpb24KKyNkZWZpbmUgTlNBY2Nlc3NpYmlsaXR5VGV4dFNlbGVj
dGlvbkRpcmVjdGlvbiBAIkFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbiIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRTZWxlY3Rpb25HcmFudWxhcml0eQorI2RlZmluZSBOU0Fj
Y2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHkgQCJBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eSIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRFZGl0VHlwZQor
I2RlZmluZSBOU0FjY2Vzc2liaWxpdHlUZXh0RWRpdFR5cGUgQCJBWFRleHRFZGl0VHlwZSIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZXMKKyNkZWZpbmUg
TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlcyBAIkFYVGV4dENoYW5nZVZhbHVlcyIKKyNl
bmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZQorI2RlZmluZSBO
U0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWUgQCJBWFRleHRDaGFuZ2VWYWx1ZSIKKyNlbmRp
ZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZUxlbmd0aAorI2RlZmlu
ZSBOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGggQCJBWFRleHRDaGFuZ2VWYWx1
ZUxlbmd0aCIKKyNlbmRpZgorCisjaWZuZGVmIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1
ZVN0YXJ0TWFya2VyCisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VWYWx1ZVN0YXJ0
TWFya2VyIEAiQVhUZXh0Q2hhbmdlVmFsdWVTdGFydE1hcmtlciIKKyNlbmRpZgorCisjaWZuZGVm
IE5TQWNjZXNzaWJpbGl0eVRleHRDaGFuZ2VFbGVtZW50CisjZGVmaW5lIE5TQWNjZXNzaWJpbGl0
eVRleHRDaGFuZ2VFbGVtZW50IEAiQVhUZXh0Q2hhbmdlRWxlbWVudCIKKyNlbmRpZgorCisjaWZu
ZGVmIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlCisjZGVm
aW5lIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlIEAiQVhT
ZWxlY3RlZFRleHRNYXJrZXJSYW5nZSIKKyNlbmRpZgorCisvLyBWZXJ5IGxhcmdlIHN0cmluZ3Mg
Y2FuIG5lZ2F0aXZlbHkgaW1wYWN0IHRoZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zLCBz
byB0aGlzIGxlbmd0aCBpcyBjaG9zZW4gdG8gdHJ5IHRvIGZpdCBhbiBhdmVyYWdlIHBhcmFncmFw
aCBvciBsaW5lIG9mIHRleHQsIGJ1dCBub3QgYWxsb3cgc3RyaW5ncyB0byBiZSBsYXJnZSBlbm91
Z2ggdG8gaHVydCBwZXJmb3JtYW5jZS4KK3N0YXRpYyBjb25zdCBOU1VJbnRlZ2VyIEFYVmFsdWVD
aGFuZ2VUcnVuY2F0aW9uTGVuZ3RoID0gMTAwMDsKKwogLy8gVGhlIHNpbXBsZSBDb2NvYSBjYWxs
cyBpbiB0aGlzIGZpbGUgZG9uJ3QgdGhyb3cgZXhjZXB0aW9ucy4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNjAsNiArMTA3LDIxIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBl
cihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCiAgICAgb2JqLT5zZXRXcmFwcGVyKHdyYXBwZXIu
Z2V0KCkpOwogfQogCitzdGF0aWMgQk9PTCBheFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnNGb3JU
ZXN0cyA9IGZhbHNlOworCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9zdE5vdGlm
aWNhdGlvbnNGb3JUZXN0cyhib29sIHZhbHVlKQoreworICAgIGF4U2hvdWxkUmVwb3N0Tm90aWZp
Y2F0aW9uc0ZvclRlc3RzID0gdmFsdWU7Cit9CisKK3N0YXRpYyB2b2lkIEFYUG9zdE5vdGlmaWNh
dGlvbldpdGhVc2VySW5mbyhpZCBvYmplY3QsIE5TU3RyaW5nICpub3RpZmljYXRpb24sIGlkIHVz
ZXJJbmZvKQoreworICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb25XaXRoVXNlcklu
Zm8ob2JqZWN0LCBub3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKyAgICAvLyBUbyBzaW1wbGlmeSBt
b25pdG9yaW5nIGZvciBub3RpZmljYXRpb25zIGluIHRlc3RzLCByZXBvc3QgYXMgYSBzaW1wbGUg
TlNOb3RpZmljYXRpb24gaW5zdGVhZCBvZiBmb3JjaW5nIHRlc3QgaW5mcmFzdHVjdHVyZSB0byBz
ZXR1cCBhbiBJUEMgY2xpZW50IGFuZCBkbyBhbGwgdGhlIHRyYW5zbGF0aW9uIGJldHdlZW4gV2Vi
Q29yZSB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIHR5cGVzIGFuZCBiYWNrCisgICAg
aWYgKFVOTElLRUxZKGF4U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uc0ZvclRlc3RzKSkKKyAgICAg
ICAgW29iamVjdCBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbiB1
c2VySW5mbzp1c2VySW5mb107Cit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljYXRpb24gbm90
aWZpY2F0aW9uKQogewogICAgIGlmICghb2JqKQpAQCAtMTQ5LDE1ICsyMTEsMTE0IEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaiwgQVhOb3RpZmljCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBBU1NFUlQoW29iai0+d3JhcHBlcigpIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRdIHx8IHRydWUpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotICAgIAotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRpb24ob2JqLT53cmFwcGVy
KCksIG1hY05vdGlmaWNhdGlvbik7Ci0gICAgCi0gICAgLy8gVXNlZCBieSBEUlQgdG8ga25vdyB3
aGVuIG5vdGlmaWNhdGlvbnMgYXJlIHBvc3RlZC4KLSAgICBbb2JqLT53cmFwcGVyKCkgYWNjZXNz
aWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjptYWNOb3RpZmljYXRpb25dOworCisgICAgQVhQb3N0
Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iai0+d3JhcHBlcigpLCBtYWNOb3RpZmljYXRpb24s
IG5pbCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uKQoreworICAgIGlmICghb2JqZWN0KQorICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgp
OworCisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTXV0YWJsZURp
Y3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0
aENhcGFjaXR5OjVdOworICAgIGlmIChpbnRlbnQuaXNTeW5jaHJvbml6aW5nKQorICAgICAgICBb
dXNlckluZm8gc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdIGZvcktleTpO
U0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVTeW5jS2V5XTsKKyAgICBpZiAoaW50ZW50LnR5cGUgIT0g
QVhUZXh0U3RhdGVDaGFuZ2VUeXBlVW5rbm93bikgeworICAgICAgICBbdXNlckluZm8gc2V0T2Jq
ZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50OmludGVudC50eXBlXSBmb3JLZXk6TlNBY2Nlc3Np
YmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV07CisgICAgICAgIHN3aXRjaCAoaW50ZW50LnR5
cGUpIHsKKyAgICAgICAgY2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25Nb3ZlOgor
ICAgICAgICBjYXNlIEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNlbGVjdGlvbkV4dGVuZDoKKyAgICAg
ICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aW50ZW50
LnNlbGVjdGlvbi5kaXJlY3Rpb25dIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uXTsKKyAgICAgICAgICAgIHN3aXRjaCAoaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rp
b24pIHsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uVW5rbm93bjoK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQVhUZXh0U2VsZWN0aW9u
RGlyZWN0aW9uQmVnaW5uaW5nOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQ6CisgICAgICAgICAgICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZp
b3VzOgorICAgICAgICAgICAgY2FzZSBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25OZXh0OgorICAg
ICAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6
aW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eV0gZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRT
ZWxlY3Rpb25HcmFudWxhcml0eV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRpc2NvbnRpZ3VvdXM6CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVVbmtub3duOgorICAgICAgICBjYXNlIEFYVGV4dFN0
YXRlQ2hhbmdlVHlwZUVkaXQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K
KyAgICBpZiAoIXNlbGVjdGlvbi5pc05vbmUoKSkgeworICAgICAgICBpZiAoaWQgdGV4dE1hcmtl
clJhbmdlID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9z
aXRpb25zOnNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKSBlbmRQb3NpdGlvbjpzZWxlY3Rpb24udmlz
aWJsZUVuZCgpXSkKKyAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6dGV4dE1hcmtlclJh
bmdlIGZvcktleTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRNYXJrZXJSYW5nZUF0dHJpYnV0
ZV07CisgICAgfQorCisgICAgaWYgKGlkIHdyYXBwZXIgPSBvYmplY3QtPndyYXBwZXIoKSkKKyAg
ICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDp3cmFwcGVyIGZvcktleTpOU0FjY2Vzc2liaWxpdHlU
ZXh0Q2hhbmdlRWxlbWVudF07CisKKyAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRoVXNlckluZm8o
cm9vdFdlYkFyZWEoKS0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFu
Z2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVz
ZXJJbmZvKG9iamVjdC0+d3JhcHBlcigpLCBOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZFRleHRDaGFu
Z2VkTm90aWZpY2F0aW9uLCB1c2VySW5mbyk7CisKKyAgICBbdXNlckluZm8gcmVsZWFzZV07CiB9
CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25lZCwgY29uc3QgU3Ry
aW5nJikKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKnRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25h
cnkoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHN0cmluZywgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKKyAg
ICBOU1N0cmluZyAqdGV4dCA9IChOU1N0cmluZyAqKXN0cmluZzsKKyAgICBOU1VJbnRlZ2VyIGxl
bmd0aCA9IFt0ZXh0IGxlbmd0aF07CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBu
aWw7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqY2hhbmdlID0gW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOworICAgIFtjaGFuZ2Ugc2V0T2JqZWN0OltO
U051bWJlciBudW1iZXJXaXRoSW50OnR5cGVdIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0RWRp
dFR5cGVdOworICAgIGlmIChsZW5ndGggPiBBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxlbmd0aCkg
eworICAgICAgICBbY2hhbmdlIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpsZW5n
dGhdIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlVmFsdWVMZW5ndGhdOworICAgICAg
ICB0ZXh0ID0gW3RleHQgc3Vic3RyaW5nVG9JbmRleDpBWFZhbHVlQ2hhbmdlVHJ1bmNhdGlvbkxl
bmd0aF07CisgICAgfQorICAgIFtjaGFuZ2Ugc2V0T2JqZWN0OnRleHQgZm9yS2V5Ok5TQWNjZXNz
aWJpbGl0eVRleHRDaGFuZ2VWYWx1ZV07CisgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpKSB7
CisgICAgICAgIGlmIChpZCB0ZXh0TWFya2VyID0gW29iamVjdC0+d3JhcHBlcigpIHRleHRNYXJr
ZXJGb3JWaXNpYmxlUG9zaXRpb246cG9zaXRpb25dKQorICAgICAgICAgICAgW2NoYW5nZSBzZXRP
YmplY3Q6dGV4dE1hcmtlciBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3Rh
cnRNYXJrZXJdOworICAgIH0KKyAgICByZXR1cm4gW2NoYW5nZSBhdXRvcmVsZWFzZV07Cit9CisK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAg
IGlmICghdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhUZXh0RWRpdFR5cGVVbmtub3du
LCAiIiwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNl
cnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFv
YmplY3QpCisgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CisKKyAgICBpZiAoIW9iamVj
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqdXNlckluZm8g
PSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6NF07CisgICAg
dXNlckluZm9bTlNBY2Nlc3NpYmlsaXR5VGV4dFN0YXRlQ2hhbmdlVHlwZUtleV0gPSBAKEFYVGV4
dFN0YXRlQ2hhbmdlVHlwZUVkaXQpOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmNoYW5nZXMgPSBb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjJdOworICAgIGlmIChOU0Rp
Y3Rpb25hcnkgKmNoYW5nZSA9IHRleHRSZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqZWN0
LCBkZWxldGlvblR5cGUsIGRlbGV0ZWRUZXh0LCBwb3NpdGlvbikpCisgICAgICAgIFtjaGFuZ2Vz
IGFkZE9iamVjdDpjaGFuZ2VdOworICAgIGlmIChOU0RpY3Rpb25hcnkgKmNoYW5nZSA9IHRleHRS
ZXBsYWNlbWVudENoYW5nZURpY3Rpb25hcnkob2JqZWN0LCBpbnNlcnRpb25UeXBlLCBpbnNlcnRl
ZFRleHQsIHBvc2l0aW9uKSkKKyAgICAgICAgW2NoYW5nZXMgYWRkT2JqZWN0OmNoYW5nZV07Cisg
ICAgaWYgKGNoYW5nZXMuY291bnQpCisgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6Y2hhbmdl
cyBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlc107CisgICAgW2NoYW5nZXMg
cmVsZWFzZV07CisKKyAgICBpZiAoaWQgd3JhcHBlciA9IG9iamVjdC0+d3JhcHBlcigpKQorICAg
ICAgICB1c2VySW5mb1tOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdlRWxlbWVudF0gPSB3cmFwcGVy
OworCisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKHJvb3RXZWJBcmVhKCktPndy
YXBwZXIoKSwgTlNBY2Nlc3NpYmlsaXR5VmFsdWVDaGFuZ2VkTm90aWZpY2F0aW9uLCB1c2VySW5m
byk7CisgICAgQVhQb3N0Tm90aWZpY2F0aW9uV2l0aFVzZXJJbmZvKG9iamVjdC0+d3JhcHBlcigp
LCBOU0FjY2Vzc2liaWxpdHlWYWx1ZUNoYW5nZWROb3RpZmljYXRpb24sIHVzZXJJbmZvKTsKKwor
ICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAogdm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxv
YWRpbmdFdmVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4RnJh
bWVPYmplY3QsIEFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLmgKaW5kZXggNWUwNmMzNS4uYjkzNDE4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLmgKQEAgLTU2LDggKzU2LDkgQEAgY2xhc3MgVmlz
aWJsZVBvc2l0aW9uOwogLSAoTlNTdHJpbmcgKilhcmlhTGFuZG1hcmtSb2xlRGVzY3JpcHRpb247
CiAKIC0gKGlkKWF0dGFjaG1lbnRWaWV3OwotLy8gVXNlZCB0byBpbmZvcm0gYW4gZWxlbWVudCB3
aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3IgaXQuIFVzZWQgYnkgRFJULgorLy8gVXNl
ZCB0byBpbmZvcm0gYW4gZWxlbWVudCB3aGVuIGEgbm90aWZpY2F0aW9uIGlzIHBvc3RlZCBmb3Ig
aXQuIFVzZWQgYnkgdGVzdHMuCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlQb3N0ZWROb3RpZmljYXRp
b246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZTsKKy0gKHZvaWQpYWNjZXNzaWJpbGl0eVBv
c3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1lIHVzZXJJbmZvOihO
U0RpY3Rpb25hcnkgKil1c2VySW5mbzsKIAogLSAoQ0dQYXRoUmVmKWNvbnZlcnRQYXRoVG9TY3Jl
ZW5TcGFjZTooV2ViQ29yZTo6UGF0aCAmKXBhdGg7CiAtIChDR1BvaW50KWNvbnZlcnRQb2ludFRv
U2NyZWVuU3BhY2U6KFdlYkNvcmU6OkZsb2F0UG9pbnQgJilwb2ludDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyQmFzZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQppbmRleCA1ZGRmYzNhLi5lOGIyZWYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC0zODMsMTMgKzM4Myw2OSBA
QCBzdGF0aWMgQk9PTCBhY2Nlc3NpYmlsaXR5U2hvdWxkUmVwb3N0Tm90aWZpY2F0aW9uczsKICsg
KHZvaWQpYWNjZXNzaWJpbGl0eVNldFNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnM6KEJPT0wpcmVw
b3N0CiB7CiAgICAgYWNjZXNzaWJpbGl0eVNob3VsZFJlcG9zdE5vdGlmaWNhdGlvbnMgPSByZXBv
c3Q7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIEFYT2JqZWN0Q2FjaGU6OnNldFNob3VsZFJlcG9z
dE5vdGlmaWNhdGlvbnNGb3JUZXN0cyhyZXBvc3QpOworI2VuZGlmCiB9CiAKIC0gKHZvaWQpYWNj
ZXNzaWJpbGl0eVBvc3RlZE5vdGlmaWNhdGlvbjooTlNTdHJpbmcgKilub3RpZmljYXRpb25OYW1l
CiB7CisgICAgaWYgKGFjY2Vzc2liaWxpdHlTaG91bGRSZXBvc3ROb3RpZmljYXRpb25zKQorICAg
ICAgICBbc2VsZiBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbk5h
bWUgdXNlckluZm86bmlsXTsKK30KKworc3RhdGljIE5TQXJyYXkgKmFycmF5UmVtb3ZpbmdOb25K
U09OVHlwZXMoTlNBcnJheSAqYXJyYXkpCit7CisgICAgQVNTRVJUKFthcnJheSBpc0tpbmRPZkNs
YXNzOltOU0FycmF5IGNsYXNzXV0pOworICAgIE5TTXV0YWJsZUFycmF5ICptdXRhYmxlQXJyYXkg
PSBbYXJyYXkgbXV0YWJsZUNvcHldOworICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IFtt
dXRhYmxlQXJyYXkgY291bnRdOykgeworICAgICAgICBpZCB2YWx1ZSA9IFttdXRhYmxlQXJyYXkg
b2JqZWN0QXRJbmRleDppXTsKKyAgICAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU0Rp
Y3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIFttdXRhYmxlQXJyYXkgcmVwbGFjZU9iamVj
dEF0SW5kZXg6aSB3aXRoT2JqZWN0OmRpY3Rpb25hcnlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1
ZSldOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFz
c11dKQorICAgICAgICAgICAgW211dGFibGVBcnJheSByZXBsYWNlT2JqZWN0QXRJbmRleDppIHdp
dGhPYmplY3Q6YXJyYXlSZW1vdmluZ05vbkpTT05UeXBlcyh2YWx1ZSldOworICAgICAgICBlbHNl
IGlmICghKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dIHx8IFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKSkgeworICAgICAgICAgICAgW211dGFibGVB
cnJheSByZW1vdmVPYmplY3RBdEluZGV4OmldOworICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIH0KKyAgICAgICAgaSsrOworICAgIH0KKyAgICByZXR1cm4gW211dGFibGVBcnJheSBhdXRv
cmVsZWFzZV07Cit9CisKK3N0YXRpYyBOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnlSZW1vdmluZ05v
bkpTT05UeXBlcyhOU0RpY3Rpb25hcnkgKmRpY3Rpb25hcnkpCit7CisgICAgQVNTRVJUKFtkaWN0
aW9uYXJ5IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAgICBOU011dGFi
bGVEaWN0aW9uYXJ5ICptdXRhYmxlRGljdGlvbmFyeSA9IFtkaWN0aW9uYXJ5IG11dGFibGVDb3B5
XTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gZGljdGlvbmFyeSkgeworICAgICAgICBpZCB2
YWx1ZSA9IFtkaWN0aW9uYXJ5IG9iamVjdEZvcktleTprZXldOworICAgICAgICBpZiAoW3ZhbHVl
IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFi
bGVEaWN0aW9uYXJ5IHNldE9iamVjdDpkaWN0aW9uYXJ5UmVtb3ZpbmdOb25KU09OVHlwZXModmFs
dWUpIGZvcktleTprZXldOworICAgICAgICBlbHNlIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpb
TlNBcnJheSBjbGFzc11dKQorICAgICAgICAgICAgW211dGFibGVEaWN0aW9uYXJ5IHNldE9iamVj
dDphcnJheVJlbW92aW5nTm9uSlNPTlR5cGVzKHZhbHVlKSBmb3JLZXk6a2V5XTsKKyAgICAgICAg
ZWxzZSBpZiAoIShbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSB8fCBbdmFs
dWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkpCisgICAgICAgICAgICBbbXV0YWJs
ZURpY3Rpb25hcnkgcmVtb3ZlT2JqZWN0Rm9yS2V5OmtleV07CisgICAgfQorICAgIHJldHVybiBb
bXV0YWJsZURpY3Rpb25hcnkgYXV0b3JlbGVhc2VdOworfQorCistICh2b2lkKWFjY2Vzc2liaWxp
dHlQb3N0ZWROb3RpZmljYXRpb246KE5TU3RyaW5nICopbm90aWZpY2F0aW9uTmFtZSB1c2VySW5m
bzooTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KK3sKICAgICBpZiAoYWNjZXNzaWJpbGl0eVNob3Vs
ZFJlcG9zdE5vdGlmaWNhdGlvbnMpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiB1c2VySW5mbyA9
IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25O
YW1lLCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmlj
YXRpb24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOnVzZXJJbmZvXTsKKyAgICAgICAgQVNTRVJUKG5v
dGlmaWNhdGlvbk5hbWUpOworICAgICAgICBOU0RpY3Rpb25hcnkgKmluZm8gPSBuaWw7CisgICAg
ICAgIGlmICh1c2VySW5mbykgeworICAgICAgICAgICAgTlNEYXRhICp1c2VySW5mb0RhdGEgPSBb
TlNKU09OU2VyaWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeVJlbW92aW5n
Tm9uSlNPTlR5cGVzKHVzZXJJbmZvKSBvcHRpb25zOihOU0pTT05Xcml0aW5nT3B0aW9ucykwIGVy
cm9yOm5pbF07CisgICAgICAgICAgICBpZiAodXNlckluZm9EYXRhKSB7CisgICAgICAgICAgICAg
ICAgTlNTdHJpbmcgKnVzZXJJbmZvU3RyaW5nID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhE
YXRhOnVzZXJJbmZvRGF0YSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CisgICAgICAg
ICAgICAgICAgaWYgKHVzZXJJbmZvU3RyaW5nKQorICAgICAgICAgICAgICAgICAgICBpbmZvID0g
W05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOm5vdGlmaWNhdGlvbk5h
bWUsIEAibm90aWZpY2F0aW9uTmFtZSIsIHVzZXJJbmZvU3RyaW5nLCBAInVzZXJJbmZvIiwgbmls
XTsKKyAgICAgICAgICAgICAgICBbdXNlckluZm9TdHJpbmcgcmVsZWFzZV07CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpbmZvKQorICAgICAgICAgICAgaW5mbyA9IFtO
U0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czpub3RpZmljYXRpb25OYW1l
LCBAIm5vdGlmaWNhdGlvbk5hbWUiLCBuaWxdOworICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOkAiQVhEUlROb3RpZmljYXRp
b24iIG9iamVjdDpzZWxmIHVzZXJJbmZvOmluZm9dOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLmgKaW5kZXggMzhjNWNkMC4uMWYwZWNiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5oCkBAIC0zMyw2ICszMyw5IEBACiAKIEBpbnRl
cmZhY2UgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgOiBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UKIAorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlv
bnM6KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3Np
dGlvbjooY29uc3QgV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uJillbmRQb3NpdGlvbjsKKy0gKGlk
KXRleHRNYXJrZXJGb3JWaXNpYmxlUG9zaXRpb246KGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3Np
dGlvbiYpdmlzaWJsZVBvczsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRl
eCBmYWNkMzNiLi44MjExMDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1h
Yy5tbQpAQCAtMTEzNiwxNCArMTEzNiwxNCBAQCBzdGF0aWMgTlNTdHJpbmcqIG5zU3RyaW5nRm9y
UmVwbGFjZWROb2RlKE5vZGUqIHJlcGxhY2VkTm9kZSkKICAgICByZXR1cm4gW2F0dHJTdHJpbmcg
YXV0b3JlbGVhc2VdOwogfQogCi1zdGF0aWMgaWQgdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQ
b3NpdGlvbnMoQVhPYmplY3RDYWNoZSAqY2FjaGUsIFZpc2libGVQb3NpdGlvbiBzdGFydFBvc2l0
aW9uLCBWaXNpYmxlUG9zaXRpb24gZW5kUG9zaXRpb24pCitzdGF0aWMgaWQgdGV4dE1hcmtlclJh
bmdlRnJvbVZpc2libGVQb3NpdGlvbnMoQVhPYmplY3RDYWNoZSAqY2FjaGUsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRQb3Np
dGlvbikKIHsKICAgICBpZCBzdGFydFRleHRNYXJrZXIgPSB0ZXh0TWFya2VyRm9yVmlzaWJsZVBv
c2l0aW9uKGNhY2hlLCBzdGFydFBvc2l0aW9uKTsKICAgICBpZCBlbmRUZXh0TWFya2VyID0gdGV4
dE1hcmtlckZvclZpc2libGVQb3NpdGlvbihjYWNoZSwgZW5kUG9zaXRpb24pOwogICAgIHJldHVy
biB0ZXh0TWFya2VyUmFuZ2VGcm9tTWFya2VycyhzdGFydFRleHRNYXJrZXIsIGVuZFRleHRNYXJr
ZXIpOwogfQogCi0tIChpZCl0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9uczooVmlz
aWJsZVBvc2l0aW9uKXN0YXJ0UG9zaXRpb24gZW5kUG9zaXRpb246KFZpc2libGVQb3NpdGlvbill
bmRQb3NpdGlvbgorLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnM6KGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3NpdGlvbjooY29uc3QgVmlz
aWJsZVBvc2l0aW9uJillbmRQb3NpdGlvbgogewogICAgIHJldHVybiB0ZXh0TWFya2VyUmFuZ2VG
cm9tVmlzaWJsZVBvc2l0aW9ucyhtX29iamVjdC0+YXhPYmplY3RDYWNoZSgpLCBzdGFydFBvc2l0
aW9uLCBlbmRQb3NpdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9k
ZUNvbW1hbmQuY3BwCmluZGV4IDFkZWI0ZGIuLmNlNzRmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCkBAIC0zMCwxMiArMzAsMTMgQEAKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgog
I2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAi
aHRtbGVkaXRpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1BcHBlbmROb2RlQ29tbWFu
ZDo6QXBwZW5kTm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBh
c3NSZWZQdHI8Tm9kZT4gbm9kZSkKLSAgICA6IFNpbXBsZUVkaXRDb21tYW5kKHBhcmVudC0+ZG9j
dW1lbnQoKSkKK0FwcGVuZE5vZGVDb21tYW5kOjpBcHBlbmROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChwYXJlbnQtPmRvY3VtZW50
KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3BhcmVudChwYXJlbnQpCiAgICAgLCBtX25vZGUo
bm9kZSkKIHsKQEAgLTQ2LDE1ICs0NywyMyBAQCBBcHBlbmROb2RlQ29tbWFuZDo6QXBwZW5kTm9k
ZUNvbW1hbmQoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBwYXJlbnQsIFBhc3NSZWZQdAogICAg
IEFTU0VSVChtX3BhcmVudC0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFtX3BhcmVudC0+cmVuZGVy
ZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJl
YWtzKE5vZGUqIG5vZGUsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlKQor
c3RhdGljIHZvaWQgc2VuZEFYVGV4dENoYW5nZWRJZ25vcmluZ0xpbmVCcmVha3MoTm9kZSogbm9k
ZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSkKIHsKLSAgICBTdHJpbmcgbm9kZVZhbHVlID0gbm9kZS0+
bm9kZVZhbHVlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFN0cmluZyB0ZXh0ID0gbm9kZS0+bm9kZVZhbHVlKCk7CiAgICAgLy8gRG9uJ3QgY29u
c2lkZXIgbGluZWJyZWFrcyBpbiB0aGlzIGNvbW1hbmQKLSAgICBpZiAobm9kZVZhbHVlID09ICJc
biIpCisgICAgaWYgKHRleHQgPT0gIlxuIikKICAgICAgIHJldHVybjsKIAotICAgIGlmIChBWE9i
amVjdENhY2hlKiBjYWNoZSA9IG5vZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hl
KCkpCi0gICAgICAgIGNhY2hlLT5ub2RlVGV4dENoYW5nZU5vdGlmaWNhdGlvbihub2RlLCB0ZXh0
Q2hhbmdlLCAwLCBub2RlVmFsdWUpOworICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG5v
ZGUtPmRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKKyAgICAgICAgUG9zaXRp
b24gcG9zaXRpb24gPSBpczxUZXh0Pihub2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KG5v
ZGUpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCAwKTsKKyAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwg
VmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKSk7CisgICAgfQogfQogCiB2b2lkIEFwcGVuZE5vZGVD
b21tYW5kOjpkb0FwcGx5KCkKQEAgLTY0LDE4ICs3MywxNiBAQCB2b2lkIEFwcGVuZE5vZGVDb21t
YW5kOjpkb0FwcGx5KCkKIAogICAgIG1fcGFyZW50LT5hcHBlbmRDaGlsZChtX25vZGUuZ2V0KCks
IElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCi0gICAgICAgIHNlbmRBWFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtz
KG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5zZXJ0ZWQpOworICAgIHNlbmRB
WFRleHRDaGFuZ2VkSWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgYXBwbHlFZGl0VHlw
ZSgpKTsKIH0KIAogdm9pZCBBcHBlbmROb2RlQ29tbWFuZDo6ZG9VbmFwcGx5KCkKIHsKICAgICBp
ZiAoIW1fcGFyZW50LT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgCisKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBhY3R1YWxseSBkZWxldGlu
ZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KQotICAgICAgICBzZW5kQVhUZXh0Q2hhbmdlZElnbm9yaW5nTGluZUJyZWFrcyhtX25vZGUuZ2V0
KCksIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dERlbGV0ZWQpOworICAgIHNlbmRBWFRleHRDaGFuZ2Vk
SWdub3JpbmdMaW5lQnJlYWtzKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCkpOwogCiAg
ICAgbV9ub2RlLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKaW5kZXggZDY0YjA0ZS4uZjc4Mjk3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaApAQCAtMzIsMTMgKzMyLDEz
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXBwZW5kTm9kZUNvbW1hbmQgOiBwdWJs
aWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9k
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlKQorICAgIHN0YXRpYyBSZWY8QXBwZW5kTm9kZUNvbW1hbmQ+IGNyZWF0
ZShQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxOb2RlPiBub2Rl
LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBcHBlbmROb2RlQ29tbWFuZChwYXJlbnQsIG5vZGUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQXBwZW5kTm9kZUNvbW1hbmQocGFyZW50LCBub2RlLCBlZGl0aW5nQWN0
aW9uKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIEFwcGVuZE5vZGVDb21tYW5kKFBhc3NSZWZQ
dHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBBcHBlbmRO
b2RlQ29tbWFuZChQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IHBhcmVudCwgUGFzc1JlZlB0cjxO
b2RlPiwgRWRpdEFjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggN2M0MThjMi4uY2FiODgyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTEy
Myw5ICsxMjMsOCBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZVN0eWxlU3BhbkVsZW1lbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQogfQogCiBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNv
bW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24sIEVQcm9wZXJ0eUxldmVsIHByb3BlcnR5TGV2ZWwpCi0gICAg
OiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21t
YW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9zdHlsZShzdHlsZS0+Y29weSgp
KQotICAgICwgbV9lZGl0aW5nQWN0aW9uKGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3Byb3BlcnR5
TGV2ZWwocHJvcGVydHlMZXZlbCkKICAgICAsIG1fc3RhcnQoZW5kaW5nU2VsZWN0aW9uKCkuc3Rh
cnQoKS5kb3duc3RyZWFtKCkpCiAgICAgLCBtX2VuZChlbmRpbmdTZWxlY3Rpb24oKS5lbmQoKS51
cHN0cmVhbSgpKQpAQCAtMTM2LDkgKzEzNSw4IEBAIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0
eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5CiB9
CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEVkaXRpbmdTdHlsZSogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29u
c3QgUG9zaXRpb24mIGVuZCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uLCBFUHJvcGVydHlMZXZl
bCBwcm9wZXJ0eUxldmVsKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisg
ICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikKICAgICAs
IG1fc3R5bGUoc3R5bGUtPmNvcHkoKSkKLSAgICAsIG1fZWRpdGluZ0FjdGlvbihlZGl0aW5nQWN0
aW9uKQogICAgICwgbV9wcm9wZXJ0eUxldmVsKHByb3BlcnR5TGV2ZWwpCiAgICAgLCBtX3N0YXJ0
KHN0YXJ0KQogICAgICwgbV9lbmQoZW5kKQpAQCAtMTQ5LDkgKzE0Nyw4IEBAIEFwcGx5U3R5bGVD
b21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEVkaXRp
bmdTdHlsZSogc3R5CiB9CiAKIEFwcGx5U3R5bGVDb21tYW5kOjpBcHBseVN0eWxlQ29tbWFuZChQ
YXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGJvb2wgcmVtb3ZlT25seSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZWxlbWVudC0+ZG9jdW1l
bnQoKSkKKyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGVsZW1lbnQtPmRvY3VtZW50KCksIGVk
aXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKEVkaXRpbmdTdHlsZTo6Y3JlYXRlKCkpCi0gICAg
LCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1fcHJvcGVydHlMZXZlbChQ
cm9wZXJ0eURlZmF1bHQpCiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVjdGlvbigpLnN0YXJ0KCku
ZG93bnN0cmVhbSgpKQogICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9uKCkuZW5kKCkudXBzdHJl
YW0oKSkKQEAgLTE2Myw5ICsxNjAsOCBAQCBBcHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNv
bW1hbmQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBib29sIHJlbW92ZU9ubAogfQogCiBB
cHBseVN0eWxlQ29tbWFuZDo6QXBwbHlTdHlsZUNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBFZGl0aW5nU3R5bGUqIHN0eWxlLCBJc0lubGluZUVsZW1lbnRUb1JlbW92ZUZ1bmN0aW9u
IGlzSW5saW5lRWxlbWVudFRvUmVtb3ZlRnVuY3Rpb24sIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorICAgIDogQ29tcG9zaXRl
RWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX3N0eWxlKHN0eWxl
LT5jb3B5KCkpCi0gICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKICAgICAsIG1f
cHJvcGVydHlMZXZlbChQcm9wZXJ0eURlZmF1bHQpCiAgICAgLCBtX3N0YXJ0KGVuZGluZ1NlbGVj
dGlvbigpLnN0YXJ0KCkuZG93bnN0cmVhbSgpKQogICAgICwgbV9lbmQoZW5kaW5nU2VsZWN0aW9u
KCkuZW5kKCkudXBzdHJlYW0oKSkKQEAgLTIyNiwxMSArMjIyLDYgQEAgdm9pZCBBcHBseVN0eWxl
Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgfQogfQogCi1FZGl0QWN0aW9uIEFwcGx5U3R5bGVDb21t
YW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lZGl0aW5nQWN0aW9u
OwotfQotCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUJsb2NrU3R5bGUoRWRpdGluZ1N0
eWxlICpzdHlsZSkKIHsKICAgICAvLyB1cGRhdGUgZG9jdW1lbnQgbGF5b3V0IG9uY2UgYmVmb3Jl
IHJlbW92aW5nIHN0eWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5oCmluZGV4IGU5OWUzNmEuLjlkYmU4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmgKQEAgLTcyLDcgKzcyLDYgQEAgcHJpdmF0ZToKICAgICBBcHBseVN0
eWxlQ29tbWFuZChEb2N1bWVudCYsIGNvbnN0IEVkaXRpbmdTdHlsZSosIGJvb2wgKCppc0lubGlu
ZUVsZW1lbnRUb1JlbW92ZSkoY29uc3QgRWxlbWVudCopLCBFZGl0QWN0aW9uKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIHN0eWxlLXJlbW92YWwgaGVs
cGVycwogICAgIGJvb2wgaXNTdHlsZWRJbmxpbmVFbGVtZW50VG9SZW1vdmUoRWxlbWVudCopIGNv
bnN0OwpAQCAtMTIyLDcgKzEyMSw2IEBAIHByaXZhdGU6CiAgICAgUG9zaXRpb24gZW5kUG9zaXRp
b24oKTsKIAogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IG1fc3R5bGU7Ci0gICAgRWRpdEFjdGlv
biBtX2VkaXRpbmdBY3Rpb247CiAgICAgRVByb3BlcnR5TGV2ZWwgbV9wcm9wZXJ0eUxldmVsOwog
ICAgIFBvc2l0aW9uIG1fc3RhcnQ7CiAgICAgUG9zaXRpb24gbV9lbmQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDg0NjFlZTcuLmI1
NDFlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwCkBAIC01OCw2ICs1OCw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlcmVkRG9jdW1lbnRNYXJrZXIu
aCIKKyNpbmNsdWRlICJSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIgorI2luY2x1
ZGUgIlJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVwbGFj
ZU5vZGVXaXRoU3BhbkNvbW1hbmQuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKQEAgLTE2MiwxMyArMTY0LDMxIEBA
IHZvaWQgRWRpdENvbW1hbmRDb21wb3NpdGlvbjo6Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxO
b2RlKj4mIG5vZGVzKQogfQogI2VuZGlmCiAKK0FYVGV4dEVkaXRUeXBlIEVkaXRDb21tYW5kQ29t
cG9zaXRpb246OnVuYXBwbHlFZGl0VHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChlZGl0aW5n
QWN0aW9uKCkpIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25DdXQ6CisgICAgY2FzZSBFZGl0QWN0aW9u
RGVsZXRlOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVJbnNlcnQ7CisgICAgY2FzZSBF
ZGl0QWN0aW9uRGljdGF0aW9uOgorICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICBjYXNl
IEVkaXRBY3Rpb25QYXN0ZToKKyAgICBjYXNlIEVkaXRBY3Rpb25UeXBpbmc6CisgICAgICAgIHJl
dHVybiBBWFRleHRFZGl0VHlwZURlbGV0ZTsKKyAgICAvLyBJbmNsdWRlIGRlZmF1bHQgY2FzZSBm
b3IgdW5oYW5kbGVkIEVkaXRBY3Rpb24gY2FzZXMuCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIHJldHVybiBBWFRleHRFZGl0VHlwZVVua25vd247Cit9CisKIHZvaWQg
YXBwbHlDb21tYW5kKFBhc3NSZWZQdHI8Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNvbW1hbmQpCiB7
CiAgICAgY29tbWFuZC0+YXBwbHkoKTsKIH0KIAotQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBv
c2l0ZUVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IEVkaXRDb21tYW5kKGRv
Y3VtZW50KQorQ29tcG9zaXRlRWRpdENvbW1hbmQ6OkNvbXBvc2l0ZUVkaXRDb21tYW5kKERvY3Vt
ZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogRWRpdENvbW1h
bmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiB7CiB9CiAKQEAgLTE4Nyw2ICsyMDcsNyBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBseSgpCiAgICAgICAgIGNhc2UgRWRpdEFjdGlv
blNldFdyaXRpbmdEaXJlY3Rpb246CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvbkN1dDoKICAgICAg
ICAgY2FzZSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ6CisgICAgICAgIGNhc2UgRWRpdEFjdGlvbklu
c2VydDoKICAgICAgICAgY2FzZSBFZGl0QWN0aW9uRGVsZXRlOgogICAgICAgICBjYXNlIEVkaXRB
Y3Rpb25EaWN0YXRpb246CiAgICAgICAgICAgICBicmVhazsKQEAgLTI5Niw3ICszMTcsNyBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVTdHlsZWRFbGVtZW50KFBhc3NSZWZQdHI8
RWxlbWVudD4gZWxlbWVudCkKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yKGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJvb2wgcGFz
dGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
dXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFy
ZWEpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQs
IHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRpbmdBY3Rpb24oKSkpOwogfQog
CiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnRMaW5lQnJlYWsoKQpAQCAtMzIyLDcg
KzM0Myw3IEBAIGJvb2wgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmlzUmVtb3ZhYmxlQmxvY2soY29u
c3QgTm9kZSogbm9kZSkKIAogdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6aW5zZXJ0Tm9kZUJl
Zm9yZShQYXNzUmVmUHRyPE5vZGU+IGluc2VydENoaWxkLCBQYXNzUmVmUHRyPE5vZGU+IHJlZkNo
aWxkLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSBzaG91bGRBc3N1bWVDb250
ZW50SXNBbHdheXNFZGl0YWJsZSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShJbnNl
cnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGlsZCwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShJbnNlcnROb2RlQmVmb3JlQ29tbWFuZDo6Y3JlYXRlKGluc2VydENoaWxkLCByZWZDaGls
ZCwgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkp
OwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQWZ0ZXIoUGFzc1Jl
ZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgUGFzc1JlZlB0cjxOb2RlPiByZWZDaGlsZCkKQEAgLTM3
Myw3ICszOTQsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjppbnNlcnROb2RlQXQoUGFz
c1JlZlB0cjxOb2RlPiBpbnNlcnRDaGlsZCwgY29uc3QgUG9zaQogdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6YXBwZW5kTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFBhc3NSZWZQdHI8Q29u
dGFpbmVyTm9kZT4gcGFyZW50KQogewogICAgIEFTU0VSVChjYW5IYXZlQ2hpbGRyZW5Gb3JFZGl0
aW5nKHBhcmVudC5nZXQoKSkpOwotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEFwcGVuZE5v
ZGVDb21tYW5kOjpjcmVhdGUocGFyZW50LCBub2RlKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoQXBwZW5kTm9kZUNvbW1hbmQ6OmNyZWF0ZShwYXJlbnQsIG5vZGUsIGVkaXRpbmdBY3Rp
b24oKSkpOwogfQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVDaGlsZHJlbklu
UmFuZ2UoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykK
QEAgLTM5Nyw3ICs0MTgsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2Rl
KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudAogCiB2b2lkIENvbXBv
c2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKFBhc3NSZWZQdHI8
Tm9kZT4gbm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OmNyZWF0ZShub2RlLCBzaG91
bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkpOworICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kOjpjcmVhdGUobm9kZSwg
c2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIGVkaXRpbmdBY3Rpb24oKSkpOwog
fQogCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZW1vdmVOb2RlQW5kUHJ1bmVBbmNlc3Rv
cnMoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQpAQCAtNTI1LDIwICs1NDYsMjEgQEAgdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6aW5wdXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Omluc2VydFRleHRJbnRv
Tm9kZShQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5n
JiB0ZXh0KQogewogICAgIGlmICghdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHRleHQpKTsKKyAgICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgdGV4dCwgZWRpdGluZ0FjdGlvbigp
KSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRGcm9tTm9kZShQ
YXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgY291bnQpCiB7
Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6
Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0
ZShEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUobm9kZSwgb2Zmc2V0LCBjb3VudCwg
ZWRpdGluZ0FjdGlvbigpKSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxh
Y2VUZXh0SW5Ob2RlKFBhc3NSZWZQdHI8VGV4dD4gcHJwTm9kZSwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBjb3VudCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQpCiB7CiAgICAgUmVm
UHRyPFRleHQ+IG5vZGUocHJwTm9kZSk7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVs
ZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6Y3JlYXRlKG5vZGUsIG9mZnNldCwgY291bnQpKTsKKyAg
ICBSZWZQdHI8RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gZGVsZXRlQ29tbWFuZCA9IFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpjcmVhdGUoV1RGOjptb3ZlKG5vZGUpLCBvZmZz
ZXQsIGNvdW50KTsKKyAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShkZWxldGVDb21tYW5kKTsK
ICAgICBpZiAoIXJlcGxhY2VtZW50VGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6OmNyZWF0ZShub2RlLCBvZmZz
ZXQsIHJlcGxhY2VtZW50VGV4dCkpOworICAgICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShS
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6Y3JlYXRlKFdURjo6bW92ZShub2RlKSwg
b2Zmc2V0LCByZXBsYWNlbWVudFRleHQsIGRlbGV0ZUNvbW1hbmQtPmRlbGV0ZWRUZXh0KCksIGVk
aXRpbmdBY3Rpb24oKSkpOwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVw
bGFjZVNlbGVjdGVkVGV4dEluTm9kZShjb25zdCBTdHJpbmcmIHRleHQpCkBAIC0xMjg5LDcgKzEz
MTEsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJhZ3JhcAogICAgIFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpDb21tYW5kT3B0aW9ucyBvcHRpb25zID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNl
bGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1vdmluZ1BhcmFncmFw
aDsKICAgICBpZiAoIXByZXNlcnZlU3R5bGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5bGU7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUo
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwgb3B0
aW9ucykpOworICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgV1RGOjptb3ZlKGZyYWdtZW50KSwgb3B0aW9ucykpOwog
CiAgICAgZnJhbWUoKS5lZGl0b3IoKS5tYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcihlbmRp
bmdTZWxlY3Rpb24oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuaAppbmRleCBjMmI0ODlkLi43MDQ0YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKTsKICNl
bmRpZgogCisgICAgQVhUZXh0RWRpdFR5cGUgdW5hcHBseUVkaXRUeXBlKCkgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgRWRpdENvbW1hbmRDb21wb3NpdGlvbihEb2N1bWVudCYsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBl
bmRpbmdTZWxlY3Rpb24sIEVkaXRBY3Rpb24pOwogCkBAIC04OSw3ICs5MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcENhcmV0QmxpbmtpbmcoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ29tcG9zaXRlRWRpdENvbW1h
bmQoRG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBDb21wb3NpdGVFZGl0Q29tbWFuZChEb2N1bWVu
dCYsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAgICAgLy8KICAgICAv
LyBzdWdhcnktc3dlZXQgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGhlbHAgY3JlYXRlIGFuZCBh
cHBseSBlZGl0IGNvbW1hbmRzIGluIGNvbXBvc2l0ZSBjb21tYW5kcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggMmVh
OTZkNS4uZjkzY2MyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVG
cm9tVGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw4ICszNCw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgY291bnQpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1bWVudCgp
KQorRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZDo6RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChS
ZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0
QWN0aW9uIGVkaXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChub2RlLT5kb2N1
bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9ub2RlKG5vZGUpCiAgICAgLCBtX29mZnNl
dChvZmZzZXQpCiAgICAgLCBtX2NvdW50KGNvdW50KQpAQCAtNTgsOCArNTgsOCBAQCB2b2lkIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICByZXR1cm47CiAgICAg
CiAgICAgLy8gTmVlZCB0byBub3RpZnkgdGhpcyBiZWZvcmUgYWN0dWFsbHkgZGVsZXRpbmcgdGhl
IHRleHQKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRleHRDaGFuZ2VOb3RpZmljYXRp
b24obV9ub2RlLmdldCgpLCBBWE9iamVjdENhY2hlOjpBWFRleHREZWxldGVkLCBtX29mZnNldCwg
bV90ZXh0KTsKKyAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
KyAgICAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UobV9ub2RlLmdldCgpLCBh
cHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwg
bV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUtPmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fY291bnQs
IGVjKTsKIH0KQEAgLTczLDggKzczLDggQEAgdm9pZCBEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
Ojpkb1VuYXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQs
IElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5z
ZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIHVuYXBwbHlFZGl0VHlwZSgpLCBtX3RleHQsIFZpc2libGVQb3NpdGlv
bihQb3NpdGlvbihtX25vZGUsIG1fb2Zmc2V0KSkpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApp
bmRleCAyNDkxZjA1Li40ZTYxOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQs
MTQgKzM0LDE3IEBAIGNsYXNzIFRleHQ7CiAKIGNsYXNzIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1h
bmQgOiBwdWJsaWMgU2ltcGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
RGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZD4gY3JlYXRlKFBhc3NSZWZQdHI8VGV4dD4gbm9kZSwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGNvdW50LCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uRGVsZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZChub2RlLCBvZmZzZXQsIGNvdW50KSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBv
ZmZzZXQsIGNvdW50LCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxUZXh0PiwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBjb3VudCk7CisgICAgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCgpOworCitw
cm90ZWN0ZWQ6CisgICAgRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4mJiwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCwgRWRpdEFjdGlvbik7CiAKK3ByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
ZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCkBAIC01NSw2ICs1OCwxMSBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBtX3RleHQ7CiB9OwogCitpbmxpbmUgY29uc3QgU3RyaW5nJiBEZWxldGVGcm9t
VGV4dE5vZGVDb21tYW5kOjpkZWxldGVkVGV4dCgpCit7CisgICAgcmV0dXJuIG1fdGV4dDsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRGVsZXRlRnJvbVRleHROb2Rl
Q29tbWFuZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcAppbmRleCAyYmJjNmVkLi5lYjNhNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTcyLDggKzcyLDggQEAg
c3RhdGljIGJvb2wgaXNUYWJsZVJvd0VtcHR5KE5vZGUqIHJvdykKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1
bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRl
bGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBz
YW5pdGl6ZU1hcmt1cCkKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9uQ29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9v
bCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1h
cmt1cCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1h
bmQoZG9jdW1lbnQsIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX2hhc1NlbGVjdGlvblRvRGVsZXRl
KGZhbHNlKQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAgICAsIG1fbWVyZ2VC
bG9ja3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAtOTAsOCArOTAsOCBA
QCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgYm9vbCBzbWFydERlbAogewogfQogCi1EZWxldGVTZWxlY3Rpb25Db21tYW5k
OjpEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
biwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29sIHJl
cGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFya3Vw
KQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCkuYW5jaG9yTm9k
ZSgpLT5kb2N1bWVudCgpKQorRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6RGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxl
dGUsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFu
ZEZvclNwZWNpYWxFbGVtZW50cywgYm9vbCBzYW5pdGl6ZU1hcmt1cCwgRWRpdEFjdGlvbiBlZGl0
aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoc2VsZWN0aW9uLnN0YXJ0KCku
YW5jaG9yTm9kZSgpLT5kb2N1bWVudCgpLCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9oYXNTZWxl
Y3Rpb25Ub0RlbGV0ZSh0cnVlKQogICAgICwgbV9zbWFydERlbGV0ZShzbWFydERlbGV0ZSkKICAg
ICAsIG1fbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZShtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlKQpAQCAt
ODg0LDE0ICs4ODQsNiBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQog
ICAgIGNsZWFyVHJhbnNpZW50U3RhdGUoKTsKIH0KIAotRWRpdEFjdGlvbiBEZWxldGVTZWxlY3Rp
b25Db21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKLXsKLSAgICAvLyBOb3RlIHRoYXQgRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZCBpcyBhbHNvIHVzZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIHRo
ZSBEZWxldGUga2V5LAotICAgIC8vIGJ1dCBpbiB0aGF0IGNhc2UgdGhlcmUncyBhIFR5cGluZ0Nv
bW1hbmQgdGhhdCBzdXBwbGllcyB0aGUgZWRpdGluZ0FjdGlvbigpLCBzbwotICAgIC8vIHRoZSBV
bmRvIG1lbnUgY29ycmVjdGx5IHNob3dzICJVbmRvIFR5cGluZyIKLSAgICByZXR1cm4gRWRpdEFj
dGlvbkN1dDsKLX0KLQogLy8gTm9ybWFsbHkgZGVsZXRpb24gZG9lc24ndCBwcmVzZXJ2ZSB0aGUg
dHlwaW5nIHN0eWxlIHRoYXQgd2FzIHByZXNlbnQgYmVmb3JlIGl0LiAgRm9yIGV4YW1wbGUsCiAv
LyB0eXBlIGEgY2hhcmFjdGVyLCBCb2xkLCB0aGVuIGRlbGV0ZSB0aGUgY2hhcmFjdGVyIGFuZCBz
dGFydCB0eXBpbmcuICBUaGUgQm9sZCB0eXBpbmcgc3R5bGUgc2hvdWxkbid0CiAvLyBzdGljayBh
cm91bmQuICBEZWxldGlvbiBzaG91bGQgcHJlc2VydmUgYSB0eXBpbmcgc3R5bGUgdGhhdCAqaXQq
IHNldHMsIGhvd2V2ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5oCmluZGV4IGU1YmY1MWQuLjBhOWI5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC0zNCwyMyArMzQsMjIgQEAg
Y2xhc3MgRWRpdGluZ1N0eWxlOwogCiBjbGFzcyBEZWxldGVTZWxlY3Rpb25Db21tYW5kIDogcHVi
bGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsgCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEZWxl
dGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHNtYXJ0
RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wg
cmVwbGFjZSA9IGZhbHNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBi
b29sIHNhbml0aXplTWFya3VwID0gdHJ1ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgc21hcnREZWxldGUgPSBm
YWxzZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0g
ZmFsc2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRp
emVNYXJrdXAgPSB0cnVlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVs
ZXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZChkb2N1bWVudCwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJl
cGxhY2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXApKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChkb2N1bWVudCwg
c21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxhY2UsIGV4cGFuZEZvclNw
ZWNpYWxFbGVtZW50cywgc2FuaXRpemVNYXJrdXAsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9Ci0g
ICAgc3RhdGljIFJlZjxEZWxldGVTZWxlY3Rpb25Db21tYW5kPiBjcmVhdGUoY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBib29sIHNtYXJ0RGVsZXRlID0gZmFsc2UsIGJvb2wgbWVy
Z2VCbG9ja3NBZnRlckRlbGV0ZSA9IHRydWUsIGJvb2wgcmVwbGFjZSA9IGZhbHNlLCBib29sIGV4
cGFuZEZvclNwZWNpYWxFbGVtZW50cyA9IGZhbHNlLCBib29sIHNhbml0aXplTWFya3VwID0gdHJ1
ZSkKKyAgICBzdGF0aWMgUmVmPERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGJvb2wgc21hcnREZWxldGUgPSBmYWxzZSwgYm9v
bCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlID0gdHJ1ZSwgYm9vbCByZXBsYWNlID0gZmFsc2UsIGJv
b2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzID0gZmFsc2UsIGJvb2wgc2FuaXRpemVNYXJrdXAg
PSB0cnVlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uRGVsZXRlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChz
ZWxlY3Rpb24sIHNtYXJ0RGVsZXRlLCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCByZXBsYWNlLCBl
eHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIHNhbml0aXplTWFya3VwKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoc2VsZWN0aW9uLCBzbWFydERl
bGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzLCBzYW5pdGl6ZU1hcmt1cCwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJvdGVj
dGVkOgotICAgIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBib29sIHNtYXJ0RGVs
ZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVwbGFjZSwgYm9vbCBleHBh
bmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FudGl6ZU1hcmt1cCk7CisgICAgRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgc21hcnREZWxldGUsIGJvb2wgbWVyZ2VCbG9j
a3NBZnRlckRlbGV0ZSwgYm9vbCByZXBsYWNlLCBib29sIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50
cywgYm9vbCBzYW50aXplTWFya3VwLCBFZGl0QWN0aW9uID0gRWRpdEFjdGlvbkRlbGV0ZSk7CiAK
IHByaXZhdGU6Ci0gICAgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiwgYm9vbCBzbWFydERlbGV0ZSwgYm9vbCBtZXJnZUJsb2Nrc0FmdGVyRGVsZXRlLCBib29s
IHJlcGxhY2UsIGJvb2wgZXhwYW5kRm9yU3BlY2lhbEVsZW1lbnRzLCBib29sIHNhbml0aXplTWFy
a3VwKTsKKyAgICBEZWxldGVTZWxlY3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBib29sIHNtYXJ0RGVsZXRlLCBib29sIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIGJvb2wgcmVw
bGFjZSwgYm9vbCBleHBhbmRGb3JTcGVjaWFsRWxlbWVudHMsIGJvb2wgc2FuaXRpemVNYXJrdXAs
IEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFs
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgYm9v
bCBwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBjMTczZGY0Li45MDhmZDc3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTExNSw3ICsxMTUsNyBA
QCB2b2lkIERpY3RhdGlvbkNvbW1hbmQ6Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoc2l6
ZV90IGxpbmVTdGFydCwgc2l6ZV90IGxpbgogewogICAgIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5h
dGl2ZT4gYWx0ZXJuYXRpdmVzSW5MaW5lOwogICAgIGNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2
ZXNJblJhbmdlKGxpbmVTdGFydCwgbGluZUxlbmd0aCwgYWx0ZXJuYXRpdmVzSW5MaW5lKTsKLSAg
ICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1hbmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6
Y3JlYXRlV2l0aE1hcmtlclN1cHBsaWVyKGRvY3VtZW50KCksIG1fdGV4dFRvSW5zZXJ0LnN1YnN0
cmluZyhsaW5lU3RhcnQsIGxpbmVMZW5ndGgpLCBEaWN0YXRpb25NYXJrZXJTdXBwbGllcjo6Y3Jl
YXRlKGFsdGVybmF0aXZlc0luTGluZSkpOworICAgIFJlZlB0cjxJbnNlcnRUZXh0Q29tbWFuZD4g
Y29tbWFuZCA9IEluc2VydFRleHRDb21tYW5kOjpjcmVhdGVXaXRoTWFya2VyU3VwcGxpZXIoZG9j
dW1lbnQoKSwgbV90ZXh0VG9JbnNlcnQuc3Vic3RyaW5nKGxpbmVTdGFydCwgbGluZUxlbmd0aCks
IERpY3RhdGlvbk1hcmtlclN1cHBsaWVyOjpjcmVhdGUoYWx0ZXJuYXRpdmVzSW5MaW5lKSwgRWRp
dEFjdGlvbkRpY3RhdGlvbik7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwg
ZW5kaW5nU2VsZWN0aW9uKCkpOwogfQogCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBEaWN0YXRp
b25Db21tYW5kOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5k
TmV3TGluZUZlZWRUb1NlbGVjdGlvbihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3Np
dGUoSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZh
bHNlLCBmYWxzZSwgRWRpdEFjdGlvbkRpY3RhdGlvbikpOwogfQogCiB2b2lkIERpY3RhdGlvbkNv
bW1hbmQ6OmNvbGxlY3REaWN0YXRpb25BbHRlcm5hdGl2ZXNJblJhbmdlKHNpemVfdCByYW5nZVN0
YXJ0LCBzaXplX3QgcmFuZ2VMZW5ndGgsIFZlY3RvcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT4mIGFs
dGVybmF0aXZlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggNjM3ZDFlYi4u
NmVmMzUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB0eXBlZGVmIGVudW0gewogICAgICAgICBFZGl0
QWN0aW9uVW5zcGVjaWZpZWQsCisgICAgICAgIEVkaXRBY3Rpb25JbnNlcnQsCiAgICAgICAgIEVk
aXRBY3Rpb25TZXRDb2xvciwKICAgICAgICAgRWRpdEFjdGlvblNldEJhY2tncm91bmRDb2xvciwK
ICAgICAgICAgRWRpdEFjdGlvblR1cm5PZmZLZXJuaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRDb21tYW5kLmNwcAppbmRleCA4ZjU2NTMyLi42NDc4YWU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiCiAKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CiAjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtMzcsOSArMzgsMTAgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1FZGl0Q29tbWFuZDo6RWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KQor
RWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fcGFyZW50
KDApCisgICAgLCBtX2VkaXRpbmdBY3Rpb24oZWRpdGluZ0FjdGlvbikKIHsKICAgICBBU1NFUlQo
ZG9jdW1lbnQuZnJhbWUoKSk7CiAgICAgc2V0U3RhcnRpbmdTZWxlY3Rpb24obV9kb2N1bWVudC0+
ZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkpOwpAQCAtNjcsNyArNjksNyBAQCBGcmFt
ZSYgRWRpdENvbW1hbmQ6OmZyYW1lKCkKIAogRWRpdEFjdGlvbiBFZGl0Q29tbWFuZDo6ZWRpdGlu
Z0FjdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEVkaXRBY3Rpb25VbnNwZWNpZmllZDsKKyAg
ICByZXR1cm4gbV9lZGl0aW5nQWN0aW9uOwogfQogCiBzdGF0aWMgaW5saW5lIEVkaXRDb21tYW5k
Q29tcG9zaXRpb24qIGNvbXBvc2l0aW9uSWZQb3NzaWJsZShFZGl0Q29tbWFuZCogY29tbWFuZCkK
QEAgLTExMiw2ICsxMTQsNTAgQEAgdm9pZCBFZGl0Q29tbWFuZDo6c2V0UGFyZW50KENvbXBvc2l0
ZUVkaXRDb21tYW5kKiBwYXJlbnQpCiAgICAgfQogfQogCitBWFRleHRFZGl0VHlwZSBFZGl0Q29t
bWFuZDo6YXBwbHlFZGl0VHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChlZGl0aW5nQWN0aW9u
KCkpIHsKKyAgICBjYXNlIEVkaXRBY3Rpb25DdXQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0
VHlwZUN1dDsKKyAgICBjYXNlIEVkaXRBY3Rpb25EZWxldGU6CisgICAgICAgIHJldHVybiBBWFRl
eHRFZGl0VHlwZURlbGV0ZTsKKyAgICBjYXNlIEVkaXRBY3Rpb25EaWN0YXRpb246CisgICAgICAg
IHJldHVybiBBWFRleHRFZGl0VHlwZURpY3RhdGlvbjsKKyAgICBjYXNlIEVkaXRBY3Rpb25JbnNl
cnQ6CisgICAgICAgIHJldHVybiBBWFRleHRFZGl0VHlwZUluc2VydDsKKyAgICBjYXNlIEVkaXRB
Y3Rpb25QYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlUGFzdGU7CisgICAgY2Fz
ZSBFZGl0QWN0aW9uVHlwaW5nOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVUeXBpbmc7
CisgICAgLy8gSW5jbHVkZSBkZWZhdWx0IGNhc2UgZm9yIHVuaGFuZGxlZCBFZGl0QWN0aW9uIGNh
c2VzLgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gQVhU
ZXh0RWRpdFR5cGVVbmtub3duOworfQorCitBWFRleHRFZGl0VHlwZSBFZGl0Q29tbWFuZDo6dW5h
cHBseUVkaXRUeXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKGFwcGx5RWRpdFR5cGUoKSkgewor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVVbmtub3duOgorICAgICAgICByZXR1cm4gQVhUZXh0RWRp
dFR5cGVVbmtub3duOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVEZWxldGU6CisgICAgY2FzZSBB
WFRleHRFZGl0VHlwZUN1dDoKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlSW5zZXJ0Owor
ICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZVR5
cGluZzoKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlRGljdGF0aW9uOgorICAgIGNhc2UgQVhUZXh0
RWRpdFR5cGVQYXN0ZToKKyAgICAgICAgcmV0dXJuIEFYVGV4dEVkaXRUeXBlRGVsZXRlOworICAg
IH0KKyAgICByZXR1cm4gQVhUZXh0RWRpdFR5cGVVbmtub3duOworfQorCitTaW1wbGVFZGl0Q29t
bWFuZDo6U2ltcGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24pCisgICAgOiBFZGl0Q29tbWFuZChkb2N1bWVudCwgZWRpdGluZ0FjdGlvbikK
K3sKK30KKwogdm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6ZG9SZWFwcGx5KCkKIHsKICAgICBkb0Fw
cGx5KCk7CkBAIC0xMjUsNCArMTcxLDE0IEBAIHZvaWQgU2ltcGxlRWRpdENvbW1hbmQ6OmFkZE5v
ZGVBbmREZXNjZW5kYW50cyhOb2RlKiBzdGFydE5vZGUsIEhhc2hTZXQ8Tm9kZSo+JiBuCiB9CiAj
ZW5kaWYKIAordm9pZCBTaW1wbGVFZGl0Q29tbWFuZDo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclRl
eHRDaGFuZ2UoTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKTsK
KyAgICBpZiAoIWNhY2hlKQorICAgICAgICByZXR1cm47CisgICAgY2FjaGUtPnBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24obm9kZSwgdHlwZSwgdGV4dCwgcG9zaXRpb24pOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmgKaW5k
ZXggMDNlNmMzNy4uMWE5OTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaApA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBFZGl0Q29tbWFuZF9oCiAjZGVmaW5lIEVkaXRDb21t
YW5kX2gKIAorI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCiAjaW5jbHVkZSAi
RWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKIApAQCAtNDYsNyAr
NDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFBhcmVudChDb21wb3NpdGVFZGl0Q29tbWFu
ZCopOwogCi0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKKyAg
ICBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24oKSBjb25zdDsKIAogICAgIGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHN0YXJ0aW5nU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGluZ1Nl
bGVjdGlvbjsgfQogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIGVuZGluZ1NlbGVjdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZW5kaW5nU2VsZWN0aW9uOyB9CkBAIC01OSw4ICs2MCwxMSBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpID0gMDsKIAorICAgIEFYVGV4dEVk
aXRUeXBlIGFwcGx5RWRpdFR5cGUoKSBjb25zdDsKKyAgICBBWFRleHRFZGl0VHlwZSB1bmFwcGx5
RWRpdFR5cGUoKSBjb25zdDsKKwogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVkaXRDb21tYW5k
KERvY3VtZW50Jik7CisgICAgZXhwbGljaXQgRWRpdENvbW1hbmQoRG9jdW1lbnQmLCBFZGl0QWN0
aW9uID0gRWRpdEFjdGlvblVuc3BlY2lmaWVkKTsKICAgICBFZGl0Q29tbWFuZChEb2N1bWVudCYs
IGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAKICAg
ICBGcmFtZSYgZnJhbWUoKTsKQEAgLTc0LDYgKzc4LDcgQEAgcHJpdmF0ZToKICAgICBWaXNpYmxl
U2VsZWN0aW9uIG1fc3RhcnRpbmdTZWxlY3Rpb247CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX2Vu
ZGluZ1NlbGVjdGlvbjsKICAgICBDb21wb3NpdGVFZGl0Q29tbWFuZCogbV9wYXJlbnQ7CisgICAg
RWRpdEFjdGlvbiBtX2VkaXRpbmdBY3Rpb24geyBFZGl0QWN0aW9uVW5zcGVjaWZpZWQgfTsKIH07
CiAKIGVudW0gU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgewpAQCAtOTEsMTIg
Kzk2LDE0IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgU2lt
cGxlRWRpdENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50KSA6IEVkaXRDb21tYW5kKGRvY3VtZW50
KSB7IH0KKyAgICBleHBsaWNpdCBTaW1wbGVFZGl0Q29tbWFuZChEb2N1bWVudCYsIEVkaXRBY3Rp
b24gPSBFZGl0QWN0aW9uVW5zcGVjaWZpZWQpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZvaWQg
YWRkTm9kZUFuZERlc2NlbmRhbnRzKE5vZGUqLCBIYXNoU2V0PE5vZGUqPiYpOwogI2VuZGlmCiAK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclRleHRDaGFuZ2UoTm9kZSos
IEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsK
KwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRpbmdBbGxJbk9uZS5jcHAKaW5kZXggZGMzYWUzMy4uMjNiYzZiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcApAQCAtNTksNiArNTksOCBAQAogI2luY2x1
ZGUgPFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2Vydmlu
Z0NoaWxkcmVuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVuZGVyZWRQb3NpdGlvbi5jcHA+Cisj
aW5jbHVkZSA8UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwPgorI2luY2x1ZGUg
PFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZXBsYWNl
Tm9kZVdpdGhTcGFuQ29tbWFuZC5jcHA+CiAjaW5jbHVkZSA8UmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuY3BwPgogI2luY2x1ZGUgPFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAppbmRleCAwZmQyZjkxLi5hNzcyODZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCkBAIC0yMDgsMTIgKzIwOCwxMiBAQCBib29sIEVkaXRvcjo6aGFuZGxlVGV4
dEV2ZW50KFRleHRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBpZiAoY2xpZW50KCktPnBlcmZv
cm1zVHdvU3RlcFBhc3RlKGV2ZW50LT5wYXN0aW5nRnJhZ21lbnQoKSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKLSAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNt
YXJ0UmVwbGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBldmVudC0+bWFpbEJsb2Nr
cXVvdGVIYW5kbGluZygpKTsKKyAgICAgICAgICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21l
bnQoZXZlbnQtPnBhc3RpbmdGcmFnbWVudCgpLCBmYWxzZSwgZXZlbnQtPnNob3VsZFNtYXJ0UmVw
bGFjZSgpLCBldmVudC0+c2hvdWxkTWF0Y2hTdHlsZSgpLCBFZGl0QWN0aW9uUGFzdGUsIGV2ZW50
LT5tYWlsQmxvY2txdW90ZUhhbmRsaW5nKCkpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAg
fQogI2VuZGlmCiAgICAgICAgIGVsc2UgCi0gICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0
aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFsc2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSk7
CisgICAgICAgICAgICByZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoZXZlbnQtPmRhdGEoKSwgZmFs
c2UsIGV2ZW50LT5zaG91bGRTbWFydFJlcGxhY2UoKSwgRWRpdEFjdGlvblBhc3RlKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zNzQsMTIgKzM3NCwxMiBAQCBib29sIEVkaXRv
cjo6ZGVsZXRlV2l0aERpcmVjdGlvbihTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0
R3JhbnVsYXJpdHkgZwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEVkaXRvcjo6ZGVsZXRl
U2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUpCit2b2lkIEVkaXRvcjo6
ZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rp
b24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBpZiAobV9mcmFtZS5zZWxlY3Rpb24oKS5pc05vbmUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXBwbHlDb21tYW5kKERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzbWFydERlbGV0ZSkpOworICAgIGFwcGx5Q29tbWFu
ZChEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc21hcnREZWxldGUs
IHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZWRpdGluZ0FjdGlvbikpOwogfQogCiB2b2lkIEVk
aXRvcjo6Y2xlYXJUZXh0KCkKQEAgLTUyMCw3ICs1MjAsNyBAQCBib29sIEVkaXRvcjo6c2hvdWxk
SW5zZXJ0RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgUGFz
c1JlZgogICAgIHJldHVybiBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0Tm9kZShmcmFnbWVudC5nZXQo
KSwgcmVwbGFjaW5nRE9NUmFuZ2UuZ2V0KCksIGdpdmVuQWN0aW9uKTsKIH0KIAotdm9pZCBFZGl0
b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2Us
IGJvb2wgbWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhh
bmRsaW5nKQordm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwg
Ym9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0
aW9uLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiB7CiAg
ICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVj
dGlvbigpOwogICAgIGlmIChzZWxlY3Rpb24uaXNOb25lKCkgfHwgIXNlbGVjdGlvbi5pc0NvbnRl
bnRFZGl0YWJsZSgpIHx8ICFmcmFnbWVudCkKQEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lkIEVkaXRv
cjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50LAogICAgIGlmIChtYWlsQmxvY2txdW90ZUhhbmRsaW5nID09IE1haWxCbG9j
a3F1b3RlSGFuZGxpbmc6Oklnbm9yZUJsb2NrcXVvdGUpCiAgICAgICAgIG9wdGlvbnMgfD0gUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQ6Oklnbm9yZU1haWxCbG9ja3F1b3RlOwogCi0gICAgYXBwbHlD
b21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21l
bnQsIG9wdGlvbnMsIEVkaXRBY3Rpb25QYXN0ZSkpOworICAgIGFwcGx5Q29tbWFuZChSZXBsYWNl
U2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCBvcHRpb25zLCBl
ZGl0aW5nQWN0aW9uKSk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9u
KCk7CiAKICAgICBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpA
QCAtNTUwLDEzICs1NTAsMTMgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJh
Z21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICBtX3NwZWxs
Q2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVz
b2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8IFRleHRD
aGVja2luZ1R5cGVHcmFtbWFyKSwgVGV4dENoZWNraW5nUHJvY2Vzc0JhdGNoLCByYW5nZVRvQ2hl
Y2ssIHJhbmdlVG9DaGVjaykpOwogfQogCi12b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldp
dGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBz
bWFydFJlcGxhY2UpCit2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2Us
IEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0g
c2VsZWN0ZWRSYW5nZSgpOwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAg
IHJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoY3JlYXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFu
Z2UsIHRleHQpLCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCB0cnVlKTsKKyAgICBy
ZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdl
LCB0ZXh0KSwgc2VsZWN0UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgdHJ1ZSwgZWRpdGluZ0Fj
dGlvbik7CiB9CiAKIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6c2VsZWN0ZWRSYW5nZSgpCkBA
IC05OTgsNyArOTk4LDggQEAgdm9pZCBFZGl0b3I6OmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8
Q29tcG9zaXRlRWRpdENvbW1hbmQ+IGNtZCkKIAogICAgIC8vIERvbid0IGNsZWFyIHRoZSB0eXBp
bmcgc3R5bGUgd2l0aCB0aGlzIHNlbGVjdGlvbiBjaGFuZ2UuICBXZSBkbyB0aG9zZSB0aGluZ3Mg
ZWxzZXdoZXJlIGlmIG5lY2Vzc2FyeS4KICAgICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
T3B0aW9ucyBvcHRpb25zID0gY21kLT5pc0RpY3RhdGlvbkNvbW1hbmQoKSA/IEZyYW1lU2VsZWN0
aW9uOjpEaWN0YXRpb25UcmlnZ2VyZWQgOiAwOwotICAgIGNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMpOworICAgIAorICAgIGNoYW5nZVNlbGVjdGlvbkFm
dGVyQ29tbWFuZChuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGNtZC0+YXBwbHlFZGl0VHlwZSgpKTsK
ICAgICBkaXNwYXRjaEVkaXRhYmxlQ29udGVudENoYW5nZWRFdmVudHMoY29tcG9zaXRpb24tPnN0
YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjb21wb3NpdGlvbi0+ZW5kaW5nUm9vdEVkaXRh
YmxlRWxlbWVudCgpKTsKIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQoKTsKQEAg
LTEwMjksNyArMTAzMCw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQ
dHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gY21kKQogICAgIG5vdGlmeVRleHRGcm9tQ29udHJv
bHMoY21kLT5zdGFydGluZ1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSwgY21kLT5lbmRpbmdSb290RWRp
dGFibGVFbGVtZW50KCkpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oY21k
LT5zdGFydGluZ1NlbGVjdGlvbigpKTsKLSAgICBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQo
bmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSk7CisgICAgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKG5ld1NlbGVjdGlvbiwgRnJhbWVT
ZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIGNtZC0+dW5hcHBseUVkaXRU
eXBlKCkpOwogICAgIGRpc3BhdGNoRWRpdGFibGVDb250ZW50Q2hhbmdlZEV2ZW50cyhjbWQtPnN0
YXJ0aW5nUm9vdEVkaXRhYmxlRWxlbWVudCgpLCBjbWQtPmVuZGluZ1Jvb3RFZGl0YWJsZUVsZW1l
bnQoKSk7CiAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CkBAIC0xMjYzLDcg
KzEyNjQsNyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0b3JBY3Rpb25TcGVj
aWZpZXIgYWN0aW9uKQogCiAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKTsKICAg
ICBpZiAoYWN0aW9uID09IEN1dEFjdGlvbikKLSAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNt
YXJ0RGVsZXRlKGNhblNtYXJ0Q29weU9yRGVsZXRlKCkpOworICAgICAgICBkZWxldGVTZWxlY3Rp
b25XaXRoU21hcnREZWxldGUoY2FuU21hcnRDb3B5T3JEZWxldGUoKSwgRWRpdEFjdGlvbkN1dCk7
CiB9CiAKIHZvaWQgRWRpdG9yOjpwYXN0ZSgpCkBAIC0yMjM1LDcgKzIyMzYsNyBAQCB2b2lkIEVk
aXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKGNvbnN0IFZpc2libGVQb3Np
dGlvbiAmd29yZFN0YXJ0LAogCiAgICAgICAgIGlmICghbV9mcmFtZS5lZGl0b3IoKS5zaG91bGRJ
bnNlcnRUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIEVk
aXRvckluc2VydEFjdGlvblR5cGVkKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9m
cmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmlu
ZywgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgbV9mcmFtZS5lZGl0b3IoKS5yZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQoYXV0b2NvcnJlY3RlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9u
SW5zZXJ0KTsKIAogICAgICAgICAvLyBSZXNldCB0aGUgY2hhcmV0IG9uZSBjaGFyYWN0ZXIgZnVy
dGhlci4KICAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5tb3ZlVG8obV9mcmFtZS5zZWxlY3Rp
b24oKS5zZWxlY3Rpb24oKS5lbmQoKSk7CkBAIC0yNTgxLDcgKzI1ODIsNyBAQCB2b2lkIEVkaXRv
cjo6Y2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcoY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmlu
ZykKICAgICAKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPnJlY29yZEF1dG9jb3Jy
ZWN0aW9uUmVzcG9uc2VSZXZlcnNlZChyZXBsYWNlZFN0cmluZywgc2VsZWN0aW9uKTsKICAgICBU
ZXh0Q2hlY2tpbmdQYXJhZ3JhcGggcGFyYWdyYXBoKHNlbGVjdGlvbik7Ci0gICAgcmVwbGFjZVNl
bGVjdGlvbldpdGhUZXh0KHJlcGxhY2VkU3RyaW5nLCBmYWxzZSwgZmFsc2UpOworICAgIHJlcGxh
Y2VTZWxlY3Rpb25XaXRoVGV4dChyZXBsYWNlZFN0cmluZywgZmFsc2UsIGZhbHNlLCBFZGl0QWN0
aW9uSW5zZXJ0KTsKICAgICBSZWZQdHI8UmFuZ2U+IGNoYW5nZWRSYW5nZSA9IHBhcmFncmFwaC5z
dWJyYW5nZShwYXJhZ3JhcGguY2hlY2tpbmdTdGFydCgpLCByZXBsYWNlZFN0cmluZy5sZW5ndGgo
KSk7CiAgICAgY2hhbmdlZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLT5kb2N1bWVudCgpLm1hcmtl
cnMoKS5hZGRNYXJrZXIoY2hhbmdlZFJhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6UmVwbGFj
ZW1lbnQsIFN0cmluZygpKTsKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPm1hcmtS
ZXZlcnNlZChjaGFuZ2VkUmFuZ2UuZ2V0KCkpOwpAQCAtMjgxNSw3ICsyODE2LDcgQEAgdm9pZCBF
ZGl0b3I6OnRyYW5zcG9zZSgpCiAgICAgLy8gSW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3Rl
cnMuCiAgICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KHRyYW5zcG9zZWQsIHJhbmdlLmdldCgpLCBF
ZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkpCiAgICAgICAgIHJldHVybjsKLSAgICByZXBsYWNlU2Vs
ZWN0aW9uV2l0aFRleHQodHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlKTsKKyAgICByZXBsYWNlU2Vs
ZWN0aW9uV2l0aFRleHQodHJhbnNwb3NlZCwgZmFsc2UsIGZhbHNlLCBFZGl0QWN0aW9uSW5zZXJ0
KTsKIH0KIAogdm9pZCBFZGl0b3I6OmFkZFRvS2lsbFJpbmcoUmFuZ2UqIHJhbmdlLCBib29sIHBy
ZXBlbmQpCkBAIC0yODQ3LDcgKzI4NDgsNyBAQCB2b2lkIEVkaXRvcjo6ZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbEFzSWdub3JlZCgpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLT5kaXNt
aXNzKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsKIH0KIAotdm9p
ZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBuZXdTZWxlY3Rpb24sICBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyBv
cHRpb25zKQordm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rpb24sIEZyYW1lU2VsZWN0aW9uOjpTZXRTZWxlY3Rp
b25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50IGludGVudCkKIHsKICAg
ICAvLyBJZiB0aGUgbmV3IHNlbGVjdGlvbiBpcyBvcnBoYW5lZCwgdGhlbiBkb24ndCB1cGRhdGUg
dGhlIHNlbGVjdGlvbi4KICAgICBpZiAobmV3U2VsZWN0aW9uLnN0YXJ0KCkuaXNPcnBoYW4oKSB8
fCBuZXdTZWxlY3Rpb24uZW5kKCkuaXNPcnBoYW4oKSkKQEAgLTI4NTksNyArMjg2MCw3IEBAIHZv
aWQgRWRpdG9yOjpjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLAogICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNTcyOTMxNT4g
U29tZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlIGNvbnRhaW4gUmFuZ2VzIGZvciBzZWxl
Y3Rpb25zIHRoYXQgYXJlIG5vIGxvbmdlciB2YWxpZAogICAgIGJvb2wgc2VsZWN0aW9uRGlkTm90
Q2hhbmdlRE9NUG9zaXRpb24gPSBuZXdTZWxlY3Rpb24gPT0gbV9mcmFtZS5zZWxlY3Rpb24oKS5z
ZWxlY3Rpb24oKTsKICAgICBpZiAoc2VsZWN0aW9uRGlkTm90Q2hhbmdlRE9NUG9zaXRpb24gfHwg
bV9mcmFtZS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkK
LSAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBv
cHRpb25zKTsKKyAgICAgICAgbV9mcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBvcHRpb25zLCBpbnRlbnQpOwogCiAgICAgLy8gU29tZSBlZGl0aW5nIG9wZXJhdGlv
bnMgY2hhbmdlIHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkgd2l0aG91dCBhZmZlY3RpbmcgaXRzIHBv
c2l0aW9uIHdpdGhpbiB0aGUgRE9NLgogICAgIC8vIEZvciBleGFtcGxlIHdoZW4geW91IHByZXNz
IHJldHVybiBpbiB0aGUgZm9sbG93aW5nICh0aGUgY2FyZXQgaXMgbWFya2VkIGJ5IF4pOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggYTU3ZDQyYS4uMTMxM2RiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGRlbGV0ZVdpdGhEaXJlY3Rpb24oU2VsZWN0aW9uRGlyZWN0aW9uLCBU
ZXh0R3JhbnVsYXJpdHksIGJvb2wga2lsbFJpbmcsIGJvb2wgaXNUeXBpbmdBY3Rpb24pOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGJvb2wg
c21hcnREZWxldGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlU2VsZWN0aW9uV2l0
aFNtYXJ0RGVsZXRlKGJvb2wgc21hcnREZWxldGUsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uRGVs
ZXRlKTsKICAgICB2b2lkIGNsZWFyVGV4dCgpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlbW92ZVVuY2hhbmdlYWJsZVN0eWxlcygpOwpAQCAtMzgyLDggKzM4
Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKEVsZW1lbnQq
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBXcml0aW5nRGlyZWN0aW9uIGJhc2VXcml0aW5nRGlyZWN0
aW9uRm9yU2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0
eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlv
bldpdGhUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21h
cnRSZXBsYWNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiwgYm9vbCBzZWxlY3RSZXBsYWNl
bWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHlsZSwgRWRpdEFjdGlvbiA9IEVk
aXRBY3Rpb25JbnNlcnQsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgPSBNYWlsQmxvY2txdW90ZUhh
bmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBs
YWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiwgYm9vbCBzZWxlY3RSZXBsYWNlbWVu
dCwgYm9vbCBzbWFydFJlcGxhY2UsIEVkaXRBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIHNlbGVjdGlvblN0YXJ0SGFzTWFya2VyRm9yKERvY3VtZW50
TWFya2VyOjpNYXJrZXJUeXBlLCBpbnQgZnJvbSwgaW50IGxlbmd0aCkgY29uc3Q7CiAgICAgdm9p
ZCB1cGRhdGVNYXJrZXJzRm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhib29sIG9ubHlIYW5kbGVX
b3Jkc0NvbnRhaW5pbmdTZWxlY3Rpb24pOwogICAgIHZvaWQgZGVsZXRlZEF1dG9jb3JyZWN0aW9u
QXRQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxTdHJpbmcp
OwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBTZXRDb21wb3NpdGlvbk1v
ZGUgeyBDb25maXJtQ29tcG9zaXRpb24sIENhbmNlbENvbXBvc2l0aW9uIH07CiAgICAgdm9pZCBz
ZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmLCBTZXRDb21wb3NpdGlvbk1vZGUpOwogCi0gICAg
dm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
bmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucyk7CisgICAg
dm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
bmV3U2VsZWN0aW9uLCBGcmFtZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uT3B0aW9ucywgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIAogICAgIGVu
dW0gRWRpdG9yQWN0aW9uU3BlY2lmaWVyIHsgQ3V0QWN0aW9uLCBDb3B5QWN0aW9uIH07CiAgICAg
dm9pZCBwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCA1MTFjYjAyLi43YTgxNjY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE5Miw3ICsxOTIsNyBA
QCBzdGF0aWMgYm9vbCBleGVjdXRlQXBwbHlQYXJhZ3JhcGhTdHlsZShGcmFtZSYgZnJhbWUsIEVk
aXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLAogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEZyYWdt
ZW50KEZyYW1lJiBmcmFtZSwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCkK
IHsKICAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgYXBwbHlDb21tYW5kKFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIGZyYWdtZW50LCBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25VbnNwZWNp
ZmllZCkpOworICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRl
KCpmcmFtZS5kb2N1bWVudCgpLCBmcmFnbWVudCwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlBy
ZXZlbnROZXN0aW5nLCBFZGl0QWN0aW9uSW5zZXJ0KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNDQwZjM2Ni4u
OWU5NDE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNoYXJhY3Rl
ckRhdGEuaCIKICNpbmNsdWRlICJEZWxldGVTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKQEAgLTEzOSw3ICsxNDAsNyBAQCBFbGVtZW50KiBGcmFtZVNlbGVjdGlvbjo6
cm9vdEVkaXRhYmxlRWxlbWVudE9yRG9jdW1lbnRFbGVtZW50KCkgY29uc3QKIHZvaWQgRnJhbWVT
ZWxlY3Rpb246Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2Vy
ZWQgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbikKIHsKICAgICBzZXRT
ZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBF
cXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpLCBtX3NlbGVjdGlvbi5pc0RpcmVjdGlvbmFsKCkp
LAotICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwgYWxp
Z24pOworICAgICAgICBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyh1c2VyVHJpZ2dlcmVkKSwg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSwgYWxpZ24pOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0
aW9uOjptb3ZlVG8oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZiYXNlLCBjb25zdCBWaXNpYmxlUG9z
aXRpb24gJmV4dGVudCwgRVVzZXJUcmlnZ2VyZWQgdXNlclRyaWdnZXJlZCkKQEAgLTE3MCw3ICsx
NzEsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjptb3ZlV2l0aG91dFZhbGlkYXRpb25Ubyhjb25z
dCBQb3NpdGlvbiYgYmFzZSwgY29uc3QgUG9zaXRpbwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3
U2VsZWN0aW9uOwogICAgIG5ld1NlbGVjdGlvbi5zZXRXaXRob3V0VmFsaWRhdGlvbihiYXNlLCBl
eHRlbnQpOwogICAgIG5ld1NlbGVjdGlvbi5zZXRJc0RpcmVjdGlvbmFsKHNlbGVjdGlvbkhhc0Rp
cmVjdGlvbik7Ci0gICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVj
dGlvbk9wdGlvbnMoKSB8IChzaG91bGRTZXRGb2N1cyA/IDAgOiBEb05vdFNldEZvY3VzKSk7Cisg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBz
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpIHwg
KHNob3VsZFNldEZvY3VzID8gMCA6IERvTm90U2V0Rm9jdXMpLCBpbnRlbnQpOwogfQogCiB2b2lk
IERyYWdDYXJldENvbnRyb2xsZXI6OnNldENhcmV0UG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBwb3NpdGlvbikKQEAgLTI1NCw3ICsyNTYsMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6
c2V0U2VsZWN0aW9uQnlNb3VzZUlmRGlmZmVyZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHBh
c3MKICAgICBpZiAobV9zZWxlY3Rpb24gPT0gbmV3U2VsZWN0aW9uIHx8ICFzaG91bGRDaGFuZ2VT
ZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSB8IEZpcmVTZWxl
Y3RFdmVudCwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSk7CisgICAg
CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50OworICAgIGlmIChBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpICYmIG5ld1NlbGVjdGlvbi5pc0NhcmV0KCkpCisg
ICAgICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdl
VHlwZVNlbGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVj
dGlvbkRpc2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsK
KyAgICBlbHNlCisgICAgICAgIGludGVudCA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCk7Cisg
ICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50LCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IGdyYW51bGFyaXR5KTsKIH0KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0
aG91dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b25Qb3NzaWJseVdpdGhvdXREaXJlY3Rpb24sIFNldFNlbGVjdGlvbk9wdGlvbnMgb3B0aW9ucywg
Q3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpA
QCAtMjc2LDcgKzI4NCw3IEBAIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNldFNlbGVjdGlvbldpdGhv
dXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3QgVmlzaWJsZVNlbGVjdGlvCiAgICAgaWYgKERvY3Vt
ZW50KiBuZXdTZWxlY3Rpb25Eb2N1bWVudCA9IG5ld1NlbGVjdGlvbi5iYXNlKCkuZG9jdW1lbnQo
KSkgewogICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBuZXdTZWxlY3Rpb25GcmFtZSA9IG5ld1Nl
bGVjdGlvbkRvY3VtZW50LT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAobmV3U2VsZWN0aW9u
RnJhbWUgIT0gbV9mcmFtZSAmJiBuZXdTZWxlY3Rpb25Eb2N1bWVudCAhPSBtX2ZyYW1lLT5kb2N1
bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigp
LnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSk7
CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uRnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVj
dGlvbihuZXdTZWxlY3Rpb24sIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIGFs
aWduLCBncmFudWxhcml0eSk7CiAgICAgICAgICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0
IGR1cmluZyB0aGUgYWJvdmUgc2V0IHNlbGVjdGlvbiwgdGhpcyBGcmFtZVNlbGVjdGlvbiBoYXMg
YmVlbiBtb2RpZmllZCBieQogICAgICAgICAgICAgICAgIC8vIHNlbGVjdEZyYW1lRWxlbWVudElu
UGFyZW50SWZGdWxseVNlbGVjdGVkLCBidXQgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIG5vIGxvbmdl
ciB2YWxpZCBzaW5jZQogICAgICAgICAgICAgICAgIC8vIHRoZSBmcmFtZSBpcyBhYm91dCB0byBi
ZSBkZXN0cm95ZWQuIElmIHRoaXMgaXMgdGhlIGNhc2UsIGNsZWFyIG91ciBzZWxlY3Rpb24uCkBA
IC0zMjAsNyArMzI4LDcgQEAgYm9vbCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uV2l0aG91
dFVwZGF0aW5nQXBwZWFyYW5jZShjb25zdCBWaXNpYmxlU2VsZWN0aW8KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlbGVjdGlvbiwgU2V0U2VsZWN0aW9uT3B0aW9ucyBvcHRpb25zLCBDdXJzb3JB
bGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0
aW9uLCBTZXRTZWxlY3Rpb25PcHRpb25zIG9wdGlvbnMsIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IGludGVudCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5KQogewogICAgIGlmICghc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShzZWxlY3Rpb24sIG9wdGlvbnMsIGFsaWduLCBncmFudWxhcml0eSkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTM0MSw3ICszNDksNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBTZXRTZWxlY3RpbwogICAgIGlmIChm
cmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigpOworICAgIHVwZGF0ZUFuZFJldmVhbFNl
bGVjdGlvbihpbnRlbnQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTZWxlY3Rpb25CeVVwZGF0
aW5nTGF5b3V0T3JTdHlsZShGcmFtZSYgZnJhbWUpCkBAIC0zNjAsNyArMzY4LDcgQEAgdm9pZCBG
cmFtZVNlbGVjdGlvbjo6c2V0TmVlZHNTZWxlY3Rpb25VcGRhdGUoKQogICAgICAgICB2aWV3LT5j
bGVhclNlbGVjdGlvbigpOwogfQogCi12b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZl
YWxTZWxlY3Rpb24oKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQW5kUmV2ZWFsU2VsZWN0
aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCiB7CiAgICAgaWYgKCFt
X3BlbmRpbmdTZWxlY3Rpb25VcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3ICszODgs
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjp1cGRhdGVBbmRSZXZlYWxTZWxlY3Rpb24oKQogICAg
ICAgICByZXZlYWxTZWxlY3Rpb24oYWxpZ25tZW50LCBSZXZlYWxFeHRlbnQpOwogICAgIH0KIAot
ICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKTsKKyAgICBub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGludGVudCk7CiAKICAgICBpZiAoYXV0byog
Y2xpZW50ID0gbV9mcmFtZS0+ZWRpdG9yKCkuY2xpZW50KCkpCiAgICAgICAgIGNsaWVudC0+ZGlk
Q2hhbmdlU2VsZWN0aW9uQW5kVXBkYXRlTGF5b3V0KCk7CkBAIC0xMDIxLDcgKzEwMjksNzUgQEAg
VmlzaWJsZVBvc2l0aW9uIEZyYW1lU2VsZWN0aW9uOjptb2RpZnlNb3ZpbmdCYWNrd2FyZChUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkKIHN0YXRpYyBib29sIGlzQm91bmRhcnkoVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHJldHVybiBncmFudWxhcml0eSA9PSBMaW5lQm91
bmRhcnkgfHwgZ3JhbnVsYXJpdHkgPT0gUGFyYWdyYXBoQm91bmRhcnkgfHwgZ3JhbnVsYXJpdHkg
PT0gRG9jdW1lbnRCb3VuZGFyeTsKLX0gICAgCit9CisKK0FYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
IEZyYW1lU2VsZWN0aW9uOjp0ZXh0U2VsZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uIGFsdGVyLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkp
Cit7CisgICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50ID0gQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKTsKKyAgICBib29sIGZsaXAgPSBmYWxzZTsKKyAgICBpZiAoYWx0ZXIgPT0gRnJh
bWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlKSB7CisgICAgICAgIGludGVudC50eXBlID0gQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZTsKKyAgICAgICAgZmxpcCA9IGlzUmFuZ2Uo
KSAmJiBkaXJlY3Rpb25PZlNlbGVjdGlvbigpID09IFJUTDsKKyAgICB9IGVsc2UKKyAgICAgICAg
aW50ZW50LnR5cGUgPSBBWFRleHRTdGF0ZUNoYW5nZVR5cGVTZWxlY3Rpb25FeHRlbmQ7CisgICAg
c3dpdGNoIChncmFudWxhcml0eSkgeworICAgIGNhc2UgQ2hhcmFjdGVyR3JhbnVsYXJpdHk6Cisg
ICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFu
dWxhcml0eUNoYXJhY3RlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXb3JkR3JhbnVsYXJp
dHk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rp
b25HcmFudWxhcml0eVdvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VudGVuY2VHcmFu
dWxhcml0eToKKyAgICBjYXNlIFNlbnRlbmNlQm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxl
Y3Rpb24uZ3JhbnVsYXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eVNlbnRlbmNlOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVC
b3VuZGFyeToKKyAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5ncmFudWxhcml0eSA9IEFYVGV4dFNl
bGVjdGlvbkdyYW51bGFyaXR5TGluZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXJhZ3Jh
cGhHcmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgorICAgICAgICBpbnRl
bnQuc2VsZWN0aW9uLmdyYW51bGFyaXR5ID0gQVhUZXh0U2VsZWN0aW9uR3JhbnVsYXJpdHlQYXJh
Z3JhcGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG9jdW1lbnRHcmFudWxhcml0eToKKyAg
ICBjYXNlIERvY3VtZW50Qm91bmRhcnk6CisgICAgICAgIGludGVudC5zZWxlY3Rpb24uZ3JhbnVs
YXJpdHkgPSBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eURvY3VtZW50OworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgYm9vbCBib3VuZGFyeSA9IGZhbHNlOworICAgIHN3aXRjaCAoZ3JhbnVs
YXJpdHkpIHsKKyAgICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgorICAgIGNhc2UgV29yZEdy
YW51bGFyaXR5OgorICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKKyAgICBjYXNlIExpbmVH
cmFudWxhcml0eToKKyAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgorICAgIGNhc2UgRG9j
dW1lbnRHcmFudWxhcml0eToKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW50ZW5jZUJvdW5k
YXJ5OgorICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6
CisgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgorICAgICAgICBib3VuZGFyeSA9IHRydWU7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2Ug
RGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBEaXJlY3Rpb25Gb3J3YXJkOgorICAgICAgICBpZiAo
Ym91bmRhcnkpCisgICAgICAgICAgICBpbnRlbnQuc2VsZWN0aW9uLmRpcmVjdGlvbiA9IGZsaXAg
PyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rpb25CZWdpbm5pbmcgOiBBWFRleHRTZWxlY3Rpb25EaXJl
Y3Rpb25FbmQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGly
ZWN0aW9uID0gZmxpcCA/IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvblByZXZpb3VzIDogQVhUZXh0
U2VsZWN0aW9uRGlyZWN0aW9uTmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXJlY3Rp
b25MZWZ0OgorICAgIGNhc2UgRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIGlmIChib3VuZGFy
eSkKKyAgICAgICAgICAgIGludGVudC5zZWxlY3Rpb24uZGlyZWN0aW9uID0gZmxpcCA/IEFYVGV4
dFNlbGVjdGlvbkRpcmVjdGlvbkVuZCA6IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkJlZ2lubmlu
ZzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZW50LnNlbGVjdGlvbi5kaXJlY3Rpb24g
PSBmbGlwID8gQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uTmV4dCA6IEFYVGV4dFNlbGVjdGlvbkRp
cmVjdGlvblByZXZpb3VzOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGludGVu
dDsKK30KIAogYm9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBT
ZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IEVVc2VyVHJpZ2dlcmVkIHVzZXJUcmlnZ2VyZWQpCiB7CkBAIC0xMDc3LDYgKzExNTMsMTEgQEAg
Ym9vbCBGcmFtZVNlbGVjdGlvbjo6bW9kaWZ5KEVBbHRlcmF0aW9uIGFsdGVyLCBTZWxlY3Rpb25E
aXJlY3Rpb24gZGlyZWN0aW9uLCBUZXgKICAgICAgICAgaWYgKCF3YXNSYW5nZSAmJiBhbHRlciA9
PSBBbHRlcmF0aW9uTW92ZSAmJiBwb3NpdGlvbiA9PSBvcmlnaW5hbFN0YXJ0UG9zaXRpb24pCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9mcmFtZSAmJiBBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChBWE9iamVjdENhY2hl
KiBjYWNoZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQor
ICAgICAgICAgICAgY2FjaGUtPnNldFRleHRTZWxlY3Rpb25JbnRlbnQodGV4dFNlbGVjdGlvbklu
dGVudChhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSkpOworICAgIH0KKwogICAgIC8vIFNv
bWUgb2YgdGhlIGFib3ZlIG9wZXJhdGlvbnMgc2V0IGFuIHhQb3NGb3JWZXJ0aWNhbEFycm93TmF2
aWdhdGlvbi4KICAgICAvLyBTZXR0aW5nIGEgc2VsZWN0aW9uIHdpbGwgY2xlYXIgaXQsIHNvIHNh
dmUgaXQgdG8gcG9zc2libHkgcmVzdG9yZSBsYXRlci4KICAgICAvLyBOb3RlOiB0aGUgU1RBUlQg
cG9zaXRpb24gdHlwZSBpcyBhcmJpdHJhcnkgYmVjYXVzZSBpdCBpcyB1bnVzZWQsIGl0IHdvdWxk
IGJlCkBAIC0xNzEwLDggKzE3OTEsMTAgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2VsZWN0QWxs
KCkKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246
OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290LmdldCgpKSk7CiAKLSAgICBpZiAoc2hv
dWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIHNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCkgfCBGaXJlU2VsZWN0RXZl
bnQpOworICAgIGlmIChzaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAg
ICAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBl
U2VsZWN0aW9uRXh0ZW5kLCBBWFRleHRTZWxlY3Rpb24geyBBWFRleHRTZWxlY3Rpb25EaXJlY3Rp
b25EaXNjb250aWd1b3VzLCBBWFRleHRTZWxlY3Rpb25HcmFudWxhcml0eUFsbCB9KTsKKyAgICAg
ICAgc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMo
KSB8IEZpcmVTZWxlY3RFdmVudCwgaW50ZW50KTsKKyAgICB9CiB9CiAKIGJvb2wgRnJhbWVTZWxl
Y3Rpb246OnNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqIHJhbmdlLCBFQWZmaW5pdHkgYWZmaW5pdHks
IGJvb2wgY2xvc2VUeXBpbmcpCkBAIC0yMTQ1LDcgKzIyMjgsNyBAQCB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXRTaG91bGRTaG93QmxvY2tDdXJzb3IoYm9vbCBzaG91bGRTaG93QmxvY2tDdXJzb3Ip
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpkaWRMYXlvdXQoKQogewogICAgIHNldENhcmV0UmVjdE5l
ZWRzVXBkYXRlKCk7Ci0gICAgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKCk7CisgICAgdXBkYXRl
QW5kUmV2ZWFsU2VsZWN0aW9uKEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIHVwZGF0
ZURhdGFEZXRlY3RvcnNGb3JTZWxlY3Rpb24oKTsKIH0KIApAQCAtMjQyMyw3ICsyNTA2LDcgQEAg
VmlzaWJsZVNlbGVjdGlvbiBGcmFtZVNlbGVjdGlvbjo6d29yZFNlbGVjdGlvbkNvbnRhaW5pbmdD
YXJldFNlbGVjdGlvbihjb25zdCBWaXMKIAogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0
aW9uID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCk7CiAgICAgbmV3U2VsZWN0aW9uLmV4cGFu
ZFVzaW5nR3JhbnVsYXJpdHkoV29yZEdyYW51bGFyaXR5KTsKLSAgICBmcmFtZVNlbGVjdGlvbi5z
ZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBB
bGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGZyYW1lU2VsZWN0aW9uLmdyYW51bGFyaXR5KCkp
OworICAgIGZyYW1lU2VsZWN0aW9uLnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGRlZmF1bHRT
ZXRTZWxlY3Rpb25PcHRpb25zKCksIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIEFsaWduQ3Vy
c29yT25TY3JvbGxJZk5lZWRlZCwgZnJhbWVTZWxlY3Rpb24uZ3JhbnVsYXJpdHkoKSk7CiAKICAg
ICBQb3NpdGlvbiBzdGFydFBvcyhmcmFtZVNlbGVjdGlvbi5zZWxlY3Rpb24oKS5zdGFydCgpKTsK
ICAgICBQb3NpdGlvbiBlbmRQb3MoZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuZW5kKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IDBlNGUyOGUuLjJiN2Yy
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNpZm5kZWYgRnJhbWVTZWxlY3Rpb25faAogI2RlZmluZSBGcmFtZVNlbGVjdGlvbl9o
CiAKKyNpbmNsdWRlICJBWFRleHRTdGF0ZUNoYW5nZUludGVudC5oIgogI2luY2x1ZGUgIkVkaXRp
bmdTdHlsZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0Lmgi
CkBAIC0xNDQsNyArMTQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgbW92ZVdpdGhvdXRWYWxpZGF0
aW9uVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIGJvb2wgc2VsZWN0aW9uSGFz
RGlyZWN0aW9uLCBib29sIHNob3VsZFNldEZvY3VzKTsKIAogICAgIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNl
dFNlbGVjdGlvbk9wdGlvbnMgPSBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBDdXJzb3JB
bGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0R3JhbnVsYXJp
dHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMgPSBk
ZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCA9IEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50KCksIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNv
ck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZm
aW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0
QWxsKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwpAQCAtMjcyLDcgKzI3Myw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZW51bSBFUG9zaXRpb25UeXBlIHsgU1RBUlQsIEVO
RCwgQkFTRSwgRVhURU5UIH07CiAKLSAgICB2b2lkIHVwZGF0ZUFuZFJldmVhbFNlbGVjdGlvbigp
OworICAgIHZvaWQgdXBkYXRlQW5kUmV2ZWFsU2VsZWN0aW9uKGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50Jik7CiAgICAgdm9pZCB1cGRhdGVEYXRhRGV0ZWN0b3JzRm9yU2VsZWN0aW9uKCk7
CiAKICAgICBib29sIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYsIFNldFNlbGVjdGlvbk9wdGlvbnMsIEN1cnNvckFsaWduT25TY3Jv
bGwsIFRleHRHcmFudWxhcml0eSk7CkBAIC0yOTcsMTAgKzI5OCwxMSBAQCBwcml2YXRlOgogCiAg
ICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9pbnRGb3JCbG9ja0RpcmVjdGlvbk5hdmlnYXRp
b24oRVBvc2l0aW9uVHlwZSk7CiAKKyAgICBBWFRleHRTdGF0ZUNoYW5nZUludGVudCB0ZXh0U2Vs
ZWN0aW9uSW50ZW50KEVBbHRlcmF0aW9uLCBTZWxlY3Rpb25EaXJlY3Rpb24sIFRleHRHcmFudWxh
cml0eSk7CiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOworICAgIHZvaWQgbm90aWZ5QWNjZXNzaWJpbGl0eUZv
clNlbGVjdGlvbkNoYW5nZShjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYpOwogI2Vsc2UK
LSAgICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoKSB7IH0KKyAg
ICB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JTZWxlY3Rpb25DaGFuZ2UoY29uc3QgQVhUZXh0
U3RhdGVDaGFuZ2VJbnRlbnQmKSB7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rp
b25DYWNoZXNJZlNlbGVjdGlvbklzSW5zaWRlVGV4dEZvcm1Db250cm9sKEVVc2VyVHJpZ2dlcmVk
KTsKQEAgLTM2Nyw3ICszNjksNyBAQCBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlw
aW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQogCiAjaWYgIShQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKQogI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkKLWlubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKK2lubGluZSB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3Rp
ZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JikKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNTM5NGU3ZS4uOTRhZjA0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRy
PFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwgY29uc3QgU3RyaW5nJiB0ZXh0KQotICAgIDog
U2ltcGxlRWRpdENvbW1hbmQobm9kZS0+ZG9jdW1lbnQoKSkKK0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQ6Okluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5z
aWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcmIHRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKKyAgICA6IFNpbXBsZUVkaXRDb21tYW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rp
b24pCiAgICAgLCBtX25vZGUobm9kZSkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1f
dGV4dCh0ZXh0KQpAQCAtNjYsOCArNjYsOCBAQCB2b2lkIEluc2VydEludG9UZXh0Tm9kZUNvbW1h
bmQ6OmRvQXBwbHkoKQogCiAgICAgbV9ub2RlLT5pbnNlcnREYXRhKG1fb2Zmc2V0LCBtX3RleHQs
IElHTk9SRV9FWENFUFRJT04pOwogCi0gICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9j
dW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPm5vZGVUZXh0
Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhUZXh0SW5z
ZXJ0ZWQsIG1fb2Zmc2V0LCBtX3RleHQpOworICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5n
ZShtX25vZGUuZ2V0KCksIGFwcGx5RWRpdFR5cGUoKSwgbV90ZXh0LCBWaXNpYmxlUG9zaXRpb24o
UG9zaXRpb24obV9ub2RlLCBtX29mZnNldCkpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTg0LDggKzg0LDggQEAgdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHko
KQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIC8vIE5lZWQgdG8gbm90aWZ5IHRoaXMg
YmVmb3JlIGFjdHVhbGx5IGRlbGV0aW5nIHRoZSB0ZXh0Ci0gICAgaWYgKEFYT2JqZWN0Q2FjaGUq
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2Fj
aGUtPm5vZGVUZXh0Q2hhbmdlTm90aWZpY2F0aW9uKG1fbm9kZS5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhUZXh0RGVsZXRlZCwgbV9vZmZzZXQsIG1fdGV4dCk7CisgICAgaWYgKEFYT2JqZWN0Q2Fj
aGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JUZXh0Q2hhbmdlKG1fbm9kZS5nZXQoKSwgdW5hcHBseUVkaXRUeXBlKCksIG1fdGV4dCwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKG1fbm9kZSwgbV9vZmZzZXQpKSk7CiAKICAgICBtX25vZGUt
PmRlbGV0ZURhdGEobV9vZmZzZXQsIG1fdGV4dC5sZW5ndGgoKSwgSUdOT1JFX0VYQ0VQVElPTik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZC5oCmluZGV4IDMxMGJiYjMuLjA3NjA5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oCkBAIC0zNCwxNCArMzQsMTcgQEAg
Y2xhc3MgVGV4dDsKIAogY2xhc3MgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCA6IHB1YmxpYyBT
aW1wbGVFZGl0Q29tbWFuZCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbnNlcnRJbnRvVGV4
dE5vZGVDb21tYW5kPiBjcmVhdGUoUGFzc1JlZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICBzdGF0aWMgUmVmPEluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNv
bnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRpdEFjdGlvbklu
c2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQobm9kZSwgb2Zmc2V0LCB0ZXh0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZzZXQs
IHRleHQsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgSW5zZXJ0SW50
b1RleHROb2RlQ29tbWFuZChQYXNzUmVmUHRyPFRleHQ+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
Y29uc3QgU3RyaW5nJiB0ZXh0KTsKKyAgICBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCgpOwor
Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChSZWZQdHI8VGV4dD4m
JiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFU
Rk9STShJT1MpCkBAIC01Nyw2ICs2MCwxMSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3RleHQ7
CiB9OwogCitpbmxpbmUgY29uc3QgU3RyaW5nJiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpp
bnNlcnRlZFRleHQoKQoreworICAgIHJldHVybiBtX3RleHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAppbmRl
eCBkMTZiNWQ2Li5jNmIyMjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
c2VydE5vZGVCZWZvcmVDb21tYW5kLmNwcApAQCAtMjksMTMgKzI5LDEzIEBACiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmgiCisjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgImh0bWxl
ZGl0aW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0Tm9kZUJlZm9yZUNvbW1h
bmQ6Okluc2VydE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gaW5zZXJ0Q2hpbGQs
IFBhc3NSZWZQdHI8Tm9kZT4gcmVmQ2hpbGQsCi0gICAgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3
YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBT
aW1wbGVFZGl0Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1lbnQoKSkKK0luc2VydE5vZGVCZWZvcmVD
b21tYW5kOjpJbnNlcnROb2RlQmVmb3JlQ29tbWFuZChSZWZQdHI8Tm9kZT4mJiBpbnNlcnRDaGls
ZCwgUmVmUHRyPE5vZGU+JiYgcmVmQ2hpbGQsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVk
aXRpbmdBY3Rpb24pCisgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChyZWZDaGlsZC0+ZG9jdW1lbnQo
KSwgZWRpdGluZ0FjdGlvbikKICAgICAsIG1faW5zZXJ0Q2hpbGQoaW5zZXJ0Q2hpbGQpCiAgICAg
LCBtX3JlZkNoaWxkKHJlZkNoaWxkKQogICAgICwgbV9zaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZShzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkKQEAgLTU3LDgg
KzU3LDEwIEBAIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAg
cGFyZW50LT5pbnNlcnRCZWZvcmUobV9pbnNlcnRDaGlsZC5nZXQoKSwgbV9yZWZDaGlsZC5nZXQo
KSwgSUdOT1JFX0VYQ0VQVElPTik7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+bm9kZVRl
eHRDaGFuZ2VOb3RpZmljYXRpb24obV9pbnNlcnRDaGlsZC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6
QVhUZXh0SW5zZXJ0ZWQsIDAsIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpKTsKKyAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkgeworICAgICAgICBQb3NpdGlv
biBwb3NpdGlvbiA9IGlzPFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpID8gUG9zaXRpb24oZG93
bmNhc3Q8VGV4dD4obV9pbnNlcnRDaGlsZC5nZXQoKSksIDApIDogY3JlYXRlTGVnYWN5RWRpdGlu
Z1Bvc2l0aW9uKG1faW5zZXJ0Q2hpbGQuZ2V0KCksIDApOworICAgICAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yVGV4dENoYW5nZShtX2luc2VydENoaWxkLmdldCgpLCBhcHBseUVkaXRUeXBlKCks
IG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24pKTsK
KyAgICB9CiB9CiAKIHZvaWQgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQ6OmRvVW5hcHBseSgpCkBA
IC02Nyw4ICs2OSwxMCBAQCB2b2lkIEluc2VydE5vZGVCZWZvcmVDb21tYW5kOjpkb1VuYXBwbHko
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWVkIHRvIG5vdGlmeSB0aGlzIGJlZm9yZSBh
Y3R1YWxseSBkZWxldGluZyB0aGUgdGV4dAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9
IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgIGNhY2hlLT5ub2Rl
VGV4dENoYW5nZU5vdGlmaWNhdGlvbihtX2luc2VydENoaWxkLmdldCgpLCBBWE9iamVjdENhY2hl
OjpBWFRleHREZWxldGVkLCAwLCBtX2luc2VydENoaWxkLT5ub2RlVmFsdWUoKSk7CisgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKKyAgICAgICAgUG9zaXRp
b24gcG9zaXRpb24gPSBpczxUZXh0PihtX2luc2VydENoaWxkLmdldCgpKSA/IFBvc2l0aW9uKGRv
d25jYXN0PFRleHQ+KG1faW5zZXJ0Q2hpbGQuZ2V0KCkpLCAwKSA6IGNyZWF0ZUxlZ2FjeUVkaXRp
bmdQb3NpdGlvbihtX2luc2VydENoaWxkLmdldCgpLCAwKTsKKyAgICAgICAgbm90aWZ5QWNjZXNz
aWJpbGl0eUZvclRleHRDaGFuZ2UobV9pbnNlcnRDaGlsZC5nZXQoKSwgdW5hcHBseUVkaXRUeXBl
KCksIG1faW5zZXJ0Q2hpbGQtPm5vZGVWYWx1ZSgpLCBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
KTsKKyAgICB9CiAKICAgICBtX2luc2VydENoaWxkLT5yZW1vdmUoSUdOT1JFX0VYQ0VQVElPTik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVD
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5k
LmgKaW5kZXggZDRiNzYyZC4uNWNlYTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtMzIsMjIgKzMyLDIzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQgOiBwdWJsaWMgU2lt
cGxlRWRpdENvbW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5zZXJ0Tm9kZUJlZm9y
ZUNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnQsIFBhc3NSZWZQ
dHI8Tm9kZT4gY2hpbGRUb0luc2VydEJlZm9yZSwKLSAgICAgICAgU2hvdWxkQXNzdW1lQ29udGVu
dElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCisg
ICAgc3RhdGljIFJlZjxJbnNlcnROb2RlQmVmb3JlQ29tbWFuZD4gY3JlYXRlKFJlZlB0cjxOb2Rl
PiYmIGNoaWxkVG9JbnNlcnQsIFJlZlB0cjxOb2RlPiYmIGNoaWxkVG9JbnNlcnRCZWZvcmUsCisg
ICAgICAgIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0
aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0Tm9k
ZUJlZm9yZUNvbW1hbmQoY2hpbGRUb0luc2VydCwgY2hpbGRUb0luc2VydEJlZm9yZSwgc2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoV1RGOjptb3ZlKGNoaWxkVG9JbnNlcnQpLCBX
VEY6Om1vdmUoY2hpbGRUb0luc2VydEJlZm9yZSksIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5
c0VkaXRhYmxlLCBlZGl0aW5nQWN0aW9uKSk7CiAgICAgfQogCi1wcml2YXRlOgotICAgIEluc2Vy
dE5vZGVCZWZvcmVDb21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gY2hpbGRUb0luc2VydCwgUGFzc1Jl
ZlB0cjxOb2RlPiBjaGlsZFRvSW5zZXJ0QmVmb3JlLCBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSk7Citwcm90ZWN0ZWQ6CisgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUmVm
UHRyPE5vZGU+JiYgY2hpbGRUb0luc2VydCwgUmVmUHRyPE5vZGU+JiYgY2hpbGRUb0luc2VydEJl
Zm9yZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwog
Citwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwotICAgIAorCiAjaWZuZGVmIE5ERUJVRwog
ICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJy
aWRlOwogI2VuZGlmCi0gICAgCisKICAgICBSZWZQdHI8Tm9kZT4gbV9pbnNlcnRDaGlsZDsKICAg
ICBSZWZQdHI8Tm9kZT4gbV9yZWZDaGlsZDsKICAgICBTaG91bGRBc3N1bWVDb250ZW50SXNBbHdh
eXNFZGl0YWJsZSBtX3Nob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
Q29tbWFuZC5jcHAKaW5kZXggMjEyODI5Yy4uN2RkMDE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3Bw
CkBAIC01OSw4ICs1OSw4IEBAIHN0YXRpYyBFbGVtZW50KiBoaWdoZXN0VmlzdWFsbHlFcXVpdmFs
ZW50RGl2QmVsb3dSb290KEVsZW1lbnQqIHN0YXJ0QmxvY2spCiAgICAgcmV0dXJuIGN1ckJsb2Nr
OwogfQogCi1JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBtdXN0VXNlRGVmYXVsdFBh
cmFncmFwaEVsZW1lbnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSkKLSAg
ICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50KQorSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIGJvb2wgbXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVtZW50LCBib29sIHBhc3RlQmxv
Y2txdXRvZUludG9VbnF1b3RlZEFyZWEsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6
IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAgICwgbV9t
dXN0VXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQobXVzdFVzZURlZmF1bHRQYXJhZ3JhcGhFbGVt
ZW50KQogICAgICwgbV9wYXN0ZUJsb2NrcXV0b2VJbnRvVW5xdW90ZWRBcmVhKHBhc3RlQmxvY2tx
dXRvZUludG9VbnF1b3RlZEFyZWEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCmluZGV4IDEyODFmMGMuLjY3
MzQxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oCkBAIC0zNCwxMyArMzQsMTMgQEAgY2xhc3MgRWRpdGlu
Z1N0eWxlOwogCiBjbGFzcyBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kIDogcHVibGlj
IENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluc2VydFBh
cmFncmFwaFNlcGFyYXRvckNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
dXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQgPSBmYWxzZSwgYm9vbCBwYXN0ZUJsb2NrcXV0b2VJ
bnRvVW5xdW90ZWRBcmVhID0gZmFsc2UpCisgICAgc3RhdGljIFJlZjxJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3JDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURlZmF1
bHRQYXJhZ3JhcGhFbGVtZW50ID0gZmFsc2UsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVv
dGVkQXJlYSA9IGZhbHNlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5z
ZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIHBh
c3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZChkb2N1bWVudCwgdXNlRGVmYXVs
dFBhcmFncmFwaEVsZW1lbnQsIHBhc3RlQmxvY2txdXRvZUludG9VbnF1b3RlZEFyZWEsIGVkaXRp
bmdBY3Rpb24pKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQsIGJv
b2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSk7CisgICAgSW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9yQ29tbWFuZChEb2N1bWVudCYsIGJvb2wgdXNlRGVmYXVsdFBhcmFncmFwaEVsZW1l
bnQsIGJvb2wgcGFzdGVCbG9ja3F1dG9lSW50b1VucXVvdGVkQXJlYSwgRWRpdEFjdGlvbik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCmluZGV4IGJkZDU5YTMuLjU3MmU4ZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0zNywxNiArMzcsMTYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1JbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4
dENvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2Vs
ZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUpCi0gICAgOiBDb21w
b3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKK0luc2VydFRleHRDb21tYW5kOjpJbnNlcnRUZXh0
Q29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxl
Y3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUgcmViYWxhbmNlVHlwZSwgRWRpdEFjdGlvbiBl
ZGl0aW5nQWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQsIGVkaXRp
bmdBY3Rpb24pCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fc2VsZWN0SW5zZXJ0ZWRUZXh0
KHNlbGVjdEluc2VydGVkVGV4dCkKICAgICAsIG1fcmViYWxhbmNlVHlwZShyZWJhbGFuY2VUeXBl
KQogewogfQogCi1JbnNlcnRUZXh0Q29tbWFuZDo6SW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQsIFBhc3NSZWZQdHI8VGV4dEluc2VydGlvbk1h
cmtlclN1cHBsaWVyPiBtYXJrZXJTdXBwbGllcikKLSAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5k
KGRvY3VtZW50KQorSW5zZXJ0VGV4dENvbW1hbmQ6Okluc2VydFRleHRDb21tYW5kKERvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBQYXNzUmVmUHRyPFRleHRJbnNlcnRpb25N
YXJrZXJTdXBwbGllcj4gbWFya2VyU3VwcGxpZXIsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikK
KyAgICA6IENvbXBvc2l0ZUVkaXRDb21tYW5kKGRvY3VtZW50LCBlZGl0aW5nQWN0aW9uKQogICAg
ICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3NlbGVjdEluc2VydGVkVGV4dChmYWxzZSkKICAgICAs
IG1fcmViYWxhbmNlVHlwZShSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAppbmRleCBmMTBkMmZl
Li42NTI4MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRD
b21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
CkBAIC00OSwyMCArNDksMjEgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPElu
c2VydFRleHRDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcm
IHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0ID0gZmFsc2UsCi0gICAgICAgIFJlYmFsYW5j
ZVR5cGUgcmViYWxhbmNlVHlwZSA9IFJlYmFsYW5jZUxlYWRpbmdBbmRUcmFpbGluZ1doaXRlc3Bh
Y2VzKQorICAgICAgICBSZWJhbGFuY2VUeXBlIHJlYmFsYW5jZVR5cGUgPSBSZWJhbGFuY2VMZWFk
aW5nQW5kVHJhaWxpbmdXaGl0ZXNwYWNlcywgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uID0gRWRp
dEFjdGlvbkluc2VydCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2Vy
dFRleHRDb21tYW5kKGRvY3VtZW50LCB0ZXh0LCBzZWxlY3RJbnNlcnRlZFRleHQsIHJlYmFsYW5j
ZVR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQo
ZG9jdW1lbnQsIHRleHQsIHNlbGVjdEluc2VydGVkVGV4dCwgcmViYWxhbmNlVHlwZSwgZWRpdGlu
Z0FjdGlvbikpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNy
ZWF0ZVdpdGhNYXJrZXJTdXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
dGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBs
aWVyKQorICAgIHN0YXRpYyBSZWY8SW5zZXJ0VGV4dENvbW1hbmQ+IGNyZWF0ZVdpdGhNYXJrZXJT
dXBwbGllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0
cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+IG1hcmtlclN1cHBsaWVyLCBFZGl0QWN0aW9u
IGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5zZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSW5zZXJ0VGV4dENvbW1hbmQoZG9jdW1lbnQsIHRleHQsIG1hcmtlclN1
cHBsaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc2VydFRleHRDb21tYW5k
KGRvY3VtZW50LCB0ZXh0LCBtYXJrZXJTdXBwbGllciwgZWRpdGluZ0FjdGlvbikpOwogICAgIH0K
IAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYs
IGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxp
ZXI+LCBFZGl0QWN0aW9uKTsKKyAgICBJbnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQsIFJlYmFsYW5jZVR5cGUsIEVk
aXRBY3Rpb24pOwogCi0gICAgSW5zZXJ0VGV4dENvbW1hbmQoRG9jdW1lbnQmLCBjb25zdCBTdHJp
bmcmIHRleHQsIGJvb2wgc2VsZWN0SW5zZXJ0ZWRUZXh0LCBSZWJhbGFuY2VUeXBlKTsKLSAgICBJ
bnNlcnRUZXh0Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGV4dCwgUGFzc1JlZlB0
cjxUZXh0SW5zZXJ0aW9uTWFya2VyU3VwcGxpZXI+KTsKK3ByaXZhdGU6CiAKICAgICB2b2lkIGRl
bGV0ZUNoYXJhY3RlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01v
dmVTZWxlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCmluZGV4IGNlODg0NzguLmQ2ZWNmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBA
IHZvaWQgTW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogICAgIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpDb21tYW5kT3B0aW9ucyBvcHRpb25zID0gUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnRO
ZXN0aW5nOwogICAgIGlmIChtX3NtYXJ0SW5zZXJ0KQogICAgICAgICBvcHRpb25zIHw9IFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpTbWFydFJlcGxhY2U7Ci0gICAgYXBwbHlDb21tYW5kVG9Db21w
b3NpdGUoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBtX2ZyYWdt
ZW50LCBvcHRpb25zKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBXVEY6Om1vdmUobV9mcmFnbWVudCksIG9w
dGlvbnMpKTsKIH0KIAogRWRpdEFjdGlvbiBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6ZWRpdGluZ0Fj
dGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCmluZGV4IDJjMDYzYzAuLmM2
Mjk3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1h
bmQ6OlJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSwgU2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29u
dGVudElzQWx3YXlzRWRpdGFibGUpCi0gICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChub2RlLT5k
b2N1bWVudCgpKQorUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ6OlJlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSwgU2hvdWxk
QXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUgc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlz
RWRpdGFibGUsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKKyAgICA6IENvbXBvc2l0ZUVkaXRD
b21tYW5kKG5vZGUtPmRvY3VtZW50KCksIGVkaXRpbmdBY3Rpb24pCiAgICAgLCBtX25vZGUobm9k
ZSkKICAgICAsIG1fc2hvdWxkQXNzdW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUoc2hvdWxkQXNz
dW1lQ29udGVudElzQWx3YXlzRWRpdGFibGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmgKaW5k
ZXggNGI5MTk3NC4uMWIyYzQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuaApAQCAtMzIsMTMg
KzMyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQgOiBwdWJsaWMgQ29tcG9zaXRlRWRpdENvbW1hbmQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNy
ZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0Vk
aXRhYmxlIHNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlKQorICAgIHN0YXRpYyBS
ZWY8UmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQ+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUsIFNob3VsZEFzc3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlIHNob3VsZEFz
c3VtZUNvbnRlbnRJc0Fsd2F5c0VkaXRhYmxlLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24pCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxk
cmVuQ29tbWFuZChub2RlLCBzaG91bGRBc3N1bWVDb250ZW50SXNBbHdheXNFZGl0YWJsZSwgZWRp
dGluZ0FjdGlvbikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdmVOb2Rl
UHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVD
b250ZW50SXNBbHdheXNFZGl0YWJsZSk7CisgICAgZXhwbGljaXQgUmVtb3ZlTm9kZVByZXNlcnZp
bmdDaGlsZHJlbkNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiwgU2hvdWxkQXNzdW1lQ29udGVudElz
QWx3YXlzRWRpdGFibGUsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHko
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxl
dGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hOThhOTlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgiCisK
KyNpbmNsdWRlICJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1JlcGxhY2VE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kOjpSZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFu
ZChSZWZQdHI8VGV4dD4mJiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQor
ICAgIDogRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZChXVEY6Om1vdmUodGV4dCksIG9mZnNldCwg
Y291bnQsIEVkaXRBY3Rpb25EZWxldGUpCit7Cit9CisKK3ZvaWQgUmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdlKE5vZGUqLCBB
WFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJikKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9SZXBsYWNlRGVsZXRlRnJvbVRleHROb2RlQ29tbWFuZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNzIxMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kX2gKKyNkZWZpbmUg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5jbHVkZSAiRGVsZXRlRnJv
bVRleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlcGxh
Y2VEZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kIGZpbmFsIDogcHVibGljIERlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVwbGFjZURlbGV0ZUZyb21U
ZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiB0ZXh0LCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVwbGFjZURlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKHRleHQpLCBvZmZzZXQs
IGNvdW50KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJlcGxhY2VEZWxldGVGcm9tVGV4dE5v
ZGVDb21tYW5kKFJlZlB0cjxUZXh0PiYmLCB1bnNpZ25lZCwgdW5zaWduZWQpOworICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiwgQVhUZXh0RWRp
dFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVwbGFjZURlbGV0ZUZy
b21UZXh0Tm9kZUNvbW1hbmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9S
ZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MzQ4YzExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKQEAgLTAs
MCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVwbGFjZUluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXBs
YWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6UmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQoUmVmUHRyPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlv
bikKKyAgICA6IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3ZlKG5vZGUpLCBvZmZz
ZXQsIHRleHQsIGVkaXRpbmdBY3Rpb24pCisgICAgLCBtX2RlbGV0ZWRUZXh0KGRlbGV0ZWRUZXh0
KQoreworfQorCit2b2lkIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpub3RpZnlB
Y2Nlc3NpYmlsaXR5Rm9yVGV4dENoYW5nZShOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit7
CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpOworICAgIGlmICghY2FjaGUpCisgICAgICAgIHJldHVybjsKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFYVGV4dEVkaXRUeXBlVW5rbm93bjoKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZUN1dDoKKyAgICBjYXNlIEFYVGV4dEVkaXRU
eXBlRGljdGF0aW9uOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBWFRleHRFZGl0VHlwZURlbGV0ZToKKyAgICAgICAgY2FjaGUtPnBvc3RU
ZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24obm9kZSwgQVhUZXh0RWRpdFR5cGVEZWxldGUsIHRl
eHQsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCBtX2RlbGV0ZWRUZXh0LCBwb3NpdGlvbik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVJbnNlcnQ6CisgICAgY2FzZSBBWFRl
eHRFZGl0VHlwZVBhc3RlOgorICAgIGNhc2UgQVhUZXh0RWRpdFR5cGVUeXBpbmc6CisgICAgICAg
IGNhY2hlLT5wb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0aW9uKG5vZGUsIEFYVGV4dEVkaXRU
eXBlRGVsZXRlLCBtX2RlbGV0ZWRUZXh0LCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNjNiMmIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VJbnNlcnRJbnRvVGV4dE5v
ZGVDb21tYW5kLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21t
YW5kX2gKKyNkZWZpbmUgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmRfaAorCisjaW5j
bHVkZSAiSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kIGZpbmFsIDogcHVibGlj
IEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVw
bGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ+IGNyZWF0ZShSZWZQdHI8VGV4dD4mJiBub2Rl
LCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUmVwbGFjZUluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoV1RGOjptb3Zl
KG5vZGUpLCBvZmZzZXQsIHRleHQsIGRlbGV0ZWRUZXh0LCBlZGl0aW5nQWN0aW9uKSk7CisgICAg
fQorCitwcml2YXRlOgorICAgIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFJlZlB0
cjxUZXh0PiYmLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgRWRpdEFj
dGlvbik7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JUZXh0Q2hhbmdl
KE5vZGUqLCBBWFRleHRFZGl0VHlwZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJikgb3ZlcnJpZGU7CisKKyAgICBTdHJpbmcgbV9kZWxldGVkVGV4dDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlcGxhY2VJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKaW5kZXggZmIzODgwYy4uZmQ1NzQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTQ3LDYgKzQ3LDgg
QEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIK
ICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVwbGFjZURlbGV0ZUZyb21UZXh0
Tm9kZUNvbW1hbmQuaCIKKyNpbmNsdWRlICJSZXBsYWNlSW5zZXJ0SW50b1RleHROb2RlQ29tbWFu
ZC5oIgogI2luY2x1ZGUgIlNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNtYXJ0
UmVwbGFjZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgpAQCAtMzY4LDE1ICszNzAs
MTQgQEAgaW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6
OmRpZFJlcGxhY2VOb2RlKE5vZGUqIG5vZGUsIE4KICAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVk
ID0gbmV3Tm9kZTsKIH0KIAotUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywgRWRpdEFjdGlvbiBlZGl0QWN0aW9u
KQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCitSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4mJiBmcmFnbWVudCwgQ29tbWFuZE9wdGlvbnMgb3B0aW9ucywg
RWRpdEFjdGlvbiBlZGl0QWN0aW9uKQorICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1l
bnQsIGVkaXRBY3Rpb24pCiAgICAgLCBtX3NlbGVjdFJlcGxhY2VtZW50KG9wdGlvbnMgJiBTZWxl
Y3RSZXBsYWNlbWVudCkKICAgICAsIG1fc21hcnRSZXBsYWNlKG9wdGlvbnMgJiBTbWFydFJlcGxh
Y2UpCiAgICAgLCBtX21hdGNoU3R5bGUob3B0aW9ucyAmIE1hdGNoU3R5bGUpCiAgICAgLCBtX2Rv
Y3VtZW50RnJhZ21lbnQoZnJhZ21lbnQpCiAgICAgLCBtX3ByZXZlbnROZXN0aW5nKG9wdGlvbnMg
JiBQcmV2ZW50TmVzdGluZykKICAgICAsIG1fbW92aW5nUGFyYWdyYXBoKG9wdGlvbnMgJiBNb3Zp
bmdQYXJhZ3JhcGgpCi0gICAgLCBtX2VkaXRBY3Rpb24oZWRpdEFjdGlvbikKICAgICAsIG1fc2Fu
aXRpemVGcmFnbWVudChvcHRpb25zICYgU2FuaXRpemVGcmFnbWVudCkKICAgICAsIG1fc2hvdWxk
TWVyZ2VFbmQoZmFsc2UpCiAgICAgLCBtX2lnbm9yZU1haWxCbG9ja3F1b3RlKG9wdGlvbnMgJiBJ
Z25vcmVNYWlsQmxvY2txdW90ZSkKQEAgLTE0MjcsMTEgKzE0MjgsNiBAQCB2b2lkIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjptZXJnZVRleHROb2Rlc0Fyb3VuZFBvc2l0aW9uKFBvc2l0aW9uJiBw
b3NpdGlvbiwgUAogICAgIH0KIH0KIAotRWRpdEFjdGlvbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZDo6ZWRpdGluZ0FjdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWRpdEFjdGlvbjsKLX0K
LQogLy8gSWYgdGhlIHVzZXIgaXMgaW5zZXJ0aW5nIGEgbGlzdCBpbnRvIGFuIGV4aXN0aW5nIGxp
c3QsIGluc3RlYWQgb2YgbmVzdGluZyB0aGUgbGlzdCwKIC8vIHdlIHB1dCB0aGUgbGlzdCBpdGVt
cyBpbnRvIHRoZSBleGlzdGluZyBsaXN0LgogTm9kZSogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6
Omluc2VydEFzTGlzdEl0ZW1zKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IHBycExpc3RFbGVtZW50
LCBOb2RlKiBpbnNlcnRpb25CbG9jaywgY29uc3QgUG9zaXRpb24mIGluc2VydFBvcywgSW5zZXJ0
ZWROb2RlcyYgaW5zZXJ0ZWROb2RlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCBkODdjM2ZmLi45Y2ZkZmM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oCkBAIC00OCwx
NyArNDgsMTYgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBDb21tYW5kT3B0aW9u
czsKIAotICAgIHN0YXRpYyBSZWY8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQsIENv
bW1hbmRPcHRpb25zIG9wdGlvbnMsIEVkaXRBY3Rpb24gYWN0aW9uID0gRWRpdEFjdGlvblBhc3Rl
KQorICAgIHN0YXRpYyBSZWY8UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ+IGNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGZyYWdtZW50LCBDb21tYW5k
T3B0aW9ucyBvcHRpb25zLCBFZGl0QWN0aW9uIGVkaXRpbmdBY3Rpb24gPSBFZGl0QWN0aW9uSW5z
ZXJ0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQoZG9jdW1lbnQsIGZyYWdtZW50LCBvcHRpb25zLCBhY3Rpb24pKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoZG9jdW1lbnQsIFdU
Rjo6bW92ZShmcmFnbWVudCksIG9wdGlvbnMsIGVkaXRpbmdBY3Rpb24pKTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+LCBDb21tYW5kT3B0aW9ucywgRWRpdEFjdGlvbik7CisgICAgUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQoRG9jdW1lbnQmLCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4m
JiwgQ29tbWFuZE9wdGlvbnMsIEVkaXRBY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKTsKLSAgICB2aXJ0dWFsIEVkaXRBY3Rpb24gZWRpdGluZ0FjdGlvbigpIGNvbnN0OwotICAg
IAorCiAgICAgY2xhc3MgSW5zZXJ0ZWROb2RlcyB7CiAgICAgcHVibGljOgogICAgICAgICB2b2lk
IHJlc3BvbmRUb05vZGVJbnNlcnRpb24oTm9kZSopOwpAQCAtMTIwLDcgKzExOSw2IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IG1fZG9jdW1lbnRGcmFnbWVudDsKICAg
ICBib29sIG1fcHJldmVudE5lc3Rpbmc7CiAgICAgYm9vbCBtX21vdmluZ1BhcmFncmFwaDsKLSAg
ICBFZGl0QWN0aW9uIG1fZWRpdEFjdGlvbjsKICAgICBib29sIG1fc2FuaXRpemVGcmFnbWVudDsK
ICAgICBib29sIG1fc2hvdWxkTWVyZ2VFbmQ7CiAgICAgYm9vbCBtX2lnbm9yZU1haWxCbG9ja3F1
b3RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggOTMyOWNk
Zi4uZjA3NDQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBA
IC0zNzQsNyArMzc0LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGNvbnN0IFN0
cmluZyAmdGV4dCwgYm9vbCBzZWxlY3RJbnNlcnRlZFRleHQpCiB2b2lkIFR5cGluZ0NvbW1hbmQ6
Omluc2VydFRleHRSdW5XaXRob3V0TmV3bGluZXMoY29uc3QgU3RyaW5nICZ0ZXh0LCBib29sIHNl
bGVjdEluc2VydGVkVGV4dCkKIHsKICAgICBSZWZQdHI8SW5zZXJ0VGV4dENvbW1hbmQ+IGNvbW1h
bmQgPSBJbnNlcnRUZXh0Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHRleHQsIHNlbGVjdElu
c2VydGVkVGV4dCwKLSAgICAgICAgbV9jb21wb3NpdGlvblR5cGUgPT0gVGV4dENvbXBvc2l0aW9u
Tm9uZSA/IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VMZWFkaW5nQW5kVHJhaWxpbmdXaGl0
ZXNwYWNlcyA6IEluc2VydFRleHRDb21tYW5kOjpSZWJhbGFuY2VBbGxXaGl0ZXNwYWNlcyk7Cisg
ICAgICAgIG1fY29tcG9zaXRpb25UeXBlID09IFRleHRDb21wb3NpdGlvbk5vbmUgPyBJbnNlcnRU
ZXh0Q29tbWFuZDo6UmViYWxhbmNlTGVhZGluZ0FuZFRyYWlsaW5nV2hpdGVzcGFjZXMgOiBJbnNl
cnRUZXh0Q29tbWFuZDo6UmViYWxhbmNlQWxsV2hpdGVzcGFjZXMsIEVkaXRBY3Rpb25UeXBpbmcp
OwogCiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoY29tbWFuZCwgZW5kaW5nU2VsZWN0aW9u
KCkpOwogCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3IoKQogICAgIGlmICghY2FuQXBwZW5kTmV3TGluZUZlZWRUb1NlbGVjdGlv
bihlbmRpbmdTZWxlY3Rpb24oKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFwcGx5Q29tbWFu
ZFRvQ29tcG9zaXRlKEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmNyZWF0ZShkb2N1
bWVudCgpKSk7CisgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZhbHNlLCBmYWxzZSwgRWRpdEFjdGlv
blR5cGluZykpOwogICAgIHR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZChJbnNlcnRQYXJhZ3JhcGhT
ZXBhcmF0b3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9G
cmFtZVNlbGVjdGlvbkF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2F0ay9GcmFtZVNl
bGVjdGlvbkF0ay5jcHAKaW5kZXggN2MyMTM2NS4uMGZmYzMyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9hdGsvRnJhbWVTZWxlY3Rpb25BdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvYXRrL0ZyYW1lU2VsZWN0aW9uQXRrLmNwcApAQCAtNzgsNyArNzgsNyBA
QCBzdGF0aWMgdm9pZCBtYXliZUVtaXRUZXh0Rm9jdXNDaGFuZ2UoUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiBwcnBPYmplY3QpCiB9CiAKIAotdm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90
aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpCit2b2lkIEZyYW1lU2VsZWN0aW9u
Ojpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JikKIHsKICAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5jcHAKaW5kZXggYzE4ODMzOC4uMTM0YjIzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5j
cHAKQEAgLTM4LDcgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRGljdGF0aW9uQ29t
bWFuZElPUzo6RGljdGF0aW9uQ29tbWFuZElPUyhEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxW
ZWN0b3I8U3RyaW5nPj4mJiBkaWN0YXRpb25QaHJhc2VzLCBSZXRhaW5QdHI8aWQ+IG1ldGFkYXRh
KQotICAgIDogQ29tcG9zaXRlRWRpdENvbW1hbmQoZG9jdW1lbnQpCisgICAgOiBDb21wb3NpdGVF
ZGl0Q29tbWFuZChkb2N1bWVudCwgRWRpdEFjdGlvbkRpY3RhdGlvbikKICAgICAsIG1fZGljdGF0
aW9uUGhyYXNlcyhXVEY6Om1vdmUoZGljdGF0aW9uUGhyYXNlcykpCiAgICAgLCBtX21ldGFkYXRh
KFdURjo6bW92ZShtZXRhZGF0YSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2lvcy9EaWN0YXRpb25Db21tYW5kSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lv
cy9EaWN0YXRpb25Db21tYW5kSU9TLmgKaW5kZXggYmY5MDc2NC4uYWM1Y2IyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRGljdGF0aW9uQ29tbWFuZElPUy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0RpY3RhdGlvbkNvbW1hbmRJT1MuaApAQCAtNDQs
NyArNDQsNiBAQCBwcml2YXRlOgogICAgIERpY3RhdGlvbkNvbW1hbmRJT1MoRG9jdW1lbnQmLCBW
ZWN0b3I8VmVjdG9yPFN0cmluZz4+JiYgZGljdGF0aW9uUGhyYXNlcywgUmV0YWluUHRyPGlkPiBt
ZXRhZGF0YSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
RWRpdEFjdGlvbkRpY3RhdGlvbjsgfQogCiAgICAgVmVjdG9yPFZlY3RvcjxTdHJpbmc+PiBtX2Rp
Y3RhdGlvblBocmFzZXM7CiAgICAgUmV0YWluUHRyPGlkPiBtX21ldGFkYXRhOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRnJhbWVTZWxlY3Rpb25NYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbQppbmRleCA5YmRlZTFj
Li4xYTgyZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNl
bGVjdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9GcmFtZVNlbGVj
dGlvbk1hYy5tbQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHN0YXRpYyBDR1JlY3QgYWNjZXNzaWJpbGl0
eUNvbnZlcnRTY3JlZW5SZWN0KENHUmVjdCBib3VuZHMpCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElP
UykKICAgICAKICAgICAKLXZvaWQgRnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlG
b3JTZWxlY3Rpb25DaGFuZ2UoKQordm9pZCBGcmFtZVNlbGVjdGlvbjo6bm90aWZ5QWNjZXNzaWJp
bGl0eUZvclNlbGVjdGlvbkNoYW5nZShjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgaW50
ZW50KQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CiAK
ICAgICBpZiAobV9zZWxlY3Rpb24uc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbGVjdGlvbi5l
bmQoKS5pc05vdE51bGwoKSkgewogICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBk
b2N1bWVudC0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAgICAgICBjYWNoZS0+cG9z
dE5vdGlmaWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRl
cmVyKCksIEFYT2JqZWN0Q2FjaGU6OkFYU2VsZWN0ZWRUZXh0Q2hhbmdlZCwgVGFyZ2V0T2JzZXJ2
YWJsZVBhcmVudCk7CisgICAgICAgICAgICBjYWNoZS0+cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCksIGludGVudCwgbV9z
ZWxlY3Rpb24pOwogICAgIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDFlNmM2YjIu
LjM2ODRlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCkBAIC01NDgsMTYgKzU0OCwyNiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZXRJbm5lclRleHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
ICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaXNUZXh0Rm9ybUNvbnRyb2woKSk7Ci0gICAgYm9v
bCB0ZXh0SXNDaGFuZ2VkID0gdmFsdWUgIT0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRleHQp
OworICAgIFN0cmluZyBwcmV2aW91c1ZhbHVlID0gaW5uZXJUZXh0VmFsdWVGcm9tKCppbm5lclRl
eHQpOworICAgIGJvb2wgdGV4dElzQ2hhbmdlZCA9IHZhbHVlICE9IHByZXZpb3VzVmFsdWU7CiAg
ICAgaWYgKHRleHRJc0NoYW5nZWQgfHwgIWlubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7Cisj
aWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIGlmICh0
ZXh0SXNDaGFuZ2VkICYmIHJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIGlmIChBWE9iamVjdENh
Y2hlKiBjYWNoZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAg
ICAgICAgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhW
YWx1ZUNoYW5nZWQsIFRhcmdldE9ic2VydmFibGVQYXJlbnQpOwogICAgICAgICB9CisjZW5kaWYK
ICAgICAgICAgaW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJ
T04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRzV2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0
aCgnXHInKSkKICAgICAgICAgICAgIGlubmVyVGV4dC0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKworI2lmIEhBVkUo
QUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGlmICh0ZXh0SXNDaGFu
Z2VkICYmIHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgICAgICAgICAg
Y2FjaGUtPnBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24odGhpcywgQVhUZXh0RWRpdFR5
cGVEZWxldGUsIHByZXZpb3VzVmFsdWUsIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCB2YWx1ZSwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKHRoaXMsIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5j
aG9yKSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICAgICBzZXRGb3JtQ29udHJvbFZh
bHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcAppbmRleCA5OWU2ZDU5Li4yODNkMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcApAQCAtNTI0LDcgKzUyNCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNs
dWRlRWRpdERyYWcoRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICAgICAgICAgICAgICBvcHRp
b25zIHw9IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpTbWFydFJlcGxhY2U7CiAgICAgICAgICAg
ICAgICAgaWYgKGNob3NlUGxhaW5UZXh0KQogICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9
IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpNYXRjaFN0eWxlOwotICAgICAgICAgICAgICAgIGFw
cGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCptX2RvY3VtZW50VW5k
ZXJNb3VzZSwgZnJhZ21lbnQsIG9wdGlvbnMpKTsKKyAgICAgICAgICAgICAgICBhcHBseUNvbW1h
bmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZSgqbV9kb2N1bWVudFVuZGVyTW91c2Us
IFdURjo6bW92ZShmcmFnbWVudCksIG9wdGlvbnMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggODg2
Yzc2NS4uM2Q5ZmVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzIz
OSw3ICszMjM5LDggQEAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEtleWJvYXJkU2VsZWN0aW9uKEZy
YW1lJiBmcmFtZSwgU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbih2aXNpYmxlUG9zaXRpb24sIEZyYW1l
U2VsZWN0aW9uOjpkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucyhVc2VyVHJpZ2dlcmVkKSk7Cisg
ICAgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQgaW50ZW50KEFYVGV4dFN0YXRlQ2hhbmdlVHlwZVNl
bGVjdGlvbk1vdmUsIEFYVGV4dFNlbGVjdGlvbiB7IEFYVGV4dFNlbGVjdGlvbkRpcmVjdGlvbkRp
c2NvbnRpZ3VvdXMsIEFYVGV4dFNlbGVjdGlvbkdyYW51bGFyaXR5VW5rbm93biB9KTsKKyAgICBz
ZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHZpc2libGVQb3NpdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRl
ZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOwogfQogCiBz
dGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1lJiBmcmFtZSwg
S2V5Ym9hcmRFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKaW5kZXggNzdjMDdmZS4uZDhkMjVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcApAQCAtMzQwLDggKzM0MCwxMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2
YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ygog
ICAgIGlmIChjYXJldEJyb3dzaW5nKSB7CiAgICAgICAgIFBvc2l0aW9uIHBvc2l0aW9uID0gZmly
c3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKGVsZW1lbnQuZ2V0KCkpOwogICAgICAgICBWaXNpYmxl
U2VsZWN0aW9uIG5ld1NlbGVjdGlvbihwb3NpdGlvbiwgcG9zaXRpb24sIERPV05TVFJFQU0pOwot
ICAgICAgICBpZiAoZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbikpCi0gICAgICAgICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3
U2VsZWN0aW9uKTsKKyAgICAgICAgaWYgKGZyYW1lLnNlbGVjdGlvbigpLnNob3VsZENoYW5nZVNl
bGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7CisgICAgICAgICAgICBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCBpbnRlbnQoQVhUZXh0U3RhdGVDaGFuZ2VUeXBlU2VsZWN0aW9uTW92ZSwgQVhUZXh0U2Vs
ZWN0aW9uIHsgQVhUZXh0U2VsZWN0aW9uRGlyZWN0aW9uRGlzY29udGlndW91cywgQVhUZXh0U2Vs
ZWN0aW9uR3JhbnVsYXJpdHlVbmtub3duIH0pOworICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9u
KCkuc2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbiwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRT
ZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2VyZWQpLCBpbnRlbnQpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgZWxlbWVudC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggNzY5Nzg4Ni4uZDQ2ZDg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBA
CisyMDE1LTA0LTI0ICBEb3VnIFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAg
ICAgIEFYOiByaWNoZXIgdGV4dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2li
aWxpdHkgdmFsdWUgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlw
ZSwKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRS
ZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFw
cHMgbW9yZSByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2Vi
IGNvbnRlbnQuIEFsc28gaW1wbGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFs
dWUgY2hhbmdlcyBpbiBwYXNzd29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8g
dGh3YXJ0CisgICAgICAgIGFuYWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAg
ICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4g
SW50cm9kdWNlIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3Zlcmxv
YWQgb2YgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0
ZWNoIGFwcHMgbW9yZQorICAgICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRv
IGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAg
ICAgICAgc2VsZWN0aW9uIGNoYW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JF
ZGl0QWN0aW9uKToKKwogMjAxNS0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4MzI2Ni4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bQppbmRleCBkMjFjZGYwLi5lNTkwZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01NDYsNiArNTQ2LDcgQEAgc3Rh
dGljIE5TU3RyaW5nKiB1bmRvTmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0aW9u
KQogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGlkZW50aWNhbCB0byBjb2RlIGluIFdlYktpdDIncyBX
ZWJFZGl0Q29tbWFuZFByb3h5IGNsYXNzOyB3b3VsZCBiZSBuaWNlIHRvIHNoYXJlIHRoZSBzdHJp
bmdzIGluc3RlYWQgb2YgaGF2aW5nIHR3byBjb3BpZXMuCiAgICAgc3dpdGNoIChlZGl0QWN0aW9u
KSB7CiAgICAgICAgIGNhc2UgRWRpdEFjdGlvblVuc3BlY2lmaWVkOiByZXR1cm4gbmlsOworICAg
ICAgICBjYXNlIEVkaXRBY3Rpb25JbnNlcnQ6IHJldHVybiBuaWw7CiAgICAgICAgIGNhc2UgRWRp
dEFjdGlvblNldENvbG9yOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiU2V0IENvbG9y
IiwgIlNldCBDb2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwog
ICAgICAgICBjYXNlIEVkaXRBY3Rpb25TZXRCYWNrZ3JvdW5kQ29sb3I6IHJldHVybiBVSV9TVFJJ
TkdfS0VZX0lOVEVSTkFMKCJTZXQgQmFja2dyb3VuZCBDb2xvciIsICJTZXQgQmFja2dyb3VuZCBD
b2xvciAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgICAgICBj
YXNlIEVkaXRBY3Rpb25UdXJuT2ZmS2VybmluZzogcmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJO
QUwoIlR1cm4gT2ZmIEtlcm5pbmciLCAiVHVybiBPZmYgS2VybmluZyAoVW5kbyBhY3Rpb24gbmFt
ZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDFlYzc4Y2MuLjM4N2FmMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNS0wNC0yNCAgRG91ZyBSdXNzZWxsICA8
ZF9ydXNzZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogcmljaGVyIHRleHQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMgKDE0MjcxOSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJpY2hlciBhY2Nlc3NpYmlsaXR5IHZhbHVlIGNoYW5nZSBub3RpZmljYXRp
b25zLiBJbnRyb2R1Y2UgQVhUZXh0RWRpdFR5cGUsCisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24gYW5kIHBvc3RUZXh0UmVwbGFjZW1lbnROb3RpZmljYXRpb24gdG8gZ2l2
ZSBhc3Npc3RpdmUKKyAgICAgICAgdGVjaCBhcHBzIG1vcmUgcmVsaWFibGUgY29udGV4dCBmb3Ig
cmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50LiBBbHNvIGltcGxlbWVudAorICAg
ICAgICBhIG1lY2hhbmlzbSB0byBwb3N0IHZhbHVlIGNoYW5nZXMgaW4gcGFzc3dvcmQgZm9ybSBm
aWVsZHMgaW4gY29hbGVzY2VkIHRpY2tzIHRvIHRod2FydAorICAgICAgICBhbmFseXppbmcgdGhl
IGNhZGVuY2Ugb2YgY2hhbmdlcy4KKworICAgICAgICBSaWNoZXIgYWNjZXNzaWJpbGl0eSBzZWxl
Y3Rpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCwKKyAgICAgICAgYW5kIGFuIG92ZXJsb2FkIG9mIHBvc3RUZXh0UmVwbGFjZW1lbnROb3Rp
ZmljYXRpb24gdG8gZ2l2ZSBhc3Npc3RpdmUgdGVjaCBhcHBzIG1vcmUKKyAgICAgICAgcmVsaWFi
bGUgY29udGV4dCBmb3IgcmVzcG9uZGluZyB0byBjaGFuZ2VzIGluIHdlYiBjb250ZW50IHNlbGVj
dGlvbi4gQWxzbyBibG9jayBwb3N0aW5nCisgICAgICAgIHNlbGVjdGlvbiBjaGFuZ2VzIG9uIHBh
c3N3b3JkIGZpZWxkcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRB
Y3Rpb24pOgorCiAyMDE1LTA0LTI0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTgzMjY2LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDU0
Y2UwM2MuLjg3ODU1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJF
ZGl0Q29tbWFuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRWRp
dENvbW1hbmRQcm94eS5jcHAKQEAgLTc0LDYgKzc0LDggQEAgU3RyaW5nIFdlYkVkaXRDb21tYW5k
UHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKEVkaXRBY3Rpb24gZWRpdEFjdGlvbikKICAgICBzd2l0
Y2ggKGVkaXRBY3Rpb24pIHsKICAgICBjYXNlIEVkaXRBY3Rpb25VbnNwZWNpZmllZDoKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRWRpdEFjdGlvbkluc2VydDoKKyAgICAgICAg
cmV0dXJuIFN0cmluZygpOwogICAgIGNhc2UgRWRpdEFjdGlvblNldENvbG9yOgogICAgICAgICBy
ZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlNldCBDb2xvciIsICJTZXQgQ29sb3IgKFVuZG8gYWN0
aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKICAgICBjYXNlIEVkaXRBY3Rpb25TZXRC
YWNrZ3JvdW5kQ29sb3I6CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggYmYxZTc2Mi4uMzJhZjE5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA0LTI0ICBEb3Vn
IFJ1c3NlbGwgIDxkX3J1c3NlbGxAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiByaWNoZXIgdGV4
dCBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAoMTQyNzE5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmljaGVyIGFjY2Vzc2liaWxpdHkgdmFsdWUgY2hhbmdl
IG5vdGlmaWNhdGlvbnMuIEludHJvZHVjZSBBWFRleHRFZGl0VHlwZSwKKyAgICAgICAgcG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiBhbmQgcG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNh
dGlvbiB0byBnaXZlIGFzc2lzdGl2ZQorICAgICAgICB0ZWNoIGFwcHMgbW9yZSByZWxpYWJsZSBj
b250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNvbnRlbnQuIEFsc28gaW1w
bGVtZW50CisgICAgICAgIGEgbWVjaGFuaXNtIHRvIHBvc3QgdmFsdWUgY2hhbmdlcyBpbiBwYXNz
d29yZCBmb3JtIGZpZWxkcyBpbiBjb2FsZXNjZWQgdGlja3MgdG8gdGh3YXJ0CisgICAgICAgIGFu
YWx5emluZyB0aGUgY2FkZW5jZSBvZiBjaGFuZ2VzLgorCisgICAgICAgIFJpY2hlciBhY2Nlc3Np
YmlsaXR5IHNlbGVjdGlvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4gSW50cm9kdWNlIEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LAorICAgICAgICBhbmQgYW4gb3ZlcmxvYWQgb2YgcG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbiB0byBnaXZlIGFzc2lzdGl2ZSB0ZWNoIGFwcHMgbW9yZQorICAg
ICAgICByZWxpYWJsZSBjb250ZXh0IGZvciByZXNwb25kaW5nIHRvIGNoYW5nZXMgaW4gd2ViIGNv
bnRlbnQgc2VsZWN0aW9uLiBBbHNvIGJsb2NrIHBvc3RpbmcKKyAgICAgICAgc2VsZWN0aW9uIGNo
YW5nZXMgb24gcGFzc3dvcmQgZmllbGRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tOgorICAgICAgICAo
LVtBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXSk6CisgICAg
ICAgICgtW0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyIF9ub3RpZmljYXRpb25SZWNl
aXZlZDpdKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudE1hYy5tbToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlm
aWNhdGlvbkxpc3RlbmVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbToKKyAgICAgICAgKC1b
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgX25vdGlmaWNhdGlvblJlY2VpdmVkOl0p
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKToKKwogMjAxNS0wNC0yNCAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE4MzI2Ni4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKaW5kZXggMTkzODZjZS4uOTA4
ZGJkYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAKIC0gKHZvaWQp
c2V0UGxhdGZvcm1FbGVtZW50OihpZClwbGF0Zm9ybUVsZW1lbnQ7CiAtICh2b2lkKXNldENhbGxi
YWNrOihKU09iamVjdFJlZiljYWxsYmFjazsKIC0gKHZvaWQpc3RhcnRPYnNlcnZpbmc7CistICh2
b2lkKXN0b3BPYnNlcnZpbmc7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tCmluZGV4
IGFkYTY4N2EuLmYxYzlhZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KQEAgLTEwNCw2ICsx
MDQsMTEgQEAKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9ub3RpZmljYXRpb25SZWNlaXZlZDopIG5h
bWU6QCJBWERSVE5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07CiB9CiAKKy0gKHZvaWQpc3RvcE9i
c2VydmluZworeworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVt
b3ZlT2JzZXJ2ZXI6c2VsZl07Cit9CisKIC0gKHZvaWQpX25vdGlmaWNhdGlvblJlY2VpdmVkOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIE5TU3RyaW5nICpub3RpZmljYXRp
b25OYW1lID0gW1tub3RpZmljYXRpb24gdXNlckluZm9dIG9iamVjdEZvcktleTpAIm5vdGlmaWNh
dGlvbk5hbWUiXTsKQEAgLTExMiwxNiArMTE3LDI3IEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVt
ZW50ICYmIG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0
aW9uLnVzZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBqc05vdGlmaWNhdGlvbihBZG9wdCwgW25vdGlmaWNhdGlvbk5hbWUgY3JlYXRlSlNTdHJpbmdS
ZWZdKTsKICAgICBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCA9IEpTVmFsdWVN
YWtlU3RyaW5nKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIGpzTm90aWZpY2F0aW9uLmdldCgp
KTsKKyAgICBKU1ZhbHVlUmVmIHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQgPSBuaWw7CisgICAg
aWYgKFt1c2VySW5mb0pTT05WYWx1ZSBsZW5ndGhdKSB7CisgICAgICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBqc1VzZXJJbmZvSlNPTlZhbHVlKEFkb3B0LCBbdXNlckluZm9KU09OVmFsdWUg
Y3JlYXRlSlNTdHJpbmdSZWZdKTsKKyAgICAgICAgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9
IEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwganNV
c2VySW5mb0pTT05WYWx1ZS5nZXQoKSk7CisgICAgfQogICAgIGlmIChtX3BsYXRmb3JtRWxlbWVu
dCkgewotICAgICAgICAvLyBMaXN0ZW5lciBmb3Igb25lIGVsZW1lbnQganVzdCBnZXRzIG9uZSBh
cmd1bWVudCwgdGhlIG5vdGlmaWNhdGlvbiBuYW1lLgotICAgICAgICBKU09iamVjdENhbGxBc0Z1
bmN0aW9uKFttYWluRnJhbWUgZ2xvYmFsQ29udGV4dF0sIG1fbm90aWZpY2F0aW9uRnVuY3Rpb25D
YWxsYmFjaywgMCwgMSwgJm5vdGlmaWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhl
IG5vdGlmaWNhdGlvbiBuYW1lIGFzIGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9y
IG9uZSBlbGVtZW50IGdldHMgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAg
ICAgICAgSlNWYWx1ZVJlZiBhcmd1bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5v
dGlmaWNhdGlvbk5hbWVBcmd1bWVudDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9K
U09OVmFsdWVBcmd1bWVudDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihbbWFpbkZy
YW1lIGdsb2JhbENvbnRleHRdLCBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2ssIDAsIDIs
IGFyZ3VtZW50cywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gQSBnbG9iYWwgbGlzdGVu
ZXIgZ2V0cyB0aGUgZWxlbWVudCwgbm90aWZpY2F0aW9uIG5hbWUgYW5kIHVzZXJJbmZvLgorICAg
ICAgICBKU1ZhbHVlUmVmIGFyZ3VtZW50c1szXTsKICAgICAgICAgYXJndW1lbnRzWzBdID0gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bWFrZUpTQWNjZXNzaWJpbGl0eVVJRWxlbWVudChbbWFpbkZy
YW1lIGdsb2JhbENvbnRleHRdLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFtub3RpZmljYXRpb24g
b2JqZWN0XSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJndW1l
bnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7CiAg
ICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oW21haW5GcmFtZSBnbG9iYWxDb250ZXh0XSwg
bV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrLCAwLCAyLCBhcmd1bWVudHMsIDApOwogICAg
IH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KaW5kZXggNDY3M2ExZC4uMzk3YzYzOCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTE0
NDYsNiArMTQ0Niw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZp
Y2F0aW9uTGlzdGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRy
eWluZyB0byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFT
U0VSVChtX25vdGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAgW21fbm90aWZpY2F0aW9uSGFuZGxl
ciBzdG9wT2JzZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRpb25IYW5kbGVyIHJlbGVhc2VdOwog
ICAgIG1fbm90aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KaW5kZXggNjUxYjU5MS4uMjhjYTAz
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0KQEAgLTEyNSwxOSArMTI1LDMwIEBACiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50ICYm
IG1fcGxhdGZvcm1FbGVtZW50ICE9IFtub3RpZmljYXRpb24gb2JqZWN0XSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgTlNTdHJpbmcgKnVzZXJJbmZvSlNPTlZhbHVlID0gbm90aWZpY2F0aW9uLnVz
ZXJJbmZvW0AidXNlckluZm8iXTsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0g
V0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
LnBhZ2UoKS0+cGFnZSgpKTsKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJh
bWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IGpzTm90aWZpY2F0aW9uKEFkb3B0LCBbbm90aWZpY2F0aW9uTmFtZSBjcmVhdGVK
U1N0cmluZ1JlZl0pOwogICAgIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uTmFtZUFyZ3VtZW50ID0g
SlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNOb3RpZmljYXRpb24uZ2V0KCkpOworICAgIEpT
VmFsdWVSZWYgdXNlckluZm9KU09OVmFsdWVBcmd1bWVudCA9IG5pbDsKKyAgICBpZiAoW3VzZXJJ
bmZvSlNPTlZhbHVlIGxlbmd0aF0pIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGpzVXNlckluZm9KU09OVmFsdWUoQWRvcHQsIFt1c2VySW5mb0pTT05WYWx1ZSBjcmVhdGVKU1N0
cmluZ1JlZl0pOworICAgICAgICB1c2VySW5mb0pTT05WYWx1ZUFyZ3VtZW50ID0gSlNWYWx1ZU1h
a2VGcm9tSlNPTlN0cmluZyhjb250ZXh0LCBqc1VzZXJJbmZvSlNPTlZhbHVlLmdldCgpKTsKKyAg
ICB9CiAgICAgaWYgKG1fcGxhdGZvcm1FbGVtZW50KSB7Ci0gICAgICAgIC8vIExpc3RlbmVyIGZv
ciBvbmUgZWxlbWVudCBqdXN0IGdldHMgb25lIGFyZ3VtZW50LCB0aGUgbm90aWZpY2F0aW9uIG5h
bWUuCi0gICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxK
U09iamVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMSwgJm5vdGlm
aWNhdGlvbk5hbWVBcmd1bWVudCwgMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQSBnbG9i
YWwgbGlzdGVuZXIgZ2V0cyB0aGUgZWxlbWVudCBhbmQgdGhlIG5vdGlmaWNhdGlvbiBuYW1lIGFz
IGFyZ3VtZW50cy4KKyAgICAgICAgLy8gTGlzdGVuZXIgZm9yIG9uZSBlbGVtZW50IGdldHMgdGhl
IG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KICAgICAgICAgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbMl07CisgICAgICAgIGFyZ3VtZW50c1swXSA9IG5vdGlmaWNhdGlvbk5hbWVBcmd1bWVu
dDsKKyAgICAgICAgYXJndW1lbnRzWzFdID0gdXNlckluZm9KU09OVmFsdWVBcmd1bWVudDsKKyAg
ICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0
UmVmPihtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2spLCAwLCAyLCBhcmd1bWVudHMsIDAp
OworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEEgZ2xvYmFsIGxpc3RlbmVyIGdldHMgdGhlIGVs
ZW1lbnQsIG5vdGlmaWNhdGlvbiBuYW1lIGFuZCB1c2VySW5mby4KKyAgICAgICAgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbM107CiAgICAgICAgIGFyZ3VtZW50c1swXSA9IHRvSlMoY29udGV4dCwgV1RG
OjpnZXRQdHIoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW25vdGlmaWNhdGlv
biBvYmplY3RdKSkpOwogICAgICAgICBhcmd1bWVudHNbMV0gPSBub3RpZmljYXRpb25OYW1lQXJn
dW1lbnQ7CisgICAgICAgIGFyZ3VtZW50c1syXSA9IHVzZXJJbmZvSlNPTlZhbHVlQXJndW1lbnQ7
CiAgICAgICAgIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgY29uc3RfY2FzdDxKU09i
amVjdFJlZj4obV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKSwgMCwgMiwgYXJndW1lbnRz
LCAwKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bQppbmRleCBlZDAyZmI3Li5lMjYwN2UxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRNYWMubW0KQEAgLTE0NzYsNiArMTQ3Niw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIC8vIE1hYyBwcm9ncmFt
bWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUgYSBsaXN0ZW5lciB0aGF0J3MgYWxy
ZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbkhhbmRsZXIpOwogCisgICAg
W21fbm90aWZpY2F0aW9uSGFuZGxlciBzdG9wT2JzZXJ2aW5nXTsKICAgICBbbV9ub3RpZmljYXRp
b25IYW5kbGVyIHJlbGVhc2VdOwogICAgIG1fbm90aWZpY2F0aW9uSGFuZGxlciA9IG5pbDsKICAg
ICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>